diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt
index f59792894e82b4c90abc971e90709e37f572e268..17e2072d00ebcaebece57149f3005d3461ea82f5 100644
--- a/cmake_targets/CMakeLists.txt
+++ b/cmake_targets/CMakeLists.txt
@@ -897,7 +897,7 @@ set(UTIL_SRC
   ${OPENAIR2_DIR}/UTIL/FIFO/pad_list.c
   ${OPENAIR2_DIR}/UTIL/LISTS/list.c
   ${OPENAIR2_DIR}/UTIL/LISTS/list2.c
-  ${OPENAIR2_DIR}/UTIL/LOG/log.c
+  ${OPENAIR_DIR}/common/utils/LOG/log.c
 #  ${OPENAIR2_DIR}/UTIL/LOG/vcd_signal_dumper.c
   ${OPENAIR2_DIR}/UTIL/MATH/oml.c
   ${OPENAIR2_DIR}/UTIL/MEM/mem_block.c
@@ -1214,7 +1214,12 @@ set(PHY_MEX_UE
   ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c
   ${OPENAIR1_DIR}/PHY/TOOLS/signal_energy.c
   ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_ue_measurements.c
-  ${OPENAIR2_DIR}/UTIL/LOG/log.c
+  ${OPENAIR_DIR}/common/utils/LOG/log.c
+  ${OPENAIR_DIR}/common/utils/T/T.c
+  ${OPENAIR_DIR}/common/utils/T/local_tracer.c
+  ${OPENAIR_DIR}/common/config/config_cmdline.c
+  ${OPENAIR_DIR}/common/config/config_userapi.c
+  ${OPENAIR_DIR}/common/config/config_load_configmodule.c
   )
 add_library(PHY_MEX ${PHY_MEX_UE})
 
@@ -2175,14 +2180,14 @@ if (${T_TRACER})
         #all "add_executable" definitions (except tests, rb_tool, updatefw)
         lte-softmodem lte-softmodem-nos1 lte-uesoftmodem lte-uesoftmodem-nos1
         dlsim_tm4 dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim
-        pdcchsim pucchsim prachsim syncsim
+        pdcchsim pucchsim prachsim syncsim ulsim
         #all "add_library" definitions
         ITTI RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB
         oai_exmimodevif oai_usrpdevif oai_bladerfdevif oai_lmssdrdevif
         oai_eth_transpro
         FLPT_MSG ASYNC_IF FLEXRAN_AGENT HASHTABLE MSC UTIL OMG_SUMO SECU_OSA
         SECU_CN SCHED_LIB PHY L2 default_sched remote_sched RAL CN_UTILS
-        GTPV1U SCTP_CLIENT UDP LIB_NAS_UE LFDS LFDS7 SIMU OPENAIR0_LIB)
+        GTPV1U SCTP_CLIENT UDP LIB_NAS_UE LFDS LFDS7 SIMU OPENAIR0_LIB PHY_MEX)
     if (TARGET ${i})
       add_dependencies(${i} generate_T)
     endif()
diff --git a/cmake_targets/build_oai b/cmake_targets/build_oai
index 354123d684756614288421342cc516c95251dfda..c15e1e8ec788b1057aa07c7aba346656bf4f994f 100755
--- a/cmake_targets/build_oai
+++ b/cmake_targets/build_oai
@@ -508,7 +508,9 @@ function main() {
          lte_exec=lte-uesoftmodem
       fi
   fi
-
+  if [ "$T_TRACER" =  "False" ] ; then
+      lte_build_dir=${lte_build_dir}_noLOG
+  fi
 # configuration module libraries, one currently available, using libconfig 
   config_libconfig_shlib=params_libconfig
   
diff --git a/common/config/config_cmdline.c b/common/config/config_cmdline.c
index d5e099451a8c49528e41aa778d56a74996e6cdb6..8b3026c22b96e2fa85bbe46c79561ab7266e6121 100644
--- a/common/config/config_cmdline.c
+++ b/common/config/config_cmdline.c
@@ -37,6 +37,35 @@
 #include <errno.h>
 #include "config_userapi.h"
 
+
+void parse_stringlist(paramdef_t *cfgoptions, char *val)
+{
+char *atoken;
+char *tokctx;
+char *tmpval=strdup(val);
+int   numelt=0;
+
+   cfgoptions->numelt=0;
+
+   atoken=strtok_r(tmpval, ",",&tokctx);
+   while(atoken != NULL) {
+     numelt++ ;
+     atoken=strtok_r(NULL, ",",&tokctx);
+   }
+   free(tmpval);
+   config_check_valptr(cfgoptions,(char **)&(cfgoptions->strlistptr), sizeof(char *) * numelt);
+   cfgoptions->numelt=numelt;
+
+   atoken=strtok_r(val, ",",&tokctx);
+   for( int i=0; i<cfgoptions->numelt && atoken != NULL ; i++) {
+      config_check_valptr(cfgoptions,&(cfgoptions->strlistptr[i]),strlen(atoken)+1);
+      sprintf(cfgoptions->strlistptr[i],"%s",atoken);
+      printf_params("[LIBCONFIG] %s[%i]: %s\n", cfgoptions->optname,i,cfgoptions->strlistptr[i]);
+      atoken=strtok_r(NULL, ",",&tokctx);
+   }
+   cfgoptions->numelt=numelt; 
+}
+ 
 int processoption(paramdef_t *cfgoptions, char *value)
 {
 char *tmpval = value;
@@ -66,6 +95,7 @@ char defbool[2]="1";
         break;
 	
         case TYPE_STRINGLIST:
+           parse_stringlist(cfgoptions,tmpval); 
         break;
         case TYPE_UINT32:
        	case TYPE_INT32:
@@ -140,7 +170,7 @@ char *cfgpath;
                      exit_fun("[CONFIG] Exiting after displaying help\n");
                 }
             } else {
-                pp=strtok_r(NULL, "_",&tokctx);
+                pp=strtok_r(NULL, " ",&tokctx);
                 if ( prefix != NULL && pp != NULL && strncasecmp(prefix,pp,strlen(pp)) == 0 ) { 
                    printf ("Help for %s section:\n",prefix);               
                    config_printhelp(cfgoptions,numoptions);
@@ -167,17 +197,19 @@ char *cfgpath;
     		     ((strlen(oneargv) > 2) && (strcmp(oneargv + 2,cfgpath ) == 0 )) ) {
                    char *valptr=NULL;
                    int ret;
-    		   pp = config_get_if()->argv[i+1];
-                   if (pp != NULL && c > 1) {                      
-                       ret = strlen(pp);
-                       if (ret > 0 ) {
-                           if (pp[0] != '-')
-                              valptr=pp;
-                           else if ( ret > 1 && pp[0] == '-' && isdigit(pp[1]) )
-                              valptr=pp;
-                       }
+                   if (c > 0) {
+    		      pp = config_get_if()->argv[i+1];
+                      if (pp != NULL ) {                      
+                         ret = strlen(pp);
+                         if (ret > 0 ) {
+                             if (pp[0] != '-')
+                                valptr=pp;
+                             else if ( ret > 1 && pp[0] == '-' && isdigit(pp[1]) )
+                                valptr=pp;
+                         }
+                     }
                    }
-                   j += processoption(&(cfgoptions[n]), pp);
+                   j += processoption(&(cfgoptions[n]), valptr);
     		   if (  valptr != NULL ) {
                       i++;
                       c--;
diff --git a/openair2/UTIL/LOG/README.txt b/common/utils/LOG/README.txt
similarity index 100%
rename from openair2/UTIL/LOG/README.txt
rename to common/utils/LOG/README.txt
diff --git a/common/utils/LOG/log.c b/common/utils/LOG/log.c
new file mode 100644
index 0000000000000000000000000000000000000000..02ee849202e285aeb936312a12b754ae6f21b19f
--- /dev/null
+++ b/common/utils/LOG/log.c
@@ -0,0 +1,707 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+/*! \file log.c
+* \brief log implementaion
+* \author Navid Nikaein
+* \date 2009 - 2014
+* \version 0.5
+* @ingroup util
+
+*/
+
+#define _GNU_SOURCE  /* required for pthread_getname_np */
+//#define LOG_TEST 1
+
+#define COMPONENT_LOG
+#define COMPONENT_LOG_IF
+#include <ctype.h>
+#define LOG_MAIN
+#include "log.h"
+#include "vcd_signal_dumper.h"
+#include "assertions.h"
+
+#if defined(ENABLE_ITTI)
+# include "intertask_interface.h"
+#endif
+
+# include <pthread.h>
+# include <string.h>
+#include  <linux/prctl.h>
+#include "common/config/config_userapi.h"
+// main log variables
+
+
+
+
+mapping log_level_names[] = {
+  {"error",  OAILOG_ERR},
+  {"file",   OAILOG_FILE},
+  {"warn",   OAILOG_WARNING},
+  {"info",   OAILOG_INFO},
+  {"debug",  OAILOG_DEBUG},
+  {"trace",  OAILOG_TRACE},
+  {NULL, -1}
+};
+
+mapping log_options[] = {
+  {"nocolor", FLAG_NOCOLOR  },
+  {"level",   FLAG_LEVEL  },
+  {"thread",  FLAG_THREAD },
+  {NULL,-1}
+};
+
+
+mapping log_maskmap[] = {
+  {"prach",       DEBUG_PRACH},
+  {"RU",          DEBUG_RU},
+  {"LTEESTIM",    DEBUG_LTEESTIM},
+  {"ctrlsocket",  DEBUG_CTRLSOCKET},
+  {"UE_PHYPROC",  DEBUG_UE_PHYPROC},
+  {"UE_TIMING",   UE_TIMING},
+  {NULL,-1}
+};
+
+char *log_level_highlight_start[] = {LOG_RED, LOG_GREEN, LOG_ORANGE, "", LOG_BLUE, LOG_CYBL};  /*!< \brief Optional start-format strings for highlighting */
+char *log_level_highlight_end[]   = {LOG_RESET,LOG_RESET,LOG_RESET,LOG_RESET, LOG_RESET,LOG_RESET};   /*!< \brief Optional end-format strings for highlighting */
+
+
+int write_file_matlab(const char *fname,const char *vname,void *data,int length,int dec,char format)
+{
+
+  FILE *fp=NULL;
+  int i;
+
+  if (data == NULL)
+     return -1;
+  //printf("Writing %d elements of type %d to %s\n",length,format,fname);
+
+
+  if (format == 10 || format ==11 || format == 12 || format == 13 || format == 14) {
+    fp = fopen(fname,"a+");
+  } else if (format != 10 && format !=11  && format != 12 && format != 13 && format != 14) {
+    fp = fopen(fname,"w+");
+  }
+
+
+
+  if (fp== NULL) {
+    printf("[OPENAIR][FILE OUTPUT] Cannot open file %s\n",fname);
+    return(-1);
+  }
+
+  if (format != 10 && format !=11  && format != 12 && format != 13 && format != 14)
+    fprintf(fp,"%s = [",vname);
+
+
+  switch (format) {
+  case 0:   // real 16-bit
+
+    for (i=0; i<length; i+=dec) {
+      fprintf(fp,"%d\n",((short *)data)[i]);
+    }
+
+    break;
+
+  case 1:  // complex 16-bit
+  case 13:
+  case 14:
+  case 15:
+
+    for (i=0; i<length<<1; i+=(2*dec)) {
+      fprintf(fp,"%d + j*(%d)\n",((short *)data)[i],((short *)data)[i+1]);
+
+    }
+
+
+    break;
+
+  case 2:  // real 32-bit
+    for (i=0; i<length; i+=dec) {
+      fprintf(fp,"%d\n",((int *)data)[i]);
+    }
+
+    break;
+
+  case 3: // complex 32-bit
+    for (i=0; i<length<<1; i+=(2*dec)) {
+      fprintf(fp,"%d + j*(%d)\n",((int *)data)[i],((int *)data)[i+1]);
+    }
+
+    break;
+
+  case 4: // real 8-bit
+    for (i=0; i<length; i+=dec) {
+      fprintf(fp,"%d\n",((char *)data)[i]);
+    }
+
+    break;
+
+  case 5: // complex 8-bit
+    for (i=0; i<length<<1; i+=(2*dec)) {
+      fprintf(fp,"%d + j*(%d)\n",((char *)data)[i],((char *)data)[i+1]);
+    }
+
+    break;
+
+  case 6:  // real 64-bit
+    for (i=0; i<length; i+=dec) {
+      fprintf(fp,"%lld\n",((long long*)data)[i]);
+    }
+
+    break;
+
+  case 7: // real double
+    for (i=0; i<length; i+=dec) {
+      fprintf(fp,"%g\n",((double *)data)[i]);
+    }
+
+    break;
+
+  case 8: // complex double
+    for (i=0; i<length<<1; i+=2*dec) {
+      fprintf(fp,"%g + j*(%g)\n",((double *)data)[i], ((double *)data)[i+1]);
+    }
+
+    break;
+
+  case 9: // real unsigned 8-bit
+    for (i=0; i<length; i+=dec) {
+      fprintf(fp,"%d\n",((unsigned char *)data)[i]);
+    }
+
+    break;
+
+
+  case 10 : // case eren 16 bit complex :
+
+    for (i=0; i<length<<1; i+=(2*dec)) {
+
+      if((i < 2*(length-1)) && (i > 0))
+        fprintf(fp,"%d + j*(%d),",((short *)data)[i],((short *)data)[i+1]);
+      else if (i == 2*(length-1))
+        fprintf(fp,"%d + j*(%d);",((short *)data)[i],((short *)data)[i+1]);
+      else if (i == 0)
+        fprintf(fp,"\n%d + j*(%d),",((short *)data)[i],((short *)data)[i+1]);
+
+
+
+    }
+
+    break;
+
+  case 11 : //case eren 16 bit real for channel magnitudes:
+    for (i=0; i<length; i+=dec) {
+
+      if((i <(length-1))&& (i > 0))
+        fprintf(fp,"%d,",((short *)data)[i]);
+      else if (i == (length-1))
+        fprintf(fp,"%d;",((short *)data)[i]);
+      else if (i == 0)
+        fprintf(fp,"\n%d,",((short *)data)[i]);
+    }
+
+    printf("\n eren: length :%d",length);
+    break;
+
+  case 12 : // case eren for log2_maxh real unsigned 8 bit
+    fprintf(fp,"%d \n",((unsigned char *)&data)[0]);
+    break;
+
+  }
+
+  if (format != 10 && format !=11 && format !=12 && format != 13 && format != 15) {
+    fprintf(fp,"];\n");
+    fclose(fp);
+    return(0);
+  } else if (format == 10 || format ==11 || format == 12 || format == 13 || format == 15) {
+    fclose(fp);
+    return(0);
+  }
+
+  return 0;
+}
+
+/* get log parameters from configuration file */
+void  log_getconfig(log_t *g_log) {
+  char *gloglevel = NULL;
+  int level;
+  
+  
+  paramdef_t logparams_defaults[] = LOG_GLOBALPARAMS_DESC;
+  paramdef_t logparams_level[MAX_LOG_PREDEF_COMPONENTS];
+  paramdef_t logparams_logfile[MAX_LOG_PREDEF_COMPONENTS];
+  paramdef_t logparams_debug[sizeof(log_maskmap)/sizeof(mapping)];
+  paramdef_t logparams_matlab[sizeof(log_maskmap)/sizeof(mapping)];
+
+  int ret = config_get( logparams_defaults,sizeof(logparams_defaults)/sizeof(paramdef_t),CONFIG_STRING_LOG_PREFIX);
+  if (ret <0) {
+       fprintf(stderr,"[LOG] init aborted, configuration couldn't be performed");
+       return;
+  } 
+
+  for(int i=0; i<logparams_defaults[LOG_OPTIONS_IDX].numelt ; i++) {
+     for(int j=0; log_options[j].name != NULL ; j++) {
+        if (strcmp(logparams_defaults[LOG_OPTIONS_IDX].strlistptr[i],log_options[j].name) == 0) { 
+            g_log->flag = g_log->flag |  log_options[j].value;
+            break;
+        } else if (log_options[j+1].name == NULL){
+            fprintf(stderr,"Unknown log option: %s\n",logparams_defaults[LOG_OPTIONS_IDX].strlistptr[i]);
+            exit(-1);
+        }
+     } 
+  } 
+  
+/* build the parameter array for setting per component log level and infile options */  
+  memset(logparams_level,    0, sizeof(paramdef_t)*MAX_LOG_PREDEF_COMPONENTS);
+  memset(logparams_logfile,  0, sizeof(paramdef_t)*MAX_LOG_PREDEF_COMPONENTS);
+  for (int i=MIN_LOG_COMPONENTS; i < MAX_LOG_PREDEF_COMPONENTS; i++) {
+    if(g_log->log_component[i].name == NULL) {
+       g_log->log_component[i].name = malloc(16);
+       sprintf((char *)g_log->log_component[i].name,"comp%i?",i);
+       logparams_logfile[i].paramflags = PARAMFLAG_DONOTREAD;
+       logparams_level[i].paramflags = PARAMFLAG_DONOTREAD;
+    }
+    sprintf(logparams_level[i].optname,    LOG_CONFIG_LEVEL_FORMAT,       g_log->log_component[i].name);
+    sprintf(logparams_logfile[i].optname,  LOG_CONFIG_LOGFILE_FORMAT,     g_log->log_component[i].name);
+/* workaround: all log options in existing configuration files use lower case component names
+   where component names include uppercase char in log.h....                                */ 
+    for (int j=0 ; j<strlen(logparams_level[i].optname); j++) 
+          logparams_level[i].optname[j] = tolower(logparams_level[i].optname[j]);
+    for (int j=0 ; j<strlen(logparams_level[i].optname); j++) 
+          logparams_logfile[i].optname[j] = tolower(logparams_logfile[i].optname[j]);
+/* */
+    logparams_level[i].defstrval     = gloglevel;
+    logparams_logfile[i].defuintval  = 0;
+    logparams_logfile[i].numelt      = 0;
+    logparams_level[i].numelt        = 0;
+    logparams_level[i].type          = TYPE_STRING;
+    logparams_logfile[i].type        = TYPE_UINT;
+
+    logparams_logfile[i].paramflags  = logparams_logfile[i].paramflags|PARAMFLAG_BOOL;
+    }
+/* read the per component parameters */
+  config_get( logparams_level,    MAX_LOG_PREDEF_COMPONENTS,CONFIG_STRING_LOG_PREFIX); 
+  config_get( logparams_logfile,  MAX_LOG_PREDEF_COMPONENTS,CONFIG_STRING_LOG_PREFIX); 
+/* now set the log levels and infile option, according to what we read */
+  for (int i=MIN_LOG_COMPONENTS; i < MAX_LOG_PREDEF_COMPONENTS; i++) {
+    level     = map_str_to_int(log_level_names,    *(logparams_level[i].strptr));
+    set_log(i, level,1);
+    if (*(logparams_logfile[i].uptr) == 1)
+        set_component_filelog(i);
+  }
+
+/* build then read the debug and matlab parameter array */
+  for (int i=0;log_maskmap[i].name != NULL ; i++) {
+      sprintf(logparams_debug[i].optname,    LOG_CONFIG_DEBUG_FORMAT, log_maskmap[i].name);
+      sprintf(logparams_matlab[i].optname,   LOG_CONFIG_MATLAB_FORMAT, log_maskmap[i].name);
+      logparams_debug[i].defuintval  = 0;
+      logparams_debug[i].type        = TYPE_UINT;
+      logparams_debug[i].paramflags  = PARAMFLAG_BOOL;
+      logparams_debug[i].uptr        = NULL;
+      logparams_debug[i].chkPptr     = NULL;
+      logparams_debug[i].numelt      = 0;
+      logparams_matlab[i].defuintval  = 0;
+      logparams_matlab[i].type        = TYPE_UINT;
+      logparams_matlab[i].paramflags  = PARAMFLAG_BOOL;
+      logparams_matlab[i].uptr        = NULL;
+      logparams_matlab[i].chkPptr     = NULL;
+      logparams_matlab[i].numelt      = 0;
+  }
+  config_get( logparams_debug,(sizeof(log_maskmap)/sizeof(mapping)) - 1 ,CONFIG_STRING_LOG_PREFIX);
+  config_get( logparams_matlab,(sizeof(log_maskmap)/sizeof(mapping)) - 1 ,CONFIG_STRING_LOG_PREFIX);
+/* set the debug mask according to the debug parameters values */
+  for (int i=0; log_maskmap[i].name != NULL ; i++) {
+    if (*(logparams_debug[i].uptr) )
+        g_log->debug_mask = g_log->debug_mask | log_maskmap[i].value;
+    if (*(logparams_matlab[i].uptr) )
+        g_log->matlab_mask = g_log->matlab_mask | log_maskmap[i].value;
+  } 
+}
+
+int register_log_component(char *name, char *fext, int compidx)
+{
+int computed_compidx=compidx;
+
+  if (strlen(fext) > 3) {
+      fext[3]=0;  /* limit log file extension to 3 chars */
+  }
+  if (compidx < 0) { /* this is not a pre-defined component */
+      for (int i = MAX_LOG_PREDEF_COMPONENTS; i< MAX_LOG_COMPONENTS; i++) {
+            if (g_log->log_component[i].name == NULL) {
+                computed_compidx=i;
+                break;
+            }
+      }
+  }
+  if (computed_compidx >= 0 && computed_compidx <MAX_LOG_COMPONENTS) {
+      g_log->log_component[computed_compidx].name = strdup(name);
+      g_log->log_component[computed_compidx].level = LOG_ERR;
+      g_log->log_component[computed_compidx].interval =  1;
+      g_log->log_component[computed_compidx].stream = NULL;
+      g_log->log_component[computed_compidx].filelog = 0;
+      g_log->log_component[computed_compidx].filelog_name = malloc(strlen(name)+16);/* /tmp/<name>.%s rounded to ^2 */
+      sprintf(g_log->log_component[computed_compidx].filelog_name,"/tmp/%s.%s",name,fext);
+  } else {
+      fprintf(stderr,"{LOG} %s %d Couldn't register componemt %s\n",__FILE__,__LINE__,name);
+  }
+return computed_compidx;
+}
+
+int logInit (void)
+{
+  int i;
+  g_log = calloc(1, sizeof(log_t));
+
+  if (g_log == NULL) {
+    perror ("cannot allocated memory for log generation module \n");
+    exit(EXIT_FAILURE);
+  }
+  memset(g_log,0,sizeof(log_t));
+
+
+
+  register_log_component("PHY","log",PHY);
+  register_log_component("MAC","log",MAC);
+  register_log_component("OPT","log",OPT);
+  register_log_component("RLC","log",RLC);
+  register_log_component("PDCP","log",PDCP);
+  register_log_component("RRC","log",RRC);
+  register_log_component("OMG","csv",OMG);
+  register_log_component("OTG","log",OTG);
+  register_log_component("OTG_LATENCY","dat",OTG_LATENCY);
+  register_log_component("OTG_LATENCY_BG","dat",OTG_LATENCY_BG);
+  register_log_component("OTG_GP","dat",OTG_GP);
+  register_log_component("OTG_GP_BG","dat",OTG_GP_BG);
+  register_log_component("OTG_JITTER","dat",OTG_JITTER);
+  register_log_component("OCG","",OCG);
+  register_log_component("PERF","",PERF);
+  register_log_component("OIP","",OIP); 
+  register_log_component("CLI","",CLI); 
+  register_log_component("MSC","log",MSC); 
+  register_log_component("OCM","log",OCM); 
+  register_log_component("HW","",HW); 
+  register_log_component("OSA","",OSA); 
+  register_log_component("eRAL","",RAL_ENB); 
+  register_log_component("mRAL","",RAL_UE); 
+  register_log_component("ENB_APP","log",ENB_APP); 
+  register_log_component("FLEXRAN_AGENT","log",FLEXRAN_AGENT); 
+  register_log_component("TMR","",TMR); 
+  register_log_component("USIM","txt",USIM);   
+  register_log_component("SIM","txt",SIM);  
+
+  /* following log component are used for the localization*/
+  register_log_component("LOCALIZE","log",LOCALIZE);
+  register_log_component("NAS","log",NAS);
+  register_log_component("UDP","",UDP_);
+
+
+  register_log_component("GTPV1U","",GTPU);
+
+
+  register_log_component("S1AP","",S1AP);
+
+
+  register_log_component("SCTP","",SCTP);
+  register_log_component("RRH","",RRH);
+ 
+
+  
+
+
+
+  g_log->level2string[OAILOG_ERR]           = "E"; // ERROR
+  g_log->level2string[OAILOG_WARNING]       = "W"; // WARNING
+  g_log->level2string[OAILOG_INFO]          = "I"; //INFO
+  g_log->level2string[OAILOG_DEBUG]         = "D"; // DEBUG
+  g_log->level2string[OAILOG_FILE]          = "F"; // file
+  g_log->level2string[OAILOG_TRACE]         = "T"; // TRACE
+ 
+
+  g_log->onlinelog = 1; //online log file
+  g_log->filelog   = 0;
+ 
+
+
+  g_log->filelog_name = "/tmp/openair.log";
+
+  log_getconfig(g_log);
+
+
+  // could put a loop here to check for all comps
+  for (i=MIN_LOG_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) {
+    if (g_log->log_component[i].filelog == 1 ) {
+      g_log->log_component[i].stream = fopen(g_log->log_component[i].filelog_name,"w");
+      g_log->log_component[i].fwrite = vfprintf;
+    } else if (g_log->log_component[i].filelog == 1 ) {
+        g_log->log_component[i].stream = fopen(g_log->filelog_name,"w");
+        g_log->log_component[i].fwrite = vfprintf;
+    } else if (g_log->onlinelog == 1 ) {
+        g_log->log_component[i].stream = stdout;
+        g_log->log_component[i].fwrite = vfprintf;
+    }
+  }
+
+  // set all unused component items to 0, they are for non predefined components
+  for (i=MAX_LOG_PREDEF_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) {
+        memset(&(g_log->log_component[i]),0,sizeof(log_component_t));
+  }
+  printf("log init done\n");
+
+  return 0;
+}
+
+
+
+
+char *log_getthreadname(char *threadname, int bufsize) {
+
+int rt =   pthread_getname_np(pthread_self(), threadname,bufsize) ;  
+   if (rt == 0)
+   {
+     return threadname;
+   } else {
+     return "thread?";
+   }
+}
+
+
+void logRecord_mt(const char *file, const char *func, int line, int comp, int level, const char* format, ... )
+  {
+
+  char threadname[PR_SET_NAME];
+  char log_buffer[MAX_LOG_TOTAL];
+  va_list args;
+
+  va_start(args, format);
+
+
+
+
+
+
+  snprintf(log_buffer, MAX_LOG_TOTAL , "%s%s[%s]%s %s %s",
+  	   log_level_highlight_end[level],
+  	   ( (g_log->flag & FLAG_NOCOLOR)?"":log_level_highlight_start[level]),
+  	   g_log->log_component[comp].name,
+  	   ( (g_log->flag & FLAG_LEVEL)?g_log->level2string[level]:""),
+  	   ( (g_log->flag & FLAG_THREAD)?log_getthreadname(threadname,PR_SET_NAME+1):""),
+  	   format);
+
+  g_log->log_component[comp].fwrite(g_log->log_component[comp].stream,log_buffer, args);
+  va_end(args);
+
+
+}
+
+
+
+int set_log(int component, int level, int interval)
+{
+  /* Checking parameters */
+  DevCheck((component >= MIN_LOG_COMPONENTS) && (component < MAX_LOG_COMPONENTS),
+           component, MIN_LOG_COMPONENTS, MAX_LOG_COMPONENTS);
+  DevCheck((level < NUM_LOG_LEVEL) && (level >= OAILOG_ERR), level, NUM_LOG_LEVEL,
+           OAILOG_ERR);
+  DevCheck((interval >= 0) && (interval <= 0xFF), interval, 0, 0xFF);
+
+  g_log->log_component[component].level = level;
+
+
+  g_log->log_component[component].interval = interval;
+
+  return 0;
+}
+
+
+
+void set_glog(int level)
+{
+  for (int c=0; c< MAX_LOG_COMPONENTS; c++ ) {
+     g_log->log_component[c].level = level;
+  }
+  
+}
+
+void set_glog_onlinelog(int enable)
+{
+  g_log->onlinelog = enable;
+}
+void set_glog_filelog(int enable)
+{
+  g_log->filelog = enable;
+}
+
+void set_component_filelog(int comp)
+{
+  if (g_log->log_component[comp].filelog ==  0) {
+    g_log->log_component[comp].filelog =  1;
+
+    if (g_log->log_component[comp].stream == NULL) {
+      g_log->log_component[comp].stream = fopen(g_log->log_component[comp].filelog_name,"w");
+    }
+  }
+}
+
+
+
+/*
+ * for the two functions below, the passed array must have a final entry
+ * with string value NULL
+ */
+/* map a string to an int. Takes a mapping array and a string as arg */
+int map_str_to_int(mapping *map, const char *str)
+{
+  while (1) {
+    if (map->name == NULL) {
+      return(-1);
+    }
+
+    if (!strcmp(map->name, str)) {
+      return(map->value);
+    }
+
+    map++;
+  }
+}
+
+/* map an int to a string. Takes a mapping array and a value */
+char *map_int_to_str(mapping *map, int val)
+{
+  while (1) {
+    if (map->name == NULL) {
+      return NULL;
+    }
+
+    if (map->value == val) {
+      return map->name;
+    }
+
+    map++;
+  }
+}
+
+int is_newline( char *str, int size)
+{
+  int i;
+
+  for (  i = 0; i < size; i++ ) {
+    if ( str[i] == '\n' ) {
+      return 1;
+    }
+  }
+
+  /* if we get all the way to here, there must not have been a newline! */
+  return 0;
+}
+
+void logClean (void)
+{
+  int i;
+  LOG_I(PHY,"\n");
+
+
+
+
+  for (i=MIN_LOG_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) {
+    if (g_log->log_component[i].stream != NULL) {
+      fclose(g_log->log_component[i].stream);
+    }
+  }
+}
+
+  
+#ifdef LOG_TEST
+
+int main(int argc, char *argv[])
+{
+
+  logInit();
+
+
+  test_log();
+
+  return 1;
+}
+
+int test_log(void)
+{
+  LOG_ENTER(MAC); // because the default level is DEBUG
+  LOG_I(EMU, "1 Starting OAI logs version %s Build date: %s on %s\n",
+        BUILD_VERSION, BUILD_DATE, BUILD_HOST);
+  LOG_D(MAC, "1 debug  MAC \n");
+  LOG_W(MAC, "1 warning MAC \n");
+
+  set_log(EMU, OAILOG_INFO, FLAG_ONLINE);
+  set_log(MAC, OAILOG_WARNING, 0);
+
+  LOG_I(EMU, "2 Starting OAI logs version %s Build date: %s on %s\n",
+        BUILD_VERSION, BUILD_DATE, BUILD_HOST);
+  LOG_E(MAC, "2 error MAC\n");
+  LOG_D(MAC, "2 debug  MAC \n");
+  LOG_W(MAC, "2 warning MAC \n");
+  LOG_I(MAC, "2 info MAC \n");
+
+
+  set_log(MAC, OAILOG_NOTICE, 1);
+
+  LOG_ENTER(MAC);
+  LOG_I(EMU, "3 Starting OAI logs version %s Build date: %s on %s\n",
+        BUILD_VERSION, BUILD_DATE, BUILD_HOST);
+  LOG_D(MAC, "3 debug  MAC \n");
+  LOG_W(MAC, "3 warning MAC \n");
+  LOG_I(MAC, "3 info MAC \n");
+
+  set_log(MAC, LOG_DEBUG,1);
+  set_log(EMU, LOG_DEBUG,1);
+
+  LOG_ENTER(MAC);
+  LOG_I(EMU, "4 Starting OAI logs version %s Build date: %s on %s\n",
+        BUILD_VERSION, BUILD_DATE, BUILD_HOST);
+  LOG_D(MAC, "4 debug  MAC \n");
+  LOG_W(MAC, "4 warning MAC \n");
+  LOG_I(MAC, "4 info MAC \n");
+
+
+  set_log(MAC, LOG_DEBUG,0);
+  set_log(EMU, LOG_DEBUG,0);
+
+  LOG_I(LOG, "5 Starting OAI logs version %s Build date: %s on %s\n",
+        BUILD_VERSION, BUILD_DATE, BUILD_HOST);
+  LOG_D(MAC, "5 debug  MAC \n");
+  LOG_W(MAC, "5 warning MAC \n");
+  LOG_I(MAC, "5 info MAC \n");
+
+
+  set_log(MAC, LOG_TRACE,0X07F);
+  set_log(EMU, LOG_TRACE,0X07F);
+
+  LOG_ENTER(MAC);
+  LOG_I(LOG, "6 Starting OAI logs version %s Build date: %s on %s\n",
+        BUILD_VERSION, BUILD_DATE, BUILD_HOST);
+  LOG_D(MAC, "6 debug  MAC \n");
+  LOG_W(MAC, "6 warning MAC \n");
+  LOG_I(MAC, "6 info MAC \n");
+  LOG_EXIT(MAC);
+
+  return 0;
+}
+#endif
diff --git a/openair2/UTIL/LOG/log.h b/common/utils/LOG/log.h
similarity index 62%
rename from openair2/UTIL/LOG/log.h
rename to common/utils/LOG/log.h
index 2e7aeb5663c2100685d8aa0d432a609c3178edef..4a0552d4942843e5a453b6e2e0223ad0c5adf80e 100644
--- a/openair2/UTIL/LOG/log.h
+++ b/common/utils/LOG/log.h
@@ -52,7 +52,7 @@
 #define _GNU_SOURCE
 #endif
 #include <pthread.h>
-
+#include "T.h"
 /*----------------------------------------------------------------------------*/
 
 #ifdef __cplusplus
@@ -73,8 +73,7 @@ extern "C" {
  *  @ingroup _macro
  *  @brief the macros that describe the maximum length of LOG
  * @{*/
-#define MAX_LOG_ITEM 100 /*!< \brief the maximum length of a LOG item, what is LOG_ITEM ??? */
-#define MAX_LOG_INFO 1000 /*!< \brief the maximum length of a log */
+
 #define MAX_LOG_TOTAL 1500 /*!< \brief the maximum length of a log */
 /* @}*/
 
@@ -82,18 +81,15 @@ extern "C" {
  *  @ingroup _macro
  *  @brief LOG defines 9 levels of messages for users. Importance of these levels decrease gradually from 0 to 8
  * @{*/
-# define  LOG_EMERG 0 /*!< \brief system is unusable */
-# define  LOG_ALERT 1 /*!< \brief action must be taken immediately */
-# define  LOG_CRIT  2 /*!< \brief critical conditions */
-# define  LOG_ERR   3 /*!< \brief error conditions */
-# define  LOG_WARNING 4 /*!< \brief warning conditions */
-# define  LOG_NOTICE  5 /*!< \brief normal but significant condition */
-# define  LOG_INFO  6 /*!< \brief informational */
-# define  LOG_DEBUG 7 /*!< \brief debug-level messages */
-# define  LOG_FILE        8 /*!< \brief message sequence chart -level  */
-# define  LOG_TRACE 9 /*!< \brief trace-level messages */
-# define  LOG_MATLAB 10 /*!< \brief output to matlab file */
-#define NUM_LOG_LEVEL  11 /*!< \brief the number of message levels users have with LOG */
+
+# define  OAILOG_ERR     0 /*!< \brief critical error conditions, impact on "must have" fuctinalities */
+# define  OAILOG_FILE    1 /*!< \brief important informational messages, but everything OK  */
+# define  OAILOG_WARNING 2 /*!< \brief warning conditions, shouldn't happen but doesn't impact "must have" functionalities */
+# define  OAILOG_INFO    3 /*!< \brief informational messages most people don't need, shouldn't impact real-time behavior */
+# define  OAILOG_DEBUG   4 /*!< \brief first level debug-level messages, for developers , may impact real-time behavior */
+# define  OAILOG_TRACE   5 /*!< \brief  second level debug-level messages, for developers ,likely impact real-time behavior*/
+
+#define NUM_LOG_LEVEL 6 /*!< \brief the number of message levels users have with LOG */
 /* @}*/
 
 
@@ -104,7 +100,7 @@ extern "C" {
 
 /* .log_format = 0x13 uncolored standard messages
  * .log_format = 0x93 colored standard messages */
-
+/* keep white space in first position; switching it to 0 allows colors to be disabled*/
 #define LOG_RED "\033[1;31m"  /*!< \brief VT100 sequence for bold red foreground */
 #define LOG_GREEN "\033[32m"  /*!< \brief VT100 sequence for green foreground */
 #define LOG_ORANGE "\033[93m"   /*!< \brief VT100 sequence for orange foreground */
@@ -118,34 +114,37 @@ extern "C" {
  *  @ingroup _macro
  *  @brief Macros used to write lines (local/remote) in syslog.conf
  * @{*/
-#define LOG_LOCAL      0x01
-#define LOG_REMOTE     0x02
-
-#define FLAG_COLOR     0x001  /*!< \brief defaults */
-#define FLAG_PID       0x002  /*!< \brief defaults */
-#define FLAG_COMP      0x004
-#define FLAG_THREAD    0x008  /*!< \brief all : 255/511 */
-#define FLAG_LEVEL     0x010
-#define FLAG_FUNCT     0x020
-#define FLAG_FILE_LINE 0x040
-#define FLAG_TIME      0x100
-
-#define LOG_NONE        0x00
-#define LOG_LOW         0x5
-#define LOG_MED         0x15
-#define LOG_HIGH        0x35
-#define LOG_FULL        0x75
-
-#define OAI_OK 0    /*!< \brief all ok */
-#define OAI_ERR 1   /*!< \brief generic error */
-#define OAI_ERR_READ_ONLY 2 /*!< \brief tried to write to read-only item */
-#define OAI_ERR_NOTFOUND 3  /*!< \brief something wasn't found */
-/* @}*/
 
 
-//static char *log_level_highlight_start[] = {LOG_RED, LOG_RED, LOG_RED, LOG_RED, LOG_BLUE, "", "", "", LOG_GREEN}; /*!< \brief Optional start-format strings for highlighting */
+#define FLAG_NOCOLOR   0x0001  /*!< \brief use colors in log messages, depending on level */
+#define FLAG_THREAD    0x0008  /*!< \brief display thread name in log messages */
+#define FLAG_LEVEL     0x0010  /*!< \brief display log level in log messages */
+#define FLAG_FUNCT     0x0020
+#define FLAG_FILE_LINE 0x0040
+#define FLAG_TIME      0x0100
+
+#define SET_LOG_OPTION(O)   g_log->flag = (g_log->flag | O)
+#define CLEAR_LOG_OPTION(O) g_log->flag = (g_log->flag & (~O))
+
+/** @defgroup macros to identify a debug entity
+ *  @ingroup each macro is a bit mask where the unique bit set identifies an entity to be debugged
+ *            it allows to dynamically activate or not blocks of code 
+ *  @brief 
+ * @{*/
+#define DEBUG_PRACH        (1<<0)
+#define DEBUG_RU           (1<<1)
+#define DEBUG_UE_PHYPROC   (1<<2)
+#define DEBUG_LTEESTIM     (1<<3)
+#define DEBUG_CTRLSOCKET   (1<<10)
+#define UE_TIMING          (1<<20)
+
+#define SET_LOG_DEBUG(O)   g_log->debug_mask = (g_log->debug_mask | O)
+#define CLEAR_LOG_DEBUG(O) g_log->debug_mask = (g_log->debug_mask & (~O))
+
+#define SET_LOG_MATLAB(O)   g_log->matlab_mask = (g_log->matlab_mask | O)
+#define CLEAR_LOG_MATLAB(O) g_log->matlab_mask = (g_log->matlab_mask & (~O))
+
 
-//static char *log_level_highlight_end[]   = {LOG_RESET, LOG_RESET, LOG_RESET, LOG_RESET, LOG_RESET, "", "", "", LOG_RESET};  /*!< \brief Optional end-format strings for highlighting */
 
 typedef enum {
     MIN_LOG_COMPONENTS = 0,
@@ -193,60 +192,40 @@ comp_name_t;
 
 #define MAX_LOG_DYNALLOC_COMPONENTS 20
 #define MAX_LOG_COMPONENTS (MAX_LOG_PREDEF_COMPONENTS + MAX_LOG_DYNALLOC_COMPONENTS)
-//#define msg printf
+
 
 typedef struct {
     char *name; /*!< \brief string name of item */
     int value;  /*!< \brief integer value of mapping */
 } mapping;
 
+typedef int(*log_write_func_t)(FILE *stream, const char *format, va_list ap );
 
 typedef struct  {
-    const char *name;
-    int         level;
-    int         flag;
-    int         interval;
-    int         fd;
-    int         filelog;
-    char       *filelog_name;
-
+    const char       *name;
+    int              level;
+    int              flag;
+    int              interval;
+    int              filelog;
+    char             *filelog_name;
+    FILE             *stream;
+    log_write_func_t fwrite;
     /* SR: make the log buffer component relative */
-    char        log_buffer[MAX_LOG_TOTAL];
+    char             log_buffer[MAX_LOG_TOTAL];
 } log_component_t;
 
-typedef struct  {
-    unsigned int remote_ip;
-    unsigned int audit_ip;
-    int  remote_level;
-    int  facility;
-    int  audit_facility;
-    int  format;
-} log_config_t;
-
 
 typedef struct {
     log_component_t         log_component[MAX_LOG_COMPONENTS];
-    log_config_t            config;
     char*                   level2string[NUM_LOG_LEVEL];
-    int                     level;
     int                     onlinelog;
     int                     flag;
-    int                     syslog;
     int                     filelog;
     char*                   filelog_name;
-    int                     async;       // asynchronous mode, via dedicated log thread + log buffer
+    uint64_t                debug_mask;
+    uint64_t                matlab_mask;
 } log_t;
 
-typedef struct LOG_params {
-    const char *file;
-    const char *func;
-    int line;
-    int comp;
-    int level;
-    const char *format;
-    char l_buff_info [MAX_LOG_INFO];
-    int len;
-} LOG_params;
 
 #if defined(ENABLE_ITTI)
 typedef enum log_instance_type_e {
@@ -258,10 +237,6 @@ typedef enum log_instance_type_e {
 void log_set_instance_type (log_instance_type_t instance);
 #endif
 
-#define LOG_MEM_SIZE 100*1024*1024
-#define LOG_MEM_FILE "./logmem.log"
-int logInit_log_mem(void);
-void output_log_mem(void);
 
 #ifdef LOG_MAIN
 log_t *g_log;
@@ -279,28 +254,20 @@ extern log_t *g_log;
 /*----------------------------------------------------------------------------*/
 int  logInit (void);
 void logRecord_mt(const char *file, const char *func, int line,int comp, int level, const char *format, ...) __attribute__ ((format (printf, 6, 7)));
-void logRecord(const char *file, const char *func, int line,int comp, int level, const char *format, ...) __attribute__ ((format (printf, 6, 7)));
-int  set_comp_log(int component, int level, int verbosity, int interval);
+
 int  set_log(int component, int level, int interval);
-void set_glog(int level, int verbosity);
-void set_log_syslog(int enable);
+void set_glog(int level);
+
 void set_glog_onlinelog(int enable);
 void set_glog_filelog(int enable);
-
 void set_component_filelog(int comp);
+
 int  map_str_to_int(mapping *map, const char *str);
 char *map_int_to_str(mapping *map, int val);
 void logClean (void);
 int  is_newline( char *str, int size);
-void *log_thread_function(void * list);
-int register_log_component(char *name, char *fext, int compidx);
-/** @defgroup _logIt logIt function
- *  @ingroup _macro
- *  @brief Macro used to call tr_log_full_ex with file, function and line information
- * @{*/
-
-#define logIt(component, level, format, args...) (g_log->log_component[component].interval?logRecord_mt(__FILE__, __FUNCTION__, __LINE__, component, level, format, ##args):(void)0)
 
+int register_log_component(char *name, char *fext, int compidx);
 
 /* @}*/
 
@@ -319,24 +286,34 @@ int32_t write_file_matlab(const char *fname, const char *vname, void *data, int
 #define CONFIG_STRING_LOG_PREFIX                           "log_config"
 
 #define LOG_CONFIG_STRING_GLOBAL_LOG_LEVEL                 "global_log_level"
-#define LOG_CONFIG_STRING_GLOBAL_LOG_VERBOSITY             "global_log_verbosity"
 #define LOG_CONFIG_STRING_GLOBAL_LOG_ONLINE                "global_log_online"
 #define LOG_CONFIG_STRING_GLOBAL_LOG_INFILE                "global_log_infile"
+#define LOG_CONFIG_STRING_GLOBAL_LOG_OPTIONS               "global_log_options"
 
 #define LOG_CONFIG_LEVEL_FORMAT                            "%s_log_level"
-#define LOG_CONFIG_VERBOSITY_FORMAT                        "%s_log_verbosity"
 #define LOG_CONFIG_LOGFILE_FORMAT                          "%s_log_infile"
+#define LOG_CONFIG_DEBUG_FORMAT                            "%s_debug"
+#define LOG_CONFIG_MATLAB_FORMAT                           "%s_matlab"
+
+#define LOG_CONFIG_HELP_OPTIONS      " list of comma separated options to enable log module behavior. Available options: \n"\
+                                     " nocolor:   disable color usage in log messages\n"\
+				     " level:     add log level indication in log messages\n"\
+				     " thread:    add threads names in log messages\n"
+				     
+
 
-/*--------------------------------------------------------------------------------------------------------------------------------------------------------------*/
-/*                                       LOG globalconfiguration parameters										        */
-/*   optname                            help   paramflags       XXXptr	                   defXXXval				      type	 numelt	*/
-/*--------------------------------------------------------------------------------------------------------------------------------------------------------------*/
+                   
+/*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
+/*                                       LOG globalconfiguration parameters										                                                */
+/*   optname                            help                                                paramflags       XXXptr	                   defXXXval				      type	 numelt	*/
+/*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
 #define LOG_GLOBALPARAMS_DESC { \
-{LOG_CONFIG_STRING_GLOBAL_LOG_LEVEL,    NULL, 0,  	      strptr:(char **)&gloglevel, defstrval:log_level_names[2].name,       TYPE_STRING,  0}, \
-{LOG_CONFIG_STRING_GLOBAL_LOG_VERBOSITY,NULL, 0,  	      strptr:(char **)&glogverbo, defstrval:log_verbosity_names[2].name,   TYPE_STRING,  0}, \
-{LOG_CONFIG_STRING_GLOBAL_LOG_ONLINE,   NULL, 0,  	      iptr:&(g_log->onlinelog),   defintval:1,                             TYPE_INT,     0}, \
-{LOG_CONFIG_STRING_GLOBAL_LOG_INFILE,   NULL, 0,  	      iptr:&(g_log->filelog),     defintval:0,                             TYPE_INT,     0}, \
+{LOG_CONFIG_STRING_GLOBAL_LOG_LEVEL,    "Default log level for all componemts\n",              0,  	      strptr:(char **)&gloglevel,    defstrval:log_level_names[2].name,    TYPE_STRING,    0}, \
+{LOG_CONFIG_STRING_GLOBAL_LOG_ONLINE,   "Default console output option, for all components\n", 0,  	      iptr:&(g_log->onlinelog),      defintval:1,                          TYPE_INT,       0}, \
+{LOG_CONFIG_STRING_GLOBAL_LOG_OPTIONS,  LOG_CONFIG_HELP_OPTIONS,                               0,  	      strlistptr:NULL,               defstrlistval:NULL,                   TYPE_STRINGLIST,0} \
 }
+
+#define LOG_OPTIONS_IDX   2
 /*----------------------------------------------------------------------------------*/
 /** @defgroup _debugging debugging macros
  *  @ingroup _macro
@@ -344,32 +321,46 @@ int32_t write_file_matlab(const char *fname, const char *vname, void *data, int
  * @{*/
 
 // debugging macros(g_log->log_component[component].interval?logRecord_mt(__FILE__, __FUNCTION__, __LINE__, component, level, format, ##args):(void)0)
-#  if T_TRACER
-#    include "T.h"
-#    define LOG_I(c, x...) do { if (T_stdout) { logIt(c, LOG_INFO, x)    ;} else { T(T_LEGACY_ ## c ## _INFO, T_PRINTF(x))    ;}} while (0) 
-#    define LOG_W(c, x...) do { if (T_stdout) { logIt(c, LOG_WARNING, x) ;} else { T(T_LEGACY_ ## c ## _WARNING, T_PRINTF(x)) ;}} while (0) 
-#    define LOG_E(c, x...) do { if (T_stdout) { logIt(c, LOG_ERR, x)     ;} else { T(T_LEGACY_ ## c ## _ERROR, T_PRINTF(x))   ;}} while (0) 
-#    define LOG_D(c, x...) do { if (T_stdout) { logIt(c, LOG_DEBUG, x)   ;} else { T(T_LEGACY_ ## c ## _DEBUG, T_PRINTF(x))   ;}} while (0) 
-#    define LOG_T(c, x...) do { if (T_stdout) { logIt(c, LOG_TRACE, x)   ;} else { T(T_LEGACY_ ## c ## _TRACE, T_PRINTF(x))   ;}} while (0) 
-#    define LOG_G(c, x...) do { if (T_stdout) { logIt(c, LOG_EMERG, x)   ;}} while (0) /* */
-#    define LOG_A(c, x...) do { if (T_stdout) { logIt(c, LOG_ALERT, x)   ;}} while (0) /* */
-#    define LOG_C(c, x...) do { if (T_stdout) { logIt(c, LOG_CRIT, x)    ;}} while (0) /* */
-#    define LOG_N(c, x...) do { if (T_stdout) { logIt(c, LOG_NOTICE, x)  ;}} while (0) /* */
-#    define LOG_F(c, x...) do { if (T_stdout) { logIt(c, LOG_FILE, x)  ;}}   while (0)  /* */
-#    define LOG_M(file, vector, data, len, dec, format) write_file_matlab(file, vector, data, len, dec, format)/* */
-#  else /* T_TRACER */
+#  if T_TRACER 
+     /* per component, level dependant macros */
+#    define LOG_I(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_INFO   ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_INFO, x)    ;} else { T(T_LEGACY_ ## c ## _INFO, T_PRINTF(x))    ;}} while (0) 
+#    define LOG_W(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_WARNING) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_WARNING, x) ;} else { T(T_LEGACY_ ## c ## _WARNING, T_PRINTF(x)) ;}} while (0) 
+#    define LOG_E(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_ERR    ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_ERR, x)     ;} else { T(T_LEGACY_ ## c ## _ERROR, T_PRINTF(x))   ;}} while (0) 
+#    define LOG_D(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_DEBUG  ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_DEBUG, x)   ;} else { T(T_LEGACY_ ## c ## _DEBUG, T_PRINTF(x))   ;}} while (0) 
+#    define LOG_T(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_TRACE  ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_TRACE, x)   ;} else { T(T_LEGACY_ ## c ## _TRACE, T_PRINTF(x))   ;}} while (0) 
+#    define LOG_F(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_FILE   ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_FILE, x)  ;}}   while (0)  /* */
+#    define nfapi_log(FILE, FNC, LN, COMP, LVL, F...)  do { if (T_stdout) { logRecord_mt(__FILE__, __FUNCTION__, __LINE__,COMP, LVL, F)  ;}}   while (0)  /* */
+     /* bitmask dependant macros, to isolate debugging code */
+#    define LOG_DEBUG_BEGIN(D) if (g_log->debug_mask & D) {
+#    define LOG_DEBUG_END   }
+     /* bitmask dependant macros, to generate matlab files */
+#    define LOG_M_BEGIN(D) if (g_log->matlab_mask & D) {
+#    define LOG_M_END   }
+#    define LOG_M(file, vector, data, len, dec, format) do { write_file_matlab(file, vector, data, len, dec, format);} while(0)/* */
+     /* define variable only used in LOG macro's */
+#    define LOG_VAR(A,B) A B
+#  else /* T_TRACER: remove all debugging and tracing messages, except errors */
 #    define LOG_I(c, x...) /* */
 #    define LOG_W(c, x...) /* */
 #    define LOG_E(c, x...) /* */
 #    define LOG_D(c, x...) /* */
 #    define LOG_T(c, x...) /* */
-#    define LOG_G(c, x...) /* */
-#    define LOG_A(c, x...) /* */
-#    define LOG_C(c, x...) /* */
-#    define LOG_N(c, x...) /* */
 #    define LOG_F(c, x...) /* */
-#    define LOG_M(file, vector, data, len, dec, format) /* */
+#    define nfapi_log(FILE, FNC, LN, COMP, LVL, FMT...) 
+#    define LOG_DEBUG_BEGIN(D) if (0) {
+#    define LOG_DEBUG_END   }
+#    define LOG_M_BEGIN(D) if (0) {
+#    define LOG_M_END   }
+#    define LOG_M(file, vector, data, len, dec, format) 
+#    define LOG_VAR(A,B)
 #  endif /* T_TRACER */
+/* avoid warnings for variables only used in LOG macro's but set outside debug section */
+#define LOG_USEDINLOG_VAR(A,B) __attribute__((unused)) A B 
+
+/* unfiltered macros, usefull for simulators or messages at init time, before log is configured */
+#define LOG_UM(file, vector, data, len, dec, format) do { write_file_matlab(file, vector, data, len, dec, format);} while(0)
+
+#define LOG_UI(c, x...) do {logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_INFO, x) ; } while(0)
 /* @}*/
 
 
diff --git a/openair2/UTIL/LOG/log_extern.h b/common/utils/LOG/log_extern.h
similarity index 81%
rename from openair2/UTIL/LOG/log_extern.h
rename to common/utils/LOG/log_extern.h
index 0e7c49cc8d2e249a367b893e8b425d15e9730219..3c93d517ca76456f57927b34cfb915482b8b87c2 100644
--- a/openair2/UTIL/LOG/log_extern.h
+++ b/common/utils/LOG/log_extern.h
@@ -23,15 +23,8 @@
 
 extern log_t *g_log;
 
-#if !defined(LOG_NO_THREAD)
-extern LOG_params log_list[2000];
-extern pthread_mutex_t log_lock;
-extern pthread_cond_t log_notify;
-extern int log_shutdown;
-#endif
 
 extern mapping log_level_names[];
-extern mapping log_verbosity_names[];
+extern mapping log_options[];
+extern mapping log_maskmap[];
 
-extern int log_mem_flag;
-extern char * log_mem_filename;
diff --git a/openair2/UTIL/LOG/log_if.h b/common/utils/LOG/log_if.h
similarity index 100%
rename from openair2/UTIL/LOG/log_if.h
rename to common/utils/LOG/log_if.h
diff --git a/openair2/UTIL/LOG/vcd_signal_dumper.c b/common/utils/LOG/vcd_signal_dumper.c
similarity index 100%
rename from openair2/UTIL/LOG/vcd_signal_dumper.c
rename to common/utils/LOG/vcd_signal_dumper.c
diff --git a/openair2/UTIL/LOG/vcd_signal_dumper.h b/common/utils/LOG/vcd_signal_dumper.h
similarity index 100%
rename from openair2/UTIL/LOG/vcd_signal_dumper.h
rename to common/utils/LOG/vcd_signal_dumper.h
diff --git a/common/utils/T/T_messages.txt b/common/utils/T/T_messages.txt
index 9432155147eeeafb9137916045ec882e85863c31..fd4425063b66a9d60f411e4a10560b5825caedce 100644
--- a/common/utils/T/T_messages.txt
+++ b/common/utils/T/T_messages.txt
@@ -749,7 +749,6 @@ ID = LEGACY_OSA_TRACE
     DESC = OSA legacy logs - trace level
     GROUP = ALL:LEGACY_OSA:LEGACY_GROUP_TRACE:LEGACY
     FORMAT = string,log
-
 ID = LEGACY_SIM_INFO
     DESC = SIM legacy logs - info level
     GROUP = ALL:LEGACY_SIM:LEGACY_GROUP_INFO:LEGACY
@@ -770,7 +769,6 @@ ID = LEGACY_SIM_TRACE
     DESC = SIM legacy logs - trace level
     GROUP = ALL:LEGACY_SIM:LEGACY_GROUP_TRACE:LEGACY
     FORMAT = string,log
-
 # this is a bad hack but I won't fix (function util_print_hex_octets
 # in openairinterface5g/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c
 # does funky things with the LOG_x macros but we work on the C pre-processor
diff --git a/common/utils/T/tracer/to_vcd.c b/common/utils/T/tracer/to_vcd.c
index 097fdce93217af2d6b6bc48a204bc120c421775f..1a67a9d4ffa6b631c59f9246516d61fe8e0efb12 100644
--- a/common/utils/T/tracer/to_vcd.c
+++ b/common/utils/T/tracer/to_vcd.c
@@ -174,7 +174,8 @@ void usage(void)
 "    -ip <host>                   connect to given IP address (default %s)\n"
 "    -p <port>                    connect to given port (default %d)\n"
 "    -b <event> <arg> <vcd name>  trace as binary (0 off, anything else on)\n"
-"    -l <event> <arg> <vcd name>  trace as uint64_t\n",
+"    -l <event> <arg> <vcd name>  trace as uint64_t\n"
+"    -vcd                         trace all VCD variables and functions\n",
   DEFAULT_REMOTE_IP,
   DEFAULT_REMOTE_PORT
   );
@@ -192,6 +193,20 @@ void force_stop(int x)
   run = 0;
 }
 
+vcd_vars *add_var(vcd_vars *vars, int nvars,
+    char *event, char *arg, char *vcd_name, int is_boolean)
+{
+  if (nvars % 64 == 0) {
+    vars = realloc(vars, (nvars+64) * sizeof(vcd_vars));
+    if (vars == NULL) abort();
+  }
+  vars[nvars].event = event;
+  vars[nvars].arg = arg;
+  vars[nvars].vcd_name = vcd_name;
+  vars[nvars].boolean = is_boolean;
+  return vars;
+}
+
 int main(int n, char **v)
 {
   char *output_filename = NULL;
@@ -202,11 +217,12 @@ int main(int n, char **v)
   int *is_on;
   int number_of_events;
   int i;
-  vcd_vars vars[n];
+  vcd_vars *vars = NULL;
   int nvars = 0;
   view *vcd_view;
   event_handler *h;
   logger *textlog;
+  int all_vcd = 0;
 
   /* write on a socket fails if the other end is closed and we get SIGPIPE */
   if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) abort();
@@ -221,19 +237,22 @@ int main(int n, char **v)
     if (!strcmp(v[i], "-p"))
       { if (i > n-2) usage(); port = atoi(v[++i]); continue; }
     if (!strcmp(v[i], "-b")) { if(i>n-4)usage();
-      vars[nvars].event     = v[++i];
-      vars[nvars].arg       = v[++i];
-      vars[nvars].vcd_name  = v[++i];
-      vars[nvars++].boolean = 1;
+      char *event    = v[++i];
+      char *arg      = v[++i];
+      char *vcd_name = v[++i];
+      vars = add_var(vars, nvars, event, arg, vcd_name, 1);
+      nvars++;
       continue;
     }
     if (!strcmp(v[i], "-l")) { if(i>n-4)usage();
-      vars[nvars].event     = v[++i];
-      vars[nvars].arg       = v[++i];
-      vars[nvars].vcd_name  = v[++i];
-      vars[nvars++].boolean = 0;
+      char *event    = v[++i];
+      char *arg      = v[++i];
+      char *vcd_name = v[++i];
+      vars = add_var(vars, nvars, event, arg, vcd_name, 0);
+      nvars++;
       continue;
     }
+    if (!strcmp(v[i], "-vcd")) { all_vcd = 1; continue; }
     usage();
   }
 
@@ -260,11 +279,32 @@ int main(int n, char **v)
   /* create the view */
   vcd_view = new_view_vcd();
 
+  if (all_vcd) {
+    /* activate all VCD traces */
+    for (i = 0; i < number_of_events; i++) {
+      int is_boolean;
+      int prefix_length;
+      char *name = event_name_from_id(database, i);
+      char *var_prefix = "VCD_VARIABLE_";
+      char *fun_prefix = "VCD_FUNCTION_";
+      if (!strncmp(name, var_prefix, strlen(var_prefix))) {
+        prefix_length = strlen(var_prefix);
+        is_boolean = 0;
+      } else if (!strncmp(name, fun_prefix, strlen(fun_prefix))) {
+        prefix_length = strlen(fun_prefix);
+        is_boolean = 1;
+      } else
+        continue;
+      vars = add_var(vars, nvars,
+          name, "value", name+prefix_length, is_boolean);
+      nvars++;
+    }
+  }
+
   /* setup traces */
   for (i = 0; i < nvars; i++) {
     char format[256];
-    if (strlen(vars[i].arg) > 256-3) abort();
-    if (strlen(vars[i].vcd_name) > 256-1) abort();
+    if (strlen(vars[i].arg) + strlen(vars[i].vcd_name) > 256-16) abort();
     sprintf(format, "%c [%s] %s",
         vars[i].boolean ? 'b' : 'l',
         vars[i].arg,
diff --git a/common/utils/itti/assertions.h b/common/utils/itti/assertions.h
index 803c3d001e7853520cc57573634474d203bc7abf..b872b009e258408e799f6dfaaf0cc2697c1913f4 100644
--- a/common/utils/itti/assertions.h
+++ b/common/utils/itti/assertions.h
@@ -39,7 +39,6 @@ void output_log_mem(void);
 #define _Assert_Exit_                           \
 {                                               \
     fprintf(stderr, "\nExiting execution\n");   \
-    output_log_mem();                           \
     display_backtrace();                        \
     fflush(stdout);                             \
     fflush(stderr);                             \
diff --git a/common/utils/itti/signals.c b/common/utils/itti/signals.c
index c526f04f4376a873dec24a84e368cfbead948c59..5dd667ae653a115e53ca18362ce1d2cec9d0ed2f 100644
--- a/common/utils/itti/signals.c
+++ b/common/utils/itti/signals.c
@@ -117,19 +117,16 @@ int signal_handle(int *end)
     case SIGUSR1:
       SIG_DEBUG("Received SIGUSR1\n");
       *end = 1;
-      output_log_mem();
       break;
 
     case SIGSEGV:   /* Fall through */
     case SIGABRT:
       SIG_DEBUG("Received SIGABORT\n");
-      output_log_mem();
       backtrace_handle_signal(&info);
       break;
 
     case SIGINT:
       printf("Received SIGINT\n");
-      output_log_mem();
       itti_send_terminate_message(TASK_UNKNOWN);
       *end = 1;
       break;
diff --git a/common/utils/telnetsrv/telnetsrv_loader.h b/common/utils/telnetsrv/telnetsrv_loader.h
index 404aabfc7019b2ccf82f718e145696bb63584ca3..d806245a7b7e16ac604836a7a3be660eb5c09392 100644
--- a/common/utils/telnetsrv/telnetsrv_loader.h
+++ b/common/utils/telnetsrv/telnetsrv_loader.h
@@ -32,7 +32,7 @@
 
 #ifdef TELNETSRV_LOADER_MAIN
 
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 
 
 #include "common/utils/load_module_shlib.h"
diff --git a/common/utils/telnetsrv/telnetsrv_phycmd.h b/common/utils/telnetsrv/telnetsrv_phycmd.h
index 3eaa9e168406d5a85167e62f5ea22000e4999503..e35b2a53ab4a6949403cf7a743f1781216b8d1e6 100644
--- a/common/utils/telnetsrv/telnetsrv_phycmd.h
+++ b/common/utils/telnetsrv/telnetsrv_phycmd.h
@@ -32,7 +32,7 @@
 
 #ifdef TELNETSRV_PHYCMD_MAIN
 
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 
 
 #include "openair1/PHY/phy_extern.h"
diff --git a/common/utils/telnetsrv/telnetsrv_proccmd.c b/common/utils/telnetsrv/telnetsrv_proccmd.c
index ac48dc527d7471ade3ce9ebe8173e1549ccbd0f9..519c222114bff7f06f95da8d9de8036f6fa02b29 100644
--- a/common/utils/telnetsrv/telnetsrv_proccmd.c
+++ b/common/utils/telnetsrv/telnetsrv_proccmd.c
@@ -52,8 +52,7 @@
 #define TELNETSERVERCODE
 #include "telnetsrv.h"
 #define TELNETSRV_PROCCMD_MAIN
-#include "log.h"
-#include "log_extern.h"
+#include "common/utils/LOG/log.h"
 #include "common/config/config_userapi.h"
 #include "openair1/PHY/phy_extern.h"
 #include "telnetsrv_proccmd.h"
@@ -200,16 +199,30 @@ int proccmd_show(char *buf, int debug, telnet_printfunc_t prnt)
        print_threads(buf,debug,prnt);
    }
    if (strcasestr(buf,"loglvl") != NULL) {
-       prnt("component                 verbosity  level  enabled\n");
+       prnt("               component level  enabled\n");
        for (int i=MIN_LOG_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) {
             if (g_log->log_component[i].name != NULL) {
-               prnt("%02i %17.17s:%10.10s%10.10s  %s\n",i ,g_log->log_component[i].name, 
-                     map_int_to_str(log_verbosity_names,g_log->log_component[i].flag),
+               prnt("%02i %17.17s:%10.10s  %s\n",i ,g_log->log_component[i].name, 
 	             map_int_to_str(log_level_names,g_log->log_component[i].level),
                      ((g_log->log_component[i].interval>0)?"Y":"N") );
            }
        }
    }
+   if (strcasestr(buf,"logopt") != NULL) {
+       prnt("               option      enabled\n");
+       for (int i=0; log_options[i].name != NULL; i++) {
+               prnt("%02i %17.17s %10.10s \n",i ,log_options[i].name, 
+                     ((g_log->flag & log_options[i].value)?"Y":"N") );
+       }
+   }
+   if (strcasestr(buf,"dbgopt") != NULL) {
+       prnt("               option  debug matlab\n");
+       for (int i=0; log_maskmap[i].name != NULL ; i++) {
+               prnt("%02i %17.17s %5.5s %5.5s\n",i ,log_maskmap[i].name, 
+	             ((g_log->debug_mask &  log_maskmap[i].value)?"Y":"N"),
+                     ((g_log->matlab_mask & log_maskmap[i].value)?"Y":"N") );
+       }
+   }
    if (strcasestr(buf,"config") != NULL) {
        prnt("Command line arguments:\n");
        for (int i=0; i < config_get_if()->argc; i++) {
@@ -324,24 +337,76 @@ int s = sscanf(buf,"%ms %i-%i\n",&logsubcmd, &idx1,&idx2);
           prnt("Available log levels: \n   ");
           for (int i=0; log_level_names[i].name != NULL; i++)
              prnt("%s ",log_level_names[i].name);
-          prnt("\nAvailable verbosity: \n   ");
-          for (int i=0; log_verbosity_names[i].name != NULL; i++)
-             prnt("%s ",log_verbosity_names[i].name);
+          prnt("\n");
+          prnt("Available display options: \n   ");
+          for (int i=0; log_options[i].name != NULL; i++)
+             prnt("%s ",log_options[i].name);
+          prnt("\n");
+          prnt("Available debug or matlab options: \n   ");
+          for (int i=0; log_maskmap[i].name != NULL; i++)
+             prnt("%s ",log_maskmap[i].name);
           prnt("\n");
    	  proccmd_show("loglvl",debug,prnt);
+   	  proccmd_show("logopt",debug,prnt);
+   	  proccmd_show("dbgopt",debug,prnt);
       }
       else if (strcasestr(logsubcmd,"help") != NULL) {
           prnt(PROCCMD_LOG_HELP_STRING);
       } else {
           prnt("%s: wrong log command...\n",logsubcmd);
       }
+   } else if ( s == 2 && logsubcmd != NULL) {
+      char *opt=NULL;
+      char *logparam=NULL;
+      int  l;
+      int optbit;
+
+      l=sscanf(logsubcmd,"%m[^'_']_%ms",&logparam,&opt);
+      if (l == 2 && strcmp(logparam,"print") == 0){
+         optbit=map_str_to_int(log_options,opt);
+         if (optbit < 0) {
+            prnt("option %s unknown\n",opt);
+         } else {
+            if (idx1 > 0)    
+                SET_LOG_OPTION(optbit);
+            else
+                CLEAR_LOG_OPTION(optbit);
+            proccmd_show("logopt",debug,prnt);
+         }
+      }
+      else if (l == 2 && strcmp(logparam,"debug") == 0){
+         optbit=map_str_to_int(log_maskmap,opt);
+         if (optbit < 0) {
+            prnt("debug flag %s unknown\n",opt);
+         } else {
+            if (idx1 > 0)    
+                SET_LOG_DEBUG(optbit);
+            else
+                CLEAR_LOG_DEBUG(optbit);
+            proccmd_show("dbgopt",debug,prnt);
+         }
+      }  
+       else if (l == 2 && strcmp(logparam,"matlab") == 0){
+         optbit=map_str_to_int(log_maskmap,opt);
+         if (optbit < 0) {
+            prnt("matlab flag %s unknown\n",opt);
+         } else {
+            if (idx1 > 0)    
+                SET_LOG_MATLAB(optbit);
+            else
+                CLEAR_LOG_MATLAB(optbit);
+            proccmd_show("dbgopt",debug,prnt);
+         }
+      }       
+      if (logparam != NULL) free(logparam);
+      if (opt != NULL)      free(opt); 
    } else if ( s == 3 && logsubcmd != NULL) {
-      int level, verbosity, interval;
+      int level, interval;
       char *tmpstr=NULL;
       char *logparam=NULL;
       int l;
 
-      level = verbosity = interval = -1;
+      level = interval = -1;
       l=sscanf(logsubcmd,"%m[^'_']_%m[^'_']",&logparam,&tmpstr);
       if (debug > 0)
           prnt("l=%i, %s %s\n",l,((logparam==NULL)?"\"\"":logparam), ((tmpstr==NULL)?"\"\"":tmpstr));
@@ -349,9 +414,6 @@ int s = sscanf(buf,"%ms %i-%i\n",&logsubcmd, &idx1,&idx2);
          if (strcmp(logparam,"level") == 0) {
              level=map_str_to_int(log_level_names,tmpstr);
              if (level < 0)  prnt("level %s unknown\n",tmpstr);
-         } else if (strcmp(logparam,"verbos") == 0) {
-             verbosity=map_str_to_int(log_verbosity_names,tmpstr);
-             if (verbosity < 0)  prnt("verbosity %s unknown\n",tmpstr);
          } else {
              prnt("%s%s unknown log sub command \n",logparam, tmpstr);
          }
@@ -372,17 +434,13 @@ int s = sscanf(buf,"%ms %i-%i\n",&logsubcmd, &idx1,&idx2);
           if (level < 0) {
               level=g_log->log_component[i].level;
            }
-          if (verbosity < 0) {
-              verbosity=g_log->log_component[i].flag;
-           }
           if (interval < 0) {
               interval=g_log->log_component[i].interval;
            }
-          set_comp_log(i, level, verbosity, interval);
-          prnt("log level/verbosity  comp %i %s set to %s / %s (%s)\n",
+          set_log(i, level, interval);
+          prnt("log level  comp %i %s set to %s (%s)\n",
                 i,((g_log->log_component[i].name==NULL)?"":g_log->log_component[i].name),
                 map_int_to_str(log_level_names,g_log->log_component[i].level),
-                map_int_to_str(log_verbosity_names,g_log->log_component[i].flag),
                 ((g_log->log_component[i].interval>0)?"enabled":"disabled"));
 
         
diff --git a/common/utils/telnetsrv/telnetsrv_proccmd.h b/common/utils/telnetsrv/telnetsrv_proccmd.h
index b2c05315d8a46e2e1a989beefe775d5c53d8b21d..409484455ce9a9d5c0a7e24717f1964fc04d8947 100644
--- a/common/utils/telnetsrv/telnetsrv_proccmd.h
+++ b/common/utils/telnetsrv/telnetsrv_proccmd.h
@@ -49,9 +49,12 @@ telnetshell_vardef_t proc_vardef[] = {
  online, noonline:	     enable or disable console logs \n\
  enable, disable id1-id2:    enable or disable logs for components index id1 to id2 \n\
  level_<level> id1-id2:      set log level to <level> for components index id1 to id2 \n\
- level_<verbosity> id1-id2:  set log verbosity to <verbosity> for components index id1 to id2 \n\
-use the show command to get the values for <level>, <verbosity> and the list of component indexes \
-that can be used for id1 and id2 \n"    
+use the show command to get the authorized values for <level> and the list of component \
+indexes that can be used for id1 and id2 \n\
+ print_<opt> <0|1>           disable or enable the \"opt\" log option, use the show command to get \
+the available options\n\
+ matlab_<opt> debug_<func>   disable or enable the debug code or matlab file generation \
+for \"func\" function. use the show command to get the available options\n"  
 
 #define PROCCMD_THREAD_HELP_STRING " thread sub commands: \n\
  <thread id> aff <core>  :    set affinity of thread <thread id> to core <core> \n\
diff --git a/nfapi/oai_integration/nfapi_pnf.c b/nfapi/oai_integration/nfapi_pnf.c
index 80e144c81cbac28f451cce79aa996dd4f880c464..e7416922146235fc93ff273077b65dec8e673df6 100644
--- a/nfapi/oai_integration/nfapi_pnf.c
+++ b/nfapi/oai_integration/nfapi_pnf.c
@@ -47,7 +47,7 @@ extern RAN_CONTEXT_t RC;
 #include <vendor_ext.h>
 #include "fapi_stub.h"
 //#include "fapi_l1.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "openair2/LAYER2/MAC/mac_proto.h"
 
 #include "PHY/INIT/phy_init.h"
@@ -193,26 +193,25 @@ typedef struct {
 static pnf_info pnf;
 static pthread_t pnf_start_pthread;
 
-extern void nfapi_log(char *file, char *func, int line, int comp, int level, const char* format, va_list args);
+int nfapitooai_level(int nfapi_level) {
+  switch(nfapi_level) {
+    case NFAPI_TRACE_ERROR: 
+         return LOG_ERR;
+    case NFAPI_TRACE_WARN: 
+         return LOG_WARNING;
+    case NFAPI_TRACE_NOTE:
+         return LOG_INFO;
+    case NFAPI_TRACE_INFO: 
+         return LOG_DEBUG;
+  } 
+  return LOG_ERR;
+}
 
 void pnf_nfapi_trace(nfapi_trace_level_t nfapi_level, const char* message, ...) {
   va_list args;
-  int oai_level;
-
-  if (nfapi_level==NFAPI_TRACE_ERROR) {
-    oai_level = LOG_ERR;
-  } else if (nfapi_level==NFAPI_TRACE_WARN) {
-    oai_level = LOG_WARNING;
-  } else if (nfapi_level==NFAPI_TRACE_NOTE) {
-    oai_level = LOG_INFO;
-  } else if (nfapi_level==NFAPI_TRACE_INFO) {
-    oai_level = LOG_DEBUG;
-  } else {
-    oai_level = LOG_ERR;
-  }
 
   va_start(args, message);
-  nfapi_log("FILE>", "FUNC", 999, PHY, oai_level, message, args);
+  nfapi_log("FILE>", "FUNC", 999, PHY, nfapitooai_level(nfapi_level), message, args);
   va_end(args);
 }
 
diff --git a/nfapi/oai_integration/nfapi_vnf.c b/nfapi/oai_integration/nfapi_vnf.c
index 5380d340a31ceeabd36adb41568122c54746c293..8022bc53f43d2b2defa5fbc19c633ae70715310b 100644
--- a/nfapi/oai_integration/nfapi_vnf.c
+++ b/nfapi/oai_integration/nfapi_vnf.c
@@ -680,36 +680,13 @@ void vnf_deallocate(void* ptr) {
   free(ptr);
 }
 
-extern void nfapi_log(char *file, char *func, int line, int comp, int level, const char* format, va_list args);
 
 void vnf_trace(nfapi_trace_level_t nfapi_level, const char* message, ...) {
 
   va_list args;
-  int oai_level;
-
-  if (nfapi_level==NFAPI_TRACE_ERROR)
-  {
-    oai_level = LOG_ERR;
-  }
-  else if (nfapi_level==NFAPI_TRACE_WARN)
-  {
-    oai_level = LOG_WARNING;
-  }
-  else if (nfapi_level==NFAPI_TRACE_NOTE)
-  {
-    oai_level = LOG_INFO;
-  }
-  else if (nfapi_level==NFAPI_TRACE_INFO)
-  {
-    oai_level = LOG_INFO;
-  }
-  else
-  {
-    oai_level = LOG_INFO;
-  }
 
   va_start(args, message);
-  nfapi_log("FILE>", "FUNC", 999, PHY, oai_level, message, args);
+  nfapi_log("FILE>", "FUNC", 999, PHY, nfapitooai_level(nfapi_level), message, args);
   va_end(args);
 }
 
diff --git a/nfapi/open-nFAPI/nfapi/inc/nfapi.h b/nfapi/open-nFAPI/nfapi/inc/nfapi.h
index 65ad4dd1609653c85b67dd777f2491859de4ab63..29a0e50438542b11f5f8fc6715b1a99d16c2754d 100644
--- a/nfapi/open-nFAPI/nfapi/inc/nfapi.h
+++ b/nfapi/open-nFAPI/nfapi/inc/nfapi.h
@@ -25,7 +25,7 @@ extern "C" {
 // todo : move to public_inc so can be used by vendor extensions
 
 #define MAX_BAD_TAG 3
-
+int nfapitooai_level(int nfapilevel);
 uint8_t push8(uint8_t in, uint8_t **out, uint8_t *end);
 uint8_t pushs8(int8_t in, uint8_t **out, uint8_t *end);
 uint8_t push16(uint16_t in, uint8_t **out, uint8_t *end);
diff --git a/openair1/PHY/INIT/init_top.c b/openair1/PHY/INIT/init_top.c
index 25f35ab0828c11b31c38c6d6b73700d4a53064d5..e64eda740ca0a9bd8b73335392373e5728c62da4 100644
--- a/openair1/PHY/INIT/init_top.c
+++ b/openair1/PHY/INIT/init_top.c
@@ -67,15 +67,12 @@ void generate_qpsk_table(void)
 void init_lte_top(LTE_DL_FRAME_PARMS *frame_parms)
 {
 
-  ccodedot11_init();
-  ccodedot11_init_inv();
-
   ccodelte_init();
   ccodelte_init_inv();
 
+  init_dfts();
 
 
-  phy_generate_viterbi_tables();
   phy_generate_viterbi_tables_lte();
 
   load_codinglib();
@@ -86,6 +83,7 @@ void init_lte_top(LTE_DL_FRAME_PARMS *frame_parms)
 
   generate_64qam_table();
   generate_16qam_table();
+  generate_qpsk_table();
   generate_RIV_tables();
 
   init_unscrambling_lut();
diff --git a/openair1/PHY/INIT/lte_init.c b/openair1/PHY/INIT/lte_init.c
index 247204cb06e6d88ac7d548ddd403584daec1280e..cbae84f56b6c1643884468f09fbc52db0df62694 100644
--- a/openair1/PHY/INIT/lte_init.c
+++ b/openair1/PHY/INIT/lte_init.c
@@ -31,7 +31,7 @@
 #include "RadioResourceConfigDedicated.h"
 #include "TDD-Config.h"
 #include "MBSFN-SubframeConfigList.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "assertions.h"
 #include <math.h>
 
@@ -477,7 +477,7 @@ void phy_config_sib13_eNB(module_id_t Mod_id,int CC_id,int mbsfn_Area_idx,
 
   if (mbsfn_Area_idx == 0) {
     fp->Nid_cell_mbsfn = (uint16_t)mbsfn_AreaId_r9;
-    LOG_N(PHY,"Fix me: only called when mbsfn_Area_idx == 0)\n");
+    LOG_I(PHY,"Fix me: only called when mbsfn_Area_idx == 0)\n");
   }
 
   lte_gold_mbsfn(fp,RC.eNB[Mod_id][CC_id]->lte_gold_mbsfn_table,fp->Nid_cell_mbsfn);
diff --git a/openair1/PHY/INIT/lte_init_ru.c b/openair1/PHY/INIT/lte_init_ru.c
index c6ac0819cd615fbe9f3ab22ed0f0d57c88bbab53..1ceed40f8b6e901134d8c0dcaad9b335ee6a31aa 100644
--- a/openair1/PHY/INIT/lte_init_ru.c
+++ b/openair1/PHY/INIT/lte_init_ru.c
@@ -27,7 +27,7 @@
 #include "RadioResourceConfigDedicated.h"
 #include "TDD-Config.h"
 #include "MBSFN-SubframeConfigList.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "assertions.h"
 #include <math.h>
 
diff --git a/openair1/PHY/INIT/lte_init_ue.c b/openair1/PHY/INIT/lte_init_ue.c
index 8f6276baa59a952fdf6632515f60a57946c30f6f..62d768a50aeee992662826aff4928d8c5d1e5e08 100644
--- a/openair1/PHY/INIT/lte_init_ue.c
+++ b/openair1/PHY/INIT/lte_init_ue.c
@@ -27,7 +27,7 @@
 #include "RadioResourceConfigDedicated.h"
 #include "TDD-Config.h"
 #include "MBSFN-SubframeConfigList.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "assertions.h"
 #include <math.h>
 #include "PHY/LTE_TRANSPORT/transport_common_proto.h"
@@ -190,7 +190,7 @@ void phy_config_sib13_ue(module_id_t Mod_id,int CC_id,uint8_t eNB_id,int mbsfn_A
 
   if (mbsfn_Area_idx == 0) {
     fp->Nid_cell_mbsfn = (uint16_t)mbsfn_AreaId_r9;
-    LOG_N(PHY,"Fix me: only called when mbsfn_Area_idx == 0)\n");
+    LOG_I(PHY,"Fix me: only called when mbsfn_Area_idx == 0)\n");
   }
 
   lte_gold_mbsfn(fp,PHY_vars_UE_g[Mod_id][CC_id]->lte_gold_mbsfn_table,fp->Nid_cell_mbsfn);
diff --git a/openair1/PHY/INIT/phy_init.h b/openair1/PHY/INIT/phy_init.h
index 8da34fc51cb9bc9ef43349e3fcf750f37e3afdc4..da4050c84824f8eaf9df4c16b454afa433fbcc9f 100644
--- a/openair1/PHY/INIT/phy_init.h
+++ b/openair1/PHY/INIT/phy_init.h
@@ -373,6 +373,8 @@ void phy_config_request(PHY_Config_t *phy_config);
 int init_frame_parms(LTE_DL_FRAME_PARMS *frame_parms,uint8_t osf);
 void dump_frame_parms(LTE_DL_FRAME_PARMS *frame_parms);
 
+void init_dfts(void);
+
 /** @} */
 #endif
 
diff --git a/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync_eNB.c b/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync_eNB.c
index 7f4f87dac2d87744cba09179133d19827fa7c514..61ce019577b83aae8af6d4700367cfdb44b5e19c 100644
--- a/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync_eNB.c
+++ b/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync_eNB.c
@@ -23,7 +23,7 @@
 #include "PHY/defs_eNB.h"
 #include "PHY/phy_extern.h"
 
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
 #define DEBUG_PHY
 
diff --git a/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync_ue.c b/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync_ue.c
index 74d6248d1502029b7d0001a155bb306690f8a904..732db1fa4e533998a83ede51735111520df19042 100644
--- a/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync_ue.c
+++ b/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync_ue.c
@@ -25,7 +25,7 @@
 #include "PHY/impl_defs_top.h"
 #include "openair2/LAYER2/MAC/mac_proto.h"
 
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
 #define DEBUG_PHY
 
diff --git a/openair1/PHY/LTE_ESTIMATION/lte_sync_time.c b/openair1/PHY/LTE_ESTIMATION/lte_sync_time.c
index 0ff4650867e7708336ba38083c4df4d7624cb112..ae33722c90dea75f86bf7bb43cd34f4d21f07c42 100644
--- a/openair1/PHY/LTE_ESTIMATION/lte_sync_time.c
+++ b/openair1/PHY/LTE_ESTIMATION/lte_sync_time.c
@@ -274,11 +274,11 @@ int lte_sync_time_init(LTE_DL_FRAME_PARMS *frame_parms )   // LTE_UE_COMMON *com
 
 
 
-#ifdef DEBUG_PHY
+LOG_M_BEGIN(DEBUG_LTEESTIM);
   LOG_M("primary_sync0.m","psync0",primary_synch0_time,frame_parms->ofdm_symbol_size,1,1);
   LOG_M("primary_sync1.m","psync1",primary_synch1_time,frame_parms->ofdm_symbol_size,1,1);
   LOG_M("primary_sync2.m","psync2",primary_synch2_time,frame_parms->ofdm_symbol_size,1,1);
-#endif
+LOG_M_END
   return (1);
 }
 
@@ -330,10 +330,6 @@ static inline int abs32(int x)
   return (((int)((short*)&x)[0])*((int)((short*)&x)[0]) + ((int)((short*)&x)[1])*((int)((short*)&x)[1]));
 }
 
-#ifdef DEBUG_PHY
-int debug_cnt=0;
-#endif
-
 #define SHIFT 17
 
 int lte_sync_time(int **rxdata, ///rx data in time domain
@@ -464,7 +460,8 @@ int lte_sync_time(int **rxdata, ///rx data in time domain
   LOG_I(PHY,"[UE] lte_sync_time: Sync source = %d, Peak found at pos %d, val = %d (%d dB)\n",sync_source,peak_pos,peak_val,dB_fixed(peak_val)/2);
 
 
-#ifdef DEBUG_PHY
+LOG_M_BEGIN(DEBUG_LTEESTIM)
+static int debug_cnt;
   if (debug_cnt == 0) {
     LOG_M("sync_corr0_ue.m","synccorr0",sync_corr_ue0,2*length,1,2);
     LOG_M("sync_corr1_ue.m","synccorr1",sync_corr_ue1,2*length,1,2);
@@ -474,9 +471,7 @@ int lte_sync_time(int **rxdata, ///rx data in time domain
   } else {
     debug_cnt++;
   }
-
-
-#endif
+LOG_M_END
 
 
   return(peak_pos);
diff --git a/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c b/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c
index e8225aa1fd2b9299875cb17e2287c56ab2b08903..de48a855df6b5814b569cc3d5fcc15f24e28e434 100644
--- a/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c
+++ b/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c
@@ -81,7 +81,7 @@ void lte_sync_timefreq(PHY_VARS_UE *ue,int band,unsigned int DL_freq)
 
       //compute frequency-domain representation of 6144-sample chunk
       dft6144((int16_t *)rxp,
-              sp);
+              sp,1);
 
 
       /*
diff --git a/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c b/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
index 48441765b4b7bbb807b8dcdf7cdb2487952fe026..e5b28ff2e3caebafc87d0003ab1cebf3cc8cc28c 100644
--- a/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
+++ b/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
@@ -23,9 +23,8 @@
 #include "PHY/phy_extern.h"
 #include "PHY/sse_intrin.h"
 //#define DEBUG_CH
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "PHY/LTE_TRANSPORT/transport_common_proto.h"
-#include "T.h"
 #include "lte_estimation.h"
 
 // round(exp(sqrt(-1)*(pi/2)*[0:1:N-1]/N)*pow2(15))
diff --git a/openair1/PHY/LTE_TRANSPORT/dci.c b/openair1/PHY/LTE_TRANSPORT/dci.c
index 2a59407be363f721d6f14a6253f0e3fec66486ff..1c015b1c84452beb7f0f9d0f3c3b0ec2fe43d51b 100755
--- a/openair1/PHY/LTE_TRANSPORT/dci.c
+++ b/openair1/PHY/LTE_TRANSPORT/dci.c
@@ -41,8 +41,8 @@
 #include "transport_common_proto.h"
 #include "assertions.h"
 #include "T.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "PHY/LTE_TRANSPORT/transport_extern.h"
 #include "PHY/LTE_REFSIG/lte_refsig.h"
 
diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c b/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
index 0a5500f3b2aba7acf003ec99689436dcad26fba8..a766bb82023df5caddfea8982a68a5812c8cca20 100644
--- a/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
+++ b/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
@@ -38,8 +38,8 @@
 #include "PHY/LTE_TRANSPORT/transport_eNB.h"
 #include "PHY/LTE_TRANSPORT/transport_proto.h"
 #include "SCHED/sched_eNB.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
 #include <syscall.h>
 #include "targets/RT/USER/rt_wrapper.h"
 
@@ -511,16 +511,15 @@ int dlsch_encoding_2threads(PHY_VARS_eNB *eNB,
       proc->tep[i].total_worker      = worker_num;
       proc->tep[i].current_worker    = i;
       if (pthread_cond_signal(&proc->tep[i].cond_te) != 0) {
-      printf("[eNB] ERROR pthread_cond_signal for te thread exit\n");
-      exit_fun( "ERROR pthread_cond_signal" );
-      return (-1);
+        printf("[eNB] ERROR pthread_cond_signal for te thread exit\n");
+        exit_fun( "ERROR pthread_cond_signal" );
+        return (-1);
       }
     }
   }
 
   // Fill in the "e"-sequence from 36-212, V8.6 2009-03, p. 16-17 (for each "e") and concatenate the
   // outputs for each code segment, see Section 5.1.5 p.20
-
   for (r=0,r_offset=0; r<dlsch->harq_processes[harq_pid]->C; r++) {
 
     // get information for E for the segments that are handled by the worker thread
diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c b/openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
index 5bf6f073d86180cc41a5acdf6d025aa194c16c79..6f1913ff916842402619bb8d22c9995cc5ebf609 100644
--- a/openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
+++ b/openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
@@ -35,11 +35,11 @@
 #include "PHY/CODING/coding_extern.h"
 #include "PHY/CODING/lte_interleaver_inline.h"
 #include "PHY/LTE_TRANSPORT/transport_eNB.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "PHY/LTE_TRANSPORT/transport_proto.h"
 #include "PHY/LTE_TRANSPORT/transport_common_proto.h"
 //#define DEBUG_DLSCH_MODULATION
-#define NEW_ALLOC_RE
+//#define NEW_ALLOC_RE
 
 //#define is_not_pilot(pilots,re,nushift,use2ndpilots) ((pilots==0) || ((re!=nushift) && (re!=nushift+6)&&((re!=nushift+3)||(use2ndpilots==1))&&((re!=nushift+9)||(use2ndpilots==1)))?1:0)
 
@@ -706,6 +706,7 @@ int allocate_REs_in_RB(PHY_VARS_eNB* phy_vars_eNB,
                        int *P2_SHIFT)
 {
 
+
   uint8_t *x0 = NULL;
   MIMO_mode_t mimo_mode = -1;
 
@@ -2099,10 +2100,33 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
   uint8_t mod_order0 = 0;
   uint8_t mod_order1 = 0;
   int16_t amp_rho_a, amp_rho_b;
-  int16_t qam16_table_a0[4],qam64_table_a0[8],qam16_table_b0[4],qam64_table_b0[8];//qpsk_table_a0[2],qpsk_table_b0[2]
-  int16_t qam16_table_a1[4],qam64_table_a1[8],qam16_table_b1[4],qam64_table_b1[8];//qpsk_table_a1[2],qpsk_table_b1[2]
+  int16_t qam16_table_a0[4],qam64_table_a0[8],qam16_table_b0[4],qam64_table_b0[8],qpsk_table_a0[2],qpsk_table_b0[2];
+  int16_t qam16_table_a1[4],qam64_table_a1[8],qam16_table_b1[4],qam64_table_b1[8],qpsk_table_a1[2],qpsk_table_b1[2];
 
   int16_t *qam_table_s0=NULL,*qam_table_s1=NULL;
+  int (*allocate_REs)(PHY_VARS_eNB*,
+                      int **,
+                      uint32_t*,
+                      uint32_t*,
+                      uint16_t,
+                      uint32_t,
+                      LTE_DL_eNB_HARQ_t *,
+                      LTE_DL_eNB_HARQ_t *,
+                      uint8_t,
+                      int16_t,
+                      uint8_t,
+                      int16_t *,
+                      int16_t *,
+                      uint32_t *,
+                      uint8_t,
+                      uint8_t,
+                      uint8_t,
+                      uint8_t,
+                      uint8_t,
+                      int *,
+                      int *);
+
+
 
   int P1_SHIFT[13],P2_SHIFT[13];
   int offset,nushiftmod3;
@@ -2201,7 +2225,7 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
   amp_rho_b = (int16_t)(((int32_t)amp*dlsch1->sqrt_rho_b)>>13);
   }
 
-  /*if(mod_order0 == 2)
+  if(mod_order0 == 2)
   {
     for(i=0;i<2;i++)
     {
@@ -2209,7 +2233,7 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
       qpsk_table_b0[i] = (int16_t)(((int32_t)qpsk_table[i]*amp_rho_b)>>15);
     }
   }
-  else*/ if (mod_order0 == 4)
+  else if (mod_order0 == 4)
     for (i=0;i<4; i++) {
       qam16_table_a0[i] = (int16_t)(((int32_t)qam16_table[i]*amp_rho_a)>>15);
       qam16_table_b0[i] = (int16_t)(((int32_t)qam16_table[i]*amp_rho_b)>>15);
@@ -2220,14 +2244,14 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
       qam64_table_b0[i] = (int16_t)(((int32_t)qam64_table[i]*amp_rho_b)>>15);
     }
 
-  /*if (mod_order1 == 2)
+  if (mod_order1 == 2)
   {
     for (i=0; i<2; i++) {
       qpsk_table_a1[i] = (int16_t)(((int32_t)qpsk_table[i]*amp_rho_a)>>15);
       qpsk_table_b1[i] = (int16_t)(((int32_t)qpsk_table[i]*amp_rho_b)>>15);
     }
   }
-  else*/ if (mod_order1 == 4)
+  else if (mod_order1 == 4)
     for (i=0; i<4; i++) {
       qam16_table_a1[i] = (int16_t)(((int32_t)qam16_table[i]*amp_rho_a)>>15);
       qam16_table_b1[i] = (int16_t)(((int32_t)qam16_table[i]*amp_rho_b)>>15);
@@ -2348,24 +2372,36 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
 
     re_offset = frame_parms->first_carrier_offset;
     symbol_offset = (uint32_t)frame_parms->ofdm_symbol_size*(l+(subframe_offset*nsymb));
+    allocate_REs = allocate_REs_in_RB;
 
     switch (mod_order0) {
     case 2:
       qam_table_s0 = NULL;
-      /*if (pilots) {
+      if (pilots) {
         qam_table_s0 = qpsk_table_b0;
+        allocate_REs = (dlsch0->harq_processes[harq_pid]->mimo_mode == SISO) ?
+          allocate_REs_in_RB_pilots_QPSK_siso :
+          allocate_REs_in_RB;
       }
       else {
         qam_table_s0 = qpsk_table_a0;
-
-      }*/
+        allocate_REs = (dlsch0->harq_processes[harq_pid]->mimo_mode == SISO) ?
+          allocate_REs_in_RB_no_pilots_QPSK_siso :
+          allocate_REs_in_RB;
+      }
       break;
     case 4:
       if (pilots) {
         qam_table_s0 = qam16_table_b0;
+        allocate_REs = (dlsch0->harq_processes[harq_pid]->mimo_mode == SISO) ?
+          allocate_REs_in_RB_pilots_16QAM_siso :
+          allocate_REs_in_RB;
       }
       else {
         qam_table_s0 = qam16_table_a0;
+        allocate_REs = (dlsch0->harq_processes[harq_pid]->mimo_mode == SISO) ?
+          allocate_REs_in_RB_no_pilots_16QAM_siso :
+          allocate_REs_in_RB;
 
       }
       break;
@@ -2373,23 +2409,41 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
     case 6:
       if (pilots) {
         qam_table_s0 = qam64_table_b0;
+        allocate_REs = (dlsch0->harq_processes[harq_pid]->mimo_mode == SISO) ?
+          allocate_REs_in_RB_pilots_64QAM_siso :
+          allocate_REs_in_RB;
       }
       else {
         qam_table_s0 = qam64_table_a0;
+        allocate_REs = (dlsch0->harq_processes[harq_pid]->mimo_mode == SISO) ?
+          allocate_REs_in_RB_no_pilots_64QAM_siso :
+          allocate_REs_in_RB;
       }
+      /* TODO: this is a quick hack to be removed. There is a problem
+       * with above code that needs to be analyzed and fixed. In the
+       * meantime, let's use the generic function.
+       */
+      allocate_REs = allocate_REs_in_RB;
       break;
 
     }
 
+    /* TODO: hack, to be removed. The power is too different from
+     * previous version. Some more work/validation is needed before
+     * we switch to the new version.
+     */
+    allocate_REs = allocate_REs_in_RB;
+
     switch (mod_order1) {
     case 2:
       qam_table_s1 = NULL;
-      /*if (pilots) {
+      allocate_REs = allocate_REs_in_RB;
+      if (pilots) {
         qam_table_s1 = qpsk_table_b1;
       }
       else {
         qam_table_s1 = qpsk_table_a1;
-      }*/
+      }
       break;
     case 4:
       if (pilots) {
@@ -2465,7 +2519,7 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
                                rb);
 
 
-      allocate_REs_in_RB(phy_vars_eNB,
+      allocate_REs(phy_vars_eNB,
                          txdataF,
                          &jj,
                          &jj2,
diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c b/openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c
index f582021fca3ce930c6bd5f5ee5f9591923f1a982..9aacdd079d7d005ed1c8016a6d48aea705e3787b 100644
--- a/openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c
+++ b/openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c
@@ -39,7 +39,7 @@
 #include "PHY/CODING/lte_interleaver_inline.h"
 #include "transport_eNB.h"
 #include "PHY/phy_extern.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
 void dlsch_scrambling(LTE_DL_FRAME_PARMS *frame_parms,
                       int mbsfn_flag,
diff --git a/openair1/PHY/LTE_TRANSPORT/edci.c b/openair1/PHY/LTE_TRANSPORT/edci.c
index ca60fd40618b7c2b6f7b5458883c3f6b34d717dc..fc82fd01375827bba653561691067b027a675ee6 100755
--- a/openair1/PHY/LTE_TRANSPORT/edci.c
+++ b/openair1/PHY/LTE_TRANSPORT/edci.c
@@ -40,8 +40,7 @@
 #include "transport_proto.h"
 #include "transport_common_proto.h"
 #include "assertions.h" 
-#include "T.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "PHY/LTE_REFSIG/lte_refsig.h"
 
 //#define DEBUG_DCI_ENCODING 1
diff --git a/openair1/PHY/LTE_TRANSPORT/if4_tools.c b/openair1/PHY/LTE_TRANSPORT/if4_tools.c
index 986f97c23f930141208bb2e56b5b279bd241647c..8a56105f673e6da2ff0968ddec819781a6572190 100644
--- a/openair1/PHY/LTE_TRANSPORT/if4_tools.c
+++ b/openair1/PHY/LTE_TRANSPORT/if4_tools.c
@@ -37,7 +37,7 @@
 
 //#include "targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h"
 #include "targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
 const uint8_t lin2alaw_if4p5[65536] = {213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85}; const uint16_t alaw2lin_if4p5[256] = {60032, 60288, 59520, 59776, 61056, 61312, 60544, 60800, 57984, 58240, 57472, 57728, 59008, 59264, 58496, 58752, 62784, 62912, 62528, 62656, 63296, 63424, 63040, 63168, 61760, 61888, 61504, 61632, 62272, 62400, 62016, 62144, 43520, 44544, 41472, 42496, 47616, 48640, 45568, 46592, 35328, 36352, 33280, 34304, 39424, 40448, 37376, 38400, 54528, 55040, 53504, 54016, 56576, 57088, 55552, 56064, 50432, 50944, 49408, 49920, 52480, 52992, 51456, 51968, 65192, 65208, 65160, 65176, 65256, 65272, 65224, 65240, 65064, 65080, 65032, 65048, 65128, 65144, 65096, 65112, 65448, 65464, 65416, 65432, 65512, 65528, 65480, 65496, 65320, 65336, 65288, 65304, 65384, 65400, 65352, 65368, 64160, 64224, 64032, 64096, 64416, 64480, 64288, 64352, 63648, 63712, 63520, 63584, 63904, 63968, 63776, 63840, 64848, 64880, 64784, 64816, 64976, 65008, 64912, 64944, 64592, 64624, 64528, 64560, 64720, 64752, 64656, 64688, 5504, 5248, 6016, 5760, 4480, 4224, 4992, 4736, 7552, 7296, 8064, 7808, 6528, 6272, 7040, 6784, 2752, 2624, 3008, 2880, 2240, 2112, 2496, 2368, 3776, 3648, 4032, 3904, 3264, 3136, 3520, 3392, 22016, 20992, 24064, 23040, 17920, 16896, 19968, 18944, 30208, 29184, 32256, 31232, 26112, 25088, 28160, 27136, 11008, 10496, 12032, 11520, 8960, 8448, 9984, 9472, 15104, 14592, 16128, 15616, 13056, 12544, 14080, 13568, 344, 328, 376, 360, 280, 264, 312, 296, 472, 456, 504, 488, 408, 392, 440, 424, 88, 72, 120, 104, 24, 8, 56, 40, 216, 200, 248, 232, 152, 136, 184, 168, 1376, 1312, 1504, 1440, 1120, 1056, 1248, 1184, 1888, 1824, 2016, 1952, 1632, 1568, 1760, 1696, 688, 656, 752, 720, 560, 528, 624, 592, 944, 912, 1008, 976, 816, 784, 880, 848}; 
 
diff --git a/openair1/PHY/LTE_TRANSPORT/if5_tools.c b/openair1/PHY/LTE_TRANSPORT/if5_tools.c
index 0ad138120592a732b9bca09e9df8a21451a57e38..9f4ab3a580ad3542812d0fd989decaea6f89c4d2 100644
--- a/openair1/PHY/LTE_TRANSPORT/if5_tools.c
+++ b/openair1/PHY/LTE_TRANSPORT/if5_tools.c
@@ -37,7 +37,7 @@
 
 //#include "targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h"
 #include "targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 //#define DEBUG_DL_MOBIPASS
 //#define DEBUG_UL_MOBIPASS
 #define SUBFRAME_SKIP_NUM_MOBIPASS 8
diff --git a/openair1/PHY/LTE_TRANSPORT/phich.c b/openair1/PHY/LTE_TRANSPORT/phich.c
index 2e8a6e410c3a9804d109fb0c72b22f8a610e9df4..cc466ce3e2a026632963cfb07bf9704a35dd2db6 100644
--- a/openair1/PHY/LTE_TRANSPORT/phich.c
+++ b/openair1/PHY/LTE_TRANSPORT/phich.c
@@ -712,12 +712,10 @@ void generate_phich_top(PHY_VARS_eNB *eNB,
 
   LTE_DL_FRAME_PARMS *frame_parms=&eNB->frame_parms;
   int32_t **txdataF = eNB->common_vars.txdataF;
-  uint8_t harq_pid;
   uint8_t Ngroup_PHICH,ngroup_PHICH,nseq_PHICH;
   uint8_t NSF_PHICH = 4;
   uint8_t pusch_subframe;
   uint8_t i;
-  uint32_t pusch_frame;
   int subframe = proc->subframe_tx;
   phich_config_t *phich;
 
@@ -732,9 +730,7 @@ void generate_phich_top(PHY_VARS_eNB *eNB,
     NSF_PHICH = 2;
 
   if (eNB->phich_vars[subframe&1].num_hi > 0) {
-    pusch_frame = phich_frame2_pusch_frame(frame_parms,proc->frame_tx,subframe);
     pusch_subframe = phich_subframe2_pusch_subframe(frame_parms,subframe);
-    harq_pid = subframe2harq_pid(frame_parms,pusch_frame,pusch_subframe);
   }
 
   for (i=0; i<eNB->phich_vars[subframe&1].num_hi; i++) {
@@ -753,13 +749,15 @@ void generate_phich_top(PHY_VARS_eNB *eNB,
     nseq_PHICH = ((phich->first_rb/Ngroup_PHICH) +
 		  phich->n_DMRS)%(2*NSF_PHICH);
     LOG_D(PHY,"[eNB %d][PUSCH %d] Frame %d subframe %d Generating PHICH, AMP %d  ngroup_PHICH %d/%d, nseq_PHICH %d : HI %d, first_rb %d)\n",
-	  eNB->Mod_id,harq_pid,proc->frame_tx,
+	  eNB->Mod_id,subframe2harq_pid(frame_parms,
+          phich_frame2_pusch_frame(frame_parms,proc->frame_tx,subframe),pusch_subframe),proc->frame_tx,
 	  subframe,amp,ngroup_PHICH,Ngroup_PHICH,nseq_PHICH,
 	  phich->hi,
 	  phich->first_rb);
     
     T(T_ENB_PHY_PHICH, T_INT(eNB->Mod_id), T_INT(proc->frame_tx), T_INT(subframe),
-      T_INT(-1 /* TODO: rnti */), T_INT(harq_pid),
+      T_INT(-1 /* TODO: rnti */), 
+      T_INT(subframe2harq_pid(frame_parms,phich_frame2_pusch_frame(frame_parms,proc->frame_tx,subframe),pusch_subframe)),
       T_INT(Ngroup_PHICH), T_INT(NSF_PHICH),
       T_INT(ngroup_PHICH), T_INT(nseq_PHICH),
       T_INT(phich->hi),
diff --git a/openair1/PHY/LTE_TRANSPORT/prach.c b/openair1/PHY/LTE_TRANSPORT/prach.c
index 5614f67955a813a7db35a0785b0a637a4853f782..db6f04f788e6f8583da135661f24ac78d13cb463 100644
--- a/openair1/PHY/LTE_TRANSPORT/prach.c
+++ b/openair1/PHY/LTE_TRANSPORT/prach.c
@@ -35,14 +35,9 @@
 //#include "prach.h"
 #include "PHY/LTE_TRANSPORT/if4_tools.h"
 #include "SCHED/sched_eNB.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "prach_extern.h"
 
-//#define PRACH_DEBUG 1
-//#define PRACH_WRITE_OUTPUT_DEBUG 1
-
-
-
 #if (RRC_VERSION < MAKE_VERSION(14, 0, 0))
 #define rx_prach0 rx_prach
 #endif
@@ -70,10 +65,6 @@ void rx_prach0(PHY_VARS_eNB *eNB,
   uint8_t            Ncs_config;          
   uint8_t            restricted_set;      
   uint8_t            n_ra_prb;
-
-#ifdef PRACH_DEBUG
-  int                frame;
-#endif
   int                subframe;
   int16_t            *prachF=NULL;
   int16_t            **rxsigF=NULL;
@@ -92,7 +83,7 @@ void rx_prach0(PHY_VARS_eNB *eNB,
   uint8_t not_found;
   int k=0;
   uint16_t u;
-  int16_t *Xu;
+  int16_t *Xu=0;
   uint16_t offset;
   int16_t Ncp;
   uint16_t first_nonzero_root_idx=0;
@@ -107,10 +98,7 @@ void rx_prach0(PHY_VARS_eNB *eNB,
 #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
   int prach_ifft_cnt=0;
 #endif
-#ifdef PRACH_DEBUG
-  int en=0;
-  int en0=0;
-#endif
+
 
   if (ru) { 
     fp    = &ru->frame_parms;
@@ -162,61 +150,49 @@ void rx_prach0(PHY_VARS_eNB *eNB,
 #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
     if (br_flag == 1) {
       prach_ifftp         = eNB->prach_vars_br.prach_ifft[ce_level];
-#ifdef PRACH_DEBUG
-      frame               = eNB->proc.frame_prach_br;
-#endif
       subframe            = eNB->proc.subframe_prach_br;
       prachF              = eNB->prach_vars_br.prachF;
       rxsigF              = eNB->prach_vars_br.rxsigF[ce_level];
-#ifdef PRACH_DEBUG
-      if ((frame&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d, rootSequenceIndex %d, repetition number %d,numRepetitionsPrePreambleAttempt %d\n",
-				   br_flag,ce_level,frame,subframe,
+LOG_DEBUG_BEGIN(PRACH)
+      if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d, rootSequenceIndex %d, repetition number %d,numRepetitionsPrePreambleAttempt %d\n",
+				   br_flag,ce_level,ru->proc.frame_prach,subframe,
 				   fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level],
 				   prach_ConfigIndex,rootSequenceIndex,
 				   eNB->prach_vars_br.repetition_number[ce_level],
 				   fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level]);
-#endif
+LOG_DEBUG_END
     }
     else
 #endif
       {
         prach_ifftp       = eNB->prach_vars.prach_ifft[0];
-#ifdef PRACH_DEBUG
-        frame             = eNB->proc.frame_prach;
-#endif
         subframe          = eNB->proc.subframe_prach;
         prachF            = eNB->prach_vars.prachF;
         rxsigF            = eNB->prach_vars.rxsigF[0];
-#ifdef PRACH_DEBUG
-        //if ((frame&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d , rootSequenceIndex %d\n", subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex,rootSequenceIndex);
-#endif
+LOG_DEBUG_BEGIN(PRACH)
+        if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d , rootSequenceIndex %d\n", subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex,rootSequenceIndex);
+LOG_DEBUG_END
       }
   }
   else {
 #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
     if (br_flag == 1) {
-#ifdef PRACH_DEBUG
-        frame             = ru->proc.frame_prach_br;
-#endif
         subframe          = ru->proc.subframe_prach_br;
         rxsigF            = ru->prach_rxsigF_br[ce_level];
-#ifdef PRACH_DEBUG
-        if ((frame&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n",
-				     br_flag,ce_level,frame,subframe,fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level],prach_ConfigIndex);
-#endif
+LOG_DEBUG_BEGIN(PRACH)
+        if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n",
+				     br_flag,ce_level,ru->proc.frame_prach,subframe,fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level],prach_ConfigIndex);
+LOG_DEBUG_END
     }
     else
 #endif
       {
-#ifdef PRACH_DEBUG
-        frame             = ru->proc.frame_prach;
-#endif
         subframe          = ru->proc.subframe_prach;
         rxsigF            = ru->prach_rxsigF;
-#ifdef PRACH_DEBUG
-        if ((frame&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n",
+LOG_DEBUG_BEGIN(PRACH)
+        if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n",
 	      subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex);
-#endif
+LOG_DEBUG_END
       }
 
   }
@@ -227,31 +203,28 @@ void rx_prach0(PHY_VARS_eNB *eNB,
     if (ru->if_south == LOCAL_RF) { // set the time-domain signal if we have to use it in this node
       // DJP - indexing below in subframe zero takes us off the beginning of the array???
       prach[aa] = (int16_t*)&ru->common.rxdata[aa][(subframe*fp->samples_per_tti)-ru->N_TA_offset];
-#ifdef PRACH_DEBUG
-      int32_t en0=signal_energy((int32_t*)prach[aa],fp->samples_per_tti);
-      int8_t dbEn0 = dB_fixed(en0);
-      int8_t rach_dBm = dbEn0 - ru->rx_total_gain_dB;
 
-#ifdef PRACH_WRITE_OUTPUT_DEBUG
+LOG_M_BEGIN(PRACH)
+        int32_t en0=signal_energy((int32_t*)prach[aa],fp->samples_per_tti);
+        int8_t dbEn0 = dB_fixed(en0);
+        int8_t rach_dBm = dbEn0 - ru->rx_total_gain_dB;
+        char buffer[80];
         if (dbEn0>32 && prach[0]!= NULL)
         {
           static int counter=0;
-
-          char buffer[80];
-          //counter++;
           sprintf(buffer, "%s%d", "/tmp/prach_rx",counter);
           LOG_M(buffer,"prach_rx",prach[0],fp->samples_per_tti,1,13);
         }
-#endif
-
-      if (dbEn0>32)
+      if (dB_fixed(en0)>32)
       {
-#ifdef PRACH_WRITE_OUTPUT_DEBUG
+        sprintf(buffer, "rach_dBm:%d",rach_dBm);
         if (prach[0]!= NULL) LOG_M("prach_rx","prach_rx",prach[0],fp->samples_per_tti,1,1);
-#endif
-        LOG_I(PHY,"RU %d, br_flag %d ce_level %d frame %d subframe %d per_tti:%d prach:%p (energy %d) TA:%d rach_dBm:%d rxdata:%p index:%d\n",ru->idx,br_flag,ce_level,frame,subframe,fp->samples_per_tti,prach[aa],dbEn0,ru->N_TA_offset,rach_dBm,ru->common.rxdata[aa], (subframe*fp->samples_per_tti)-ru->N_TA_offset);
+        LOG_I(PHY,"RU %d, br_flag %d ce_level %d frame %d subframe %d per_tti:%d prach:%p (energy %d) TA:%d %s rxdata:%p index:%d\n",
+              ru->idx,br_flag,ce_level,ru->proc.frame_prach,subframe,fp->samples_per_tti,
+              prach[aa],dbEn0,ru->N_TA_offset,buffer,ru->common.rxdata[aa], 
+              (subframe*fp->samples_per_tti)-ru->N_TA_offset);
         }
-#endif
+LOG_M_END
     }
   }
 
@@ -333,9 +306,9 @@ void rx_prach0(PHY_VARS_eNB *eNB,
   if (((eNB!=NULL) && (ru->function != NGFI_RAU_IF4p5))||
       ((eNB==NULL) && (ru->function == NGFI_RRU_IF4p5))) { // compute the DFTs of the PRACH temporal resources
     // Do forward transform
-#ifdef PRACH_DEBUG
+LOG_DEBUG_BEGIN(PRACH)
     LOG_D(PHY,"rx_prach: Doing FFT for N_RB_UL %d nb_rx:%d Ncp:%d\n",fp->N_RB_UL, nb_rx, Ncp);
-#endif
+LOG_DEBUG_END
     for (aa=0; aa<nb_rx; aa++) {
       AssertFatal(prach[aa]!=NULL,"prach[%d] is null\n",aa);
       prach2 = prach[aa] + (Ncp<<1);
@@ -358,10 +331,10 @@ void rx_prach0(PHY_VARS_eNB *eNB,
 	if (prach_fmt == 4) {
 	  dft256(prach2,rxsigF[aa],1);
 	} else {
-	  dft3072(prach2,rxsigF[aa]);
+	  dft3072(prach2,rxsigF[aa],1);
 	  
 	  if (prach_fmt>1)
-	    dft3072(prach2+6144,rxsigF[aa]+6144);
+	    dft3072(prach2+6144,rxsigF[aa]+6144,1);
 	}
 	
 	break;
@@ -372,10 +345,10 @@ void rx_prach0(PHY_VARS_eNB *eNB,
 	  dft1024(prach2,rxsigF[aa],1);
 	  fft_size = 1024;
 	} else {
-	  dft6144(prach2,rxsigF[aa]);
+	  dft6144(prach2,rxsigF[aa],1);
 	  
 	  if (prach_fmt>1)
-	    dft6144(prach2+12288,rxsigF[aa]+12288);
+	    dft6144(prach2+12288,rxsigF[aa]+12288,1);
 	  
 	  fft_size = 6144;
 	}
@@ -386,22 +359,22 @@ void rx_prach0(PHY_VARS_eNB *eNB,
 	if (prach_fmt == 4) {
 	  dft2048(prach2,rxsigF[aa],1);
 	} else {
-	  dft12288(prach2,rxsigF[aa]);
+	  dft12288(prach2,rxsigF[aa],1);
 	  
 	  if (prach_fmt>1)
-	    dft12288(prach2+24576,rxsigF[aa]+24576);
+	    dft12288(prach2+24576,rxsigF[aa]+24576,1);
 	}
 	
 	break;
 	
       case 75:
 	if (prach_fmt == 4) {
-	  dft3072(prach2,rxsigF[aa]);
+	  dft3072(prach2,rxsigF[aa],1);
 	} else {
-	  dft18432(prach2,rxsigF[aa]);
+	  dft18432(prach2,rxsigF[aa],1);
 	  
 	  if (prach_fmt>1)
-	    dft18432(prach2+36864,rxsigF[aa]+36864);
+	    dft18432(prach2+36864,rxsigF[aa]+36864,1);
 	}
 	
 	break;
@@ -411,19 +384,19 @@ void rx_prach0(PHY_VARS_eNB *eNB,
 	  if (prach_fmt == 4) {
 	    dft4096(prach2,rxsigF[aa],1);
 	  } else {
-	    dft24576(prach2,rxsigF[aa]);
+	    dft24576(prach2,rxsigF[aa],1);
 	    
 	    if (prach_fmt>1)
-	      dft24576(prach2+49152,rxsigF[aa]+49152);
+	      dft24576(prach2+49152,rxsigF[aa]+49152,1);
 	  }
 	} else {
 	  if (prach_fmt == 4) {
-	    dft3072(prach2,rxsigF[aa]);
+	    dft3072(prach2,rxsigF[aa],1);
 	  } else {
-	    dft18432(prach2,rxsigF[aa]);
+	    dft18432(prach2,rxsigF[aa],1);
 	    
 	    if (prach_fmt>1)
-	      dft18432(prach2+36864,rxsigF[aa]+36864);
+	      dft18432(prach2+36864,rxsigF[aa]+36864,1);
 	  }
 	}
 	
@@ -466,10 +439,10 @@ void rx_prach0(PHY_VARS_eNB *eNB,
     return;
   } else if (eNB!=NULL) {
 
-#ifdef PRACH_DEBUG
-    en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
+LOG_DEBUG_BEGIN(PRACH)
+    int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
     if ((en > 60)&&(br_flag==1)) LOG_I(PHY,"PRACH (br_flag %d,ce_level %d, n_ra_prb %d, k %d): Frame %d, Subframe %d => %d dB\n",br_flag,ce_level,n_ra_prb,k,eNB->proc.frame_rx,eNB->proc.subframe_rx,en);
-#endif
+LOG_DEBUG_END
   }
   
   // in case of RAU and prach received rx_thread wakes up prach
@@ -504,9 +477,10 @@ void rx_prach0(PHY_VARS_eNB *eNB,
   *max_preamble_energy=0;
   for (preamble_index=0 ; preamble_index<64 ; preamble_index++) {
 
-#ifdef PRACH_DEBUG
-    if (en>60) LOG_I(PHY,"frame %d, subframe %d : Trying preamble %d (br_flag %d)\n",frame,subframe,preamble_index,br_flag);
-#endif
+LOG_DEBUG_BEGIN(PRACH)
+    int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
+    if (en>60) LOG_I(PHY,"frame %d, subframe %d : Trying preamble %d (br_flag %d)\n",ru->proc.frame_prach,subframe,preamble_index,br_flag);
+LOG_DEBUG_END
     if (restricted_set == 0) {
       // This is the relative offset in the root sequence table (5.7.2-4 from 36.211) for the given preamble index
       preamble_offset = ((NCS==0)? preamble_index : (preamble_index/(N_ZC/NCS)));
@@ -589,10 +563,11 @@ void rx_prach0(PHY_VARS_eNB *eNB,
     }
 
     // Compute DFT of RX signal (conjugate input, results in conjugate output) for each new rootSequenceIndex
-#ifdef PRACH_DEBUG
+LOG_DEBUG_BEGIN(PRACH)
+    int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
     if (en>60) LOG_I(PHY,"frame %d, subframe %d : preamble index %d: offset %d, preamble shift %d (br_flag %d, en %d)\n",
-		     frame,subframe,preamble_index,preamble_offset,preamble_shift,br_flag,en);
-#endif
+		     ru->proc.frame_prach,subframe,preamble_index,preamble_offset,preamble_shift,br_flag,en);
+LOG_DEBUG_END
     log2_ifft_size = 10;
     fft_size = 6144;
 
@@ -614,12 +589,12 @@ void rx_prach0(PHY_VARS_eNB *eNB,
 	}
 
       memset(prachF, 0, sizeof(int16_t)*2*1024 );
-#if defined(PRACH_WRITE_OUTPUT_DEBUG)
+LOG_M_BEGIN(PRACH)      
       if (prach[0]!= NULL) LOG_M("prach_rx0.m","prach_rx0",prach[0],6144+792,1,1);
-#endif
-      // LOG_M("prach_rx1.m","prach_rx1",prach[1],6144+792,1,1);
-      //       LOG_M("prach_rxF0.m","prach_rxF0",rxsigF[0],24576,1,1);
-      // LOG_M("prach_rxF1.m","prach_rxF1",rxsigF[1],6144,1,1);
+       LOG_M("prach_rx1.m","prach_rx1",prach[1],6144+792,1,1);
+       LOG_M("prach_rxF0.m","prach_rxF0",rxsigF[0],24576,1,1);
+       LOG_M("prach_rxF1.m","prach_rxF1",rxsigF[1],6144,1,1);
+LOG_M_END
 
       for (aa=0;aa<nb_rx; aa++) {
       // Do componentwise product with Xu* on each antenna 
@@ -647,11 +622,11 @@ void rx_prach0(PHY_VARS_eNB *eNB,
 	  for (i=0;i<256;i++)
 	    prach_ifft[i] += (prach_ifft_tmp[i<<1]*prach_ifft_tmp[(i<<1)] + prach_ifft_tmp[1+(i<<1)]*prach_ifft_tmp[1+(i<<1)])>>10;
 	}
-	
-#if defined(PRACH_WRITE_OUTPUT_DEBUG)
+
+LOG_M_BEGIN(PRACH)	
 	if (aa==0) LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1);
-#endif
-      // if (aa=1) LOG_M("prach_rxF_comp1.m","prach_rxF_comp1",prachF,1024,1,1);
+        if (aa==1) LOG_M("prach_rxF_comp1.m","prach_rxF_comp1",prachF,1024,1,1);
+LOG_M_END
       }// antennas_rx
     } // new dft
     
@@ -662,9 +637,10 @@ void rx_prach0(PHY_VARS_eNB *eNB,
 	 eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level]))
 #endif
       {
-#ifdef PRACH_DEBUG
-	if (en>60) LOG_I(PHY,"frame %d, subframe %d: Checking for peak in time-domain (br_flag %d, en %d)\n",frame,subframe,br_flag,en);
-#endif
+LOG_DEBUG_BEGIN(PRACH)
+        int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
+	if (en>60) LOG_I(PHY,"frame %d, subframe %d: Checking for peak in time-domain (br_flag %d, en %d)\n",ru->proc.frame_prach,subframe,br_flag,en);
+LOG_DEBUG_END
 	preamble_shift2 = ((preamble_shift==0) ? 0 : ((preamble_shift<<log2_ifft_size)/N_ZC));
 
     
@@ -676,17 +652,18 @@ void rx_prach0(PHY_VARS_eNB *eNB,
 	    *max_preamble_energy  = levdB;
 	    *max_preamble_delay   = ((i*fft_size)>>log2_ifft_size)*update_TA/update_TA2;
 	    *max_preamble         = preamble_index;
-#ifdef PRACH_DEBUG
-	    if ((en>60) && (br_flag==1)) LOG_D(PHY,"frame %d, subframe %d : max_preamble_energy %d, max_preamble_delay %d, max_preamble %d (br_flag %d,ce_level %d, levdB %d, lev %d)\n",frame,subframe,*max_preamble_energy,*max_preamble_delay,*max_preamble,br_flag,ce_level,levdB,lev);
-#endif
+LOG_DEBUG_BEGIN(PRACH)
+            int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
+	    if ((en>60) && (br_flag==1)) LOG_D(PHY,"frame %d, subframe %d : max_preamble_energy %d, max_preamble_delay %d, max_preamble %d (br_flag %d,ce_level %d, levdB %d, lev %d)\n",ru->proc.frame_prach,subframe,*max_preamble_energy,*max_preamble_delay,*max_preamble,br_flag,ce_level,levdB,lev);
+LOG_DEBUG_END
 	  }
 	}
 
       }
   }// preamble_index
 
-#ifdef PRACH_DEBUG
-  
+LOG_M_BEGIN(PRACH)
+  int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));  
   if (en>60) {
     k = (12*n_ra_prb) - 6*fp->N_RB_UL;
     
@@ -697,26 +674,22 @@ void rx_prach0(PHY_VARS_eNB *eNB,
     k*=2;
     
     if (br_flag == 0) {
-#if defined(PRACH_WRITE_OUTPUT_DEBUG)
 	LOG_M("rxsigF.m","prach_rxF",&rxsigF[0][0],12288,1,1);
 	LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1);
 	LOG_M("Xu.m","xu",Xu,N_ZC,1,1);
 	LOG_M("prach_ifft0.m","prach_t0",prach_ifft,1024,1,1);
-#endif
     }
     else {
-#if defined(PRACH_WRITE_OUTPUT_DEBUG)
-      printf("Dumping prach (br_flag %d), k = %d (n_ra_prb %d)\n",br_flag,k,n_ra_prb);
+      LOG_E(PHY,"Dumping prach (br_flag %d), k = %d (n_ra_prb %d)\n",br_flag,k,n_ra_prb);
       LOG_M("rxsigF_br.m","prach_rxF_br",&rxsigF[0][0],12288,1,1);
       LOG_M("prach_rxF_comp0_br.m","prach_rxF_comp0_br",prachF,1024,1,1);
       LOG_M("Xu_br.m","xu_br",Xu,N_ZC,1,1);
       LOG_M("prach_ifft0_br.m","prach_t0_br",prach_ifft,1024,1,1);
       exit(-1);      
-#endif
     }
 
   }
-#endif
+LOG_M_END
   if (eNB) stop_meas(&eNB->rx_prach);
 
 }
diff --git a/openair1/PHY/LTE_TRANSPORT/prach_common.c b/openair1/PHY/LTE_TRANSPORT/prach_common.c
index ec9c9f2477fd8297ed6128a9a9fbda18e1451f0d..475a97ca0c7bcb441976b51af49f8c2c22a98d4a 100644
--- a/openair1/PHY/LTE_TRANSPORT/prach_common.c
+++ b/openair1/PHY/LTE_TRANSPORT/prach_common.c
@@ -33,7 +33,7 @@
 #include "PHY/defs_common.h"
 #include "PHY/phy_extern.h"
 #include "PHY/phy_extern_ue.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
 
 uint16_t NCS_unrestricted[16] = {0,13,15,18,22,26,32,38,46,59,76,93,119,167,279,419};
diff --git a/openair1/PHY/LTE_TRANSPORT/pucch.c b/openair1/PHY/LTE_TRANSPORT/pucch.c
index 7a6e2c97241263966865ef5bd7dfc7448090595b..0e7ab9e9a2eb6ee78cbad07af06e2fad0dec586c 100644
--- a/openair1/PHY/LTE_TRANSPORT/pucch.c
+++ b/openair1/PHY/LTE_TRANSPORT/pucch.c
@@ -34,10 +34,9 @@
 #include "LAYER2/MAC/mac.h"
 #include "PHY/LTE_REFSIG/lte_refsig.h"
 
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
-#include "T.h"
 
 //uint8_t ncs_cell[20][7];
 //#define DEBUG_PUCCH_TXS
diff --git a/openair1/PHY/LTE_TRANSPORT/pucch_common.c b/openair1/PHY/LTE_TRANSPORT/pucch_common.c
index a9181a8b3dfe8107f42ad5b880b5eba3b5171d00..5b939b08d25ae005f9ed136ba9bd320936b3ee4e 100644
--- a/openair1/PHY/LTE_TRANSPORT/pucch_common.c
+++ b/openair1/PHY/LTE_TRANSPORT/pucch_common.c
@@ -33,11 +33,10 @@
 #include "PHY/phy_extern.h" 
 #include "LAYER2/MAC/mac.h"
 
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
 #include "PHY/LTE_REFSIG/lte_refsig.h"
 
-#include "T.h"
 
 void init_ncs_cell(LTE_DL_FRAME_PARMS *frame_parms,uint8_t ncs_cell[20][7])
 {
diff --git a/openair1/PHY/LTE_TRANSPORT/rar_tools.c b/openair1/PHY/LTE_TRANSPORT/rar_tools.c
index ab4656716bcc509cfddf46ba96582c81adcc89fd..abbb002410fc14fe73b234205d97ba7eef061aa5 100644
--- a/openair1/PHY/LTE_TRANSPORT/rar_tools.c
+++ b/openair1/PHY/LTE_TRANSPORT/rar_tools.c
@@ -33,7 +33,7 @@
 #include "PHY/phy_extern.h"
 #include "SCHED/sched_eNB.h"
 #include "LAYER2/MAC/mac.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "PHY/LTE_TRANSPORT/transport_proto.h"
 #include "assertions.h"
 
diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c b/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
index 48cc5d0063cfb4499ddb09b9ace2d5208d6e69ed..851bcfff5a88582da16401f394b45c106529b45c 100644
--- a/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
+++ b/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
@@ -40,7 +40,7 @@
 #include "RRC/LTE/rrc_extern.h"
 #include "PHY_INTERFACE/phy_interface.h"
 
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 //#define DEBUG_ULSCH_DECODING
 #include "targets/RT/USER/rt_wrapper.h"
 #include "transport_proto.h"
diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c b/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
index 1a51a56cc90f1572817d56d3ae6b22b098843324..619d84cee203f174a661b8a88377ff22e41d81c3 100644
--- a/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
+++ b/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
@@ -1350,70 +1350,70 @@ void rx_ulsch_emul(PHY_VARS_eNB *eNB,
          eNB->ulsch[UE_id]->harq_processes[harq_pid]->Nsymb_pusch);
   sprintf(fname,"/tmp/ulsch_r%d_d",round);
   sprintf(vname,"/tmp/ulsch_r%d_dseq",round);
-  LOG_M(fname,vname,&eNB->ulsch[UE_id]->harq_processes[harq_pid]->d[0][96],
+  LOG_UM(fname,vname,&eNB->ulsch[UE_id]->harq_processes[harq_pid]->d[0][96],
                eNB->ulsch[UE_id]->harq_processes[harq_pid]->Kplus*3,1,0);
   if (eNB->common_vars.rxdata) {
     sprintf(fname,"/tmp/rxsig0_r%d.m",round);
     sprintf(vname,"rxs0_r%d",round);
-    LOG_M(fname,vname, &eNB->common_vars.rxdata[0][0],eNB->frame_parms.samples_per_tti*10,1,1);
+    LOG_UM(fname,vname, &eNB->common_vars.rxdata[0][0],eNB->frame_parms.samples_per_tti*10,1,1);
   
     if (eNB->frame_parms.nb_antennas_rx>1)
       if (eNB->common_vars.rxdata) {
 	sprintf(fname,"/tmp/rxsig1_r%d.m",round);
 	sprintf(vname,"rxs1_r%d",round);
-	LOG_M(fname,vname, &eNB->common_vars.rxdata[1][0],eNB->frame_parms.samples_per_tti*10,1,1);
+	LOG_UM(fname,vname, &eNB->common_vars.rxdata[1][0],eNB->frame_parms.samples_per_tti*10,1,1);
       }
   }
 
   sprintf(fname,"/tmp/rxsigF0_r%d.m",round);
   sprintf(vname,"rxsF0_r%d",round);
-  LOG_M(fname,vname, (void*)&eNB->common_vars.rxdataF[0][0],eNB->frame_parms.ofdm_symbol_size*nsymb,1,1);
+  LOG_UM(fname,vname, (void*)&eNB->common_vars.rxdataF[0][0],eNB->frame_parms.ofdm_symbol_size*nsymb,1,1);
 
   if (eNB->frame_parms.nb_antennas_rx>1) {
     sprintf(fname,"/tmp/rxsigF1_r%d.m",round);
     sprintf(vname,"rxsF1_r%d",round);
-    LOG_M(vname,fname, &eNB->common_vars.rxdataF[1][0],eNB->frame_parms.ofdm_symbol_size*nsymb,1,1);
+    LOG_UM(vname,fname, &eNB->common_vars.rxdataF[1][0],eNB->frame_parms.ofdm_symbol_size*nsymb,1,1);
   }
 
   sprintf(fname,"/tmp/rxsigF0_ext_r%d.m",round);
   sprintf(vname,"rxsF0_ext_r%d",round);
-  LOG_M(fname,vname, &eNB->pusch_vars[UE_id]->rxdataF_ext[0][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
+  LOG_UM(fname,vname, &eNB->pusch_vars[UE_id]->rxdataF_ext[0][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
 
   if (eNB->frame_parms.nb_antennas_rx>1) {
     sprintf(fname,"/tmp/rxsigF1_ext_r%d.m",round);
     sprintf(vname,"rxsF1_ext_r%d",round);
-    LOG_M(fname,vname,&eNB->pusch_vars[UE_id]->rxdataF_ext[1][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
+    LOG_UM(fname,vname,&eNB->pusch_vars[UE_id]->rxdataF_ext[1][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
   }
   /*
-  if (eNB->srs_vars[UE_id].srs_ch_estimates) LOG_M("/tmp/srs_est0.m","srsest0",eNB->srs_vars[UE_id].srs_ch_estimates[0],eNB->frame_parms.ofdm_symbol_size,1,1);
+  if (eNB->srs_vars[UE_id].srs_ch_estimates) LOG_UM("/tmp/srs_est0.m","srsest0",eNB->srs_vars[UE_id].srs_ch_estimates[0],eNB->frame_parms.ofdm_symbol_size,1,1);
 
   if (eNB->frame_parms.nb_antennas_rx>1)
-    if (eNB->srs_vars[UE_id].srs_ch_estimates) LOG_M("/tmp/srs_est1.m","srsest1",eNB->srs_vars[UE_id].srs_ch_estimates[1],eNB->frame_parms.ofdm_symbol_size,1,1);
+    if (eNB->srs_vars[UE_id].srs_ch_estimates) LOG_UM("/tmp/srs_est1.m","srsest1",eNB->srs_vars[UE_id].srs_ch_estimates[1],eNB->frame_parms.ofdm_symbol_size,1,1);
   */
 
   sprintf(fname,"/tmp/drs_est0_r%d.m",round);
   sprintf(vname,"drsest0_r%d",round);
-  LOG_M(fname,vname,eNB->pusch_vars[UE_id]->drs_ch_estimates[0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
+  LOG_UM(fname,vname,eNB->pusch_vars[UE_id]->drs_ch_estimates[0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
 
   if (eNB->frame_parms.nb_antennas_rx>1) {
     sprintf(fname,"/tmp/drs_est1_r%d.m",round);
     sprintf(vname,"drsest1_r%d",round);
-    LOG_M(fname,vname,eNB->pusch_vars[UE_id]->drs_ch_estimates[1],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
+    LOG_UM(fname,vname,eNB->pusch_vars[UE_id]->drs_ch_estimates[1],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
   }
 
   sprintf(fname,"/tmp/ulsch0_rxF_comp0_r%d.m",round);
   sprintf(vname,"ulsch0_rxF_comp0_r%d",round);
-  LOG_M(fname,vname,&eNB->pusch_vars[UE_id]->rxdataF_comp[0][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
+  LOG_UM(fname,vname,&eNB->pusch_vars[UE_id]->rxdataF_comp[0][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
   //  LOG_M("ulsch_rxF_comp1.m","ulsch0_rxF_comp1",&eNB->pusch_vars[UE_id]->rxdataF_comp[0][1][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
   sprintf(fname,"/tmp/ulsch_rxF_llr_r%d.m",round);
   sprintf(vname,"ulsch_llr_r%d",round);
-  LOG_M(fname,vname,eNB->pusch_vars[UE_id]->llr,
+  LOG_UM(fname,vname,eNB->pusch_vars[UE_id]->llr,
                eNB->ulsch[UE_id]->harq_processes[harq_pid]->nb_rb*12*eNB->ulsch[UE_id]->harq_processes[harq_pid]->Qm
                *eNB->ulsch[UE_id]->harq_processes[harq_pid]->Nsymb_pusch,1,0);
   sprintf(fname,"/tmp/ulsch_ch_mag_r%d.m",round);
   sprintf(vname,"ulsch_ch_mag_r%d",round);
-  LOG_M(fname,vname,&eNB->pusch_vars[UE_id]->ul_ch_mag[0][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
-  //  LOG_M("ulsch_ch_mag1.m","ulsch_ch_mag1",&eNB->pusch_vars[UE_id]->ul_ch_mag[1][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
+  LOG_UM(fname,vname,&eNB->pusch_vars[UE_id]->ul_ch_mag[0][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
+  //  LOG_UM("ulsch_ch_mag1.m","ulsch_ch_mag1",&eNB->pusch_vars[UE_id]->ul_ch_mag[1][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
   //#endif
 }
 
diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dci_tools_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/dci_tools_ue.c
index 61228e52c42ec46d88a3a49f58f7a9484e31fe2e..b9fbcad9c9349cbec14cd23f4c75e4ddbab6b6e4 100644
--- a/openair1/PHY/LTE_UE_TRANSPORT/dci_tools_ue.c
+++ b/openair1/PHY/LTE_UE_TRANSPORT/dci_tools_ue.c
@@ -3128,7 +3128,7 @@ void fill_CQI(LTE_UE_ULSCH_t *ulsch,PHY_MEASUREMENTS *meas,uint8_t eNB_id,uint8_
       // this is the cba mcs uci for cba transmission
       ((HLC_subband_cqi_mcs_CBA_5MHz *)o)->mcs     = ulsch->harq_processes[harq_pid]->mcs;
       ((HLC_subband_cqi_mcs_CBA_5MHz *)o)->crnti  = rnti;
-      LOG_N(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs);
+      LOG_I(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs);
       break;
 
     case ue_selected:
@@ -3182,7 +3182,7 @@ void fill_CQI(LTE_UE_ULSCH_t *ulsch,PHY_MEASUREMENTS *meas,uint8_t eNB_id,uint8_
       // this is the cba mcs uci for cba transmission
       ((HLC_subband_cqi_mcs_CBA_10MHz *)o)->mcs     = ulsch->harq_processes[harq_pid]->mcs;
       ((HLC_subband_cqi_mcs_CBA_10MHz *)o)->crnti  = rnti;
-      LOG_N(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs);
+      LOG_I(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs);
       break;
 
     case ue_selected:
@@ -3236,7 +3236,7 @@ void fill_CQI(LTE_UE_ULSCH_t *ulsch,PHY_MEASUREMENTS *meas,uint8_t eNB_id,uint8_
       // this is the cba mcs uci for cba transmission
       ((HLC_subband_cqi_mcs_CBA_20MHz *)o)->mcs     = ulsch->harq_processes[harq_pid]->mcs;
       ((HLC_subband_cqi_mcs_CBA_20MHz *)o)->crnti  = rnti;
-      LOG_N(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs);
+      LOG_I(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs);
       break;
 
     case ue_selected:
diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dci_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/dci_ue.c
index d783f8dce81a99c485cc944b5f23cac032136a18..4a2c8481cb9e5ae903fcc18f44f022911a8ec84a 100755
--- a/openair1/PHY/LTE_UE_TRANSPORT/dci_ue.c
+++ b/openair1/PHY/LTE_UE_TRANSPORT/dci_ue.c
@@ -43,9 +43,8 @@
 #include "SCHED/sched_common.h"
 
 #include "assertions.h"
-#include "T.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
 //#define DEBUG_DCI_ENCODING 1
 //#define DEBUG_DCI_DECODING 1
diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_decoding.c b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_decoding.c
index dc9534b1fdd0d0812dd8fba71494e94290158973..afbd19329d32a36a1666b4d8091616dc3cfd2142 100644
--- a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_decoding.c
+++ b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_decoding.c
@@ -35,7 +35,7 @@
 #include "PHY/CODING/coding_extern.h"
 #include "SCHED/sched_common_extern.h"
 #include "SIMULATION/TOOLS/sim.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "PHY/LTE_UE_TRANSPORT/transport_proto_ue.h"
 //#define DEBUG_DLSCH_DECODING
 #define UE_DEBUG_TRACE 1
diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c
index 760d44719e3f02512095e5a0d4e38b810a3bd9b2..50b09102d88857b2b1a2cabf439e2e81a28f2d70 100644
--- a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c
+++ b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c
@@ -1320,14 +1320,17 @@ void dlsch_channel_compensation(int **rxdataF_ext,
     }
 
     for (aarx=0; aarx<frame_parms->nb_antennas_rx; aarx++) {
-
-      dl_ch128          = (__m128i *)&dl_ch_estimates_ext[aatx*2 + aarx][symbol*frame_parms->N_RB_DL*12];
+      /* TODO: hack to be removed. There is crash for 1 antenna case, so
+       * for 1 antenna case, I put back the value 2 as it was before
+       * Elena's commit.
+       */
+      int x = frame_parms->nb_antennas_rx > 1 ? frame_parms->nb_antennas_rx : 2;
+      dl_ch128          = (__m128i *)&dl_ch_estimates_ext[aatx*x + aarx][symbol*frame_parms->N_RB_DL*12];
       //print_shorts("dl_ch128[0]=",&dl_ch128[0]);*/
-      dl_ch_mag128      = (__m128i *)&dl_ch_mag[aatx*2 + aarx][symbol*frame_parms->N_RB_DL*12];
-      dl_ch_mag128b     = (__m128i *)&dl_ch_magb[aatx*2 + aarx][symbol*frame_parms->N_RB_DL*12];
+      dl_ch_mag128      = (__m128i *)&dl_ch_mag[aatx*x + aarx][symbol*frame_parms->N_RB_DL*12];
+      dl_ch_mag128b     = (__m128i *)&dl_ch_magb[aatx*x + aarx][symbol*frame_parms->N_RB_DL*12];
       rxdataF128        = (__m128i *)&rxdataF_ext[aarx][symbol*frame_parms->N_RB_DL*12];
-      rxdataF_comp128   = (__m128i *)&rxdataF_comp[aatx*2 + aarx][symbol*frame_parms->N_RB_DL*12];
-
+      rxdataF_comp128   = (__m128i *)&rxdataF_comp[aatx*x + aarx][symbol*frame_parms->N_RB_DL*12];
 
       for (rb=0; rb<nb_rb; rb++) {
         if (mod_order>2) {
@@ -1777,12 +1780,17 @@ void dlsch_channel_compensation_core(int **rxdataF_ext,
     }
 
     for (aarx=0; aarx<n_rx; aarx++) {
-
-    dl_ch128          = (__m128i *)&dl_ch_estimates_ext[aatx*2 + aarx][start_point];
-    dl_ch_mag128      = (__m128i *)&dl_ch_mag[aatx*2 + aarx][start_point];
-    dl_ch_mag128b     = (__m128i *)&dl_ch_magb[aatx*2 + aarx][start_point];
+      /* TODO: hack to be removed. There is crash for 1 antenna case, so
+       * for 1 antenna case, I put back the value 2 as it was before
+       * Elena's commit.
+       */
+      int x = n_rx > 1 ? n_rx : 2;
+
+    dl_ch128          = (__m128i *)&dl_ch_estimates_ext[aatx*x + aarx][start_point];
+    dl_ch_mag128      = (__m128i *)&dl_ch_mag[aatx*x + aarx][start_point];
+    dl_ch_mag128b     = (__m128i *)&dl_ch_magb[aatx*x + aarx][start_point];
     rxdataF128        = (__m128i *)&rxdataF_ext[aarx][start_point];
-    rxdataF_comp128   = (__m128i *)&rxdataF_comp[aatx*2 + aarx][start_point];
+    rxdataF_comp128   = (__m128i *)&rxdataF_comp[aatx*x + aarx][start_point];
 
       length_mod8 = length&7;
       if (length_mod8 == 0){
@@ -3956,15 +3964,11 @@ void dlsch_channel_level_median(int **dl_ch_estimates_ext,
 
   short ii;
   int aatx,aarx;
-  int length_mod4;
   int length2;
   int max = 0, min=0;
   int norm_pack;
   __m128i *dl_ch128, norm128D;
 
-  int16_t x = factor2(length);
-  int16_t y = (length)>>x;
-
   for (aatx=0; aatx<n_tx; aatx++){
     for (aarx=0; aarx<n_rx; aarx++) {
       max = 0;
@@ -3973,8 +3977,6 @@ void dlsch_channel_level_median(int **dl_ch_estimates_ext,
 
       dl_ch128=(__m128i *)&dl_ch_estimates_ext[aatx*2 + aarx][start_point];
 
-      length_mod4=length&3;
-
       length2 = length>>2;
 
       for (ii=0;ii<length2;ii++) {
@@ -3986,17 +3988,12 @@ void dlsch_channel_level_median(int **dl_ch_estimates_ext,
                     ((int32_t*)&norm128D)[2] +
                     ((int32_t*)&norm128D)[3];
 
-        if (ii<1){
-          print_ints("norm128D",&norm128D[0]);
-          printf("norm_pack[%d] %d\n", aatx*n_rx + aarx, norm_pack);
-        }
-
         if (norm_pack > max)
           max = norm_pack;
         if (norm_pack < min)
           min = norm_pack;
 
-          dl_ch128+=1;
+        dl_ch128+=1;
       }
 
         median[aatx*n_rx + aarx]  = (max+min)>>1;
@@ -6927,79 +6924,90 @@ unsigned short dlsch_extract_rbs_TM7(int **rxdataF,
 
 void dump_dlsch2(PHY_VARS_UE *ue,uint8_t eNB_id,uint8_t subframe,unsigned int *coded_bits_per_codeword,int round,  unsigned char harq_pid)
 {
-  unsigned int nsymb = (ue->frame_parms.Ncp == 0) ? 14 : 12;
+#define NSYMB  ((ue->frame_parms.Ncp == 0) ? 14 : 12)
   char fname[32],vname[32];
-  int N_RB_DL=ue->frame_parms.N_RB_DL;
 
   sprintf(fname,"dlsch%d_rxF_r%d_ext0.m",eNB_id,round);
   sprintf(vname,"dl%d_rxF_r%d_ext0",eNB_id,round);
-  LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_ext[0],12*N_RB_DL*nsymb,1,1);
+  LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_ext[0],
+        12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
 
   if (ue->frame_parms.nb_antennas_rx >1) {
     sprintf(fname,"dlsch%d_rxF_r%d_ext1.m",eNB_id,round);
     sprintf(vname,"dl%d_rxF_r%d_ext1",eNB_id,round);
-    LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_ext[1],12*N_RB_DL*nsymb,1,1);
+    LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_ext[1],
+          12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
   }
 
   sprintf(fname,"dlsch%d_ch_r%d_ext00.m",eNB_id,round);
   sprintf(vname,"dl%d_ch_r%d_ext00",eNB_id,round);
-  LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[0],12*N_RB_DL*nsymb,1,1);
+  LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[0],
+        12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
 
   if (ue->transmission_mode[eNB_id]==7){
     sprintf(fname,"dlsch%d_bf_ch_r%d.m",eNB_id,round);
     sprintf(vname,"dl%d_bf_ch_r%d",eNB_id,round);
-    LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_bf_ch_estimates[0],512*nsymb,1,1);
+    LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_bf_ch_estimates[0],512*NSYMB,1,1);
     //LOG_M(fname,vname,phy_vars_ue->lte_ue_pdsch_vars[eNB_id]->dl_bf_ch_estimates[0],512,1,1);
 
     sprintf(fname,"dlsch%d_bf_ch_r%d_ext00.m",eNB_id,round);
     sprintf(vname,"dl%d_bf_ch_r%d_ext00",eNB_id,round);
-    LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_bf_ch_estimates_ext[0],12*N_RB_DL*nsymb,1,1);
+    LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_bf_ch_estimates_ext[0],
+          12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
   }
 
   if (ue->frame_parms.nb_antennas_rx == 2) {
     sprintf(fname,"dlsch%d_ch_r%d_ext01.m",eNB_id,round);
     sprintf(vname,"dl%d_ch_r%d_ext01",eNB_id,round);
-    LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[1],12*N_RB_DL*nsymb,1,1);
+	    LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[1],
+            12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
   }
 
   if (ue->frame_parms.nb_antenna_ports_eNB == 2) {
     sprintf(fname,"dlsch%d_ch_r%d_ext10.m",eNB_id,round);
     sprintf(vname,"dl%d_ch_r%d_ext10",eNB_id,round);
-    LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[2],12*N_RB_DL*nsymb,1,1);
+    LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[2],
+          12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
 
     if (ue->frame_parms.nb_antennas_rx == 2) {
       sprintf(fname,"dlsch%d_ch_r%d_ext11.m",eNB_id,round);
       sprintf(vname,"dl%d_ch_r%d_ext11",eNB_id,round);
-      LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[3],12*N_RB_DL*nsymb,1,1);
+      LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[3],
+            12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
     }
   }
 
   sprintf(fname,"dlsch%d_rxF_r%d_uespec0.m",eNB_id,round);
   sprintf(vname,"dl%d_rxF_r%d_uespec0",eNB_id,round);
-  LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_uespec_pilots[0],12*N_RB_DL,1,1);
+  LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_uespec_pilots[0],
+        12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
 
   /*
-    LOG_M("dlsch%d_ch_ext01.m","dl01_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[1],12*N_RB_DL*nsymb,1,1);
-    LOG_M("dlsch%d_ch_ext10.m","dl10_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[2],12*N_RB_DL*nsymb,1,1);
-    LOG_M("dlsch%d_ch_ext11.m","dl11_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[3],12*N_RB_DL*nsymb,1,1);
+    LOG_M("dlsch%d_ch_ext01.m","dl01_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[1],12*N_RB_DL*NSYMB,1,1);
+    LOG_M("dlsch%d_ch_ext10.m","dl10_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[2],12*N_RB_DL*NSYMB,1,1);
+    LOG_M("dlsch%d_ch_ext11.m","dl11_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[3],12*N_RB_DL*NSYMB,1,1);
   */
   sprintf(fname,"dlsch%d_r%d_rho.m",eNB_id,round);
   sprintf(vname,"dl_rho_r%d_%d",eNB_id,round);
 
-  LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_rho_ext[harq_pid][round][0],12*N_RB_DL*nsymb,1,1);
+  LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_rho_ext[harq_pid][round][0],
+        12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
 
   sprintf(fname,"dlsch%d_r%d_rho2.m",eNB_id,round);
   sprintf(vname,"dl_rho2_r%d_%d",eNB_id,round);
 
-  LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_rho2_ext[0],12*N_RB_DL*nsymb,1,1);
+  LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_rho2_ext[0],
+        12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
 
   sprintf(fname,"dlsch%d_rxF_r%d_comp0.m",eNB_id,round);
   sprintf(vname,"dl%d_rxF_r%d_comp0",eNB_id,round);
-  LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_comp0[0],12*N_RB_DL*nsymb,1,1);
+  LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_comp0[0],
+        12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
   if (ue->frame_parms.nb_antenna_ports_eNB == 2) {
     sprintf(fname,"dlsch%d_rxF_r%d_comp1.m",eNB_id,round);
     sprintf(vname,"dl%d_rxF_r%d_comp1",eNB_id,round);
-    LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_comp1[harq_pid][round][0],12*N_RB_DL*nsymb,1,1);
+    LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_comp1[harq_pid][round][0],
+          12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
   }
 
   sprintf(fname,"dlsch%d_rxF_r%d_llr.m",eNB_id,round);
@@ -7007,52 +7015,13 @@ void dump_dlsch2(PHY_VARS_UE *ue,uint8_t eNB_id,uint8_t subframe,unsigned int *c
   LOG_M(fname,vname, ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->llr[0],coded_bits_per_codeword[0],1,0);
   sprintf(fname,"dlsch%d_r%d_mag1.m",eNB_id,round);
   sprintf(vname,"dl%d_r%d_mag1",eNB_id,round);
-  LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_mag0[0],12*N_RB_DL*nsymb,1,1);
+  LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_mag0[0],
+         12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
   sprintf(fname,"dlsch%d_r%d_mag2.m",eNB_id,round);
   sprintf(vname,"dl%d_r%d_mag2",eNB_id,round);
-  LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_magb0[0],12*N_RB_DL*nsymb,1,1);
+  LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_magb0[0],
+        12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
 
-  //  printf("log2_maxh = %d\n",ue->pdsch_vars[eNB_id]->log2_maxh);
 }
 
-#ifdef DEBUG_DLSCH_DEMOD
-/*
-void print_bytes(char *s,__m128i *x)
-{
-
-  char *tempb = (char *)x;
 
-  printf("%s  : %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",s,
-         tempb[0],tempb[1],tempb[2],tempb[3],tempb[4],tempb[5],tempb[6],tempb[7],
-         tempb[8],tempb[9],tempb[10],tempb[11],tempb[12],tempb[13],tempb[14],tempb[15]
-         );
-
-}
-
-void print_shorts(char *s,__m128i *x)
-{
-
-  short *tempb = (short *)x;
-  printf("%s  : %d,%d,%d,%d,%d,%d,%d,%d\n",s,
-         tempb[0],tempb[1],tempb[2],tempb[3],tempb[4],tempb[5],tempb[6],tempb[7]);
-
-}
-
-void print_shorts2(char *s,__m64 *x)
-{
-
-  short *tempb = (short *)x;
-  printf("%s  : %d,%d,%d,%d\n",s,
-         tempb[0],tempb[1],tempb[2],tempb[3]);
-
-}
-
-void print_ints(char *s,__m128i *x)
-{
-
-  int *tempb = (int *)x;
-  printf("%s  : %d,%d,%d,%d\n",s,
-         tempb[0],tempb[1],tempb[2],tempb[3]);
-
-}*/
-#endif
diff --git a/openair1/PHY/LTE_UE_TRANSPORT/pmch_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/pmch_ue.c
index d2cb9a71a98dff1bb82b8cccf244631ae0131a90..0a12d393d46954f1639a56917d8e53647f98bbe3 100644
--- a/openair1/PHY/LTE_UE_TRANSPORT/pmch_ue.c
+++ b/openair1/PHY/LTE_UE_TRANSPORT/pmch_ue.c
@@ -43,34 +43,32 @@
 void dump_mch(PHY_VARS_UE *ue,uint8_t eNB_id,uint16_t coded_bits_per_codeword,int subframe)
 {
 
-  unsigned int nsymb_pmch=12;
   char fname[32],vname[32];
-  int N_RB_DL=ue->frame_parms.N_RB_DL;
-
+#define NSYMB_PMCH 12
   sprintf(fname,"mch_rxF_ext0.m");
   sprintf(vname,"pmch_rxF_ext0");
-  LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->rxdataF_ext[0],12*N_RB_DL*nsymb_pmch,1,1);
+  LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->rxdataF_ext[0],12*(ue->frame_parms.N_RB_DL)*12,1,1);
   sprintf(fname,"mch_ch_ext00.m");
   sprintf(vname,"pmch_ch_ext00");
-  LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->dl_ch_estimates_ext[0],12*N_RB_DL*nsymb_pmch,1,1);
+  LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->dl_ch_estimates_ext[0],12*(ue->frame_parms.N_RB_DL)*NSYMB_PMCH,1,1);
   /*
-    LOG_M("dlsch%d_ch_ext01.m","dl01_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[1],12*N_RB_DL*nsymb_pmch,1,1);
-    LOG_M("dlsch%d_ch_ext10.m","dl10_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[2],12*N_RB_DL*nsymb_pmch,1,1);
-    LOG_M("dlsch%d_ch_ext11.m","dl11_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[3],12*N_RB_DL*nsymb_pmch,1,1);
-    LOG_M("dlsch%d_rho.m","dl_rho",pdsch_vars[eNB_id]->rho[0],12*N_RB_DL*nsymb_pmch,1,1);
+    LOG_M("dlsch%d_ch_ext01.m","dl01_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[1],12*N_RB_DL*NSYMB_PMCH,1,1);
+    LOG_M("dlsch%d_ch_ext10.m","dl10_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[2],12*N_RB_DL*NSYMB_PMCH,1,1);
+    LOG_M("dlsch%d_ch_ext11.m","dl11_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[3],12*N_RB_DL*NSYMB_PMCH,1,1);
+    LOG_M("dlsch%d_rho.m","dl_rho",pdsch_vars[eNB_id]->rho[0],12*N_RB_DL*NSYMB_PMCH,1,1);
   */
   sprintf(fname,"mch_rxF_comp0.m");
   sprintf(vname,"pmch_rxF_comp0");
-  LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->rxdataF_comp0[0],12*N_RB_DL*nsymb_pmch,1,1);
+  LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->rxdataF_comp0[0],12*(ue->frame_parms.N_RB_DL)*NSYMB_PMCH,1,1);
   sprintf(fname,"mch_rxF_llr.m");
   sprintf(vname,"pmch_llr");
   LOG_M(fname,vname, ue->pdsch_vars_MCH[eNB_id]->llr[0],coded_bits_per_codeword,1,0);
   sprintf(fname,"mch_mag1.m");
   sprintf(vname,"pmch_mag1");
-  LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->dl_ch_mag0[0],12*N_RB_DL*nsymb_pmch,1,1);
+  LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->dl_ch_mag0[0],12*(ue->frame_parms.N_RB_DL)*NSYMB_PMCH,1,1);
   sprintf(fname,"mch_mag2.m");
   sprintf(vname,"pmch_mag2");
-  LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->dl_ch_magb0[0],12*N_RB_DL*nsymb_pmch,1,1);
+  LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->dl_ch_magb0[0],12*(ue->frame_parms.N_RB_DL)*NSYMB_PMCH,1,1);
 
   LOG_M("mch00_ch0.m","pmch00_ch0",
                &(ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][0][0]),
diff --git a/openair1/PHY/LTE_UE_TRANSPORT/prach_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/prach_ue.c
index 6d71f5e36619df0b754340b88bf18563e63aa7ba..481d0bcaf8510623a8c6c7712d960ab0335a83ee 100644
--- a/openair1/PHY/LTE_UE_TRANSPORT/prach_ue.c
+++ b/openair1/PHY/LTE_UE_TRANSPORT/prach_ue.c
@@ -37,7 +37,7 @@
 
 #include "SCHED_UE/sched_UE.h"
 #include "SCHED/sched_common_extern.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
 #include "../LTE_TRANSPORT/prach_extern.h"
 
@@ -376,7 +376,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1
       memmove( prach, prach+1024, Ncp<<2 );
       prach_len = 512+Ncp;
     } else {
-      idft3072(prachF,prach2);
+      idft3072(prachF,prach2,1);
       memmove( prach, prach+6144, Ncp<<2 );
       prach_len = 3072+Ncp;
 
@@ -395,7 +395,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1
       memmove( prach, prach+2048, Ncp<<2 );
       prach_len = 1024+Ncp;
     } else {
-      idft6144(prachF,prach2);
+      idft6144(prachF,prach2,1);
       /*for (i=0;i<6144*2;i++)
       prach2[i]<<=1;*/
       memmove( prach, prach+12288, Ncp<<2 );
@@ -415,7 +415,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1
       memmove( prach, prach+4096, Ncp<<2 );
       prach_len = 2048+Ncp;
     } else {
-      idft12288(prachF,prach2);
+      idft12288(prachF,prach2,1);
       memmove( prach, prach+24576, Ncp<<2 );
       prach_len = 12288+Ncp;
 
@@ -429,12 +429,12 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1
 
   case 75:
     if (prach_fmt == 4) {
-      idft3072(prachF,prach2);
+      idft3072(prachF,prach2,1);
       //TODO: account for repeated format in dft output
       memmove( prach, prach+6144, Ncp<<2 );
       prach_len = 3072+Ncp;
     } else {
-      idft18432(prachF,prach2);
+      idft18432(prachF,prach2,1);
       memmove( prach, prach+36864, Ncp<<2 );
       prach_len = 18432+Ncp;
 
@@ -453,7 +453,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1
 	memmove( prach, prach+8192, Ncp<<2 );
 	prach_len = 4096+Ncp;
       } else {
-	idft24576(prachF,prach2);
+	idft24576(prachF,prach2,1);
 	memmove( prach, prach+49152, Ncp<<2 );
 	prach_len = 24576+Ncp;
 	
@@ -465,12 +465,12 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1
     }
     else {
       if (prach_fmt == 4) {
-	idft3072(prachF,prach2);
+	idft3072(prachF,prach2,1);
 	//TODO: account for repeated format in dft output
 	memmove( prach, prach+6144, Ncp<<2 );
 	prach_len = 3072+Ncp;
       } else {
-	idft18432(prachF,prach2);
+	idft18432(prachF,prach2,1);
 	memmove( prach, prach+36864, Ncp<<2 );
 	prach_len = 18432+Ncp;
 	printf("Generated prach for 100 PRB, 3/4 sampling\n");
diff --git a/openair1/PHY/LTE_UE_TRANSPORT/pucch_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/pucch_ue.c
index c3bbd0fb1caafe229a22a5660e7991385f663515..1f9fb86f80a6dd147b2fa1329db0772742393581 100644
--- a/openair1/PHY/LTE_UE_TRANSPORT/pucch_ue.c
+++ b/openair1/PHY/LTE_UE_TRANSPORT/pucch_ue.c
@@ -33,8 +33,8 @@
 #include "PHY/phy_extern_ue.h" 
 #include "PHY/LTE_REFSIG/lte_refsig.h"
 
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
 #include "T.h"
 
diff --git a/openair1/PHY/LTE_UE_TRANSPORT/rar_tools_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/rar_tools_ue.c
index f7451d165e99c9077938f7451a9de0be7b28cdbd..b4273095ba192fbc779ff8d6147fec7165a3333d 100644
--- a/openair1/PHY/LTE_UE_TRANSPORT/rar_tools_ue.c
+++ b/openair1/PHY/LTE_UE_TRANSPORT/rar_tools_ue.c
@@ -33,7 +33,7 @@
 #include "PHY/phy_extern_ue.h"
 #include "SCHED_UE/sched_UE.h"
 #include "LAYER2/MAC/mac.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "transport_proto_ue.h"
 
 #include "assertions.h"
diff --git a/openair1/PHY/LTE_UE_TRANSPORT/srs_modulation.c b/openair1/PHY/LTE_UE_TRANSPORT/srs_modulation.c
index e3ad16978d3ce6e13f246b557944b11bbfa96a8a..8bb2299b7cc82569b5af4e2d429356316c1a527b 100644
--- a/openair1/PHY/LTE_UE_TRANSPORT/srs_modulation.c
+++ b/openair1/PHY/LTE_UE_TRANSPORT/srs_modulation.c
@@ -31,7 +31,7 @@
 */
 #include "PHY/defs_UE.h"
 #include "PHY/phy_extern_ue.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 
 unsigned short msrsb_6_40[8][4] = {{36,12,4,4},
   {32,16,8,4},
@@ -134,7 +134,6 @@ int32_t generate_srs(LTE_DL_FRAME_PARMS *frame_parms,
   //uint32_t subframe_offset;
   uint8_t Bsrs  = soundingrs_ul_config_dedicated->srs_Bandwidth;
   uint8_t Csrs  = frame_parms->soundingrs_ul_config_common.srs_BandwidthConfig;
-  uint8_t Ssrs  = frame_parms->soundingrs_ul_config_common.srs_SubframeConfig;
   uint8_t n_RRC = soundingrs_ul_config_dedicated->freqDomainPosition;
   uint8_t kTC   = soundingrs_ul_config_dedicated->transmissionComb;
 
@@ -144,7 +143,9 @@ int32_t generate_srs(LTE_DL_FRAME_PARMS *frame_parms,
   uint32_t v=frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.seqhop[1+(subframe<<1)];
 
   LOG_D(PHY,"SRS root sequence: u %d, v %d\n",u,v);
-  LOG_D(PHY,"CommonSrsConfig:    Csrs %d, Ssrs %d, AnSrsSimultan %d \n",Csrs,Ssrs,frame_parms->soundingrs_ul_config_common.ackNackSRS_SimultaneousTransmission);
+  LOG_D(PHY,"CommonSrsConfig:    Csrs %d, Ssrs %d, AnSrsSimultan %d \n",Csrs,
+        frame_parms->soundingrs_ul_config_common.srs_SubframeConfig,
+        frame_parms->soundingrs_ul_config_common.ackNackSRS_SimultaneousTransmission);
   LOG_D(PHY,"DedicatedSrsConfig: Bsrs %d, bhop %d, nRRC %d, Isrs %d, kTC %d, n_SRS %d\n",Bsrs,soundingrs_ul_config_dedicated->srs_HoppingBandwidth,n_RRC
                                                                                        ,soundingrs_ul_config_dedicated->srs_ConfigIndex,kTC
                                                                                        ,soundingrs_ul_config_dedicated->cyclicShift);
diff --git a/openair1/PHY/LTE_UE_TRANSPORT/ulsch_coding.c b/openair1/PHY/LTE_UE_TRANSPORT/ulsch_coding.c
index 211744d4595f4b26d4e5f84388ee06178ee6b1aa..b62c5c55449cc351fc1540e42d6175e2a2517c18 100644
--- a/openair1/PHY/LTE_UE_TRANSPORT/ulsch_coding.c
+++ b/openair1/PHY/LTE_UE_TRANSPORT/ulsch_coding.c
@@ -37,7 +37,7 @@
 #include "PHY/CODING/coding_extern.h"
 #include "PHY/CODING/lte_interleaver_inline.h"
 #include "PHY/LTE_UE_TRANSPORT/transport_ue.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
 //#define DEBUG_ULSCH_CODING
 //#define DEBUG_ULSCH_FREE 1
diff --git a/openair1/PHY/LTE_UE_TRANSPORT/ulsch_modulation.c b/openair1/PHY/LTE_UE_TRANSPORT/ulsch_modulation.c
index 92a8d16b44ad59045d890b4ad0e39634f3cfeb8f..1281f815f854043279c767ac41bdadab620cb3f3 100644
--- a/openair1/PHY/LTE_UE_TRANSPORT/ulsch_modulation.c
+++ b/openair1/PHY/LTE_UE_TRANSPORT/ulsch_modulation.c
@@ -36,7 +36,7 @@
 #include "PHY/LTE_UE_TRANSPORT/transport_ue.h"
 #include "PHY/LTE_UE_TRANSPORT/transport_proto_ue.h"
 #include "PHY/LTE_TRANSPORT/transport_eNB.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "PHY/LTE_REFSIG/lte_refsig.h"
 
 
diff --git a/openair1/PHY/MODULATION/beamforming.c b/openair1/PHY/MODULATION/beamforming.c
index e2ab0cd33b827307b8a004956177f5c2545dd19f..9b1563e4f5ef4e654ab3cbbd4f484204ecbbd8b4 100644
--- a/openair1/PHY/MODULATION/beamforming.c
+++ b/openair1/PHY/MODULATION/beamforming.c
@@ -37,7 +37,7 @@
 #include "PHY/CODING/lte_interleaver_inline.h"
 #include "PHY/LTE_TRANSPORT/transport_eNB.h"
 #include "modulation_eNB.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
 int beam_precoding(int32_t **txdataF,
 	           int32_t **txdataF_BF,
diff --git a/openair1/PHY/MODULATION/ofdm_mod.c b/openair1/PHY/MODULATION/ofdm_mod.c
index dfb6c85f33abe7f7309a7b23173506fd125490bc..d1160a0bcdaf25030a1f1bb32874e223ab9a194a 100644
--- a/openair1/PHY/MODULATION/ofdm_mod.c
+++ b/openair1/PHY/MODULATION/ofdm_mod.c
@@ -31,8 +31,8 @@ This section deals with basic functions for OFDM Modulation.
 
 #include "PHY/defs_eNB.h"
 #include "PHY/impl_defs_top.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "modulation_common.h"
 #include "PHY/LTE_TRANSPORT/transport_common_proto.h"
 //#define DEBUG_OFDM_MOD
diff --git a/openair1/PHY/TOOLS/Makefile b/openair1/PHY/TOOLS/Makefile
index 59b6a1e03beedc51371c2a611964fb3d5a2682b6..017bc7427643cc3f2ecb51da33c579b71f44a724 100644
--- a/openair1/PHY/TOOLS/Makefile
+++ b/openair1/PHY/TOOLS/Makefile
@@ -1,14 +1,14 @@
 lte_dfts_sse4: lte_dfts.c
-	gcc -O2 -msse4.1 -g -ggdb -o lte_dfts_sse4 lte_dfts.c time_meas.c file_output.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR/COMMON -DMR_MAIN -DNB_ANTENNAS_RX=1 # -DD256STATS #-DD64STATS
+	gcc -O2 -std=gnu99 -msse4.1 -g -ggdb -o lte_dfts_sse4 lte_dfts.c time_meas.c  ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR_HOME -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR -I$$OPENAIR2_DIR/COMMON -I$$OPENAIR_HOME/common/utils -DMR_MAIN -DNB_ANTENNAS_RX=1 -lm -lpthread # -DD256STATS #-DD64STATS
 
 lte_dfts_avx2: lte_dfts.c
-	gcc -O2 -mavx2 -g -ggdb -o lte_dfts_avx2 lte_dfts.c time_meas.c file_output.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR/COMMON -DMR_MAIN -DNB_ANTENNAS_RX=1 # -DD256STATS #-DD64STATS
+	gcc -O2 -std=gnu99 -mavx2 -g -ggdb -o lte_dfts_avx2 lte_dfts.c time_meas.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR_HOME -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR -I$$OPENAIR2_DIR/COMMON -I$$OPENAIR_HOME/common/utils -DMR_MAIN -DNB_ANTENNAS_RX=1 -lm -lpthread # -DD256STATS #-DD64STATS
 
 lte_dfts_avx2.s: lte_dfts.c
-	gcc -O2 -mavx2 -S lte_dfts.c time_meas.c file_output.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR/COMMON -DMR_MAIN -DNB_ANTENNAS_RX=1 # -DD256STATS #-DD64STATS
+	gcc -O2 -std=gnu99 -mavx2 -S lte_dfts.c time_meas.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR_HOME -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR -I$$OPENAIR2_DIR/COMMON -I$$OPENAIR_HOME/common/utils -DMR_MAIN -DNB_ANTENNAS_RX=1 -lm -lpthread # -DD256STATS #-DD64STATS
 
 lte_dfts_sse4.s: lte_dfts.c
-	gcc -O2 -msse4.1 -S lte_dfts.c time_meas.c file_output.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR/COMMON -DMR_MAIN -DNB_ANTENNAS_RX=1 # -DD256STATS #-DD64STATS
+	gcc -O2 -std=gnu99 -msse4.1 -S lte_dfts.c time_meas.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR_HOME -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR -I$$OPENAIR2_DIR/COMMON -I$$OPENAIR_HOME/common/utils -DMR_MAIN -DNB_ANTENNAS_RX=1 -lm # -DD256STATS #-DD64STATS
 
 dft_cycles_avx2: lte_dfts_avx2
 	./lte_dfts_avx2 | egrep cycles
diff --git a/openair1/PHY/TOOLS/lte_dfts.c b/openair1/PHY/TOOLS/lte_dfts.c
index 4bf6afd1fd367d99d1aa06635f93baefd7082454..e7a7f1a2592a4b1bc24a0763532b0795c1778c48 100644
--- a/openair1/PHY/TOOLS/lte_dfts.c
+++ b/openair1/PHY/TOOLS/lte_dfts.c
@@ -24,6 +24,13 @@
 #include <string.h>
 
 #include <stdint.h>
+#include <math.h>
+#include <pthread.h>
+#include <execinfo.h>
+
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
 
 #ifndef MR_MAIN
 #include "PHY/defs_common.h"
@@ -31,18 +38,19 @@
 #include "tools_defs.h"
 #else
 #include "time_meas.h"
-#include <math.h>
-
+#include "UTIL/LOG/log.h"
 #define debug_msg
 #define ONE_OVER_SQRT2_Q15 23170
 
-
+int oai_exit=0;
 #endif
 
 #define ONE_OVER_SQRT3_Q15 18919
 
 #include "PHY/sse_intrin.h"
 
+#include "assertions.h"
+
 #define print_shorts(s,x) printf("%s %d,%d,%d,%d,%d,%d,%d,%d\n",s,(x)[0],(x)[1],(x)[2],(x)[3],(x)[4],(x)[5],(x)[6],(x)[7])
 #define print_shorts256(s,x) printf("%s %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",s,(x)[0],(x)[1],(x)[2],(x)[3],(x)[4],(x)[5],(x)[6],(x)[7],(x)[8],(x)[9],(x)[10],(x)[11],(x)[12],(x)[13],(x)[14],(x)[15])
 
@@ -54,6 +62,8 @@ const static int16_t conjugatedft[32] __attribute__((aligned(32))) = {-1,1,-1,1,
 
 const static int16_t reflip[32]  __attribute__((aligned(32))) = {1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1};
 
+
+
 #if defined(__x86_64__) || defined(__i386__)
 static inline void cmac(__m128i a,__m128i b, __m128i *re32, __m128i *im32) __attribute__((always_inline));
 static inline void cmac(__m128i a,__m128i b, __m128i *re32, __m128i *im32)
@@ -4134,10 +4144,8 @@ void idft512(int16_t *x,int16_t *y,int scale)
 
 #endif
 
-int16_t tw1024[1536] __attribute__((aligned(32))) = {  32767,0,32766,-202,32764,-403,32761,-604,32757,-805,32751,-1006,32744,-1207,32736,-1407,32727,-1608,32717,-1809,32705,-2010,32692,-2210,32678,-2411,32662,-2611,32646,-2812,32628,-3012,32609,-3212,32588,-3412,32567,-3612,32544,-3812,32520,-4012,32495,-4211,32468,-4410,32441,-4609,32412,-4808,32382,-5007,32350,-5206,32318,-5404,32284,-5602,32249,-5800,32213,-5998,32176,-6196,32137,-6393,32097,-6590,32056,-6787,32014,-6983,31970,-7180,31926,-7376,31880,-7572,31833,-7767,31785,-7962,31735,-8157,31684,-8352,31633,-8546,31580,-8740,31525,-8933,31470,-9127,31413,-9320,31356,-9512,31297,-9704,31236,-9896,31175,-10088,31113,-10279,31049,-10470,30984,-10660,30918,-10850,30851,-11039,30783,-11228,30713,-11417,30643,-11605,30571,-11793,30498,-11981,30424,-12167,30349,-12354,30272,-12540,30195,-12725,30116,-12910,30036,-13095,29955,-13279,29873,-13463,29790,-13646,29706,-13828,29621,-14010,29534,-14192,29446,-14373,29358,-14553,29268,-14733,29177,-14912,29085,-15091,28992,-15269,28897,-15447,28802,-15624,28706,-15800,28608,-15976,28510,-16151,28410,-16326,28309,-16500,28208,-16673,28105,-16846,28001,-17018,27896,-17190,27790,-17361,27683,-17531,27575,-17700,27466,-17869,27355,-18037,27244,-18205,27132,-18372,27019,-18538,26905,-18703,26789,-18868,26673,-19032,26556,-19195,26437,-19358,26318,-19520,26198,-19681,26077,-19841,25954,-20001,25831,-20160,25707,-20318,25582,-20475,25456,-20632,25329,-20788,25201,-20943,25072,-21097,24942,-21250,24811,-21403,24679,-21555,24546,-21706,24413,-21856,24278,-22005,24143,-22154,24006,-22302,23869,-22449,23731,-22595,23592,-22740,23452,-22884,23311,-23028,23169,-23170,23027,-23312,22883,-23453,22739,-23593,22594,-23732,22448,-23870,22301,-24007,22153,-24144,22004,-24279,21855,-24414,21705,-24547,21554,-24680,21402,-24812,21249,-24943,21096,-25073,20942,-25202,20787,-25330,20631,-25457,20474,-25583,20317,-25708,20159,-25832,20000,-25955,19840,-26078,19680,-26199,19519,-26319,19357,-26438,19194,-26557,19031,-26674,18867,-26790,18702,-26906,18537,-27020,18371,-27133,18204,-27245,18036,-27356,17868,-27467,17699,-27576,17530,-27684,17360,-27791,17189,-27897,17017,-28002,16845,-28106,16672,-28209,16499,-28310,16325,-28411,16150,-28511,15975,-28609,15799,-28707,15623,-28803,15446,-28898,15268,-28993,15090,-29086,14911,-29178,14732,-29269,14552,-29359,14372,-29447,14191,-29535,14009,-29622,13827,-29707,13645,-29791,13462,-29874,13278,-29956,13094,-30037,12909,-30117,12724,-30196,12539,-30273,12353,-30350,12166,-30425,11980,-30499,11792,-30572,11604,-30644,11416,-30714,11227,-30784,11038,-30852,10849,-30919,10659,-30985,10469,-31050,10278,-31114,10087,-31176,9895,-31237,9703,-31298,9511,-31357,9319,-31414,9126,-31471,8932,-31526,8739,-31581,8545,-31634,8351,-31685,8156,-31736,7961,-31786,7766,-31834,7571,-31881,7375,-31927,7179,-31971,6982,-32015,6786,-32057,6589,-32098,6392,-32138,6195,-32177,5997,-32214,5799,-32250,5601,-32285,5403,-32319,5205,-32351,5006,-32383,4807,-32413,4608,-32442,4409,-32469,4210,-32496,4011,-32521,3811,-32545,3611,-32568,3411,-32589,3211,-32610,3011,-32629,2811,-32647,2610,-32663,2410,-32679,2209,-32693,2009,-32706,1808,-32718,1607,-32728,1406,-32737,1206,-32745,1005,-32752,804,-32758,603,-32762,402,-32765,201,-32767,
-                                                       32767,0,32764,-403,32757,-805,32744,-1207,32727,-1608,32705,-2010,32678,-2411,32646,-2812,32609,-3212,32567,-3612,32520,-4012,32468,-4410,32412,-4808,32350,-5206,32284,-5602,32213,-5998,32137,-6393,32056,-6787,31970,-7180,31880,-7572,31785,-7962,31684,-8352,31580,-8740,31470,-9127,31356,-9512,31236,-9896,31113,-10279,30984,-10660,30851,-11039,30713,-11417,30571,-11793,30424,-12167,30272,-12540,30116,-12910,29955,-13279,29790,-13646,29621,-14010,29446,-14373,29268,-14733,29085,-15091,28897,-15447,28706,-15800,28510,-16151,28309,-16500,28105,-16846,27896,-17190,27683,-17531,27466,-17869,27244,-18205,27019,-18538,26789,-18868,26556,-19195,26318,-19520,26077,-19841,25831,-20160,25582,-20475,25329,-20788,25072,-21097,24811,-21403,24546,-21706,24278,-22005,24006,-22302,23731,-22595,23452,-22884,23169,-23170,22883,-23453,22594,-23732,22301,-24007,22004,-24279,21705,-24547,21402,-24812,21096,-25073,20787,-25330,20474,-25583,20159,-25832,19840,-26078,19519,-26319,19194,-26557,18867,-26790,18537,-27020,18204,-27245,17868,-27467,17530,-27684,17189,-27897,16845,-28106,16499,-28310,16150,-28511,15799,-28707,15446,-28898,15090,-29086,14732,-29269,14372,-29447,14009,-29622,13645,-29791,13278,-29956,12909,-30117,12539,-30273,12166,-30425,11792,-30572,11416,-30714,11038,-30852,10659,-30985,10278,-31114,9895,-31237,9511,-31357,9126,-31471,8739,-31581,8351,-31685,7961,-31786,7571,-31881,7179,-31971,6786,-32057,6392,-32138,5997,-32214,5601,-32285,5205,-32351,4807,-32413,4409,-32469,4011,-32521,3611,-32568,3211,-32610,2811,-32647,2410,-32679,2009,-32706,1607,-32728,1206,-32745,804,-32758,402,-32765,0,-32767,-403,-32765,-805,-32758,-1207,-32745,-1608,-32728,-2010,-32706,-2411,-32679,-2812,-32647,-3212,-32610,-3612,-32568,-4012,-32521,-4410,-32469,-4808,-32413,-5206,-32351,-5602,-32285,-5998,-32214,-6393,-32138,-6787,-32057,-7180,-31971,-7572,-31881,-7962,-31786,-8352,-31685,-8740,-31581,-9127,-31471,-9512,-31357,-9896,-31237,-10279,-31114,-10660,-30985,-11039,-30852,-11417,-30714,-11793,-30572,-12167,-30425,-12540,-30273,-12910,-30117,-13279,-29956,-13646,-29791,-14010,-29622,-14373,-29447,-14733,-29269,-15091,-29086,-15447,-28898,-15800,-28707,-16151,-28511,-16500,-28310,-16846,-28106,-17190,-27897,-17531,-27684,-17869,-27467,-18205,-27245,-18538,-27020,-18868,-26790,-19195,-26557,-19520,-26319,-19841,-26078,-20160,-25832,-20475,-25583,-20788,-25330,-21097,-25073,-21403,-24812,-21706,-24547,-22005,-24279,-22302,-24007,-22595,-23732,-22884,-23453,-23170,-23170,-23453,-22884,-23732,-22595,-24007,-22302,-24279,-22005,-24547,-21706,-24812,-21403,-25073,-21097,-25330,-20788,-25583,-20475,-25832,-20160,-26078,-19841,-26319,-19520,-26557,-19195,-26790,-18868,-27020,-18538,-27245,-18205,-27467,-17869,-27684,-17531,-27897,-17190,-28106,-16846,-28310,-16500,-28511,-16151,-28707,-15800,-28898,-15447,-29086,-15091,-29269,-14733,-29447,-14373,-29622,-14010,-29791,-13646,-29956,-13279,-30117,-12910,-30273,-12540,-30425,-12167,-30572,-11793,-30714,-11417,-30852,-11039,-30985,-10660,-31114,-10279,-31237,-9896,-31357,-9512,-31471,-9127,-31581,-8740,-31685,-8352,-31786,-7962,-31881,-7572,-31971,-7180,-32057,-6787,-32138,-6393,-32214,-5998,-32285,-5602,-32351,-5206,-32413,-4808,-32469,-4410,-32521,-4012,-32568,-3612,-32610,-3212,-32647,-2812,-32679,-2411,-32706,-2010,-32728,-1608,-32745,-1207,-32758,-805,-32765,-403,
-                                                       32767,0,32761,-604,32744,-1207,32717,-1809,32678,-2411,32628,-3012,32567,-3612,32495,-4211,32412,-4808,32318,-5404,32213,-5998,32097,-6590,31970,-7180,31833,-7767,31684,-8352,31525,-8933,31356,-9512,31175,-10088,30984,-10660,30783,-11228,30571,-11793,30349,-12354,30116,-12910,29873,-13463,29621,-14010,29358,-14553,29085,-15091,28802,-15624,28510,-16151,28208,-16673,27896,-17190,27575,-17700,27244,-18205,26905,-18703,26556,-19195,26198,-19681,25831,-20160,25456,-20632,25072,-21097,24679,-21555,24278,-22005,23869,-22449,23452,-22884,23027,-23312,22594,-23732,22153,-24144,21705,-24547,21249,-24943,20787,-25330,20317,-25708,19840,-26078,19357,-26438,18867,-26790,18371,-27133,17868,-27467,17360,-27791,16845,-28106,16325,-28411,15799,-28707,15268,-28993,14732,-29269,14191,-29535,13645,-29791,13094,-30037,12539,-30273,11980,-30499,11416,-30714,10849,-30919,10278,-31114,9703,-31298,9126,-31471,8545,-31634,7961,-31786,7375,-31927,6786,-32057,6195,-32177,5601,-32285,5006,-32383,4409,-32469,3811,-32545,3211,-32610,2610,-32663,2009,-32706,1406,-32737,804,-32758,201,-32767,-403,-32765,-1006,-32752,-1608,-32728,-2210,-32693,-2812,-32647,-3412,-32589,-4012,-32521,-4609,-32442,-5206,-32351,-5800,-32250,-6393,-32138,-6983,-32015,-7572,-31881,-8157,-31736,-8740,-31581,-9320,-31414,-9896,-31237,-10470,-31050,-11039,-30852,-11605,-30644,-12167,-30425,-12725,-30196,-13279,-29956,-13828,-29707,-14373,-29447,-14912,-29178,-15447,-28898,-15976,-28609,-16500,-28310,-17018,-28002,-17531,-27684,-18037,-27356,-18538,-27020,-19032,-26674,-19520,-26319,-20001,-25955,-20475,-25583,-20943,-25202,-21403,-24812,-21856,-24414,-22302,-24007,-22740,-23593,-23170,-23170,-23593,-22740,-24007,-22302,-24414,-21856,-24812,-21403,-25202,-20943,-25583,-20475,-25955,-20001,-26319,-19520,-26674,-19032,-27020,-18538,-27356,-18037,-27684,-17531,-28002,-17018,-28310,-16500,-28609,-15976,-28898,-15447,-29178,-14912,-29447,-14373,-29707,-13828,-29956,-13279,-30196,-12725,-30425,-12167,-30644,-11605,-30852,-11039,-31050,-10470,-31237,-9896,-31414,-9320,-31581,-8740,-31736,-8157,-31881,-7572,-32015,-6983,-32138,-6393,-32250,-5800,-32351,-5206,-32442,-4609,-32521,-4012,-32589,-3412,-32647,-2812,-32693,-2210,-32728,-1608,-32752,-1006,-32765,-403,-32767,201,-32758,804,-32737,1406,-32706,2009,-32663,2610,-32610,3211,-32545,3811,-32469,4409,-32383,5006,-32285,5601,-32177,6195,-32057,6786,-31927,7375,-31786,7961,-31634,8545,-31471,9126,-31298,9703,-31114,10278,-30919,10849,-30714,11416,-30499,11980,-30273,12539,-30037,13094,-29791,13645,-29535,14191,-29269,14732,-28993,15268,-28707,15799,-28411,16325,-28106,16845,-27791,17360,-27467,17868,-27133,18371,-26790,18867,-26438,19357,-26078,19840,-25708,20317,-25330,20787,-24943,21249,-24547,21705,-24144,22153,-23732,22594,-23312,23027,-22884,23452,-22449,23869,-22005,24278,-21555,24679,-21097,25072,-20632,25456,-20160,25831,-19681,26198,-19195,26556,-18703,26905,-18205,27244,-17700,27575,-17190,27896,-16673,28208,-16151,28510,-15624,28802,-15091,29085,-14553,29358,-14010,29621,-13463,29873,-12910,30116,-12354,30349,-11793,30571,-11228,30783,-10660,30984,-10088,31175,-9512,31356,-8933,31525,-8352,31684,-7767,31833,-7180,31970,-6590,32097,-5998,32213,-5404,32318,-4808,32412,-4211,32495,-3612,32567,-3012,32628,-2411,32678,-1809,32717,-1207,32744,-604,32761
-                                                    };
+int16_t tw1024[1536] __attribute__((aligned(32)));
+
 #ifndef __AVX2__
 void dft1024(int16_t *x,int16_t *y,int scale)
 {
@@ -4365,7 +4373,7 @@ void idft1024(int16_t *x,int16_t *y,int scale)
 }
 #endif
 
-int16_t tw2048[2048] __attribute__((aligned(32))) = {32767,0,32766,-101,32766,-202,32765,-302,32764,-403,32763,-503,32761,-604,32759,-704,32757,-805,32754,-905,32751,-1006,32748,-1106,32744,-1207,32740,-1307,32736,-1407,32732,-1508,32727,-1608,32722,-1709,32717,-1809,32711,-1909,32705,-2010,32699,-2110,32692,-2210,32685,-2311,32678,-2411,32670,-2511,32662,-2611,32654,-2712,32646,-2812,32637,-2912,32628,-3012,32618,-3112,32609,-3212,32599,-3312,32588,-3412,32578,-3512,32567,-3612,32556,-3712,32544,-3812,32532,-3912,32520,-4012,32508,-4111,32495,-4211,32482,-4311,32468,-4410,32455,-4510,32441,-4609,32426,-4709,32412,-4808,32397,-4908,32382,-5007,32366,-5107,32350,-5206,32334,-5305,32318,-5404,32301,-5503,32284,-5602,32267,-5701,32249,-5800,32231,-5899,32213,-5998,32194,-6097,32176,-6196,32156,-6294,32137,-6393,32117,-6492,32097,-6590,32077,-6689,32056,-6787,32035,-6885,32014,-6983,31992,-7082,31970,-7180,31948,-7278,31926,-7376,31903,-7474,31880,-7572,31856,-7669,31833,-7767,31809,-7865,31785,-7962,31760,-8060,31735,-8157,31710,-8254,31684,-8352,31659,-8449,31633,-8546,31606,-8643,31580,-8740,31553,-8837,31525,-8933,31498,-9030,31470,-9127,31442,-9223,31413,-9320,31385,-9416,31356,-9512,31326,-9608,31297,-9704,31267,-9800,31236,-9896,31206,-9992,31175,-10088,31144,-10183,31113,-10279,31081,-10374,31049,-10470,31017,-10565,30984,-10660,30951,-10755,30918,-10850,30885,-10945,30851,-11039,30817,-11134,30783,-11228,30748,-11323,30713,-11417,30678,-11511,30643,-11605,30607,-11699,30571,-11793,30535,-11887,30498,-11981,30461,-12074,30424,-12167,30386,-12261,30349,-12354,30311,-12447,30272,-12540,30234,-12633,30195,-12725,30156,-12818,30116,-12910,30076,-13003,30036,-13095,29996,-13187,29955,-13279,29915,-13371,29873,-13463,29832,-13554,29790,-13646,29748,-13737,29706,-13828,29663,-13919,29621,-14010,29577,-14101,29534,-14192,29490,-14282,29446,-14373,29402,-14463,29358,-14553,29313,-14643,29268,-14733,29222,-14823,29177,-14912,29131,-15002,29085,-15091,29038,-15180,28992,-15269,28945,-15358,28897,-15447,28850,-15535,28802,-15624,28754,-15712,28706,-15800,28657,-15888,28608,-15976,28559,-16064,28510,-16151,28460,-16239,28410,-16326,28360,-16413,28309,-16500,28259,-16587,28208,-16673,28156,-16760,28105,-16846,28053,-16932,28001,-17018,27948,-17104,27896,-17190,27843,-17275,27790,-17361,27736,-17446,27683,-17531,27629,-17616,27575,-17700,27520,-17785,27466,-17869,27411,-17953,27355,-18037,27300,-18121,27244,-18205,27188,-18288,27132,-18372,27076,-18455,27019,-18538,26962,-18621,26905,-18703,26847,-18786,26789,-18868,26731,-18950,26673,-19032,26615,-19114,26556,-19195,26497,-19277,26437,-19358,26378,-19439,26318,-19520,26258,-19600,26198,-19681,26137,-19761,26077,-19841,26016,-19921,25954,-20001,25893,-20080,25831,-20160,25769,-20239,25707,-20318,25645,-20397,25582,-20475,25519,-20554,25456,-20632,25392,-20710,25329,-20788,25265,-20865,25201,-20943,25136,-21020,25072,-21097,25007,-21174,24942,-21250,24877,-21327,24811,-21403,24745,-21479,24679,-21555,24613,-21630,24546,-21706,24480,-21781,24413,-21856,24346,-21931,24278,-22005,24211,-22080,24143,-22154,24075,-22228,24006,-22302,23938,-22375,23869,-22449,23800,-22522,23731,-22595,23661,-22667,23592,-22740,23522,-22812,23452,-22884,23382,-22956,23311,-23028,23240,-23099,23169,-23170,23098,-23241,23027,-23312,22955,-23383,22883,-23453,22811,-23523,22739,-23593,22666,-23662,22594,-23732,22521,-23801,22448,-23870,22374,-23939,22301,-24007,22227,-24076,22153,-24144,22079,-24212,22004,-24279,21930,-24347,21855,-24414,21780,-24481,21705,-24547,21629,-24614,21554,-24680,21478,-24746,21402,-24812,21326,-24878,21249,-24943,21173,-25008,21096,-25073,21019,-25137,20942,-25202,20864,-25266,20787,-25330,20709,-25393,20631,-25457,20553,-25520,20474,-25583,20396,-25646,20317,-25708,20238,-25770,20159,-25832,20079,-25894,20000,-25955,19920,-26017,19840,-26078,19760,-26138,19680,-26199,19599,-26259,19519,-26319,19438,-26379,19357,-26438,19276,-26498,19194,-26557,19113,-26616,19031,-26674,18949,-26732,18867,-26790,18785,-26848,18702,-26906,18620,-26963,18537,-27020,18454,-27077,18371,-27133,18287,-27189,18204,-27245,18120,-27301,18036,-27356,17952,-27412,17868,-27467,17784,-27521,17699,-27576,17615,-27630,17530,-27684,17445,-27737,17360,-27791,17274,-27844,17189,-27897,17103,-27949,17017,-28002,16931,-28054,16845,-28106,16759,-28157,16672,-28209,16586,-28260,16499,-28310,16412,-28361,16325,-28411,16238,-28461,16150,-28511,16063,-28560,15975,-28609,15887,-28658,15799,-28707,15711,-28755,15623,-28803,15534,-28851,15446,-28898,15357,-28946,15268,-28993,15179,-29039,15090,-29086,15001,-29132,14911,-29178,14822,-29223,14732,-29269,14642,-29314,14552,-29359,14462,-29403,14372,-29447,14281,-29491,14191,-29535,14100,-29578,14009,-29622,13918,-29664,13827,-29707,13736,-29749,13645,-29791,13553,-29833,13462,-29874,13370,-29916,13278,-29956,13186,-29997,13094,-30037,13002,-30077,12909,-30117,12817,-30157,12724,-30196,12632,-30235,12539,-30273,12446,-30312,12353,-30350,12260,-30387,12166,-30425,12073,-30462,11980,-30499,11886,-30536,11792,-30572,11698,-30608,11604,-30644,11510,-30679,11416,-30714,11322,-30749,11227,-30784,11133,-30818,11038,-30852,10944,-30886,10849,-30919,10754,-30952,10659,-30985,10564,-31018,10469,-31050,10373,-31082,10278,-31114,10182,-31145,10087,-31176,9991,-31207,9895,-31237,9799,-31268,9703,-31298,9607,-31327,9511,-31357,9415,-31386,9319,-31414,9222,-31443,9126,-31471,9029,-31499,8932,-31526,8836,-31554,8739,-31581,8642,-31607,8545,-31634,8448,-31660,8351,-31685,8253,-31711,8156,-31736,8059,-31761,7961,-31786,7864,-31810,7766,-31834,7668,-31857,7571,-31881,7473,-31904,7375,-31927,7277,-31949,7179,-31971,7081,-31993,6982,-32015,6884,-32036,6786,-32057,6688,-32078,6589,-32098,6491,-32118,6392,-32138,6293,-32157,6195,-32177,6096,-32195,5997,-32214,5898,-32232,5799,-32250,5700,-32268,5601,-32285,5502,-32302,5403,-32319,5304,-32335,5205,-32351,5106,-32367,5006,-32383,4907,-32398,4807,-32413,4708,-32427,4608,-32442,4509,-32456,4409,-32469,4310,-32483,4210,-32496,4110,-32509,4011,-32521,3911,-32533,3811,-32545,3711,-32557,3611,-32568,3511,-32579,3411,-32589,3311,-32600,3211,-32610,3111,-32619,3011,-32629,2911,-32638,2811,-32647,2711,-32655,2610,-32663,2510,-32671,2410,-32679,2310,-32686,2209,-32693,2109,-32700,2009,-32706,1908,-32712,1808,-32718,1708,-32723,1607,-32728,1507,-32733,1406,-32737,1306,-32741,1206,-32745,1105,-32749,1005,-32752,904,-32755,804,-32758,703,-32760,603,-32762,502,-32764,402,-32765,301,-32766,201,-32767,100,-32767,0,-32767,-101,-32767,-202,-32767,-302,-32766,-403,-32765,-503,-32764,-604,-32762,-704,-32760,-805,-32758,-905,-32755,-1006,-32752,-1106,-32749,-1207,-32745,-1307,-32741,-1407,-32737,-1508,-32733,-1608,-32728,-1709,-32723,-1809,-32718,-1909,-32712,-2010,-32706,-2110,-32700,-2210,-32693,-2311,-32686,-2411,-32679,-2511,-32671,-2611,-32663,-2712,-32655,-2812,-32647,-2912,-32638,-3012,-32629,-3112,-32619,-3212,-32610,-3312,-32600,-3412,-32589,-3512,-32579,-3612,-32568,-3712,-32557,-3812,-32545,-3912,-32533,-4012,-32521,-4111,-32509,-4211,-32496,-4311,-32483,-4410,-32469,-4510,-32456,-4609,-32442,-4709,-32427,-4808,-32413,-4908,-32398,-5007,-32383,-5107,-32367,-5206,-32351,-5305,-32335,-5404,-32319,-5503,-32302,-5602,-32285,-5701,-32268,-5800,-32250,-5899,-32232,-5998,-32214,-6097,-32195,-6196,-32177,-6294,-32157,-6393,-32138,-6492,-32118,-6590,-32098,-6689,-32078,-6787,-32057,-6885,-32036,-6983,-32015,-7082,-31993,-7180,-31971,-7278,-31949,-7376,-31927,-7474,-31904,-7572,-31881,-7669,-31857,-7767,-31834,-7865,-31810,-7962,-31786,-8060,-31761,-8157,-31736,-8254,-31711,-8352,-31685,-8449,-31660,-8546,-31634,-8643,-31607,-8740,-31581,-8837,-31554,-8933,-31526,-9030,-31499,-9127,-31471,-9223,-31443,-9320,-31414,-9416,-31386,-9512,-31357,-9608,-31327,-9704,-31298,-9800,-31268,-9896,-31237,-9992,-31207,-10088,-31176,-10183,-31145,-10279,-31114,-10374,-31082,-10470,-31050,-10565,-31018,-10660,-30985,-10755,-30952,-10850,-30919,-10945,-30886,-11039,-30852,-11134,-30818,-11228,-30784,-11323,-30749,-11417,-30714,-11511,-30679,-11605,-30644,-11699,-30608,-11793,-30572,-11887,-30536,-11981,-30499,-12074,-30462,-12167,-30425,-12261,-30387,-12354,-30350,-12447,-30312,-12540,-30273,-12633,-30235,-12725,-30196,-12818,-30157,-12910,-30117,-13003,-30077,-13095,-30037,-13187,-29997,-13279,-29956,-13371,-29916,-13463,-29874,-13554,-29833,-13646,-29791,-13737,-29749,-13828,-29707,-13919,-29664,-14010,-29622,-14101,-29578,-14192,-29535,-14282,-29491,-14373,-29447,-14463,-29403,-14553,-29359,-14643,-29314,-14733,-29269,-14823,-29223,-14912,-29178,-15002,-29132,-15091,-29086,-15180,-29039,-15269,-28993,-15358,-28946,-15447,-28898,-15535,-28851,-15624,-28803,-15712,-28755,-15800,-28707,-15888,-28658,-15976,-28609,-16064,-28560,-16151,-28511,-16239,-28461,-16326,-28411,-16413,-28361,-16500,-28310,-16587,-28260,-16673,-28209,-16760,-28157,-16846,-28106,-16932,-28054,-17018,-28002,-17104,-27949,-17190,-27897,-17275,-27844,-17361,-27791,-17446,-27737,-17531,-27684,-17616,-27630,-17700,-27576,-17785,-27521,-17869,-27467,-17953,-27412,-18037,-27356,-18121,-27301,-18205,-27245,-18288,-27189,-18372,-27133,-18455,-27077,-18538,-27020,-18621,-26963,-18703,-26906,-18786,-26848,-18868,-26790,-18950,-26732,-19032,-26674,-19114,-26616,-19195,-26557,-19277,-26498,-19358,-26438,-19439,-26379,-19520,-26319,-19600,-26259,-19681,-26199,-19761,-26138,-19841,-26078,-19921,-26017,-20001,-25955,-20080,-25894,-20160,-25832,-20239,-25770,-20318,-25708,-20397,-25646,-20475,-25583,-20554,-25520,-20632,-25457,-20710,-25393,-20788,-25330,-20865,-25266,-20943,-25202,-21020,-25137,-21097,-25073,-21174,-25008,-21250,-24943,-21327,-24878,-21403,-24812,-21479,-24746,-21555,-24680,-21630,-24614,-21706,-24547,-21781,-24481,-21856,-24414,-21931,-24347,-22005,-24279,-22080,-24212,-22154,-24144,-22228,-24076,-22302,-24007,-22375,-23939,-22449,-23870,-22522,-23801,-22595,-23732,-22667,-23662,-22740,-23593,-22812,-23523,-22884,-23453,-22956,-23383,-23028,-23312,-23099,-23241,-23170,-23170,-23241,-23099,-23312,-23028,-23383,-22956,-23453,-22884,-23523,-22812,-23593,-22740,-23662,-22667,-23732,-22595,-23801,-22522,-23870,-22449,-23939,-22375,-24007,-22302,-24076,-22228,-24144,-22154,-24212,-22080,-24279,-22005,-24347,-21931,-24414,-21856,-24481,-21781,-24547,-21706,-24614,-21630,-24680,-21555,-24746,-21479,-24812,-21403,-24878,-21327,-24943,-21250,-25008,-21174,-25073,-21097,-25137,-21020,-25202,-20943,-25266,-20865,-25330,-20788,-25393,-20710,-25457,-20632,-25520,-20554,-25583,-20475,-25646,-20397,-25708,-20318,-25770,-20239,-25832,-20160,-25894,-20080,-25955,-20001,-26017,-19921,-26078,-19841,-26138,-19761,-26199,-19681,-26259,-19600,-26319,-19520,-26379,-19439,-26438,-19358,-26498,-19277,-26557,-19195,-26616,-19114,-26674,-19032,-26732,-18950,-26790,-18868,-26848,-18786,-26906,-18703,-26963,-18621,-27020,-18538,-27077,-18455,-27133,-18372,-27189,-18288,-27245,-18205,-27301,-18121,-27356,-18037,-27412,-17953,-27467,-17869,-27521,-17785,-27576,-17700,-27630,-17616,-27684,-17531,-27737,-17446,-27791,-17361,-27844,-17275,-27897,-17190,-27949,-17104,-28002,-17018,-28054,-16932,-28106,-16846,-28157,-16760,-28209,-16673,-28260,-16587,-28310,-16500,-28361,-16413,-28411,-16326,-28461,-16239,-28511,-16151,-28560,-16064,-28609,-15976,-28658,-15888,-28707,-15800,-28755,-15712,-28803,-15624,-28851,-15535,-28898,-15447,-28946,-15358,-28993,-15269,-29039,-15180,-29086,-15091,-29132,-15002,-29178,-14912,-29223,-14823,-29269,-14733,-29314,-14643,-29359,-14553,-29403,-14463,-29447,-14373,-29491,-14282,-29535,-14192,-29578,-14101,-29622,-14010,-29664,-13919,-29707,-13828,-29749,-13737,-29791,-13646,-29833,-13554,-29874,-13463,-29916,-13371,-29956,-13279,-29997,-13187,-30037,-13095,-30077,-13003,-30117,-12910,-30157,-12818,-30196,-12725,-30235,-12633,-30273,-12540,-30312,-12447,-30350,-12354,-30387,-12261,-30425,-12167,-30462,-12074,-30499,-11981,-30536,-11887,-30572,-11793,-30608,-11699,-30644,-11605,-30679,-11511,-30714,-11417,-30749,-11323,-30784,-11228,-30818,-11134,-30852,-11039,-30886,-10945,-30919,-10850,-30952,-10755,-30985,-10660,-31018,-10565,-31050,-10470,-31082,-10374,-31114,-10279,-31145,-10183,-31176,-10088,-31207,-9992,-31237,-9896,-31268,-9800,-31298,-9704,-31327,-9608,-31357,-9512,-31386,-9416,-31414,-9320,-31443,-9223,-31471,-9127,-31499,-9030,-31526,-8933,-31554,-8837,-31581,-8740,-31607,-8643,-31634,-8546,-31660,-8449,-31685,-8352,-31711,-8254,-31736,-8157,-31761,-8060,-31786,-7962,-31810,-7865,-31834,-7767,-31857,-7669,-31881,-7572,-31904,-7474,-31927,-7376,-31949,-7278,-31971,-7180,-31993,-7082,-32015,-6983,-32036,-6885,-32057,-6787,-32078,-6689,-32098,-6590,-32118,-6492,-32138,-6393,-32157,-6294,-32177,-6196,-32195,-6097,-32214,-5998,-32232,-5899,-32250,-5800,-32268,-5701,-32285,-5602,-32302,-5503,-32319,-5404,-32335,-5305,-32351,-5206,-32367,-5107,-32383,-5007,-32398,-4908,-32413,-4808,-32427,-4709,-32442,-4609,-32456,-4510,-32469,-4410,-32483,-4311,-32496,-4211,-32509,-4111,-32521,-4012,-32533,-3912,-32545,-3812,-32557,-3712,-32568,-3612,-32579,-3512,-32589,-3412,-32600,-3312,-32610,-3212,-32619,-3112,-32629,-3012,-32638,-2912,-32647,-2812,-32655,-2712,-32663,-2611,-32671,-2511,-32679,-2411,-32686,-2311,-32693,-2210,-32700,-2110,-32706,-2010,-32712,-1909,-32718,-1809,-32723,-1709,-32728,-1608,-32733,-1508,-32737,-1407,-32741,-1307,-32745,-1207,-32749,-1106,-32752,-1006,-32755,-905,-32758,-805,-32760,-704,-32762,-604,-32764,-503,-32765,-403,-32766,-302,-32767,-202,-32767,-101};
+int16_t tw2048[2048] __attribute__((aligned(32)));
 
 #ifndef __AVX2__
 void dft2048(int16_t *x,int16_t *y,int scale)
@@ -4732,7 +4740,9 @@ void idft2048(int16_t *x,int16_t *y,int scale)
 
 #endif
 
-#include "twiddles4096.h"
+
+
+int16_t tw4096[3*2*1024];
 
 #ifndef __AVX2__
 void dft4096(int16_t *x,int16_t *y,int scale)
@@ -4965,7 +4975,7 @@ void idft4096(int16_t *x,int16_t *y,int scale)
 #endif //__AVX2__
 
 
-#include "twiddles8192.h"
+int16_t tw8192[2*4096] __attribute__((aligned(32)));
 
 #ifndef __AVX2__
 void dft8192(int16_t *x,int16_t *y,int scale)
@@ -5154,6 +5164,7 @@ void dft8192(int16_t *x,int16_t *y,int scale)
 
   simd256_q15_t xtmp[1024],*xtmpp,*x256 = (simd256_q15_t *)x;
   simd256_q15_t ytmp[1024],*tw8192_256p=(simd256_q15_t *)tw8192,*y256=(simd256_q15_t *)y,*y256p=(simd256_q15_t *)y;
+
   simd256_q15_t *ytmpp = &ytmp[0];
   int i;
   simd256_q15_t ONE_OVER_SQRT2_Q15_128 = set1_int16_simd256(ONE_OVER_SQRT2_Q15);
@@ -5332,7 +5343,8 @@ void idft8192(int16_t *x,int16_t *y,int scale)
 
 #endif
 
-#include "twiddle1536.h"
+int16_t twa1536[1024],twb1536[1024];
+
 // 512 x 3
 void idft1536(int16_t *input, int16_t *output, int scale)
 {
@@ -5447,24 +5459,121 @@ void dft1536(int16_t *input, int16_t *output, int scale)
 
 }
 
+int16_t twa3072[2048] __attribute__((aligned(32)));
+int16_t twb3072[2048] __attribute__((aligned(32)));
 // 1024 x 3
-void dft3072(int16_t *input, int16_t *output)
+void dft3072(int16_t *input, int16_t *output,int scale)
 {
+  int i,i2,j;
+  uint32_t tmp[3][1024] __attribute__((aligned(32)));
+  uint32_t tmpo[3][1024] __attribute__((aligned(32)));
+  simd_q15_t *y128p=(simd_q15_t*)output;
+  simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15);
+
+  for (i=0,j=0; i<1024; i++) {
+    tmp[0][i] = ((uint32_t *)input)[j++];
+    tmp[1][i] = ((uint32_t *)input)[j++];
+    tmp[2][i] = ((uint32_t *)input)[j++];
+  }
+
+  dft1024((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),1);
+  dft1024((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1);
+  dft1024((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1);
+
+  for (i=0,i2=0; i<2048; i+=8,i2+=4)  {
+    bfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),(simd_q15_t*)(&tmpo[2][i2]),
+          (simd_q15_t*)(output+i),(simd_q15_t*)(output+2048+i),(simd_q15_t*)(output+4096+i),
+          (simd_q15_t*)(twa3072+i),(simd_q15_t*)(twb3072+i));
+  }
+
+  if (scale==1) {
+    for (i=0; i<48; i++) {
+      y128p[0]  = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128);
+      y128p[1]  = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128);
+      y128p[2]  = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128);
+      y128p[3]  = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128);
+      y128p[4]  = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128);
+      y128p[5]  = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128);
+      y128p[6]  = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128);
+      y128p[7]  = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128);
+      y128p[8]  = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128);
+      y128p[9]  = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128);
+      y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128);
+      y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128);
+      y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128);
+      y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128);
+      y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128);
+      y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128);
+      y128p+=16;
+    }
+  }
 
+  _mm_empty();
+  _m_empty();
 }
 
-void idft3072(int16_t *input, int16_t *output)
+void idft3072(int16_t *input, int16_t *output,int scale)
 {
+  int i,i2,j;
+  uint32_t tmp[3][1024]__attribute__((aligned(32)));
+  uint32_t tmpo[3][1024] __attribute__((aligned(32)));
+  simd_q15_t *y128p=(simd_q15_t*)output;
+  simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15);
+
+  for (i=0,j=0; i<1024; i++) {
+    tmp[0][i] = ((uint32_t *)input)[j++];
+    tmp[1][i] = ((uint32_t *)input)[j++];
+    tmp[2][i] = ((uint32_t *)input)[j++];
+  }
+
+  idft1024((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),1);
+  idft1024((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1);
+  idft1024((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1);
+
+  for (i=0,i2=0; i<2048; i+=8,i2+=4)  {
+    ibfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),((simd_q15_t*)&tmpo[2][i2]),
+          (simd_q15_t*)(output+i),(simd_q15_t*)(output+2048+i),(simd_q15_t*)(output+4096+i),
+          (simd_q15_t*)(twa3072+i),(simd_q15_t*)(twb3072+i));
+  }
+
 
+  if (scale==1) {
+    for (i=0; i<48; i++) {
+      y128p[0]  = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128);
+      y128p[1]  = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128);
+      y128p[2]  = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128);
+      y128p[3]  = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128);
+      y128p[4]  = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128);
+      y128p[5]  = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128);
+      y128p[6]  = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128);
+      y128p[7]  = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128);
+      y128p[8]  = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128);
+      y128p[9]  = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128);
+      y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128);
+      y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128);
+      y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128);
+      y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128);
+      y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128);
+      y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128);
+      y128p+=16;
+    }
+  }
+
+  _mm_empty();
+  _m_empty();
 }
 
-#include "twiddle6144.h"
 
-void idft6144(int16_t *input, int16_t *output)
+int16_t twa6144[4096] __attribute__((aligned(32)));
+int16_t twb6144[4096] __attribute__((aligned(32)));
+
+void idft6144(int16_t *input, int16_t *output,int scale)
 {
   int i,i2,j;
   uint32_t tmp[3][2048] __attribute__((aligned(32)));
   uint32_t tmpo[3][2048] __attribute__((aligned(32)));
+  simd_q15_t *y128p=(simd_q15_t*)output;
+  simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15);
 
   for (i=0,j=0; i<2048; i++) {
     tmp[0][i] = ((uint32_t *)input)[j++];
@@ -5476,36 +5585,47 @@ void idft6144(int16_t *input, int16_t *output)
   idft2048((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1);
   idft2048((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1);
 
-  /*
-  for (i=1; i<2048; i++) {
-    tmpo[0][i] = tmpo[0][i<<1];
-    tmpo[1][i] = tmpo[1][i<<1];
-    tmpo[2][i] = tmpo[2][i<<1];
-    }*/
-
-  //  LOG_M("in.m","in",input,6144,1,1);
-  //  LOG_M("out0.m","o0",tmpo[0],2048,1,1);
-  //  LOG_M("out1.m","o1",tmpo[1],2048,1,1);
-  //  LOG_M("out2.m","o2",tmpo[2],2048,1,1);
-
   for (i=0,i2=0; i<4096; i+=8,i2+=4)  {
     ibfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),((simd_q15_t*)&tmpo[2][i2]),
 	   (simd_q15_t*)(output+i),(simd_q15_t*)(output+4096+i),(simd_q15_t*)(output+8192+i),
 	   (simd_q15_t*)(twa6144+i),(simd_q15_t*)(twb6144+i));
   }
 
-  //  LOG_M("out.m","out",output,6144,1,1);
+  if (scale==1) {
+    for (i=0; i<96; i++) {
+      y128p[0]  = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128);
+      y128p[1]  = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128);
+      y128p[2]  = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128);
+      y128p[3]  = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128);
+      y128p[4]  = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128);
+      y128p[5]  = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128);
+      y128p[6]  = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128);
+      y128p[7]  = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128);
+      y128p[8]  = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128);
+      y128p[9]  = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128);
+      y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128);
+      y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128);
+      y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128);
+      y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128);
+      y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128);
+      y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128);
+      y128p+=16;
+    }
+  }
+
   _mm_empty();
   _m_empty();
 
 }
 
 
-void dft6144(int16_t *input, int16_t *output)
+void dft6144(int16_t *input, int16_t *output,int scale)
 {
   int i,i2,j;
   uint32_t tmp[3][2048] __attribute__((aligned(32)));
   uint32_t tmpo[3][2048] __attribute__((aligned(32)));
+  simd_q15_t *y128p=(simd_q15_t*)output;
+  simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15);
 
   for (i=0,j=0; i<2048; i++) {
     tmp[0][i] = ((uint32_t *)input)[j++];
@@ -5533,19 +5653,44 @@ void dft6144(int16_t *input, int16_t *output)
           (simd_q15_t*)(twa6144+i),(simd_q15_t*)(twb6144+i));
   }
 
+  if (scale==1) {
+    for (i=0; i<96; i++) {
+      y128p[0]  = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128);
+      y128p[1]  = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128);
+      y128p[2]  = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128);
+      y128p[3]  = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128);
+      y128p[4]  = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128);
+      y128p[5]  = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128);
+      y128p[6]  = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128);
+      y128p[7]  = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128);
+      y128p[8]  = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128);
+      y128p[9]  = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128);
+      y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128);
+      y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128);
+      y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128);
+      y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128);
+      y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128);
+      y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128);
+      y128p+=16;
+    }
+  }
+  
   _mm_empty();
   _m_empty();
 
 }
 
-#include "twiddle12288.h"
 
+int16_t twa12288[8192] __attribute__((aligned(32)));
+int16_t twb12288[8192] __attribute__((aligned(32)));
 // 4096 x 3
-void dft12288(int16_t *input, int16_t *output)
+void dft12288(int16_t *input, int16_t *output,int scale)
 {
   int i,i2,j;
   uint32_t tmp[3][4096] __attribute__((aligned(32)));
   uint32_t tmpo[3][4096] __attribute__((aligned(32)));
+  simd_q15_t *y128p=(simd_q15_t*)output;
+  simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15);
 
   for (i=0,j=0; i<4096; i++) {
     tmp[0][i] = ((uint32_t *)input)[j++];
@@ -5553,9 +5698,9 @@ void dft12288(int16_t *input, int16_t *output)
     tmp[2][i] = ((uint32_t *)input)[j++];
   }
 
-  dft4096((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),1);
-  dft4096((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1);
-  dft4096((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1);
+  dft4096((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),scale);
+  dft4096((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),scale);
+  dft4096((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),scale);
   /*
   for (i=1; i<4096; i++) {
     tmpo[0][i] = tmpo[0][i<<1];
@@ -5572,16 +5717,39 @@ void dft12288(int16_t *input, int16_t *output)
           (simd_q15_t*)(twa12288+i),(simd_q15_t*)(twb12288+i));
   }
 
+  if (scale==1) {
+    for (i=0; i<192; i++) {
+      y128p[0]  = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128);
+      y128p[1]  = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128);
+      y128p[2]  = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128);
+      y128p[3]  = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128);
+      y128p[4]  = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128);
+      y128p[5]  = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128);
+      y128p[6]  = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128);
+      y128p[7]  = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128);
+      y128p[8]  = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128);
+      y128p[9]  = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128);
+      y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128);
+      y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128);
+      y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128);
+      y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128);
+      y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128);
+      y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128);
+      y128p+=16;
+    }
+  }
   _mm_empty();
   _m_empty();
 
 }
 
-void idft12288(int16_t *input, int16_t *output)
+void idft12288(int16_t *input, int16_t *output,int scale)
 {
   int i,i2,j;
   uint32_t tmp[3][4096] __attribute__((aligned(32)));
   uint32_t tmpo[3][4096] __attribute__((aligned(32)));
+  simd_q15_t *y128p=(simd_q15_t*)output;
+  simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15);
 
   for (i=0,j=0; i<4096; i++) {
     tmp[0][i] = ((uint32_t *)input)[j++];
@@ -5590,34 +5758,52 @@ void idft12288(int16_t *input, int16_t *output)
   }
 
 
-  idft4096((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),1);
-  idft4096((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1);
-  idft4096((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1);
-  /*
-    LOG_M("in.m","in",input,12288,1,1);
-    LOG_M("out0.m","o0",tmpo[0],4096,1,1);
-    LOG_M("out1.m","o1",tmpo[1],4096,1,1);
-    LOG_M("out2.m","o2",tmpo[2],4096,1,1);
-  */
+  idft4096((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),scale);
+  idft4096((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),scale);
+  idft4096((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),scale);
   for (i=0,i2=0; i<8192; i+=8,i2+=4)  {
     ibfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),((simd_q15_t*)&tmpo[2][i2]),
           (simd_q15_t*)(output+i),(simd_q15_t*)(output+8192+i),(simd_q15_t*)(output+16384+i),
           (simd_q15_t*)(twa12288+i),(simd_q15_t*)(twb12288+i));
   }
 
+  if (scale==1) {
+    for (i=0; i<192; i++) {
+      y128p[0]  = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128);
+      y128p[1]  = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128);
+      y128p[2]  = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128);
+      y128p[3]  = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128);
+      y128p[4]  = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128);
+      y128p[5]  = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128);
+      y128p[6]  = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128);
+      y128p[7]  = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128);
+      y128p[8]  = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128);
+      y128p[9]  = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128);
+      y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128);
+      y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128);
+      y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128);
+      y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128);
+      y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128);
+      y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128);
+      y128p+=16;
+    }
+  }
   _mm_empty();
   _m_empty();
 
   //  LOG_M("out.m","out",output,6144,1,1);
 }
 
-#include "twiddle18432.h"
+int16_t twa18432[12288] __attribute__((aligned(32)));
+int16_t twb18432[12288] __attribute__((aligned(32)));
 // 6144 x 3
-void dft18432(int16_t *input, int16_t *output) {
+void dft18432(int16_t *input, int16_t *output,int scale) {
 
   int i,i2,j;
   uint32_t tmp[3][6144] __attribute__((aligned(32)));
   uint32_t tmpo[3][6144] __attribute__((aligned(32)));
+  simd_q15_t *y128p=(simd_q15_t*)output;
+  simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15);
 
   for (i=0,j=0; i<6144; i++) {
     tmp[0][i] = ((uint32_t *)input)[j++];
@@ -5625,25 +5811,47 @@ void dft18432(int16_t *input, int16_t *output) {
     tmp[2][i] = ((uint32_t *)input)[j++];
   }
 
-  dft6144((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]));
-  dft6144((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]));
-  dft6144((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]));
+  dft6144((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),scale);
+  dft6144((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),scale);
+  dft6144((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),scale);
 
   for (i=0,i2=0; i<12288; i+=8,i2+=4)  {
     bfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),(simd_q15_t*)(&tmpo[2][i2]),
           (simd_q15_t*)(output+i),(simd_q15_t*)(output+12288+i),(simd_q15_t*)(output+24576+i),
           (simd_q15_t*)(twa18432+i),(simd_q15_t*)(twb18432+i));
   }
-
+  if (scale==1) {
+    for (i=0; i<288; i++) {
+      y128p[0]  = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128);
+      y128p[1]  = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128);
+      y128p[2]  = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128);
+      y128p[3]  = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128);
+      y128p[4]  = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128);
+      y128p[5]  = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128);
+      y128p[6]  = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128);
+      y128p[7]  = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128);
+      y128p[8]  = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128);
+      y128p[9]  = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128);
+      y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128);
+      y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128);
+      y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128);
+      y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128);
+      y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128);
+      y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128);
+      y128p+=16;
+    }
+  }
   _mm_empty();
   _m_empty();
 }
 
-void idft18432(int16_t *input, int16_t *output) {
+void idft18432(int16_t *input, int16_t *output,int scale) {
 
   int i,i2,j;
   uint32_t tmp[3][6144] __attribute__((aligned(32)));
   uint32_t tmpo[3][6144] __attribute__((aligned(32)));
+  simd_q15_t *y128p=(simd_q15_t*)output;
+  simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15);
 
   for (i=0,j=0; i<6144; i++) {
     tmp[0][i] = ((uint32_t *)input)[j++];
@@ -5651,27 +5859,51 @@ void idft18432(int16_t *input, int16_t *output) {
     tmp[2][i] = ((uint32_t *)input)[j++];
   }
 
-  idft6144((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]));
-  idft6144((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]));
-  idft6144((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]));
+  idft6144((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),scale);
+  idft6144((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),scale);
+  idft6144((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),scale);
 
   for (i=0,i2=0; i<12288; i+=8,i2+=4)  {
     ibfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),(simd_q15_t*)(&tmpo[2][i2]),
 	   (simd_q15_t*)(output+i),(simd_q15_t*)(output+12288+i),(simd_q15_t*)(output+24576+i),
 	   (simd_q15_t*)(twa18432+i),(simd_q15_t*)(twb18432+i));
   }
-
+  if (scale==1) {
+    for (i=0; i<288; i++) {
+      y128p[0]  = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128);
+      y128p[1]  = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128);
+      y128p[2]  = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128);
+      y128p[3]  = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128);
+      y128p[4]  = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128);
+      y128p[5]  = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128);
+      y128p[6]  = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128);
+      y128p[7]  = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128);
+      y128p[8]  = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128);
+      y128p[9]  = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128);
+      y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128);
+      y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128);
+      y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128);
+      y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128);
+      y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128);
+      y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128);
+      y128p+=16;
+    }
+  }
   _mm_empty();
   _m_empty();
 }
 
-#include "twiddle24576.h"
+
+int16_t twa24576[16384] __attribute__((aligned(32)));
+int16_t twb24576[16384] __attribute__((aligned(32)));
 // 8192 x 3
-void dft24576(int16_t *input, int16_t *output)
+void dft24576(int16_t *input, int16_t *output,int scale)
 {
   int i,i2,j;
   uint32_t tmp[3][8192] __attribute__((aligned(32)));
   uint32_t tmpo[3][8192] __attribute__((aligned(32)));
+  simd_q15_t *y128p=(simd_q15_t*)output;
+  simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15);
 
   for (i=0,j=0; i<8192; i++) {
     tmp[0][i] = ((uint32_t *)input)[j++];
@@ -5698,17 +5930,40 @@ void dft24576(int16_t *input, int16_t *output)
           (simd_q15_t*)(twa24576+i),(simd_q15_t*)(twb24576+i));
   }
 
-  _mm_empty();
-  _m_empty();
-
-  //  LOG_M("out.m","out",output,24576,1,1);
-}
-
-void idft24576(int16_t *input, int16_t *output)
-{
-  int i,i2,j;
+  if (scale==1) {
+    for (i=0; i<384; i++) {
+      y128p[0]  = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128);
+      y128p[1]  = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128);
+      y128p[2]  = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128);
+      y128p[3]  = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128);
+      y128p[4]  = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128);
+      y128p[5]  = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128);
+      y128p[6]  = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128);
+      y128p[7]  = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128);
+      y128p[8]  = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128);
+      y128p[9]  = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128);
+      y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128);
+      y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128);
+      y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128);
+      y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128);
+      y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128);
+      y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128);
+      y128p+=16;
+    }
+  }
+  _mm_empty();
+  _m_empty();
+
+  //  LOG_M("out.m","out",output,24576,1,1);
+}
+
+void idft24576(int16_t *input, int16_t *output,int scale)
+{
+  int i,i2,j;
   uint32_t tmp[3][8192] __attribute__((aligned(32)));
   uint32_t tmpo[3][8192] __attribute__((aligned(32)));
+  simd_q15_t *y128p=(simd_q15_t*)output;
+  simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15);
 
   for (i=0,j=0; i<8192; i++) {
     tmp[0][i] = ((uint32_t *)input)[j++];
@@ -5732,7 +5987,27 @@ void idft24576(int16_t *input, int16_t *output)
           (simd_q15_t*)(output+i),(simd_q15_t*)(output+16384+i),(simd_q15_t*)(output+32768+i),
           (simd_q15_t*)(twa24576+i),(simd_q15_t*)(twb24576+i));
   }
-
+  if (scale==1) {
+    for (i=0; i<384; i++) {
+      y128p[0]  = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128);
+      y128p[1]  = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128);
+      y128p[2]  = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128);
+      y128p[3]  = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128);
+      y128p[4]  = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128);
+      y128p[5]  = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128);
+      y128p[6]  = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128);
+      y128p[7]  = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128);
+      y128p[8]  = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128);
+      y128p[9]  = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128);
+      y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128);
+      y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128);
+      y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128);
+      y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128);
+      y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128);
+      y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128);
+      y128p+=16;
+    }
+  }
   _mm_empty();
   _m_empty();
 
@@ -6111,23 +6386,7 @@ void dft12_simd256(int16_t *x,int16_t *y)
 
 #endif
 
-static int16_t tw24[88]__attribute__((aligned(32))) = {31650,-8480,31650,-8480,31650,-8480,31650,-8480,
-                                                       28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                       23169,-23169,23169,-23169,23169,-23169,23169,-23169,
-                                                       16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                       8480,-31650,8480,-31650,8480,-31650,8480,-31650,
-                                                       0,-32767,0,-32767,0,-32767,0,-32767,
-                                                       -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650,
-                                                       -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377,
-                                                       -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169,
-                                                       -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383,
-                                                       -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480
-                                                      };
-
-//static simd_q15_t ytmp128array[300];
-//static simd_q15_t ytmp128array2[300];
-//static simd_q15_t ytmp128array3[300];
-//static simd_q15_t x2128array[300];
+static int16_t tw24[88]__attribute__((aligned(32)));
 
 void dft24(int16_t *x,int16_t *y,unsigned char scale_flag)
 {
@@ -6222,31 +6481,8 @@ void dft24(int16_t *x,int16_t *y,unsigned char scale_flag)
 
 }
 
-static int16_t twa36[88]__attribute__((aligned(32))) = {32269,-5689,32269,-5689,32269,-5689,32269,-5689,
-                                                        30790,-11206,30790,-11206,30790,-11206,30790,-11206,
-                                                        28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                        25100,-21062,25100,-21062,25100,-21062,25100,-21062,
-                                                        21062,-25100,21062,-25100,21062,-25100,21062,-25100,
-                                                        16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                        11206,-30790,11206,-30790,11206,-30790,11206,-30790,
-                                                        5689,-32269,5689,-32269,5689,-32269,5689,-32269,
-                                                        0,-32767,0,-32767,0,-32767,0,-32767,
-                                                        -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269,
-                                                        -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790
-                                                       };
-
-static int16_t twb36[88]__attribute__((aligned(32))) = {30790,-11206,30790,-11206,30790,-11206,30790,-11206,
-                                                        25100,-21062,25100,-21062,25100,-21062,25100,-21062,
-                                                        16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                        5689,-32269,5689,-32269,5689,-32269,5689,-32269,
-                                                        -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269,
-                                                        -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377,
-                                                        -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062,
-                                                        -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206,
-                                                        -32767,0,-32767,0,-32767,0,-32767,0,
-                                                        -30790,11206,-30790,11206,-30790,11206,-30790,11206,
-                                                        -25100,21062,-25100,21062,-25100,21062,-25100,21062
-                                                       };
+static int16_t twa36[88]__attribute__((aligned(32)));
+static int16_t twb36[88]__attribute__((aligned(32)));
 
 void dft36(int16_t *x,int16_t *y,unsigned char scale_flag)
 {
@@ -6368,44 +6604,9 @@ void dft36(int16_t *x,int16_t *y,unsigned char scale_flag)
 
 }
 
-static int16_t twa48[88]__attribute__((aligned(32))) = {32486,-4276,32486,-4276,32486,-4276,32486,-4276,
-                                                        31650,-8480,31650,-8480,31650,-8480,31650,-8480,
-                                                        30272,-12539,30272,-12539,30272,-12539,30272,-12539,
-                                                        28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                        25995,-19947,25995,-19947,25995,-19947,25995,-19947,
-                                                        23169,-23169,23169,-23169,23169,-23169,23169,-23169,
-                                                        19947,-25995,19947,-25995,19947,-25995,19947,-25995,
-                                                        16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                        12539,-30272,12539,-30272,12539,-30272,12539,-30272,
-                                                        8480,-31650,8480,-31650,8480,-31650,8480,-31650,
-                                                        4276,-32486,4276,-32486,4276,-32486,4276,-32486
-                                                       };
-
-static int16_t twb48[88]__attribute__((aligned(32))) = {31650,-8480,31650,-8480,31650,-8480,31650,-8480,
-                                                        28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                        23169,-23169,23169,-23169,23169,-23169,23169,-23169,
-                                                        16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                        8480,-31650,8480,-31650,8480,-31650,8480,-31650,
-                                                        0,-32767,0,-32767,0,-32767,0,-32767,
-                                                        -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650,
-                                                        -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377,
-                                                        -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169,
-                                                        -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383,
-                                                        -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480
-                                                       };
-
-static int16_t twc48[88]__attribute__((aligned(32))) = {30272,-12539,30272,-12539,30272,-12539,30272,-12539,
-                                                        23169,-23169,23169,-23169,23169,-23169,23169,-23169,
-                                                        12539,-30272,12539,-30272,12539,-30272,12539,-30272,
-                                                        0,-32767,0,-32767,0,-32767,0,-32767,
-                                                        -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272,
-                                                        -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169,
-                                                        -30272,-12539,-30272,-12539,-30272,-12539,-30272,-12539,
-                                                        -32767,0,-32767,0,-32767,0,-32767,0,
-                                                        -30272,12539,-30272,12539,-30272,12539,-30272,12539,
-                                                        -23169,23169,-23169,23169,-23169,23169,-23169,23169,
-                                                        -12539,30272,-12539,30272,-12539,30272,-12539,30272
-                                                       };
+static int16_t twa48[88]__attribute__((aligned(32)));
+static int16_t twb48[88]__attribute__((aligned(32)));
+static int16_t twc48[88]__attribute__((aligned(32)));
 
 void dft48(int16_t *x, int16_t *y,unsigned char scale_flag)
 {
@@ -6564,54 +6765,10 @@ void dft48(int16_t *x, int16_t *y,unsigned char scale_flag)
 
 }
 
-static int16_t twa60[88]__attribute__((aligned(32))) = {32587,-3425,32587,-3425,32587,-3425,32587,-3425,
-                                                        32050,-6812,32050,-6812,32050,-6812,32050,-6812,
-                                                        31163,-10125,31163,-10125,31163,-10125,31163,-10125,
-                                                        29934,-13327,29934,-13327,29934,-13327,29934,-13327,
-                                                        28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                        26509,-19259,26509,-19259,26509,-19259,26509,-19259,
-                                                        24350,-21925,24350,-21925,24350,-21925,24350,-21925,
-                                                        21925,-24350,21925,-24350,21925,-24350,21925,-24350,
-                                                        19259,-26509,19259,-26509,19259,-26509,19259,-26509,
-                                                        16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                        13327,-29934,13327,-29934,13327,-29934,13327,-29934
-                                                       };
-static int16_t twb60[88]__attribute__((aligned(32))) = {32050,-6812,32050,-6812,32050,-6812,32050,-6812,
-                                                        29934,-13327,29934,-13327,29934,-13327,29934,-13327,
-                                                        26509,-19259,26509,-19259,26509,-19259,26509,-19259,
-                                                        21925,-24350,21925,-24350,21925,-24350,21925,-24350,
-                                                        16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                        10125,-31163,10125,-31163,10125,-31163,10125,-31163,
-                                                        3425,-32587,3425,-32587,3425,-32587,3425,-32587,
-                                                        -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587,
-                                                        -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163,
-                                                        -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377,
-                                                        -21925,-24350,-21925,-24350,-21925,-24350,-21925,-24350
-                                                       };
-static int16_t twc60[88]__attribute__((aligned(32))) = {31163,-10125,31163,-10125,31163,-10125,31163,-10125,
-                                                        26509,-19259,26509,-19259,26509,-19259,26509,-19259,
-                                                        19259,-26509,19259,-26509,19259,-26509,19259,-26509,
-                                                        10125,-31163,10125,-31163,10125,-31163,10125,-31163,
-                                                        0,-32767,0,-32767,0,-32767,0,-32767,
-                                                        -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163,
-                                                        -19259,-26509,-19259,-26509,-19259,-26509,-19259,-26509,
-                                                        -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259,
-                                                        -31163,-10125,-31163,-10125,-31163,-10125,-31163,-10125,
-                                                        -32767,0,-32767,0,-32767,0,-32767,0,
-                                                        -31163,10125,-31163,10125,-31163,10125,-31163,10125
-                                                       };
-static int16_t twd60[88]__attribute__((aligned(32))) = {29934,-13327,29934,-13327,29934,-13327,29934,-13327,
-                                                        21925,-24350,21925,-24350,21925,-24350,21925,-24350,
-                                                        10125,-31163,10125,-31163,10125,-31163,10125,-31163,
-                                                        -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587,
-                                                        -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377,
-                                                        -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259,
-                                                        -32050,-6812,-32050,-6812,-32050,-6812,-32050,-6812,
-                                                        -32050,6812,-32050,6812,-32050,6812,-32050,6812,
-                                                        -26509,19259,-26509,19259,-26509,19259,-26509,19259,
-                                                        -16383,28377,-16383,28377,-16383,28377,-16383,28377,
-                                                        -3425,32587,-3425,32587,-3425,32587,-3425,32587
-                                                       };
+static int16_t twa60[88]__attribute__((aligned(32)));
+static int16_t twb60[88]__attribute__((aligned(32)));
+static int16_t twc60[88]__attribute__((aligned(32)));
+static int16_t twd60[88]__attribute__((aligned(32)));
 
 void dft60(int16_t *x,int16_t *y,unsigned char scale)
 {
@@ -6793,42 +6950,7 @@ void dft60(int16_t *x,int16_t *y,unsigned char scale)
 
 }
 
-static int16_t tw72[280]__attribute__((aligned(32))) = {32642,-2855,32642,-2855,32642,-2855,32642,-2855,
-                                                        32269,-5689,32269,-5689,32269,-5689,32269,-5689,
-                                                        31650,-8480,31650,-8480,31650,-8480,31650,-8480,
-                                                        30790,-11206,30790,-11206,30790,-11206,30790,-11206,
-                                                        29696,-13847,29696,-13847,29696,-13847,29696,-13847,
-                                                        28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                        26841,-18794,26841,-18794,26841,-18794,26841,-18794,
-                                                        25100,-21062,25100,-21062,25100,-21062,25100,-21062,
-                                                        23169,-23169,23169,-23169,23169,-23169,23169,-23169,
-                                                        21062,-25100,21062,-25100,21062,-25100,21062,-25100,
-                                                        18794,-26841,18794,-26841,18794,-26841,18794,-26841,
-                                                        16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                        13847,-29696,13847,-29696,13847,-29696,13847,-29696,
-                                                        11206,-30790,11206,-30790,11206,-30790,11206,-30790,
-                                                        8480,-31650,8480,-31650,8480,-31650,8480,-31650,
-                                                        5689,-32269,5689,-32269,5689,-32269,5689,-32269,
-                                                        2855,-32642,2855,-32642,2855,-32642,2855,-32642,
-                                                        0,-32767,0,-32767,0,-32767,0,-32767,
-                                                        -2855,-32642,-2855,-32642,-2855,-32642,-2855,-32642,
-                                                        -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269,
-                                                        -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650,
-                                                        -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790,
-                                                        -13847,-29696,-13847,-29696,-13847,-29696,-13847,-29696,
-                                                        -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377,
-                                                        -18794,-26841,-18794,-26841,-18794,-26841,-18794,-26841,
-                                                        -21062,-25100,-21062,-25100,-21062,-25100,-21062,-25100,
-                                                        -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169,
-                                                        -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062,
-                                                        -26841,-18794,-26841,-18794,-26841,-18794,-26841,-18794,
-                                                        -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383,
-                                                        -29696,-13847,-29696,-13847,-29696,-13847,-29696,-13847,
-                                                        -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206,
-                                                        -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480,
-                                                        -32269,-5689,-32269,-5689,-32269,-5689,-32269,-5689,
-                                                        -32642,-2855,-32642,-2855,-32642,-2855,-32642,-2855,
-                                                       };
+static int16_t tw72[280]__attribute__((aligned(32)));
 
 void dft72(int16_t *x,int16_t *y,unsigned char scale_flag)
 {
@@ -6872,54 +6994,7 @@ void dft72(int16_t *x,int16_t *y,unsigned char scale_flag)
 
 }
 
-static int16_t tw96[376]__attribute__((aligned(32))) = {32696,-2143,32696,-2143,32696,-2143,32696,-2143,
-                                                        32486,-4276,32486,-4276,32486,-4276,32486,-4276,
-                                                        32137,-6392,32137,-6392,32137,-6392,32137,-6392,
-                                                        31650,-8480,31650,-8480,31650,-8480,31650,-8480,
-                                                        31028,-10532,31028,-10532,31028,-10532,31028,-10532,
-                                                        30272,-12539,30272,-12539,30272,-12539,30272,-12539,
-                                                        29387,-14492,29387,-14492,29387,-14492,29387,-14492,
-                                                        28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                        27244,-18204,27244,-18204,27244,-18204,27244,-18204,
-                                                        25995,-19947,25995,-19947,25995,-19947,25995,-19947,
-                                                        24635,-21604,24635,-21604,24635,-21604,24635,-21604,
-                                                        23169,-23169,23169,-23169,23169,-23169,23169,-23169,
-                                                        21604,-24635,21604,-24635,21604,-24635,21604,-24635,
-                                                        19947,-25995,19947,-25995,19947,-25995,19947,-25995,
-                                                        18204,-27244,18204,-27244,18204,-27244,18204,-27244,
-                                                        16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                        14492,-29387,14492,-29387,14492,-29387,14492,-29387,
-                                                        12539,-30272,12539,-30272,12539,-30272,12539,-30272,
-                                                        10532,-31028,10532,-31028,10532,-31028,10532,-31028,
-                                                        8480,-31650,8480,-31650,8480,-31650,8480,-31650,
-                                                        6392,-32137,6392,-32137,6392,-32137,6392,-32137,
-                                                        4276,-32486,4276,-32486,4276,-32486,4276,-32486,
-                                                        2143,-32696,2143,-32696,2143,-32696,2143,-32696,
-                                                        0,-32767,0,-32767,0,-32767,0,-32767,
-                                                        -2143,-32696,-2143,-32696,-2143,-32696,-2143,-32696,
-                                                        -4276,-32486,-4276,-32486,-4276,-32486,-4276,-32486,
-                                                        -6392,-32137,-6392,-32137,-6392,-32137,-6392,-32137,
-                                                        -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650,
-                                                        -10532,-31028,-10532,-31028,-10532,-31028,-10532,-31028,
-                                                        -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272,
-                                                        -14492,-29387,-14492,-29387,-14492,-29387,-14492,-29387,
-                                                        -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377,
-                                                        -18204,-27244,-18204,-27244,-18204,-27244,-18204,-27244,
-                                                        -19947,-25995,-19947,-25995,-19947,-25995,-19947,-25995,
-                                                        -21604,-24635,-21604,-24635,-21604,-24635,-21604,-24635,
-                                                        -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169,
-                                                        -24635,-21604,-24635,-21604,-24635,-21604,-24635,-21604,
-                                                        -25995,-19947,-25995,-19947,-25995,-19947,-25995,-19947,
-                                                        -27244,-18204,-27244,-18204,-27244,-18204,-27244,-18204,
-                                                        -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383,
-                                                        -29387,-14492,-29387,-14492,-29387,-14492,-29387,-14492,
-                                                        -30272,-12539,-30272,-12539,-30272,-12539,-30272,-12539,
-                                                        -31028,-10532,-31028,-10532,-31028,-10532,-31028,-10532,
-                                                        -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480,
-                                                        -32137,-6392,-32137,-6392,-32137,-6392,-32137,-6392,
-                                                        -32486,-4276,-32486,-4276,-32486,-4276,-32486,-4276,
-                                                        -32696,-2143,-32696,-2143,-32696,-2143,-32696,-2143
-                                                       };
+static int16_t tw96[376]__attribute__((aligned(32)));
 
 void dft96(int16_t *x,int16_t *y,unsigned char scale_flag)
 {
@@ -6965,84 +7040,11 @@ void dft96(int16_t *x,int16_t *y,unsigned char scale_flag)
 
 }
 
-static int16_t twa108[280]__attribute__((aligned(32))) = {32711,-1905,32711,-1905,32711,-1905,32711,-1905,
-                                                          32545,-3804,32545,-3804,32545,-3804,32545,-3804,
-                                                          32269,-5689,32269,-5689,32269,-5689,32269,-5689,
-                                                          31883,-7556,31883,-7556,31883,-7556,31883,-7556,
-                                                          31390,-9397,31390,-9397,31390,-9397,31390,-9397,
-                                                          30790,-11206,30790,-11206,30790,-11206,30790,-11206,
-                                                          30087,-12978,30087,-12978,30087,-12978,30087,-12978,
-                                                          29281,-14705,29281,-14705,29281,-14705,29281,-14705,
-                                                          28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                          27376,-18005,27376,-18005,27376,-18005,27376,-18005,
-                                                          26283,-19567,26283,-19567,26283,-19567,26283,-19567,
-                                                          25100,-21062,25100,-21062,25100,-21062,25100,-21062,
-                                                          23833,-22486,23833,-22486,23833,-22486,23833,-22486,
-                                                          22486,-23833,22486,-23833,22486,-23833,22486,-23833,
-                                                          21062,-25100,21062,-25100,21062,-25100,21062,-25100,
-                                                          19567,-26283,19567,-26283,19567,-26283,19567,-26283,
-                                                          18005,-27376,18005,-27376,18005,-27376,18005,-27376,
-                                                          16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                          14705,-29281,14705,-29281,14705,-29281,14705,-29281,
-                                                          12978,-30087,12978,-30087,12978,-30087,12978,-30087,
-                                                          11206,-30790,11206,-30790,11206,-30790,11206,-30790,
-                                                          9397,-31390,9397,-31390,9397,-31390,9397,-31390,
-                                                          7556,-31883,7556,-31883,7556,-31883,7556,-31883,
-                                                          5689,-32269,5689,-32269,5689,-32269,5689,-32269,
-                                                          3804,-32545,3804,-32545,3804,-32545,3804,-32545,
-                                                          1905,-32711,1905,-32711,1905,-32711,1905,-32711,
-                                                          0,-32767,0,-32767,0,-32767,0,-32767,
-                                                          -1905,-32711,-1905,-32711,-1905,-32711,-1905,-32711,
-                                                          -3804,-32545,-3804,-32545,-3804,-32545,-3804,-32545,
-                                                          -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269,
-                                                          -7556,-31883,-7556,-31883,-7556,-31883,-7556,-31883,
-                                                          -9397,-31390,-9397,-31390,-9397,-31390,-9397,-31390,
-                                                          -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790,
-                                                          -12978,-30087,-12978,-30087,-12978,-30087,-12978,-30087,
-                                                          -14705,-29281,-14705,-29281,-14705,-29281,-14705,-29281
-                                                         };
-
-static int16_t twb108[280]__attribute__((aligned(32))) = {32545,-3804,32545,-3804,32545,-3804,32545,-3804,
-                                                          31883,-7556,31883,-7556,31883,-7556,31883,-7556,
-                                                          30790,-11206,30790,-11206,30790,-11206,30790,-11206,
-                                                          29281,-14705,29281,-14705,29281,-14705,29281,-14705,
-                                                          27376,-18005,27376,-18005,27376,-18005,27376,-18005,
-                                                          25100,-21062,25100,-21062,25100,-21062,25100,-21062,
-                                                          22486,-23833,22486,-23833,22486,-23833,22486,-23833,
-                                                          19567,-26283,19567,-26283,19567,-26283,19567,-26283,
-                                                          16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                          12978,-30087,12978,-30087,12978,-30087,12978,-30087,
-                                                          9397,-31390,9397,-31390,9397,-31390,9397,-31390,
-                                                          5689,-32269,5689,-32269,5689,-32269,5689,-32269,
-                                                          1905,-32711,1905,-32711,1905,-32711,1905,-32711,
-                                                          -1905,-32711,-1905,-32711,-1905,-32711,-1905,-32711,
-                                                          -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269,
-                                                          -9397,-31390,-9397,-31390,-9397,-31390,-9397,-31390,
-                                                          -12978,-30087,-12978,-30087,-12978,-30087,-12978,-30087,
-                                                          -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377,
-                                                          -19567,-26283,-19567,-26283,-19567,-26283,-19567,-26283,
-                                                          -22486,-23833,-22486,-23833,-22486,-23833,-22486,-23833,
-                                                          -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062,
-                                                          -27376,-18005,-27376,-18005,-27376,-18005,-27376,-18005,
-                                                          -29281,-14705,-29281,-14705,-29281,-14705,-29281,-14705,
-                                                          -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206,
-                                                          -31883,-7556,-31883,-7556,-31883,-7556,-31883,-7556,
-                                                          -32545,-3804,-32545,-3804,-32545,-3804,-32545,-3804,
-                                                          -32767,0,-32767,0,-32767,0,-32767,0,
-                                                          -32545,3804,-32545,3804,-32545,3804,-32545,3804,
-                                                          -31883,7556,-31883,7556,-31883,7556,-31883,7556,
-                                                          -30790,11206,-30790,11206,-30790,11206,-30790,11206,
-                                                          -29281,14705,-29281,14705,-29281,14705,-29281,14705,
-                                                          -27376,18005,-27376,18005,-27376,18005,-27376,18005,
-                                                          -25100,21062,-25100,21062,-25100,21062,-25100,21062,
-                                                          -22486,23833,-22486,23833,-22486,23833,-22486,23833,
-                                                          -19567,26283,-19567,26283,-19567,26283,-19567,26283
-                                                         };
+static int16_t twa108[280]__attribute__((aligned(32)));
+static int16_t twb108[280]__attribute__((aligned(32)));
 
 void dft108(int16_t *x,int16_t *y,unsigned char scale_flag)
 {
-
-
   int i,j;
   simd_q15_t *x128=(simd_q15_t *)x;
   simd_q15_t *y128=(simd_q15_t *)y;
@@ -7089,71 +7091,9 @@ void dft108(int16_t *x,int16_t *y,unsigned char scale_flag)
 
 }
 
-static int16_t tw120[472]__attribute__((aligned(32))) = {32722,-1714,32722,-1714,32722,-1714,32722,-1714,
-                                                         32587,-3425,32587,-3425,32587,-3425,32587,-3425,
-                                                         32363,-5125,32363,-5125,32363,-5125,32363,-5125,
-                                                         32050,-6812,32050,-6812,32050,-6812,32050,-6812,
-                                                         31650,-8480,31650,-8480,31650,-8480,31650,-8480,
-                                                         31163,-10125,31163,-10125,31163,-10125,31163,-10125,
-                                                         30590,-11742,30590,-11742,30590,-11742,30590,-11742,
-                                                         29934,-13327,29934,-13327,29934,-13327,29934,-13327,
-                                                         29195,-14875,29195,-14875,29195,-14875,29195,-14875,
-                                                         28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                         27480,-17846,27480,-17846,27480,-17846,27480,-17846,
-                                                         26509,-19259,26509,-19259,26509,-19259,26509,-19259,
-                                                         25464,-20620,25464,-20620,25464,-20620,25464,-20620,
-                                                         24350,-21925,24350,-21925,24350,-21925,24350,-21925,
-                                                         23169,-23169,23169,-23169,23169,-23169,23169,-23169,
-                                                         21925,-24350,21925,-24350,21925,-24350,21925,-24350,
-                                                         20620,-25464,20620,-25464,20620,-25464,20620,-25464,
-                                                         19259,-26509,19259,-26509,19259,-26509,19259,-26509,
-                                                         17846,-27480,17846,-27480,17846,-27480,17846,-27480,
-                                                         16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                         14875,-29195,14875,-29195,14875,-29195,14875,-29195,
-                                                         13327,-29934,13327,-29934,13327,-29934,13327,-29934,
-                                                         11742,-30590,11742,-30590,11742,-30590,11742,-30590,
-                                                         10125,-31163,10125,-31163,10125,-31163,10125,-31163,
-                                                         8480,-31650,8480,-31650,8480,-31650,8480,-31650,
-                                                         6812,-32050,6812,-32050,6812,-32050,6812,-32050,
-                                                         5125,-32363,5125,-32363,5125,-32363,5125,-32363,
-                                                         3425,-32587,3425,-32587,3425,-32587,3425,-32587,
-                                                         1714,-32722,1714,-32722,1714,-32722,1714,-32722,
-                                                         0,-32767,0,-32767,0,-32767,0,-32767,
-                                                         -1714,-32722,-1714,-32722,-1714,-32722,-1714,-32722,
-                                                         -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587,
-                                                         -5125,-32363,-5125,-32363,-5125,-32363,-5125,-32363,
-                                                         -6812,-32050,-6812,-32050,-6812,-32050,-6812,-32050,
-                                                         -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650,
-                                                         -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163,
-                                                         -11742,-30590,-11742,-30590,-11742,-30590,-11742,-30590,
-                                                         -13327,-29934,-13327,-29934,-13327,-29934,-13327,-29934,
-                                                         -14875,-29195,-14875,-29195,-14875,-29195,-14875,-29195,
-                                                         -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377,
-                                                         -17846,-27480,-17846,-27480,-17846,-27480,-17846,-27480,
-                                                         -19259,-26509,-19259,-26509,-19259,-26509,-19259,-26509,
-                                                         -20620,-25464,-20620,-25464,-20620,-25464,-20620,-25464,
-                                                         -21925,-24350,-21925,-24350,-21925,-24350,-21925,-24350,
-                                                         -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169,
-                                                         -24350,-21925,-24350,-21925,-24350,-21925,-24350,-21925,
-                                                         -25464,-20620,-25464,-20620,-25464,-20620,-25464,-20620,
-                                                         -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259,
-                                                         -27480,-17846,-27480,-17846,-27480,-17846,-27480,-17846,
-                                                         -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383,
-                                                         -29195,-14875,-29195,-14875,-29195,-14875,-29195,-14875,
-                                                         -29934,-13327,-29934,-13327,-29934,-13327,-29934,-13327,
-                                                         -30590,-11742,-30590,-11742,-30590,-11742,-30590,-11742,
-                                                         -31163,-10125,-31163,-10125,-31163,-10125,-31163,-10125,
-                                                         -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480,
-                                                         -32050,-6812,-32050,-6812,-32050,-6812,-32050,-6812,
-                                                         -32363,-5125,-32363,-5125,-32363,-5125,-32363,-5125,
-                                                         -32587,-3425,-32587,-3425,-32587,-3425,-32587,-3425,
-                                                         -32722,-1714,-32722,-1714,-32722,-1714,-32722,-1714
-                                                        };
-
+static int16_t tw120[472]__attribute__((aligned(32)));
 void dft120(int16_t *x,int16_t *y, unsigned char scale_flag)
 {
-
-
   int i,j;
   simd_q15_t *x128=(simd_q15_t *)x;
   simd_q15_t *y128=(simd_q15_t *)y;
@@ -7161,7 +7101,6 @@ void dft120(int16_t *x,int16_t *y, unsigned char scale_flag)
   simd_q15_t x2128[120];// = (simd_q15_t *)&x2128array[0];
   simd_q15_t ytmp128[120];//=&ytmp128array2[0];
 
-
   for (i=0,j=0; i<60; i++,j+=2) {
     x2128[i]    = x128[j];
     x2128[i+60] = x128[j+1];
@@ -7194,107 +7133,11 @@ void dft120(int16_t *x,int16_t *y, unsigned char scale_flag)
 
 }
 
-static int16_t twa144[376]__attribute__((aligned(32))) = {32735,-1429,32735,-1429,32735,-1429,32735,-1429,
-                                                          32642,-2855,32642,-2855,32642,-2855,32642,-2855,
-                                                          32486,-4276,32486,-4276,32486,-4276,32486,-4276,
-                                                          32269,-5689,32269,-5689,32269,-5689,32269,-5689,
-                                                          31990,-7092,31990,-7092,31990,-7092,31990,-7092,
-                                                          31650,-8480,31650,-8480,31650,-8480,31650,-8480,
-                                                          31250,-9853,31250,-9853,31250,-9853,31250,-9853,
-                                                          30790,-11206,30790,-11206,30790,-11206,30790,-11206,
-                                                          30272,-12539,30272,-12539,30272,-12539,30272,-12539,
-                                                          29696,-13847,29696,-13847,29696,-13847,29696,-13847,
-                                                          29064,-15130,29064,-15130,29064,-15130,29064,-15130,
-                                                          28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                          27635,-17605,27635,-17605,27635,-17605,27635,-17605,
-                                                          26841,-18794,26841,-18794,26841,-18794,26841,-18794,
-                                                          25995,-19947,25995,-19947,25995,-19947,25995,-19947,
-                                                          25100,-21062,25100,-21062,25100,-21062,25100,-21062,
-                                                          24158,-22137,24158,-22137,24158,-22137,24158,-22137,
-                                                          23169,-23169,23169,-23169,23169,-23169,23169,-23169,
-                                                          22137,-24158,22137,-24158,22137,-24158,22137,-24158,
-                                                          21062,-25100,21062,-25100,21062,-25100,21062,-25100,
-                                                          19947,-25995,19947,-25995,19947,-25995,19947,-25995,
-                                                          18794,-26841,18794,-26841,18794,-26841,18794,-26841,
-                                                          17605,-27635,17605,-27635,17605,-27635,17605,-27635,
-                                                          16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                          15130,-29064,15130,-29064,15130,-29064,15130,-29064,
-                                                          13847,-29696,13847,-29696,13847,-29696,13847,-29696,
-                                                          12539,-30272,12539,-30272,12539,-30272,12539,-30272,
-                                                          11206,-30790,11206,-30790,11206,-30790,11206,-30790,
-                                                          9853,-31250,9853,-31250,9853,-31250,9853,-31250,
-                                                          8480,-31650,8480,-31650,8480,-31650,8480,-31650,
-                                                          7092,-31990,7092,-31990,7092,-31990,7092,-31990,
-                                                          5689,-32269,5689,-32269,5689,-32269,5689,-32269,
-                                                          4276,-32486,4276,-32486,4276,-32486,4276,-32486,
-                                                          2855,-32642,2855,-32642,2855,-32642,2855,-32642,
-                                                          1429,-32735,1429,-32735,1429,-32735,1429,-32735,
-                                                          0,-32767,0,-32767,0,-32767,0,-32767,
-                                                          -1429,-32735,-1429,-32735,-1429,-32735,-1429,-32735,
-                                                          -2855,-32642,-2855,-32642,-2855,-32642,-2855,-32642,
-                                                          -4276,-32486,-4276,-32486,-4276,-32486,-4276,-32486,
-                                                          -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269,
-                                                          -7092,-31990,-7092,-31990,-7092,-31990,-7092,-31990,
-                                                          -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650,
-                                                          -9853,-31250,-9853,-31250,-9853,-31250,-9853,-31250,
-                                                          -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790,
-                                                          -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272,
-                                                          -13847,-29696,-13847,-29696,-13847,-29696,-13847,-29696,
-                                                          -15130,-29064,-15130,-29064,-15130,-29064,-15130,-29064
-                                                         };
-
-static int16_t twb144[376]__attribute__((aligned(32))) = {32642,-2855,32642,-2855,32642,-2855,32642,-2855,
-                                                          32269,-5689,32269,-5689,32269,-5689,32269,-5689,
-                                                          31650,-8480,31650,-8480,31650,-8480,31650,-8480,
-                                                          30790,-11206,30790,-11206,30790,-11206,30790,-11206,
-                                                          29696,-13847,29696,-13847,29696,-13847,29696,-13847,
-                                                          28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                          26841,-18794,26841,-18794,26841,-18794,26841,-18794,
-                                                          25100,-21062,25100,-21062,25100,-21062,25100,-21062,
-                                                          23169,-23169,23169,-23169,23169,-23169,23169,-23169,
-                                                          21062,-25100,21062,-25100,21062,-25100,21062,-25100,
-                                                          18794,-26841,18794,-26841,18794,-26841,18794,-26841,
-                                                          16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                          13847,-29696,13847,-29696,13847,-29696,13847,-29696,
-                                                          11206,-30790,11206,-30790,11206,-30790,11206,-30790,
-                                                          8480,-31650,8480,-31650,8480,-31650,8480,-31650,
-                                                          5689,-32269,5689,-32269,5689,-32269,5689,-32269,
-                                                          2855,-32642,2855,-32642,2855,-32642,2855,-32642,
-                                                          0,-32767,0,-32767,0,-32767,0,-32767,
-                                                          -2855,-32642,-2855,-32642,-2855,-32642,-2855,-32642,
-                                                          -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269,
-                                                          -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650,
-                                                          -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790,
-                                                          -13847,-29696,-13847,-29696,-13847,-29696,-13847,-29696,
-                                                          -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377,
-                                                          -18794,-26841,-18794,-26841,-18794,-26841,-18794,-26841,
-                                                          -21062,-25100,-21062,-25100,-21062,-25100,-21062,-25100,
-                                                          -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169,
-                                                          -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062,
-                                                          -26841,-18794,-26841,-18794,-26841,-18794,-26841,-18794,
-                                                          -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383,
-                                                          -29696,-13847,-29696,-13847,-29696,-13847,-29696,-13847,
-                                                          -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206,
-                                                          -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480,
-                                                          -32269,-5689,-32269,-5689,-32269,-5689,-32269,-5689,
-                                                          -32642,-2855,-32642,-2855,-32642,-2855,-32642,-2855,
-                                                          -32767,0,-32767,0,-32767,0,-32767,0,
-                                                          -32642,2855,-32642,2855,-32642,2855,-32642,2855,
-                                                          -32269,5689,-32269,5689,-32269,5689,-32269,5689,
-                                                          -31650,8480,-31650,8480,-31650,8480,-31650,8480,
-                                                          -30790,11206,-30790,11206,-30790,11206,-30790,11206,
-                                                          -29696,13847,-29696,13847,-29696,13847,-29696,13847,
-                                                          -28377,16383,-28377,16383,-28377,16383,-28377,16383,
-                                                          -26841,18794,-26841,18794,-26841,18794,-26841,18794,
-                                                          -25100,21062,-25100,21062,-25100,21062,-25100,21062,
-                                                          -23169,23169,-23169,23169,-23169,23169,-23169,23169,
-                                                          -21062,25100,-21062,25100,-21062,25100,-21062,25100,
-                                                          -18794,26841,-18794,26841,-18794,26841,-18794,26841
-                                                         };
+static int16_t twa144[376]__attribute__((aligned(32)));
+static int16_t twb144[376]__attribute__((aligned(32)));
 
 void dft144(int16_t *x,int16_t *y,unsigned char scale_flag)
 {
-
   int i,j;
   simd_q15_t *x128=(simd_q15_t *)x;
   simd_q15_t *y128=(simd_q15_t *)y;
@@ -7341,127 +7184,8 @@ void dft144(int16_t *x,int16_t *y,unsigned char scale_flag)
 
 }
 
-static int16_t twa180[472]__attribute__((aligned(32))) = {32747,-1143,32747,-1143,32747,-1143,32747,-1143,
-                                                          32687,-2285,32687,-2285,32687,-2285,32687,-2285,
-                                                          32587,-3425,32587,-3425,32587,-3425,32587,-3425,
-                                                          32448,-4560,32448,-4560,32448,-4560,32448,-4560,
-                                                          32269,-5689,32269,-5689,32269,-5689,32269,-5689,
-                                                          32050,-6812,32050,-6812,32050,-6812,32050,-6812,
-                                                          31793,-7927,31793,-7927,31793,-7927,31793,-7927,
-                                                          31497,-9031,31497,-9031,31497,-9031,31497,-9031,
-                                                          31163,-10125,31163,-10125,31163,-10125,31163,-10125,
-                                                          30790,-11206,30790,-11206,30790,-11206,30790,-11206,
-                                                          30381,-12274,30381,-12274,30381,-12274,30381,-12274,
-                                                          29934,-13327,29934,-13327,29934,-13327,29934,-13327,
-                                                          29450,-14364,29450,-14364,29450,-14364,29450,-14364,
-                                                          28931,-15383,28931,-15383,28931,-15383,28931,-15383,
-                                                          28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                          27787,-17363,27787,-17363,27787,-17363,27787,-17363,
-                                                          27165,-18323,27165,-18323,27165,-18323,27165,-18323,
-                                                          26509,-19259,26509,-19259,26509,-19259,26509,-19259,
-                                                          25820,-20173,25820,-20173,25820,-20173,25820,-20173,
-                                                          25100,-21062,25100,-21062,25100,-21062,25100,-21062,
-                                                          24350,-21925,24350,-21925,24350,-21925,24350,-21925,
-                                                          23570,-22761,23570,-22761,23570,-22761,23570,-22761,
-                                                          22761,-23570,22761,-23570,22761,-23570,22761,-23570,
-                                                          21925,-24350,21925,-24350,21925,-24350,21925,-24350,
-                                                          21062,-25100,21062,-25100,21062,-25100,21062,-25100,
-                                                          20173,-25820,20173,-25820,20173,-25820,20173,-25820,
-                                                          19259,-26509,19259,-26509,19259,-26509,19259,-26509,
-                                                          18323,-27165,18323,-27165,18323,-27165,18323,-27165,
-                                                          17363,-27787,17363,-27787,17363,-27787,17363,-27787,
-                                                          16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                          15383,-28931,15383,-28931,15383,-28931,15383,-28931,
-                                                          14364,-29450,14364,-29450,14364,-29450,14364,-29450,
-                                                          13327,-29934,13327,-29934,13327,-29934,13327,-29934,
-                                                          12274,-30381,12274,-30381,12274,-30381,12274,-30381,
-                                                          11206,-30790,11206,-30790,11206,-30790,11206,-30790,
-                                                          10125,-31163,10125,-31163,10125,-31163,10125,-31163,
-                                                          9031,-31497,9031,-31497,9031,-31497,9031,-31497,
-                                                          7927,-31793,7927,-31793,7927,-31793,7927,-31793,
-                                                          6812,-32050,6812,-32050,6812,-32050,6812,-32050,
-                                                          5689,-32269,5689,-32269,5689,-32269,5689,-32269,
-                                                          4560,-32448,4560,-32448,4560,-32448,4560,-32448,
-                                                          3425,-32587,3425,-32587,3425,-32587,3425,-32587,
-                                                          2285,-32687,2285,-32687,2285,-32687,2285,-32687,
-                                                          1143,-32747,1143,-32747,1143,-32747,1143,-32747,
-                                                          0,-32767,0,-32767,0,-32767,0,-32767,
-                                                          -1143,-32747,-1143,-32747,-1143,-32747,-1143,-32747,
-                                                          -2285,-32687,-2285,-32687,-2285,-32687,-2285,-32687,
-                                                          -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587,
-                                                          -4560,-32448,-4560,-32448,-4560,-32448,-4560,-32448,
-                                                          -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269,
-                                                          -6812,-32050,-6812,-32050,-6812,-32050,-6812,-32050,
-                                                          -7927,-31793,-7927,-31793,-7927,-31793,-7927,-31793,
-                                                          -9031,-31497,-9031,-31497,-9031,-31497,-9031,-31497,
-                                                          -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163,
-                                                          -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790,
-                                                          -12274,-30381,-12274,-30381,-12274,-30381,-12274,-30381,
-                                                          -13327,-29934,-13327,-29934,-13327,-29934,-13327,-29934,
-                                                          -14364,-29450,-14364,-29450,-14364,-29450,-14364,-29450,
-                                                          -15383,-28931,-15383,-28931,-15383,-28931,-15383,-28931
-                                                         };
-
-static int16_t twb180[472]__attribute__((aligned(32))) = {32687,-2285,32687,-2285,32687,-2285,32687,-2285,
-                                                          32448,-4560,32448,-4560,32448,-4560,32448,-4560,
-                                                          32050,-6812,32050,-6812,32050,-6812,32050,-6812,
-                                                          31497,-9031,31497,-9031,31497,-9031,31497,-9031,
-                                                          30790,-11206,30790,-11206,30790,-11206,30790,-11206,
-                                                          29934,-13327,29934,-13327,29934,-13327,29934,-13327,
-                                                          28931,-15383,28931,-15383,28931,-15383,28931,-15383,
-                                                          27787,-17363,27787,-17363,27787,-17363,27787,-17363,
-                                                          26509,-19259,26509,-19259,26509,-19259,26509,-19259,
-                                                          25100,-21062,25100,-21062,25100,-21062,25100,-21062,
-                                                          23570,-22761,23570,-22761,23570,-22761,23570,-22761,
-                                                          21925,-24350,21925,-24350,21925,-24350,21925,-24350,
-                                                          20173,-25820,20173,-25820,20173,-25820,20173,-25820,
-                                                          18323,-27165,18323,-27165,18323,-27165,18323,-27165,
-                                                          16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                          14364,-29450,14364,-29450,14364,-29450,14364,-29450,
-                                                          12274,-30381,12274,-30381,12274,-30381,12274,-30381,
-                                                          10125,-31163,10125,-31163,10125,-31163,10125,-31163,
-                                                          7927,-31793,7927,-31793,7927,-31793,7927,-31793,
-                                                          5689,-32269,5689,-32269,5689,-32269,5689,-32269,
-                                                          3425,-32587,3425,-32587,3425,-32587,3425,-32587,
-                                                          1143,-32747,1143,-32747,1143,-32747,1143,-32747,
-                                                          -1143,-32747,-1143,-32747,-1143,-32747,-1143,-32747,
-                                                          -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587,
-                                                          -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269,
-                                                          -7927,-31793,-7927,-31793,-7927,-31793,-7927,-31793,
-                                                          -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163,
-                                                          -12274,-30381,-12274,-30381,-12274,-30381,-12274,-30381,
-                                                          -14364,-29450,-14364,-29450,-14364,-29450,-14364,-29450,
-                                                          -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377,
-                                                          -18323,-27165,-18323,-27165,-18323,-27165,-18323,-27165,
-                                                          -20173,-25820,-20173,-25820,-20173,-25820,-20173,-25820,
-                                                          -21925,-24350,-21925,-24350,-21925,-24350,-21925,-24350,
-                                                          -23570,-22761,-23570,-22761,-23570,-22761,-23570,-22761,
-                                                          -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062,
-                                                          -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259,
-                                                          -27787,-17363,-27787,-17363,-27787,-17363,-27787,-17363,
-                                                          -28931,-15383,-28931,-15383,-28931,-15383,-28931,-15383,
-                                                          -29934,-13327,-29934,-13327,-29934,-13327,-29934,-13327,
-                                                          -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206,
-                                                          -31497,-9031,-31497,-9031,-31497,-9031,-31497,-9031,
-                                                          -32050,-6812,-32050,-6812,-32050,-6812,-32050,-6812,
-                                                          -32448,-4560,-32448,-4560,-32448,-4560,-32448,-4560,
-                                                          -32687,-2285,-32687,-2285,-32687,-2285,-32687,-2285,
-                                                          -32767,0,-32767,0,-32767,0,-32767,0,
-                                                          -32687,2285,-32687,2285,-32687,2285,-32687,2285,
-                                                          -32448,4560,-32448,4560,-32448,4560,-32448,4560,
-                                                          -32050,6812,-32050,6812,-32050,6812,-32050,6812,
-                                                          -31497,9031,-31497,9031,-31497,9031,-31497,9031,
-                                                          -30790,11206,-30790,11206,-30790,11206,-30790,11206,
-                                                          -29934,13327,-29934,13327,-29934,13327,-29934,13327,
-                                                          -28931,15383,-28931,15383,-28931,15383,-28931,15383,
-                                                          -27787,17363,-27787,17363,-27787,17363,-27787,17363,
-                                                          -26509,19259,-26509,19259,-26509,19259,-26509,19259,
-                                                          -25100,21062,-25100,21062,-25100,21062,-25100,21062,
-                                                          -23570,22761,-23570,22761,-23570,22761,-23570,22761,
-                                                          -21925,24350,-21925,24350,-21925,24350,-21925,24350,
-                                                          -20173,25820,-20173,25820,-20173,25820,-20173,25820,
-                                                          -18323,27165,-18323,27165,-18323,27165,-18323,27165
-                                                         };
+static int16_t twa180[472]__attribute__((aligned(32)));
+static int16_t twb180[472]__attribute__((aligned(32)));
 
 void dft180(int16_t *x,int16_t *y,unsigned char scale_flag)
 {
@@ -7512,152 +7236,9 @@ void dft180(int16_t *x,int16_t *y,unsigned char scale_flag)
 
 }
 
-static int16_t twa192[376]__attribute__((aligned(32))) = {32749,-1072,32749,-1072,32749,-1072,32749,-1072,
-                                                          32696,-2143,32696,-2143,32696,-2143,32696,-2143,
-                                                          32609,-3211,32609,-3211,32609,-3211,32609,-3211,
-                                                          32486,-4276,32486,-4276,32486,-4276,32486,-4276,
-                                                          32329,-5337,32329,-5337,32329,-5337,32329,-5337,
-                                                          32137,-6392,32137,-6392,32137,-6392,32137,-6392,
-                                                          31911,-7440,31911,-7440,31911,-7440,31911,-7440,
-                                                          31650,-8480,31650,-8480,31650,-8480,31650,-8480,
-                                                          31356,-9511,31356,-9511,31356,-9511,31356,-9511,
-                                                          31028,-10532,31028,-10532,31028,-10532,31028,-10532,
-                                                          30666,-11542,30666,-11542,30666,-11542,30666,-11542,
-                                                          30272,-12539,30272,-12539,30272,-12539,30272,-12539,
-                                                          29846,-13523,29846,-13523,29846,-13523,29846,-13523,
-                                                          29387,-14492,29387,-14492,29387,-14492,29387,-14492,
-                                                          28897,-15446,28897,-15446,28897,-15446,28897,-15446,
-                                                          28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                          27825,-17303,27825,-17303,27825,-17303,27825,-17303,
-                                                          27244,-18204,27244,-18204,27244,-18204,27244,-18204,
-                                                          26634,-19086,26634,-19086,26634,-19086,26634,-19086,
-                                                          25995,-19947,25995,-19947,25995,-19947,25995,-19947,
-                                                          25329,-20787,25329,-20787,25329,-20787,25329,-20787,
-                                                          24635,-21604,24635,-21604,24635,-21604,24635,-21604,
-                                                          23915,-22399,23915,-22399,23915,-22399,23915,-22399,
-                                                          23169,-23169,23169,-23169,23169,-23169,23169,-23169,
-                                                          22399,-23915,22399,-23915,22399,-23915,22399,-23915,
-                                                          21604,-24635,21604,-24635,21604,-24635,21604,-24635,
-                                                          20787,-25329,20787,-25329,20787,-25329,20787,-25329,
-                                                          19947,-25995,19947,-25995,19947,-25995,19947,-25995,
-                                                          19086,-26634,19086,-26634,19086,-26634,19086,-26634,
-                                                          18204,-27244,18204,-27244,18204,-27244,18204,-27244,
-                                                          17303,-27825,17303,-27825,17303,-27825,17303,-27825,
-                                                          16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                          15446,-28897,15446,-28897,15446,-28897,15446,-28897,
-                                                          14492,-29387,14492,-29387,14492,-29387,14492,-29387,
-                                                          13523,-29846,13523,-29846,13523,-29846,13523,-29846,
-                                                          12539,-30272,12539,-30272,12539,-30272,12539,-30272,
-                                                          11542,-30666,11542,-30666,11542,-30666,11542,-30666,
-                                                          10532,-31028,10532,-31028,10532,-31028,10532,-31028,
-                                                          9511,-31356,9511,-31356,9511,-31356,9511,-31356,
-                                                          8480,-31650,8480,-31650,8480,-31650,8480,-31650,
-                                                          7440,-31911,7440,-31911,7440,-31911,7440,-31911,
-                                                          6392,-32137,6392,-32137,6392,-32137,6392,-32137,
-                                                          5337,-32329,5337,-32329,5337,-32329,5337,-32329,
-                                                          4276,-32486,4276,-32486,4276,-32486,4276,-32486,
-                                                          3211,-32609,3211,-32609,3211,-32609,3211,-32609,
-                                                          2143,-32696,2143,-32696,2143,-32696,2143,-32696,
-                                                          1072,-32749,1072,-32749,1072,-32749,1072,-32749
-                                                         };
-
-static int16_t twb192[376]__attribute__((aligned(32))) = {32696,-2143,32696,-2143,32696,-2143,32696,-2143,
-                                                          32486,-4276,32486,-4276,32486,-4276,32486,-4276,
-                                                          32137,-6392,32137,-6392,32137,-6392,32137,-6392,
-                                                          31650,-8480,31650,-8480,31650,-8480,31650,-8480,
-                                                          31028,-10532,31028,-10532,31028,-10532,31028,-10532,
-                                                          30272,-12539,30272,-12539,30272,-12539,30272,-12539,
-                                                          29387,-14492,29387,-14492,29387,-14492,29387,-14492,
-                                                          28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                          27244,-18204,27244,-18204,27244,-18204,27244,-18204,
-                                                          25995,-19947,25995,-19947,25995,-19947,25995,-19947,
-                                                          24635,-21604,24635,-21604,24635,-21604,24635,-21604,
-                                                          23169,-23169,23169,-23169,23169,-23169,23169,-23169,
-                                                          21604,-24635,21604,-24635,21604,-24635,21604,-24635,
-                                                          19947,-25995,19947,-25995,19947,-25995,19947,-25995,
-                                                          18204,-27244,18204,-27244,18204,-27244,18204,-27244,
-                                                          16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                          14492,-29387,14492,-29387,14492,-29387,14492,-29387,
-                                                          12539,-30272,12539,-30272,12539,-30272,12539,-30272,
-                                                          10532,-31028,10532,-31028,10532,-31028,10532,-31028,
-                                                          8480,-31650,8480,-31650,8480,-31650,8480,-31650,
-                                                          6392,-32137,6392,-32137,6392,-32137,6392,-32137,
-                                                          4276,-32486,4276,-32486,4276,-32486,4276,-32486,
-                                                          2143,-32696,2143,-32696,2143,-32696,2143,-32696,
-                                                          0,-32767,0,-32767,0,-32767,0,-32767,
-                                                          -2143,-32696,-2143,-32696,-2143,-32696,-2143,-32696,
-                                                          -4276,-32486,-4276,-32486,-4276,-32486,-4276,-32486,
-                                                          -6392,-32137,-6392,-32137,-6392,-32137,-6392,-32137,
-                                                          -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650,
-                                                          -10532,-31028,-10532,-31028,-10532,-31028,-10532,-31028,
-                                                          -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272,
-                                                          -14492,-29387,-14492,-29387,-14492,-29387,-14492,-29387,
-                                                          -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377,
-                                                          -18204,-27244,-18204,-27244,-18204,-27244,-18204,-27244,
-                                                          -19947,-25995,-19947,-25995,-19947,-25995,-19947,-25995,
-                                                          -21604,-24635,-21604,-24635,-21604,-24635,-21604,-24635,
-                                                          -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169,
-                                                          -24635,-21604,-24635,-21604,-24635,-21604,-24635,-21604,
-                                                          -25995,-19947,-25995,-19947,-25995,-19947,-25995,-19947,
-                                                          -27244,-18204,-27244,-18204,-27244,-18204,-27244,-18204,
-                                                          -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383,
-                                                          -29387,-14492,-29387,-14492,-29387,-14492,-29387,-14492,
-                                                          -30272,-12539,-30272,-12539,-30272,-12539,-30272,-12539,
-                                                          -31028,-10532,-31028,-10532,-31028,-10532,-31028,-10532,
-                                                          -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480,
-                                                          -32137,-6392,-32137,-6392,-32137,-6392,-32137,-6392,
-                                                          -32486,-4276,-32486,-4276,-32486,-4276,-32486,-4276,
-                                                          -32696,-2143,-32696,-2143,-32696,-2143,-32696,-2143
-                                                         };
-
-static int16_t twc192[376]__attribute__((aligned(32))) = {32609,-3211,32609,-3211,32609,-3211,32609,-3211,
-                                                          32137,-6392,32137,-6392,32137,-6392,32137,-6392,
-                                                          31356,-9511,31356,-9511,31356,-9511,31356,-9511,
-                                                          30272,-12539,30272,-12539,30272,-12539,30272,-12539,
-                                                          28897,-15446,28897,-15446,28897,-15446,28897,-15446,
-                                                          27244,-18204,27244,-18204,27244,-18204,27244,-18204,
-                                                          25329,-20787,25329,-20787,25329,-20787,25329,-20787,
-                                                          23169,-23169,23169,-23169,23169,-23169,23169,-23169,
-                                                          20787,-25329,20787,-25329,20787,-25329,20787,-25329,
-                                                          18204,-27244,18204,-27244,18204,-27244,18204,-27244,
-                                                          15446,-28897,15446,-28897,15446,-28897,15446,-28897,
-                                                          12539,-30272,12539,-30272,12539,-30272,12539,-30272,
-                                                          9511,-31356,9511,-31356,9511,-31356,9511,-31356,
-                                                          6392,-32137,6392,-32137,6392,-32137,6392,-32137,
-                                                          3211,-32609,3211,-32609,3211,-32609,3211,-32609,
-                                                          0,-32767,0,-32767,0,-32767,0,-32767,
-                                                          -3211,-32609,-3211,-32609,-3211,-32609,-3211,-32609,
-                                                          -6392,-32137,-6392,-32137,-6392,-32137,-6392,-32137,
-                                                          -9511,-31356,-9511,-31356,-9511,-31356,-9511,-31356,
-                                                          -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272,
-                                                          -15446,-28897,-15446,-28897,-15446,-28897,-15446,-28897,
-                                                          -18204,-27244,-18204,-27244,-18204,-27244,-18204,-27244,
-                                                          -20787,-25329,-20787,-25329,-20787,-25329,-20787,-25329,
-                                                          -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169,
-                                                          -25329,-20787,-25329,-20787,-25329,-20787,-25329,-20787,
-                                                          -27244,-18204,-27244,-18204,-27244,-18204,-27244,-18204,
-                                                          -28897,-15446,-28897,-15446,-28897,-15446,-28897,-15446,
-                                                          -30272,-12539,-30272,-12539,-30272,-12539,-30272,-12539,
-                                                          -31356,-9511,-31356,-9511,-31356,-9511,-31356,-9511,
-                                                          -32137,-6392,-32137,-6392,-32137,-6392,-32137,-6392,
-                                                          -32609,-3211,-32609,-3211,-32609,-3211,-32609,-3211,
-                                                          -32767,0,-32767,0,-32767,0,-32767,0,
-                                                          -32609,3211,-32609,3211,-32609,3211,-32609,3211,
-                                                          -32137,6392,-32137,6392,-32137,6392,-32137,6392,
-                                                          -31356,9511,-31356,9511,-31356,9511,-31356,9511,
-                                                          -30272,12539,-30272,12539,-30272,12539,-30272,12539,
-                                                          -28897,15446,-28897,15446,-28897,15446,-28897,15446,
-                                                          -27244,18204,-27244,18204,-27244,18204,-27244,18204,
-                                                          -25329,20787,-25329,20787,-25329,20787,-25329,20787,
-                                                          -23169,23169,-23169,23169,-23169,23169,-23169,23169,
-                                                          -20787,25329,-20787,25329,-20787,25329,-20787,25329,
-                                                          -18204,27244,-18204,27244,-18204,27244,-18204,27244,
-                                                          -15446,28897,-15446,28897,-15446,28897,-15446,28897,
-                                                          -12539,30272,-12539,30272,-12539,30272,-12539,30272,
-                                                          -9511,31356,-9511,31356,-9511,31356,-9511,31356,
-                                                          -6392,32137,-6392,32137,-6392,32137,-6392,32137,
-                                                          -3211,32609,-3211,32609,-3211,32609,-3211,32609
-                                                         };
+static int16_t twa192[376]__attribute__((aligned(32)));
+static int16_t twb192[376]__attribute__((aligned(32)));
+static int16_t twc192[376]__attribute__((aligned(32)));
 
 void dft192(int16_t *x,int16_t *y,unsigned char scale_flag)
 {
@@ -7714,151 +7295,8 @@ void dft192(int16_t *x,int16_t *y,unsigned char scale_flag)
 
 }
 
-static int16_t twa216[568]__attribute__((aligned(32))) = {32753,-953,32753,-953,32753,-953,32753,-953,
-                                                          32711,-1905,32711,-1905,32711,-1905,32711,-1905,
-                                                          32642,-2855,32642,-2855,32642,-2855,32642,-2855,
-                                                          32545,-3804,32545,-3804,32545,-3804,32545,-3804,
-                                                          32421,-4748,32421,-4748,32421,-4748,32421,-4748,
-                                                          32269,-5689,32269,-5689,32269,-5689,32269,-5689,
-                                                          32090,-6626,32090,-6626,32090,-6626,32090,-6626,
-                                                          31883,-7556,31883,-7556,31883,-7556,31883,-7556,
-                                                          31650,-8480,31650,-8480,31650,-8480,31650,-8480,
-                                                          31390,-9397,31390,-9397,31390,-9397,31390,-9397,
-                                                          31103,-10306,31103,-10306,31103,-10306,31103,-10306,
-                                                          30790,-11206,30790,-11206,30790,-11206,30790,-11206,
-                                                          30451,-12097,30451,-12097,30451,-12097,30451,-12097,
-                                                          30087,-12978,30087,-12978,30087,-12978,30087,-12978,
-                                                          29696,-13847,29696,-13847,29696,-13847,29696,-13847,
-                                                          29281,-14705,29281,-14705,29281,-14705,29281,-14705,
-                                                          28841,-15551,28841,-15551,28841,-15551,28841,-15551,
-                                                          28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                          27888,-17201,27888,-17201,27888,-17201,27888,-17201,
-                                                          27376,-18005,27376,-18005,27376,-18005,27376,-18005,
-                                                          26841,-18794,26841,-18794,26841,-18794,26841,-18794,
-                                                          26283,-19567,26283,-19567,26283,-19567,26283,-19567,
-                                                          25702,-20323,25702,-20323,25702,-20323,25702,-20323,
-                                                          25100,-21062,25100,-21062,25100,-21062,25100,-21062,
-                                                          24477,-21783,24477,-21783,24477,-21783,24477,-21783,
-                                                          23833,-22486,23833,-22486,23833,-22486,23833,-22486,
-                                                          23169,-23169,23169,-23169,23169,-23169,23169,-23169,
-                                                          22486,-23833,22486,-23833,22486,-23833,22486,-23833,
-                                                          21783,-24477,21783,-24477,21783,-24477,21783,-24477,
-                                                          21062,-25100,21062,-25100,21062,-25100,21062,-25100,
-                                                          20323,-25702,20323,-25702,20323,-25702,20323,-25702,
-                                                          19567,-26283,19567,-26283,19567,-26283,19567,-26283,
-                                                          18794,-26841,18794,-26841,18794,-26841,18794,-26841,
-                                                          18005,-27376,18005,-27376,18005,-27376,18005,-27376,
-                                                          17201,-27888,17201,-27888,17201,-27888,17201,-27888,
-                                                          16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                          15551,-28841,15551,-28841,15551,-28841,15551,-28841,
-                                                          14705,-29281,14705,-29281,14705,-29281,14705,-29281,
-                                                          13847,-29696,13847,-29696,13847,-29696,13847,-29696,
-                                                          12978,-30087,12978,-30087,12978,-30087,12978,-30087,
-                                                          12097,-30451,12097,-30451,12097,-30451,12097,-30451,
-                                                          11206,-30790,11206,-30790,11206,-30790,11206,-30790,
-                                                          10306,-31103,10306,-31103,10306,-31103,10306,-31103,
-                                                          9397,-31390,9397,-31390,9397,-31390,9397,-31390,
-                                                          8480,-31650,8480,-31650,8480,-31650,8480,-31650,
-                                                          7556,-31883,7556,-31883,7556,-31883,7556,-31883,
-                                                          6626,-32090,6626,-32090,6626,-32090,6626,-32090,
-                                                          5689,-32269,5689,-32269,5689,-32269,5689,-32269,
-                                                          4748,-32421,4748,-32421,4748,-32421,4748,-32421,
-                                                          3804,-32545,3804,-32545,3804,-32545,3804,-32545,
-                                                          2855,-32642,2855,-32642,2855,-32642,2855,-32642,
-                                                          1905,-32711,1905,-32711,1905,-32711,1905,-32711,
-                                                          953,-32753,953,-32753,953,-32753,953,-32753,
-                                                          0,-32767,0,-32767,0,-32767,0,-32767,
-                                                          -953,-32753,-953,-32753,-953,-32753,-953,-32753,
-                                                          -1905,-32711,-1905,-32711,-1905,-32711,-1905,-32711,
-                                                          -2855,-32642,-2855,-32642,-2855,-32642,-2855,-32642,
-                                                          -3804,-32545,-3804,-32545,-3804,-32545,-3804,-32545,
-                                                          -4748,-32421,-4748,-32421,-4748,-32421,-4748,-32421,
-                                                          -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269,
-                                                          -6626,-32090,-6626,-32090,-6626,-32090,-6626,-32090,
-                                                          -7556,-31883,-7556,-31883,-7556,-31883,-7556,-31883,
-                                                          -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650,
-                                                          -9397,-31390,-9397,-31390,-9397,-31390,-9397,-31390,
-                                                          -10306,-31103,-10306,-31103,-10306,-31103,-10306,-31103,
-                                                          -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790,
-                                                          -12097,-30451,-12097,-30451,-12097,-30451,-12097,-30451,
-                                                          -12978,-30087,-12978,-30087,-12978,-30087,-12978,-30087,
-                                                          -13847,-29696,-13847,-29696,-13847,-29696,-13847,-29696,
-                                                          -14705,-29281,-14705,-29281,-14705,-29281,-14705,-29281,
-                                                          -15551,-28841,-15551,-28841,-15551,-28841,-15551,-28841
-                                                         };
-
-static int16_t twb216[568]__attribute__((aligned(32))) = {32711,-1905,32711,-1905,32711,-1905,32711,-1905,
-                                                          32545,-3804,32545,-3804,32545,-3804,32545,-3804,
-                                                          32269,-5689,32269,-5689,32269,-5689,32269,-5689,
-                                                          31883,-7556,31883,-7556,31883,-7556,31883,-7556,
-                                                          31390,-9397,31390,-9397,31390,-9397,31390,-9397,
-                                                          30790,-11206,30790,-11206,30790,-11206,30790,-11206,
-                                                          30087,-12978,30087,-12978,30087,-12978,30087,-12978,
-                                                          29281,-14705,29281,-14705,29281,-14705,29281,-14705,
-                                                          28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                          27376,-18005,27376,-18005,27376,-18005,27376,-18005,
-                                                          26283,-19567,26283,-19567,26283,-19567,26283,-19567,
-                                                          25100,-21062,25100,-21062,25100,-21062,25100,-21062,
-                                                          23833,-22486,23833,-22486,23833,-22486,23833,-22486,
-                                                          22486,-23833,22486,-23833,22486,-23833,22486,-23833,
-                                                          21062,-25100,21062,-25100,21062,-25100,21062,-25100,
-                                                          19567,-26283,19567,-26283,19567,-26283,19567,-26283,
-                                                          18005,-27376,18005,-27376,18005,-27376,18005,-27376,
-                                                          16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                          14705,-29281,14705,-29281,14705,-29281,14705,-29281,
-                                                          12978,-30087,12978,-30087,12978,-30087,12978,-30087,
-                                                          11206,-30790,11206,-30790,11206,-30790,11206,-30790,
-                                                          9397,-31390,9397,-31390,9397,-31390,9397,-31390,
-                                                          7556,-31883,7556,-31883,7556,-31883,7556,-31883,
-                                                          5689,-32269,5689,-32269,5689,-32269,5689,-32269,
-                                                          3804,-32545,3804,-32545,3804,-32545,3804,-32545,
-                                                          1905,-32711,1905,-32711,1905,-32711,1905,-32711,
-                                                          0,-32767,0,-32767,0,-32767,0,-32767,
-                                                          -1905,-32711,-1905,-32711,-1905,-32711,-1905,-32711,
-                                                          -3804,-32545,-3804,-32545,-3804,-32545,-3804,-32545,
-                                                          -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269,
-                                                          -7556,-31883,-7556,-31883,-7556,-31883,-7556,-31883,
-                                                          -9397,-31390,-9397,-31390,-9397,-31390,-9397,-31390,
-                                                          -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790,
-                                                          -12978,-30087,-12978,-30087,-12978,-30087,-12978,-30087,
-                                                          -14705,-29281,-14705,-29281,-14705,-29281,-14705,-29281,
-                                                          -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377,
-                                                          -18005,-27376,-18005,-27376,-18005,-27376,-18005,-27376,
-                                                          -19567,-26283,-19567,-26283,-19567,-26283,-19567,-26283,
-                                                          -21062,-25100,-21062,-25100,-21062,-25100,-21062,-25100,
-                                                          -22486,-23833,-22486,-23833,-22486,-23833,-22486,-23833,
-                                                          -23833,-22486,-23833,-22486,-23833,-22486,-23833,-22486,
-                                                          -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062,
-                                                          -26283,-19567,-26283,-19567,-26283,-19567,-26283,-19567,
-                                                          -27376,-18005,-27376,-18005,-27376,-18005,-27376,-18005,
-                                                          -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383,
-                                                          -29281,-14705,-29281,-14705,-29281,-14705,-29281,-14705,
-                                                          -30087,-12978,-30087,-12978,-30087,-12978,-30087,-12978,
-                                                          -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206,
-                                                          -31390,-9397,-31390,-9397,-31390,-9397,-31390,-9397,
-                                                          -31883,-7556,-31883,-7556,-31883,-7556,-31883,-7556,
-                                                          -32269,-5689,-32269,-5689,-32269,-5689,-32269,-5689,
-                                                          -32545,-3804,-32545,-3804,-32545,-3804,-32545,-3804,
-                                                          -32711,-1905,-32711,-1905,-32711,-1905,-32711,-1905,
-                                                          -32767,0,-32767,0,-32767,0,-32767,0,
-                                                          -32711,1905,-32711,1905,-32711,1905,-32711,1905,
-                                                          -32545,3804,-32545,3804,-32545,3804,-32545,3804,
-                                                          -32269,5689,-32269,5689,-32269,5689,-32269,5689,
-                                                          -31883,7556,-31883,7556,-31883,7556,-31883,7556,
-                                                          -31390,9397,-31390,9397,-31390,9397,-31390,9397,
-                                                          -30790,11206,-30790,11206,-30790,11206,-30790,11206,
-                                                          -30087,12978,-30087,12978,-30087,12978,-30087,12978,
-                                                          -29281,14705,-29281,14705,-29281,14705,-29281,14705,
-                                                          -28377,16383,-28377,16383,-28377,16383,-28377,16383,
-                                                          -27376,18005,-27376,18005,-27376,18005,-27376,18005,
-                                                          -26283,19567,-26283,19567,-26283,19567,-26283,19567,
-                                                          -25100,21062,-25100,21062,-25100,21062,-25100,21062,
-                                                          -23833,22486,-23833,22486,-23833,22486,-23833,22486,
-                                                          -22486,23833,-22486,23833,-22486,23833,-22486,23833,
-                                                          -21062,25100,-21062,25100,-21062,25100,-21062,25100,
-                                                          -19567,26283,-19567,26283,-19567,26283,-19567,26283,
-                                                          -18005,27376,-18005,27376,-18005,27376,-18005,27376
-                                                         };
+static int16_t twa216[568]__attribute__((aligned(32)));
+static int16_t twb216[568]__attribute__((aligned(32)));
 
 void dft216(int16_t *x,int16_t *y,unsigned char scale_flag)
 {
@@ -7909,188 +7347,9 @@ void dft216(int16_t *x,int16_t *y,unsigned char scale_flag)
 
 }
 
-static int16_t twa240[472]__attribute__((aligned(32))) = {32755,-857,32755,-857,32755,-857,32755,-857,
-                                                          32722,-1714,32722,-1714,32722,-1714,32722,-1714,
-                                                          32665,-2570,32665,-2570,32665,-2570,32665,-2570,
-                                                          32587,-3425,32587,-3425,32587,-3425,32587,-3425,
-                                                          32486,-4276,32486,-4276,32486,-4276,32486,-4276,
-                                                          32363,-5125,32363,-5125,32363,-5125,32363,-5125,
-                                                          32218,-5971,32218,-5971,32218,-5971,32218,-5971,
-                                                          32050,-6812,32050,-6812,32050,-6812,32050,-6812,
-                                                          31861,-7649,31861,-7649,31861,-7649,31861,-7649,
-                                                          31650,-8480,31650,-8480,31650,-8480,31650,-8480,
-                                                          31417,-9306,31417,-9306,31417,-9306,31417,-9306,
-                                                          31163,-10125,31163,-10125,31163,-10125,31163,-10125,
-                                                          30887,-10937,30887,-10937,30887,-10937,30887,-10937,
-                                                          30590,-11742,30590,-11742,30590,-11742,30590,-11742,
-                                                          30272,-12539,30272,-12539,30272,-12539,30272,-12539,
-                                                          29934,-13327,29934,-13327,29934,-13327,29934,-13327,
-                                                          29575,-14106,29575,-14106,29575,-14106,29575,-14106,
-                                                          29195,-14875,29195,-14875,29195,-14875,29195,-14875,
-                                                          28796,-15635,28796,-15635,28796,-15635,28796,-15635,
-                                                          28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                          27938,-17120,27938,-17120,27938,-17120,27938,-17120,
-                                                          27480,-17846,27480,-17846,27480,-17846,27480,-17846,
-                                                          27004,-18559,27004,-18559,27004,-18559,27004,-18559,
-                                                          26509,-19259,26509,-19259,26509,-19259,26509,-19259,
-                                                          25995,-19947,25995,-19947,25995,-19947,25995,-19947,
-                                                          25464,-20620,25464,-20620,25464,-20620,25464,-20620,
-                                                          24916,-21280,24916,-21280,24916,-21280,24916,-21280,
-                                                          24350,-21925,24350,-21925,24350,-21925,24350,-21925,
-                                                          23768,-22555,23768,-22555,23768,-22555,23768,-22555,
-                                                          23169,-23169,23169,-23169,23169,-23169,23169,-23169,
-                                                          22555,-23768,22555,-23768,22555,-23768,22555,-23768,
-                                                          21925,-24350,21925,-24350,21925,-24350,21925,-24350,
-                                                          21280,-24916,21280,-24916,21280,-24916,21280,-24916,
-                                                          20620,-25464,20620,-25464,20620,-25464,20620,-25464,
-                                                          19947,-25995,19947,-25995,19947,-25995,19947,-25995,
-                                                          19259,-26509,19259,-26509,19259,-26509,19259,-26509,
-                                                          18559,-27004,18559,-27004,18559,-27004,18559,-27004,
-                                                          17846,-27480,17846,-27480,17846,-27480,17846,-27480,
-                                                          17120,-27938,17120,-27938,17120,-27938,17120,-27938,
-                                                          16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                          15635,-28796,15635,-28796,15635,-28796,15635,-28796,
-                                                          14875,-29195,14875,-29195,14875,-29195,14875,-29195,
-                                                          14106,-29575,14106,-29575,14106,-29575,14106,-29575,
-                                                          13327,-29934,13327,-29934,13327,-29934,13327,-29934,
-                                                          12539,-30272,12539,-30272,12539,-30272,12539,-30272,
-                                                          11742,-30590,11742,-30590,11742,-30590,11742,-30590,
-                                                          10937,-30887,10937,-30887,10937,-30887,10937,-30887,
-                                                          10125,-31163,10125,-31163,10125,-31163,10125,-31163,
-                                                          9306,-31417,9306,-31417,9306,-31417,9306,-31417,
-                                                          8480,-31650,8480,-31650,8480,-31650,8480,-31650,
-                                                          7649,-31861,7649,-31861,7649,-31861,7649,-31861,
-                                                          6812,-32050,6812,-32050,6812,-32050,6812,-32050,
-                                                          5971,-32218,5971,-32218,5971,-32218,5971,-32218,
-                                                          5125,-32363,5125,-32363,5125,-32363,5125,-32363,
-                                                          4276,-32486,4276,-32486,4276,-32486,4276,-32486,
-                                                          3425,-32587,3425,-32587,3425,-32587,3425,-32587,
-                                                          2570,-32665,2570,-32665,2570,-32665,2570,-32665,
-                                                          1714,-32722,1714,-32722,1714,-32722,1714,-32722,
-                                                          857,-32755,857,-32755,857,-32755,857,-32755
-                                                         };
-
-static int16_t twb240[472]__attribute__((aligned(32))) = {32722,-1714,32722,-1714,32722,-1714,32722,-1714,
-                                                          32587,-3425,32587,-3425,32587,-3425,32587,-3425,
-                                                          32363,-5125,32363,-5125,32363,-5125,32363,-5125,
-                                                          32050,-6812,32050,-6812,32050,-6812,32050,-6812,
-                                                          31650,-8480,31650,-8480,31650,-8480,31650,-8480,
-                                                          31163,-10125,31163,-10125,31163,-10125,31163,-10125,
-                                                          30590,-11742,30590,-11742,30590,-11742,30590,-11742,
-                                                          29934,-13327,29934,-13327,29934,-13327,29934,-13327,
-                                                          29195,-14875,29195,-14875,29195,-14875,29195,-14875,
-                                                          28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                          27480,-17846,27480,-17846,27480,-17846,27480,-17846,
-                                                          26509,-19259,26509,-19259,26509,-19259,26509,-19259,
-                                                          25464,-20620,25464,-20620,25464,-20620,25464,-20620,
-                                                          24350,-21925,24350,-21925,24350,-21925,24350,-21925,
-                                                          23169,-23169,23169,-23169,23169,-23169,23169,-23169,
-                                                          21925,-24350,21925,-24350,21925,-24350,21925,-24350,
-                                                          20620,-25464,20620,-25464,20620,-25464,20620,-25464,
-                                                          19259,-26509,19259,-26509,19259,-26509,19259,-26509,
-                                                          17846,-27480,17846,-27480,17846,-27480,17846,-27480,
-                                                          16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                          14875,-29195,14875,-29195,14875,-29195,14875,-29195,
-                                                          13327,-29934,13327,-29934,13327,-29934,13327,-29934,
-                                                          11742,-30590,11742,-30590,11742,-30590,11742,-30590,
-                                                          10125,-31163,10125,-31163,10125,-31163,10125,-31163,
-                                                          8480,-31650,8480,-31650,8480,-31650,8480,-31650,
-                                                          6812,-32050,6812,-32050,6812,-32050,6812,-32050,
-                                                          5125,-32363,5125,-32363,5125,-32363,5125,-32363,
-                                                          3425,-32587,3425,-32587,3425,-32587,3425,-32587,
-                                                          1714,-32722,1714,-32722,1714,-32722,1714,-32722,
-                                                          0,-32767,0,-32767,0,-32767,0,-32767,
-                                                          -1714,-32722,-1714,-32722,-1714,-32722,-1714,-32722,
-                                                          -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587,
-                                                          -5125,-32363,-5125,-32363,-5125,-32363,-5125,-32363,
-                                                          -6812,-32050,-6812,-32050,-6812,-32050,-6812,-32050,
-                                                          -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650,
-                                                          -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163,
-                                                          -11742,-30590,-11742,-30590,-11742,-30590,-11742,-30590,
-                                                          -13327,-29934,-13327,-29934,-13327,-29934,-13327,-29934,
-                                                          -14875,-29195,-14875,-29195,-14875,-29195,-14875,-29195,
-                                                          -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377,
-                                                          -17846,-27480,-17846,-27480,-17846,-27480,-17846,-27480,
-                                                          -19259,-26509,-19259,-26509,-19259,-26509,-19259,-26509,
-                                                          -20620,-25464,-20620,-25464,-20620,-25464,-20620,-25464,
-                                                          -21925,-24350,-21925,-24350,-21925,-24350,-21925,-24350,
-                                                          -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169,
-                                                          -24350,-21925,-24350,-21925,-24350,-21925,-24350,-21925,
-                                                          -25464,-20620,-25464,-20620,-25464,-20620,-25464,-20620,
-                                                          -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259,
-                                                          -27480,-17846,-27480,-17846,-27480,-17846,-27480,-17846,
-                                                          -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383,
-                                                          -29195,-14875,-29195,-14875,-29195,-14875,-29195,-14875,
-                                                          -29934,-13327,-29934,-13327,-29934,-13327,-29934,-13327,
-                                                          -30590,-11742,-30590,-11742,-30590,-11742,-30590,-11742,
-                                                          -31163,-10125,-31163,-10125,-31163,-10125,-31163,-10125,
-                                                          -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480,
-                                                          -32050,-6812,-32050,-6812,-32050,-6812,-32050,-6812,
-                                                          -32363,-5125,-32363,-5125,-32363,-5125,-32363,-5125,
-                                                          -32587,-3425,-32587,-3425,-32587,-3425,-32587,-3425,
-                                                          -32722,-1714,-32722,-1714,-32722,-1714,-32722,-1714
-                                                         };
-
-static int16_t twc240[472]__attribute__((aligned(32))) = {32665,-2570,32665,-2570,32665,-2570,32665,-2570,
-                                                          32363,-5125,32363,-5125,32363,-5125,32363,-5125,
-                                                          31861,-7649,31861,-7649,31861,-7649,31861,-7649,
-                                                          31163,-10125,31163,-10125,31163,-10125,31163,-10125,
-                                                          30272,-12539,30272,-12539,30272,-12539,30272,-12539,
-                                                          29195,-14875,29195,-14875,29195,-14875,29195,-14875,
-                                                          27938,-17120,27938,-17120,27938,-17120,27938,-17120,
-                                                          26509,-19259,26509,-19259,26509,-19259,26509,-19259,
-                                                          24916,-21280,24916,-21280,24916,-21280,24916,-21280,
-                                                          23169,-23169,23169,-23169,23169,-23169,23169,-23169,
-                                                          21280,-24916,21280,-24916,21280,-24916,21280,-24916,
-                                                          19259,-26509,19259,-26509,19259,-26509,19259,-26509,
-                                                          17120,-27938,17120,-27938,17120,-27938,17120,-27938,
-                                                          14875,-29195,14875,-29195,14875,-29195,14875,-29195,
-                                                          12539,-30272,12539,-30272,12539,-30272,12539,-30272,
-                                                          10125,-31163,10125,-31163,10125,-31163,10125,-31163,
-                                                          7649,-31861,7649,-31861,7649,-31861,7649,-31861,
-                                                          5125,-32363,5125,-32363,5125,-32363,5125,-32363,
-                                                          2570,-32665,2570,-32665,2570,-32665,2570,-32665,
-                                                          0,-32767,0,-32767,0,-32767,0,-32767,
-                                                          -2570,-32665,-2570,-32665,-2570,-32665,-2570,-32665,
-                                                          -5125,-32363,-5125,-32363,-5125,-32363,-5125,-32363,
-                                                          -7649,-31861,-7649,-31861,-7649,-31861,-7649,-31861,
-                                                          -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163,
-                                                          -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272,
-                                                          -14875,-29195,-14875,-29195,-14875,-29195,-14875,-29195,
-                                                          -17120,-27938,-17120,-27938,-17120,-27938,-17120,-27938,
-                                                          -19259,-26509,-19259,-26509,-19259,-26509,-19259,-26509,
-                                                          -21280,-24916,-21280,-24916,-21280,-24916,-21280,-24916,
-                                                          -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169,
-                                                          -24916,-21280,-24916,-21280,-24916,-21280,-24916,-21280,
-                                                          -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259,
-                                                          -27938,-17120,-27938,-17120,-27938,-17120,-27938,-17120,
-                                                          -29195,-14875,-29195,-14875,-29195,-14875,-29195,-14875,
-                                                          -30272,-12539,-30272,-12539,-30272,-12539,-30272,-12539,
-                                                          -31163,-10125,-31163,-10125,-31163,-10125,-31163,-10125,
-                                                          -31861,-7649,-31861,-7649,-31861,-7649,-31861,-7649,
-                                                          -32363,-5125,-32363,-5125,-32363,-5125,-32363,-5125,
-                                                          -32665,-2570,-32665,-2570,-32665,-2570,-32665,-2570,
-                                                          -32767,0,-32767,0,-32767,0,-32767,0,
-                                                          -32665,2570,-32665,2570,-32665,2570,-32665,2570,
-                                                          -32363,5125,-32363,5125,-32363,5125,-32363,5125,
-                                                          -31861,7649,-31861,7649,-31861,7649,-31861,7649,
-                                                          -31163,10125,-31163,10125,-31163,10125,-31163,10125,
-                                                          -30272,12539,-30272,12539,-30272,12539,-30272,12539,
-                                                          -29195,14875,-29195,14875,-29195,14875,-29195,14875,
-                                                          -27938,17120,-27938,17120,-27938,17120,-27938,17120,
-                                                          -26509,19259,-26509,19259,-26509,19259,-26509,19259,
-                                                          -24916,21280,-24916,21280,-24916,21280,-24916,21280,
-                                                          -23169,23169,-23169,23169,-23169,23169,-23169,23169,
-                                                          -21280,24916,-21280,24916,-21280,24916,-21280,24916,
-                                                          -19259,26509,-19259,26509,-19259,26509,-19259,26509,
-                                                          -17120,27938,-17120,27938,-17120,27938,-17120,27938,
-                                                          -14875,29195,-14875,29195,-14875,29195,-14875,29195,
-                                                          -12539,30272,-12539,30272,-12539,30272,-12539,30272,
-                                                          -10125,31163,-10125,31163,-10125,31163,-10125,31163,
-                                                          -7649,31861,-7649,31861,-7649,31861,-7649,31861,
-                                                          -5125,32363,-5125,32363,-5125,32363,-5125,32363,
-                                                          -2570,32665,-2570,32665,-2570,32665,-2570,32665
-                                                         };
+static int16_t twa240[472]__attribute__((aligned(32)));
+static int16_t twb240[472]__attribute__((aligned(32)));
+static int16_t twc240[472]__attribute__((aligned(32)));
 
 void dft240(int16_t *x,int16_t *y,unsigned char scale_flag)
 {
@@ -8147,211 +7406,8 @@ void dft240(int16_t *x,int16_t *y,unsigned char scale_flag)
 
 }
 
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:95)/288));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*(2:2:190)/288));
-twa2 = zeros(1,191);
-twb2 = zeros(1,191);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-
-
- */
-static int16_t twa288[760]__attribute__((aligned(32))) = {32759,-714,32759,-714,32759,-714,32759,-714,
-                                                          32735,-1429,32735,-1429,32735,-1429,32735,-1429,
-                                                          32696,-2143,32696,-2143,32696,-2143,32696,-2143,
-                                                          32642,-2855,32642,-2855,32642,-2855,32642,-2855,
-                                                          32572,-3567,32572,-3567,32572,-3567,32572,-3567,
-                                                          32486,-4276,32486,-4276,32486,-4276,32486,-4276,
-                                                          32385,-4984,32385,-4984,32385,-4984,32385,-4984,
-                                                          32269,-5689,32269,-5689,32269,-5689,32269,-5689,
-                                                          32137,-6392,32137,-6392,32137,-6392,32137,-6392,
-                                                          31990,-7092,31990,-7092,31990,-7092,31990,-7092,
-                                                          31827,-7788,31827,-7788,31827,-7788,31827,-7788,
-                                                          31650,-8480,31650,-8480,31650,-8480,31650,-8480,
-                                                          31457,-9169,31457,-9169,31457,-9169,31457,-9169,
-                                                          31250,-9853,31250,-9853,31250,-9853,31250,-9853,
-                                                          31028,-10532,31028,-10532,31028,-10532,31028,-10532,
-                                                          30790,-11206,30790,-11206,30790,-11206,30790,-11206,
-                                                          30539,-11876,30539,-11876,30539,-11876,30539,-11876,
-                                                          30272,-12539,30272,-12539,30272,-12539,30272,-12539,
-                                                          29992,-13196,29992,-13196,29992,-13196,29992,-13196,
-                                                          29696,-13847,29696,-13847,29696,-13847,29696,-13847,
-                                                          29387,-14492,29387,-14492,29387,-14492,29387,-14492,
-                                                          29064,-15130,29064,-15130,29064,-15130,29064,-15130,
-                                                          28727,-15760,28727,-15760,28727,-15760,28727,-15760,
-                                                          28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                          28012,-16998,28012,-16998,28012,-16998,28012,-16998,
-                                                          27635,-17605,27635,-17605,27635,-17605,27635,-17605,
-                                                          27244,-18204,27244,-18204,27244,-18204,27244,-18204,
-                                                          26841,-18794,26841,-18794,26841,-18794,26841,-18794,
-                                                          26424,-19375,26424,-19375,26424,-19375,26424,-19375,
-                                                          25995,-19947,25995,-19947,25995,-19947,25995,-19947,
-                                                          25554,-20509,25554,-20509,25554,-20509,25554,-20509,
-                                                          25100,-21062,25100,-21062,25100,-21062,25100,-21062,
-                                                          24635,-21604,24635,-21604,24635,-21604,24635,-21604,
-                                                          24158,-22137,24158,-22137,24158,-22137,24158,-22137,
-                                                          23669,-22658,23669,-22658,23669,-22658,23669,-22658,
-                                                          23169,-23169,23169,-23169,23169,-23169,23169,-23169,
-                                                          22658,-23669,22658,-23669,22658,-23669,22658,-23669,
-                                                          22137,-24158,22137,-24158,22137,-24158,22137,-24158,
-                                                          21604,-24635,21604,-24635,21604,-24635,21604,-24635,
-                                                          21062,-25100,21062,-25100,21062,-25100,21062,-25100,
-                                                          20509,-25554,20509,-25554,20509,-25554,20509,-25554,
-                                                          19947,-25995,19947,-25995,19947,-25995,19947,-25995,
-                                                          19375,-26424,19375,-26424,19375,-26424,19375,-26424,
-                                                          18794,-26841,18794,-26841,18794,-26841,18794,-26841,
-                                                          18204,-27244,18204,-27244,18204,-27244,18204,-27244,
-                                                          17605,-27635,17605,-27635,17605,-27635,17605,-27635,
-                                                          16998,-28012,16998,-28012,16998,-28012,16998,-28012,
-                                                          16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                          15760,-28727,15760,-28727,15760,-28727,15760,-28727,
-                                                          15130,-29064,15130,-29064,15130,-29064,15130,-29064,
-                                                          14492,-29387,14492,-29387,14492,-29387,14492,-29387,
-                                                          13847,-29696,13847,-29696,13847,-29696,13847,-29696,
-                                                          13196,-29992,13196,-29992,13196,-29992,13196,-29992,
-                                                          12539,-30272,12539,-30272,12539,-30272,12539,-30272,
-                                                          11876,-30539,11876,-30539,11876,-30539,11876,-30539,
-                                                          11206,-30790,11206,-30790,11206,-30790,11206,-30790,
-                                                          10532,-31028,10532,-31028,10532,-31028,10532,-31028,
-                                                          9853,-31250,9853,-31250,9853,-31250,9853,-31250,
-                                                          9169,-31457,9169,-31457,9169,-31457,9169,-31457,
-                                                          8480,-31650,8480,-31650,8480,-31650,8480,-31650,
-                                                          7788,-31827,7788,-31827,7788,-31827,7788,-31827,
-                                                          7092,-31990,7092,-31990,7092,-31990,7092,-31990,
-                                                          6392,-32137,6392,-32137,6392,-32137,6392,-32137,
-                                                          5689,-32269,5689,-32269,5689,-32269,5689,-32269,
-                                                          4984,-32385,4984,-32385,4984,-32385,4984,-32385,
-                                                          4276,-32486,4276,-32486,4276,-32486,4276,-32486,
-                                                          3567,-32572,3567,-32572,3567,-32572,3567,-32572,
-                                                          2855,-32642,2855,-32642,2855,-32642,2855,-32642,
-                                                          2143,-32696,2143,-32696,2143,-32696,2143,-32696,
-                                                          1429,-32735,1429,-32735,1429,-32735,1429,-32735,
-                                                          714,-32759,714,-32759,714,-32759,714,-32759,
-                                                          0,-32767,0,-32767,0,-32767,0,-32767,
-                                                          -714,-32759,-714,-32759,-714,-32759,-714,-32759,
-                                                          -1429,-32735,-1429,-32735,-1429,-32735,-1429,-32735,
-                                                          -2143,-32696,-2143,-32696,-2143,-32696,-2143,-32696,
-                                                          -2855,-32642,-2855,-32642,-2855,-32642,-2855,-32642,
-                                                          -3567,-32572,-3567,-32572,-3567,-32572,-3567,-32572,
-                                                          -4276,-32486,-4276,-32486,-4276,-32486,-4276,-32486,
-                                                          -4984,-32385,-4984,-32385,-4984,-32385,-4984,-32385,
-                                                          -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269,
-                                                          -6392,-32137,-6392,-32137,-6392,-32137,-6392,-32137,
-                                                          -7092,-31990,-7092,-31990,-7092,-31990,-7092,-31990,
-                                                          -7788,-31827,-7788,-31827,-7788,-31827,-7788,-31827,
-                                                          -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650,
-                                                          -9169,-31457,-9169,-31457,-9169,-31457,-9169,-31457,
-                                                          -9853,-31250,-9853,-31250,-9853,-31250,-9853,-31250,
-                                                          -10532,-31028,-10532,-31028,-10532,-31028,-10532,-31028,
-                                                          -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790,
-                                                          -11876,-30539,-11876,-30539,-11876,-30539,-11876,-30539,
-                                                          -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272,
-                                                          -13196,-29992,-13196,-29992,-13196,-29992,-13196,-29992,
-                                                          -13847,-29696,-13847,-29696,-13847,-29696,-13847,-29696,
-                                                          -14492,-29387,-14492,-29387,-14492,-29387,-14492,-29387,
-                                                          -15130,-29064,-15130,-29064,-15130,-29064,-15130,-29064,
-                                                          -15760,-28727,-15760,-28727,-15760,-28727,-15760,-28727
-                                                         };
-
-static int16_t twb288[760]__attribute__((aligned(32))) = {32735,-1429,32735,-1429,32735,-1429,32735,-1429,
-                                                          32642,-2855,32642,-2855,32642,-2855,32642,-2855,
-                                                          32486,-4276,32486,-4276,32486,-4276,32486,-4276,
-                                                          32269,-5689,32269,-5689,32269,-5689,32269,-5689,
-                                                          31990,-7092,31990,-7092,31990,-7092,31990,-7092,
-                                                          31650,-8480,31650,-8480,31650,-8480,31650,-8480,
-                                                          31250,-9853,31250,-9853,31250,-9853,31250,-9853,
-                                                          30790,-11206,30790,-11206,30790,-11206,30790,-11206,
-                                                          30272,-12539,30272,-12539,30272,-12539,30272,-12539,
-                                                          29696,-13847,29696,-13847,29696,-13847,29696,-13847,
-                                                          29064,-15130,29064,-15130,29064,-15130,29064,-15130,
-                                                          28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                          27635,-17605,27635,-17605,27635,-17605,27635,-17605,
-                                                          26841,-18794,26841,-18794,26841,-18794,26841,-18794,
-                                                          25995,-19947,25995,-19947,25995,-19947,25995,-19947,
-                                                          25100,-21062,25100,-21062,25100,-21062,25100,-21062,
-                                                          24158,-22137,24158,-22137,24158,-22137,24158,-22137,
-                                                          23169,-23169,23169,-23169,23169,-23169,23169,-23169,
-                                                          22137,-24158,22137,-24158,22137,-24158,22137,-24158,
-                                                          21062,-25100,21062,-25100,21062,-25100,21062,-25100,
-                                                          19947,-25995,19947,-25995,19947,-25995,19947,-25995,
-                                                          18794,-26841,18794,-26841,18794,-26841,18794,-26841,
-                                                          17605,-27635,17605,-27635,17605,-27635,17605,-27635,
-                                                          16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                          15130,-29064,15130,-29064,15130,-29064,15130,-29064,
-                                                          13847,-29696,13847,-29696,13847,-29696,13847,-29696,
-                                                          12539,-30272,12539,-30272,12539,-30272,12539,-30272,
-                                                          11206,-30790,11206,-30790,11206,-30790,11206,-30790,
-                                                          9853,-31250,9853,-31250,9853,-31250,9853,-31250,
-                                                          8480,-31650,8480,-31650,8480,-31650,8480,-31650,
-                                                          7092,-31990,7092,-31990,7092,-31990,7092,-31990,
-                                                          5689,-32269,5689,-32269,5689,-32269,5689,-32269,
-                                                          4276,-32486,4276,-32486,4276,-32486,4276,-32486,
-                                                          2855,-32642,2855,-32642,2855,-32642,2855,-32642,
-                                                          1429,-32735,1429,-32735,1429,-32735,1429,-32735,
-                                                          0,-32767,0,-32767,0,-32767,0,-32767,
-                                                          -1429,-32735,-1429,-32735,-1429,-32735,-1429,-32735,
-                                                          -2855,-32642,-2855,-32642,-2855,-32642,-2855,-32642,
-                                                          -4276,-32486,-4276,-32486,-4276,-32486,-4276,-32486,
-                                                          -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269,
-                                                          -7092,-31990,-7092,-31990,-7092,-31990,-7092,-31990,
-                                                          -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650,
-                                                          -9853,-31250,-9853,-31250,-9853,-31250,-9853,-31250,
-                                                          -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790,
-                                                          -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272,
-                                                          -13847,-29696,-13847,-29696,-13847,-29696,-13847,-29696,
-                                                          -15130,-29064,-15130,-29064,-15130,-29064,-15130,-29064,
-                                                          -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377,
-                                                          -17605,-27635,-17605,-27635,-17605,-27635,-17605,-27635,
-                                                          -18794,-26841,-18794,-26841,-18794,-26841,-18794,-26841,
-                                                          -19947,-25995,-19947,-25995,-19947,-25995,-19947,-25995,
-                                                          -21062,-25100,-21062,-25100,-21062,-25100,-21062,-25100,
-                                                          -22137,-24158,-22137,-24158,-22137,-24158,-22137,-24158,
-                                                          -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169,
-                                                          -24158,-22137,-24158,-22137,-24158,-22137,-24158,-22137,
-                                                          -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062,
-                                                          -25995,-19947,-25995,-19947,-25995,-19947,-25995,-19947,
-                                                          -26841,-18794,-26841,-18794,-26841,-18794,-26841,-18794,
-                                                          -27635,-17605,-27635,-17605,-27635,-17605,-27635,-17605,
-                                                          -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383,
-                                                          -29064,-15130,-29064,-15130,-29064,-15130,-29064,-15130,
-                                                          -29696,-13847,-29696,-13847,-29696,-13847,-29696,-13847,
-                                                          -30272,-12539,-30272,-12539,-30272,-12539,-30272,-12539,
-                                                          -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206,
-                                                          -31250,-9853,-31250,-9853,-31250,-9853,-31250,-9853,
-                                                          -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480,
-                                                          -31990,-7092,-31990,-7092,-31990,-7092,-31990,-7092,
-                                                          -32269,-5689,-32269,-5689,-32269,-5689,-32269,-5689,
-                                                          -32486,-4276,-32486,-4276,-32486,-4276,-32486,-4276,
-                                                          -32642,-2855,-32642,-2855,-32642,-2855,-32642,-2855,
-                                                          -32735,-1429,-32735,-1429,-32735,-1429,-32735,-1429,
-                                                          -32767,0,-32767,0,-32767,0,-32767,0,
-                                                          -32735,1429,-32735,1429,-32735,1429,-32735,1429,
-                                                          -32642,2855,-32642,2855,-32642,2855,-32642,2855,
-                                                          -32486,4276,-32486,4276,-32486,4276,-32486,4276,
-                                                          -32269,5689,-32269,5689,-32269,5689,-32269,5689,
-                                                          -31990,7092,-31990,7092,-31990,7092,-31990,7092,
-                                                          -31650,8480,-31650,8480,-31650,8480,-31650,8480,
-                                                          -31250,9853,-31250,9853,-31250,9853,-31250,9853,
-                                                          -30790,11206,-30790,11206,-30790,11206,-30790,11206,
-                                                          -30272,12539,-30272,12539,-30272,12539,-30272,12539,
-                                                          -29696,13847,-29696,13847,-29696,13847,-29696,13847,
-                                                          -29064,15130,-29064,15130,-29064,15130,-29064,15130,
-                                                          -28377,16383,-28377,16383,-28377,16383,-28377,16383,
-                                                          -27635,17605,-27635,17605,-27635,17605,-27635,17605,
-                                                          -26841,18794,-26841,18794,-26841,18794,-26841,18794,
-                                                          -25995,19947,-25995,19947,-25995,19947,-25995,19947,
-                                                          -25100,21062,-25100,21062,-25100,21062,-25100,21062,
-                                                          -24158,22137,-24158,22137,-24158,22137,-24158,22137,
-                                                          -23169,23169,-23169,23169,-23169,23169,-23169,23169,
-                                                          -22137,24158,-22137,24158,-22137,24158,-22137,24158,
-                                                          -21062,25100,-21062,25100,-21062,25100,-21062,25100,
-                                                          -19947,25995,-19947,25995,-19947,25995,-19947,25995,
-                                                          -18794,26841,-18794,26841,-18794,26841,-18794,26841,
-                                                          -17605,27635,-17605,27635,-17605,27635,-17605,27635
-                                                         };
+static int16_t twa288[760]__attribute__((aligned(32)));
+static int16_t twb288[760]__attribute__((aligned(32)));
 
 void dft288(int16_t *x,int16_t *y,unsigned char scale_flag)
 {
@@ -8402,249 +7458,10 @@ void dft288(int16_t *x,int16_t *y,unsigned char scale_flag)
 
 }
 
-static int16_t twa300[472]__attribute__((aligned(32))) = {32759,-686,32759,-686,32759,-686,32759,-686,
-                                                          32738,-1372,32738,-1372,32738,-1372,32738,-1372,
-                                                          32702,-2057,32702,-2057,32702,-2057,32702,-2057,
-                                                          32652,-2741,32652,-2741,32652,-2741,32652,-2741,
-                                                          32587,-3425,32587,-3425,32587,-3425,32587,-3425,
-                                                          32508,-4106,32508,-4106,32508,-4106,32508,-4106,
-                                                          32415,-4786,32415,-4786,32415,-4786,32415,-4786,
-                                                          32308,-5464,32308,-5464,32308,-5464,32308,-5464,
-                                                          32186,-6139,32186,-6139,32186,-6139,32186,-6139,
-                                                          32050,-6812,32050,-6812,32050,-6812,32050,-6812,
-                                                          31901,-7482,31901,-7482,31901,-7482,31901,-7482,
-                                                          31737,-8148,31737,-8148,31737,-8148,31737,-8148,
-                                                          31559,-8811,31559,-8811,31559,-8811,31559,-8811,
-                                                          31368,-9470,31368,-9470,31368,-9470,31368,-9470,
-                                                          31163,-10125,31163,-10125,31163,-10125,31163,-10125,
-                                                          30944,-10775,30944,-10775,30944,-10775,30944,-10775,
-                                                          30711,-11421,30711,-11421,30711,-11421,30711,-11421,
-                                                          30465,-12062,30465,-12062,30465,-12062,30465,-12062,
-                                                          30206,-12697,30206,-12697,30206,-12697,30206,-12697,
-                                                          29934,-13327,29934,-13327,29934,-13327,29934,-13327,
-                                                          29648,-13951,29648,-13951,29648,-13951,29648,-13951,
-                                                          29349,-14569,29349,-14569,29349,-14569,29349,-14569,
-                                                          29038,-15180,29038,-15180,29038,-15180,29038,-15180,
-                                                          28713,-15785,28713,-15785,28713,-15785,28713,-15785,
-                                                          28377,-16383,28377,-16383,28377,-16383,28377,-16383,
-                                                          28027,-16974,28027,-16974,28027,-16974,28027,-16974,
-                                                          27666,-17557,27666,-17557,27666,-17557,27666,-17557,
-                                                          27292,-18132,27292,-18132,27292,-18132,27292,-18132,
-                                                          26906,-18700,26906,-18700,26906,-18700,26906,-18700,
-                                                          26509,-19259,26509,-19259,26509,-19259,26509,-19259,
-                                                          26099,-19810,26099,-19810,26099,-19810,26099,-19810,
-                                                          25679,-20353,25679,-20353,25679,-20353,25679,-20353,
-                                                          25247,-20886,25247,-20886,25247,-20886,25247,-20886,
-                                                          24804,-21410,24804,-21410,24804,-21410,24804,-21410,
-                                                          24350,-21925,24350,-21925,24350,-21925,24350,-21925,
-                                                          23886,-22430,23886,-22430,23886,-22430,23886,-22430,
-                                                          23411,-22925,23411,-22925,23411,-22925,23411,-22925,
-                                                          22925,-23411,22925,-23411,22925,-23411,22925,-23411,
-                                                          22430,-23886,22430,-23886,22430,-23886,22430,-23886,
-                                                          21925,-24350,21925,-24350,21925,-24350,21925,-24350,
-                                                          21410,-24804,21410,-24804,21410,-24804,21410,-24804,
-                                                          20886,-25247,20886,-25247,20886,-25247,20886,-25247,
-                                                          20353,-25679,20353,-25679,20353,-25679,20353,-25679,
-                                                          19810,-26099,19810,-26099,19810,-26099,19810,-26099,
-                                                          19259,-26509,19259,-26509,19259,-26509,19259,-26509,
-                                                          18700,-26906,18700,-26906,18700,-26906,18700,-26906,
-                                                          18132,-27292,18132,-27292,18132,-27292,18132,-27292,
-                                                          17557,-27666,17557,-27666,17557,-27666,17557,-27666,
-                                                          16974,-28027,16974,-28027,16974,-28027,16974,-28027,
-                                                          16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                          15785,-28713,15785,-28713,15785,-28713,15785,-28713,
-                                                          15180,-29038,15180,-29038,15180,-29038,15180,-29038,
-                                                          14569,-29349,14569,-29349,14569,-29349,14569,-29349,
-                                                          13951,-29648,13951,-29648,13951,-29648,13951,-29648,
-                                                          13327,-29934,13327,-29934,13327,-29934,13327,-29934,
-                                                          12697,-30206,12697,-30206,12697,-30206,12697,-30206,
-                                                          12062,-30465,12062,-30465,12062,-30465,12062,-30465,
-                                                          11421,-30711,11421,-30711,11421,-30711,11421,-30711,
-                                                          10775,-30944,10775,-30944,10775,-30944,10775,-30944
-                                                         };
-
-static int16_t twb300[472]__attribute__((aligned(32))) = {32738,-1372,32738,-1372,32738,-1372,32738,-1372,
-                                                          32652,-2741,32652,-2741,32652,-2741,32652,-2741,
-                                                          32508,-4106,32508,-4106,32508,-4106,32508,-4106,
-                                                          32308,-5464,32308,-5464,32308,-5464,32308,-5464,
-                                                          32050,-6812,32050,-6812,32050,-6812,32050,-6812,
-                                                          31737,-8148,31737,-8148,31737,-8148,31737,-8148,
-                                                          31368,-9470,31368,-9470,31368,-9470,31368,-9470,
-                                                          30944,-10775,30944,-10775,30944,-10775,30944,-10775,
-                                                          30465,-12062,30465,-12062,30465,-12062,30465,-12062,
-                                                          29934,-13327,29934,-13327,29934,-13327,29934,-13327,
-                                                          29349,-14569,29349,-14569,29349,-14569,29349,-14569,
-                                                          28713,-15785,28713,-15785,28713,-15785,28713,-15785,
-                                                          28027,-16974,28027,-16974,28027,-16974,28027,-16974,
-                                                          27292,-18132,27292,-18132,27292,-18132,27292,-18132,
-                                                          26509,-19259,26509,-19259,26509,-19259,26509,-19259,
-                                                          25679,-20353,25679,-20353,25679,-20353,25679,-20353,
-                                                          24804,-21410,24804,-21410,24804,-21410,24804,-21410,
-                                                          23886,-22430,23886,-22430,23886,-22430,23886,-22430,
-                                                          22925,-23411,22925,-23411,22925,-23411,22925,-23411,
-                                                          21925,-24350,21925,-24350,21925,-24350,21925,-24350,
-                                                          20886,-25247,20886,-25247,20886,-25247,20886,-25247,
-                                                          19810,-26099,19810,-26099,19810,-26099,19810,-26099,
-                                                          18700,-26906,18700,-26906,18700,-26906,18700,-26906,
-                                                          17557,-27666,17557,-27666,17557,-27666,17557,-27666,
-                                                          16383,-28377,16383,-28377,16383,-28377,16383,-28377,
-                                                          15180,-29038,15180,-29038,15180,-29038,15180,-29038,
-                                                          13951,-29648,13951,-29648,13951,-29648,13951,-29648,
-                                                          12697,-30206,12697,-30206,12697,-30206,12697,-30206,
-                                                          11421,-30711,11421,-30711,11421,-30711,11421,-30711,
-                                                          10125,-31163,10125,-31163,10125,-31163,10125,-31163,
-                                                          8811,-31559,8811,-31559,8811,-31559,8811,-31559,
-                                                          7482,-31901,7482,-31901,7482,-31901,7482,-31901,
-                                                          6139,-32186,6139,-32186,6139,-32186,6139,-32186,
-                                                          4786,-32415,4786,-32415,4786,-32415,4786,-32415,
-                                                          3425,-32587,3425,-32587,3425,-32587,3425,-32587,
-                                                          2057,-32702,2057,-32702,2057,-32702,2057,-32702,
-                                                          686,-32759,686,-32759,686,-32759,686,-32759,
-                                                          -686,-32759,-686,-32759,-686,-32759,-686,-32759,
-                                                          -2057,-32702,-2057,-32702,-2057,-32702,-2057,-32702,
-                                                          -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587,
-                                                          -4786,-32415,-4786,-32415,-4786,-32415,-4786,-32415,
-                                                          -6139,-32186,-6139,-32186,-6139,-32186,-6139,-32186,
-                                                          -7482,-31901,-7482,-31901,-7482,-31901,-7482,-31901,
-                                                          -8811,-31559,-8811,-31559,-8811,-31559,-8811,-31559,
-                                                          -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163,
-                                                          -11421,-30711,-11421,-30711,-11421,-30711,-11421,-30711,
-                                                          -12697,-30206,-12697,-30206,-12697,-30206,-12697,-30206,
-                                                          -13951,-29648,-13951,-29648,-13951,-29648,-13951,-29648,
-                                                          -15180,-29038,-15180,-29038,-15180,-29038,-15180,-29038,
-                                                          -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377,
-                                                          -17557,-27666,-17557,-27666,-17557,-27666,-17557,-27666,
-                                                          -18700,-26906,-18700,-26906,-18700,-26906,-18700,-26906,
-                                                          -19810,-26099,-19810,-26099,-19810,-26099,-19810,-26099,
-                                                          -20886,-25247,-20886,-25247,-20886,-25247,-20886,-25247,
-                                                          -21925,-24350,-21925,-24350,-21925,-24350,-21925,-24350,
-                                                          -22925,-23411,-22925,-23411,-22925,-23411,-22925,-23411,
-                                                          -23886,-22430,-23886,-22430,-23886,-22430,-23886,-22430,
-                                                          -24804,-21410,-24804,-21410,-24804,-21410,-24804,-21410,
-                                                          -25679,-20353,-25679,-20353,-25679,-20353,-25679,-20353
-                                                         };
-
-static int16_t twc300[472]__attribute__((aligned(32))) = {32702,-2057,32702,-2057,32702,-2057,32702,-2057,
-                                                          32508,-4106,32508,-4106,32508,-4106,32508,-4106,
-                                                          32186,-6139,32186,-6139,32186,-6139,32186,-6139,
-                                                          31737,-8148,31737,-8148,31737,-8148,31737,-8148,
-                                                          31163,-10125,31163,-10125,31163,-10125,31163,-10125,
-                                                          30465,-12062,30465,-12062,30465,-12062,30465,-12062,
-                                                          29648,-13951,29648,-13951,29648,-13951,29648,-13951,
-                                                          28713,-15785,28713,-15785,28713,-15785,28713,-15785,
-                                                          27666,-17557,27666,-17557,27666,-17557,27666,-17557,
-                                                          26509,-19259,26509,-19259,26509,-19259,26509,-19259,
-                                                          25247,-20886,25247,-20886,25247,-20886,25247,-20886,
-                                                          23886,-22430,23886,-22430,23886,-22430,23886,-22430,
-                                                          22430,-23886,22430,-23886,22430,-23886,22430,-23886,
-                                                          20886,-25247,20886,-25247,20886,-25247,20886,-25247,
-                                                          19259,-26509,19259,-26509,19259,-26509,19259,-26509,
-                                                          17557,-27666,17557,-27666,17557,-27666,17557,-27666,
-                                                          15785,-28713,15785,-28713,15785,-28713,15785,-28713,
-                                                          13951,-29648,13951,-29648,13951,-29648,13951,-29648,
-                                                          12062,-30465,12062,-30465,12062,-30465,12062,-30465,
-                                                          10125,-31163,10125,-31163,10125,-31163,10125,-31163,
-                                                          8148,-31737,8148,-31737,8148,-31737,8148,-31737,
-                                                          6139,-32186,6139,-32186,6139,-32186,6139,-32186,
-                                                          4106,-32508,4106,-32508,4106,-32508,4106,-32508,
-                                                          2057,-32702,2057,-32702,2057,-32702,2057,-32702,
-                                                          0,-32767,0,-32767,0,-32767,0,-32767,
-                                                          -2057,-32702,-2057,-32702,-2057,-32702,-2057,-32702,
-                                                          -4106,-32508,-4106,-32508,-4106,-32508,-4106,-32508,
-                                                          -6139,-32186,-6139,-32186,-6139,-32186,-6139,-32186,
-                                                          -8148,-31737,-8148,-31737,-8148,-31737,-8148,-31737,
-                                                          -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163,
-                                                          -12062,-30465,-12062,-30465,-12062,-30465,-12062,-30465,
-                                                          -13951,-29648,-13951,-29648,-13951,-29648,-13951,-29648,
-                                                          -15785,-28713,-15785,-28713,-15785,-28713,-15785,-28713,
-                                                          -17557,-27666,-17557,-27666,-17557,-27666,-17557,-27666,
-                                                          -19259,-26509,-19259,-26509,-19259,-26509,-19259,-26509,
-                                                          -20886,-25247,-20886,-25247,-20886,-25247,-20886,-25247,
-                                                          -22430,-23886,-22430,-23886,-22430,-23886,-22430,-23886,
-                                                          -23886,-22430,-23886,-22430,-23886,-22430,-23886,-22430,
-                                                          -25247,-20886,-25247,-20886,-25247,-20886,-25247,-20886,
-                                                          -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259,
-                                                          -27666,-17557,-27666,-17557,-27666,-17557,-27666,-17557,
-                                                          -28713,-15785,-28713,-15785,-28713,-15785,-28713,-15785,
-                                                          -29648,-13951,-29648,-13951,-29648,-13951,-29648,-13951,
-                                                          -30465,-12062,-30465,-12062,-30465,-12062,-30465,-12062,
-                                                          -31163,-10125,-31163,-10125,-31163,-10125,-31163,-10125,
-                                                          -31737,-8148,-31737,-8148,-31737,-8148,-31737,-8148,
-                                                          -32186,-6139,-32186,-6139,-32186,-6139,-32186,-6139,
-                                                          -32508,-4106,-32508,-4106,-32508,-4106,-32508,-4106,
-                                                          -32702,-2057,-32702,-2057,-32702,-2057,-32702,-2057,
-                                                          -32767,0,-32767,0,-32767,0,-32767,0,
-                                                          -32702,2057,-32702,2057,-32702,2057,-32702,2057,
-                                                          -32508,4106,-32508,4106,-32508,4106,-32508,4106,
-                                                          -32186,6139,-32186,6139,-32186,6139,-32186,6139,
-                                                          -31737,8148,-31737,8148,-31737,8148,-31737,8148,
-                                                          -31163,10125,-31163,10125,-31163,10125,-31163,10125,
-                                                          -30465,12062,-30465,12062,-30465,12062,-30465,12062,
-                                                          -29648,13951,-29648,13951,-29648,13951,-29648,13951,
-                                                          -28713,15785,-28713,15785,-28713,15785,-28713,15785,
-                                                          -27666,17557,-27666,17557,-27666,17557,-27666,17557
-                                                         };
-
-static int16_t twd300[472]__attribute__((aligned(32))) = {32652,-2741,32652,-2741,32652,-2741,32652,-2741,
-                                                          32308,-5464,32308,-5464,32308,-5464,32308,-5464,
-                                                          31737,-8148,31737,-8148,31737,-8148,31737,-8148,
-                                                          30944,-10775,30944,-10775,30944,-10775,30944,-10775,
-                                                          29934,-13327,29934,-13327,29934,-13327,29934,-13327,
-                                                          28713,-15785,28713,-15785,28713,-15785,28713,-15785,
-                                                          27292,-18132,27292,-18132,27292,-18132,27292,-18132,
-                                                          25679,-20353,25679,-20353,25679,-20353,25679,-20353,
-                                                          23886,-22430,23886,-22430,23886,-22430,23886,-22430,
-                                                          21925,-24350,21925,-24350,21925,-24350,21925,-24350,
-                                                          19810,-26099,19810,-26099,19810,-26099,19810,-26099,
-                                                          17557,-27666,17557,-27666,17557,-27666,17557,-27666,
-                                                          15180,-29038,15180,-29038,15180,-29038,15180,-29038,
-                                                          12697,-30206,12697,-30206,12697,-30206,12697,-30206,
-                                                          10125,-31163,10125,-31163,10125,-31163,10125,-31163,
-                                                          7482,-31901,7482,-31901,7482,-31901,7482,-31901,
-                                                          4786,-32415,4786,-32415,4786,-32415,4786,-32415,
-                                                          2057,-32702,2057,-32702,2057,-32702,2057,-32702,
-                                                          -686,-32759,-686,-32759,-686,-32759,-686,-32759,
-                                                          -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587,
-                                                          -6139,-32186,-6139,-32186,-6139,-32186,-6139,-32186,
-                                                          -8811,-31559,-8811,-31559,-8811,-31559,-8811,-31559,
-                                                          -11421,-30711,-11421,-30711,-11421,-30711,-11421,-30711,
-                                                          -13951,-29648,-13951,-29648,-13951,-29648,-13951,-29648,
-                                                          -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377,
-                                                          -18700,-26906,-18700,-26906,-18700,-26906,-18700,-26906,
-                                                          -20886,-25247,-20886,-25247,-20886,-25247,-20886,-25247,
-                                                          -22925,-23411,-22925,-23411,-22925,-23411,-22925,-23411,
-                                                          -24804,-21410,-24804,-21410,-24804,-21410,-24804,-21410,
-                                                          -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259,
-                                                          -28027,-16974,-28027,-16974,-28027,-16974,-28027,-16974,
-                                                          -29349,-14569,-29349,-14569,-29349,-14569,-29349,-14569,
-                                                          -30465,-12062,-30465,-12062,-30465,-12062,-30465,-12062,
-                                                          -31368,-9470,-31368,-9470,-31368,-9470,-31368,-9470,
-                                                          -32050,-6812,-32050,-6812,-32050,-6812,-32050,-6812,
-                                                          -32508,-4106,-32508,-4106,-32508,-4106,-32508,-4106,
-                                                          -32738,-1372,-32738,-1372,-32738,-1372,-32738,-1372,
-                                                          -32738,1372,-32738,1372,-32738,1372,-32738,1372,
-                                                          -32508,4106,-32508,4106,-32508,4106,-32508,4106,
-                                                          -32050,6812,-32050,6812,-32050,6812,-32050,6812,
-                                                          -31368,9470,-31368,9470,-31368,9470,-31368,9470,
-                                                          -30465,12062,-30465,12062,-30465,12062,-30465,12062,
-                                                          -29349,14569,-29349,14569,-29349,14569,-29349,14569,
-                                                          -28027,16974,-28027,16974,-28027,16974,-28027,16974,
-                                                          -26509,19259,-26509,19259,-26509,19259,-26509,19259,
-                                                          -24804,21410,-24804,21410,-24804,21410,-24804,21410,
-                                                          -22925,23411,-22925,23411,-22925,23411,-22925,23411,
-                                                          -20886,25247,-20886,25247,-20886,25247,-20886,25247,
-                                                          -18700,26906,-18700,26906,-18700,26906,-18700,26906,
-                                                          -16383,28377,-16383,28377,-16383,28377,-16383,28377,
-                                                          -13951,29648,-13951,29648,-13951,29648,-13951,29648,
-                                                          -11421,30711,-11421,30711,-11421,30711,-11421,30711,
-                                                          -8811,31559,-8811,31559,-8811,31559,-8811,31559,
-                                                          -6139,32186,-6139,32186,-6139,32186,-6139,32186,
-                                                          -3425,32587,-3425,32587,-3425,32587,-3425,32587,
-                                                          -686,32759,-686,32759,-686,32759,-686,32759,
-                                                          2057,32702,2057,32702,2057,32702,2057,32702,
-                                                          4786,32415,4786,32415,4786,32415,4786,32415,
-                                                          7482,31901,7482,31901,7482,31901,7482,31901
-                                                         };
+static int16_t twa300[472]__attribute__((aligned(32)));
+static int16_t twb300[472]__attribute__((aligned(32)));
+static int16_t twc300[472]__attribute__((aligned(32)));
+static int16_t twd300[472]__attribute__((aligned(32)));
 
 void dft300(int16_t *x,int16_t *y,unsigned char scale_flag)
 {
@@ -8707,246 +7524,8 @@ void dft300(int16_t *x,int16_t *y,unsigned char scale_flag)
 
 }
 
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:107)/324));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:107)/324));
-twa2 = zeros(1,2*107);
-twb2 = zeros(1,2*107);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-fd=fopen("twiddle_tmp.txt","w");
-fprintf(fd,"static int16_t twa324[107*2*4] = {");
-for i=1:2:(2*106)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-fprintf(fd,"static int16_t twb324[107*2*4] = {");
-for i=1:2:(2*106)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-fclose(fd);
- */
-static int16_t twa324[107*2*4] = {32760,-636,32760,-636,32760,-636,32760,-636,
-                                  32742,-1271,32742,-1271,32742,-1271,32742,-1271,
-                                  32711,-1906,32711,-1906,32711,-1906,32711,-1906,
-                                  32668,-2540,32668,-2540,32668,-2540,32668,-2540,
-                                  32613,-3173,32613,-3173,32613,-3173,32613,-3173,
-                                  32545,-3805,32545,-3805,32545,-3805,32545,-3805,
-                                  32465,-4435,32465,-4435,32465,-4435,32465,-4435,
-                                  32373,-5064,32373,-5064,32373,-5064,32373,-5064,
-                                  32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                  32152,-6315,32152,-6315,32152,-6315,32152,-6315,
-                                  32024,-6937,32024,-6937,32024,-6937,32024,-6937,
-                                  31883,-7557,31883,-7557,31883,-7557,31883,-7557,
-                                  31731,-8174,31731,-8174,31731,-8174,31731,-8174,
-                                  31566,-8788,31566,-8788,31566,-8788,31566,-8788,
-                                  31390,-9398,31390,-9398,31390,-9398,31390,-9398,
-                                  31202,-10005,31202,-10005,31202,-10005,31202,-10005,
-                                  31002,-10608,31002,-10608,31002,-10608,31002,-10608,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30567,-11802,30567,-11802,30567,-11802,30567,-11802,
-                                  30333,-12393,30333,-12393,30333,-12393,30333,-12393,
-                                  30087,-12979,30087,-12979,30087,-12979,30087,-12979,
-                                  29829,-13560,29829,-13560,29829,-13560,29829,-13560,
-                                  29561,-14136,29561,-14136,29561,-14136,29561,-14136,
-                                  29281,-14706,29281,-14706,29281,-14706,29281,-14706,
-                                  28990,-15271,28990,-15271,28990,-15271,28990,-15271,
-                                  28689,-15831,28689,-15831,28689,-15831,28689,-15831,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  28054,-16931,28054,-16931,28054,-16931,28054,-16931,
-                                  27720,-17472,27720,-17472,27720,-17472,27720,-17472,
-                                  27376,-18006,27376,-18006,27376,-18006,27376,-18006,
-                                  27022,-18534,27022,-18534,27022,-18534,27022,-18534,
-                                  26657,-19054,26657,-19054,26657,-19054,26657,-19054,
-                                  26283,-19568,26283,-19568,26283,-19568,26283,-19568,
-                                  25898,-20074,25898,-20074,25898,-20074,25898,-20074,
-                                  25504,-20572,25504,-20572,25504,-20572,25504,-20572,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24687,-21546,24687,-21546,24687,-21546,24687,-21546,
-                                  24265,-22020,24265,-22020,24265,-22020,24265,-22020,
-                                  23833,-22487,23833,-22487,23833,-22487,23833,-22487,
-                                  23393,-22945,23393,-22945,23393,-22945,23393,-22945,
-                                  22944,-23394,22944,-23394,22944,-23394,22944,-23394,
-                                  22486,-23834,22486,-23834,22486,-23834,22486,-23834,
-                                  22019,-24266,22019,-24266,22019,-24266,22019,-24266,
-                                  21545,-24688,21545,-24688,21545,-24688,21545,-24688,
-                                  21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                  20571,-25505,20571,-25505,20571,-25505,20571,-25505,
-                                  20073,-25899,20073,-25899,20073,-25899,20073,-25899,
-                                  19567,-26284,19567,-26284,19567,-26284,19567,-26284,
-                                  19053,-26658,19053,-26658,19053,-26658,19053,-26658,
-                                  18533,-27023,18533,-27023,18533,-27023,18533,-27023,
-                                  18005,-27377,18005,-27377,18005,-27377,18005,-27377,
-                                  17471,-27721,17471,-27721,17471,-27721,17471,-27721,
-                                  16930,-28055,16930,-28055,16930,-28055,16930,-28055,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  15830,-28690,15830,-28690,15830,-28690,15830,-28690,
-                                  15270,-28991,15270,-28991,15270,-28991,15270,-28991,
-                                  14705,-29282,14705,-29282,14705,-29282,14705,-29282,
-                                  14135,-29562,14135,-29562,14135,-29562,14135,-29562,
-                                  13559,-29830,13559,-29830,13559,-29830,13559,-29830,
-                                  12978,-30088,12978,-30088,12978,-30088,12978,-30088,
-                                  12392,-30334,12392,-30334,12392,-30334,12392,-30334,
-                                  11801,-30568,11801,-30568,11801,-30568,11801,-30568,
-                                  11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                  10607,-31003,10607,-31003,10607,-31003,10607,-31003,
-                                  10004,-31203,10004,-31203,10004,-31203,10004,-31203,
-                                  9397,-31391,9397,-31391,9397,-31391,9397,-31391,
-                                  8787,-31567,8787,-31567,8787,-31567,8787,-31567,
-                                  8173,-31732,8173,-31732,8173,-31732,8173,-31732,
-                                  7556,-31884,7556,-31884,7556,-31884,7556,-31884,
-                                  6936,-32025,6936,-32025,6936,-32025,6936,-32025,
-                                  6314,-32153,6314,-32153,6314,-32153,6314,-32153,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  5063,-32374,5063,-32374,5063,-32374,5063,-32374,
-                                  4434,-32466,4434,-32466,4434,-32466,4434,-32466,
-                                  3804,-32546,3804,-32546,3804,-32546,3804,-32546,
-                                  3172,-32614,3172,-32614,3172,-32614,3172,-32614,
-                                  2539,-32669,2539,-32669,2539,-32669,2539,-32669,
-                                  1905,-32712,1905,-32712,1905,-32712,1905,-32712,
-                                  1270,-32743,1270,-32743,1270,-32743,1270,-32743,
-                                  635,-32761,635,-32761,635,-32761,635,-32761,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -636,-32761,-636,-32761,-636,-32761,-636,-32761,
-                                  -1271,-32743,-1271,-32743,-1271,-32743,-1271,-32743,
-                                  -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712,
-                                  -2540,-32669,-2540,-32669,-2540,-32669,-2540,-32669,
-                                  -3173,-32614,-3173,-32614,-3173,-32614,-3173,-32614,
-                                  -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546,
-                                  -4435,-32466,-4435,-32466,-4435,-32466,-4435,-32466,
-                                  -5064,-32374,-5064,-32374,-5064,-32374,-5064,-32374,
-                                  -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                  -6315,-32153,-6315,-32153,-6315,-32153,-6315,-32153,
-                                  -6937,-32025,-6937,-32025,-6937,-32025,-6937,-32025,
-                                  -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884,
-                                  -8174,-31732,-8174,-31732,-8174,-31732,-8174,-31732,
-                                  -8788,-31567,-8788,-31567,-8788,-31567,-8788,-31567,
-                                  -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391,
-                                  -10005,-31203,-10005,-31203,-10005,-31203,-10005,-31203,
-                                  -10608,-31003,-10608,-31003,-10608,-31003,-10608,-31003,
-                                  -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791,
-                                  -11802,-30568,-11802,-30568,-11802,-30568,-11802,-30568,
-                                  -12393,-30334,-12393,-30334,-12393,-30334,-12393,-30334,
-                                  -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088,
-                                  -13560,-29830,-13560,-29830,-13560,-29830,-13560,-29830,
-                                  -14136,-29562,-14136,-29562,-14136,-29562,-14136,-29562,
-                                  -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282,
-                                  -15271,-28991,-15271,-28991,-15271,-28991,-15271,-28991,
-                                  -15831,-28690,-15831,-28690,-15831,-28690,-15831,-28690
-                                 };
-static int16_t twb324[107*2*4] = {32742,-1271,32742,-1271,32742,-1271,32742,-1271,
-                                  32668,-2540,32668,-2540,32668,-2540,32668,-2540,
-                                  32545,-3805,32545,-3805,32545,-3805,32545,-3805,
-                                  32373,-5064,32373,-5064,32373,-5064,32373,-5064,
-                                  32152,-6315,32152,-6315,32152,-6315,32152,-6315,
-                                  31883,-7557,31883,-7557,31883,-7557,31883,-7557,
-                                  31566,-8788,31566,-8788,31566,-8788,31566,-8788,
-                                  31202,-10005,31202,-10005,31202,-10005,31202,-10005,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30333,-12393,30333,-12393,30333,-12393,30333,-12393,
-                                  29829,-13560,29829,-13560,29829,-13560,29829,-13560,
-                                  29281,-14706,29281,-14706,29281,-14706,29281,-14706,
-                                  28689,-15831,28689,-15831,28689,-15831,28689,-15831,
-                                  28054,-16931,28054,-16931,28054,-16931,28054,-16931,
-                                  27376,-18006,27376,-18006,27376,-18006,27376,-18006,
-                                  26657,-19054,26657,-19054,26657,-19054,26657,-19054,
-                                  25898,-20074,25898,-20074,25898,-20074,25898,-20074,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24265,-22020,24265,-22020,24265,-22020,24265,-22020,
-                                  23393,-22945,23393,-22945,23393,-22945,23393,-22945,
-                                  22486,-23834,22486,-23834,22486,-23834,22486,-23834,
-                                  21545,-24688,21545,-24688,21545,-24688,21545,-24688,
-                                  20571,-25505,20571,-25505,20571,-25505,20571,-25505,
-                                  19567,-26284,19567,-26284,19567,-26284,19567,-26284,
-                                  18533,-27023,18533,-27023,18533,-27023,18533,-27023,
-                                  17471,-27721,17471,-27721,17471,-27721,17471,-27721,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  15270,-28991,15270,-28991,15270,-28991,15270,-28991,
-                                  14135,-29562,14135,-29562,14135,-29562,14135,-29562,
-                                  12978,-30088,12978,-30088,12978,-30088,12978,-30088,
-                                  11801,-30568,11801,-30568,11801,-30568,11801,-30568,
-                                  10607,-31003,10607,-31003,10607,-31003,10607,-31003,
-                                  9397,-31391,9397,-31391,9397,-31391,9397,-31391,
-                                  8173,-31732,8173,-31732,8173,-31732,8173,-31732,
-                                  6936,-32025,6936,-32025,6936,-32025,6936,-32025,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  4434,-32466,4434,-32466,4434,-32466,4434,-32466,
-                                  3172,-32614,3172,-32614,3172,-32614,3172,-32614,
-                                  1905,-32712,1905,-32712,1905,-32712,1905,-32712,
-                                  635,-32761,635,-32761,635,-32761,635,-32761,
-                                  -636,-32761,-636,-32761,-636,-32761,-636,-32761,
-                                  -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712,
-                                  -3173,-32614,-3173,-32614,-3173,-32614,-3173,-32614,
-                                  -4435,-32466,-4435,-32466,-4435,-32466,-4435,-32466,
-                                  -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                  -6937,-32025,-6937,-32025,-6937,-32025,-6937,-32025,
-                                  -8174,-31732,-8174,-31732,-8174,-31732,-8174,-31732,
-                                  -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391,
-                                  -10608,-31003,-10608,-31003,-10608,-31003,-10608,-31003,
-                                  -11802,-30568,-11802,-30568,-11802,-30568,-11802,-30568,
-                                  -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088,
-                                  -14136,-29562,-14136,-29562,-14136,-29562,-14136,-29562,
-                                  -15271,-28991,-15271,-28991,-15271,-28991,-15271,-28991,
-                                  -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                                  -17472,-27721,-17472,-27721,-17472,-27721,-17472,-27721,
-                                  -18534,-27023,-18534,-27023,-18534,-27023,-18534,-27023,
-                                  -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284,
-                                  -20572,-25505,-20572,-25505,-20572,-25505,-20572,-25505,
-                                  -21546,-24688,-21546,-24688,-21546,-24688,-21546,-24688,
-                                  -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834,
-                                  -23394,-22945,-23394,-22945,-23394,-22945,-23394,-22945,
-                                  -24266,-22020,-24266,-22020,-24266,-22020,-24266,-22020,
-                                  -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063,
-                                  -25899,-20074,-25899,-20074,-25899,-20074,-25899,-20074,
-                                  -26658,-19054,-26658,-19054,-26658,-19054,-26658,-19054,
-                                  -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006,
-                                  -28055,-16931,-28055,-16931,-28055,-16931,-28055,-16931,
-                                  -28690,-15831,-28690,-15831,-28690,-15831,-28690,-15831,
-                                  -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706,
-                                  -29830,-13560,-29830,-13560,-29830,-13560,-29830,-13560,
-                                  -30334,-12393,-30334,-12393,-30334,-12393,-30334,-12393,
-                                  -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207,
-                                  -31203,-10005,-31203,-10005,-31203,-10005,-31203,-10005,
-                                  -31567,-8788,-31567,-8788,-31567,-8788,-31567,-8788,
-                                  -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557,
-                                  -32153,-6315,-32153,-6315,-32153,-6315,-32153,-6315,
-                                  -32374,-5064,-32374,-5064,-32374,-5064,-32374,-5064,
-                                  -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805,
-                                  -32669,-2540,-32669,-2540,-32669,-2540,-32669,-2540,
-                                  -32743,-1271,-32743,-1271,-32743,-1271,-32743,-1271,
-                                  -32767,-1,-32767,-1,-32767,-1,-32767,-1,
-                                  -32743,1270,-32743,1270,-32743,1270,-32743,1270,
-                                  -32669,2539,-32669,2539,-32669,2539,-32669,2539,
-                                  -32546,3804,-32546,3804,-32546,3804,-32546,3804,
-                                  -32374,5063,-32374,5063,-32374,5063,-32374,5063,
-                                  -32153,6314,-32153,6314,-32153,6314,-32153,6314,
-                                  -31884,7556,-31884,7556,-31884,7556,-31884,7556,
-                                  -31567,8787,-31567,8787,-31567,8787,-31567,8787,
-                                  -31203,10004,-31203,10004,-31203,10004,-31203,10004,
-                                  -30791,11206,-30791,11206,-30791,11206,-30791,11206,
-                                  -30334,12392,-30334,12392,-30334,12392,-30334,12392,
-                                  -29830,13559,-29830,13559,-29830,13559,-29830,13559,
-                                  -29282,14705,-29282,14705,-29282,14705,-29282,14705,
-                                  -28690,15830,-28690,15830,-28690,15830,-28690,15830,
-                                  -28055,16930,-28055,16930,-28055,16930,-28055,16930,
-                                  -27377,18005,-27377,18005,-27377,18005,-27377,18005,
-                                  -26658,19053,-26658,19053,-26658,19053,-26658,19053,
-                                  -25899,20073,-25899,20073,-25899,20073,-25899,20073,
-                                  -25101,21062,-25101,21062,-25101,21062,-25101,21062,
-                                  -24266,22019,-24266,22019,-24266,22019,-24266,22019,
-                                  -23394,22944,-23394,22944,-23394,22944,-23394,22944,
-                                  -22487,23833,-22487,23833,-22487,23833,-22487,23833,
-                                  -21546,24687,-21546,24687,-21546,24687,-21546,24687,
-                                  -20572,25504,-20572,25504,-20572,25504,-20572,25504,
-                                  -19568,26283,-19568,26283,-19568,26283,-19568,26283,
-                                  -18534,27022,-18534,27022,-18534,27022,-18534,27022,
-                                  -17472,27720,-17472,27720,-17472,27720,-17472,27720
-                                 };
+static int16_t twa324[107*2*4];
+static int16_t twb324[107*2*4];
 
 void dft324(int16_t *x,int16_t *y,unsigned char scale_flag)  // 108 x 3
 {
@@ -8996,271 +7575,8 @@ void dft324(int16_t *x,int16_t *y,unsigned char scale_flag)  // 108 x 3
 
 };
 
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:119)/360));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:119)/360));
-twa2 = zeros(1,2*119);
-twb2 = zeros(1,2*119);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-fd=fopen("twiddle_tmp.txt","w");
-fprintf(fd,"static int16_t twa360[119*2*4] = {");
-for i=1:2:(2*118)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-fprintf(fd,"static int16_t twb360[119*2*4] = {");
-for i=1:2:(2*118)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-fclose(fd);
- */
-static int16_t twa360[119*2*4] = {32762,-572,32762,-572,32762,-572,32762,-572,
-                                  32747,-1144,32747,-1144,32747,-1144,32747,-1144,
-                                  32722,-1715,32722,-1715,32722,-1715,32722,-1715,
-                                  32687,-2286,32687,-2286,32687,-2286,32687,-2286,
-                                  32642,-2856,32642,-2856,32642,-2856,32642,-2856,
-                                  32587,-3426,32587,-3426,32587,-3426,32587,-3426,
-                                  32522,-3994,32522,-3994,32522,-3994,32522,-3994,
-                                  32448,-4561,32448,-4561,32448,-4561,32448,-4561,
-                                  32363,-5126,32363,-5126,32363,-5126,32363,-5126,
-                                  32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                  32164,-6253,32164,-6253,32164,-6253,32164,-6253,
-                                  32050,-6813,32050,-6813,32050,-6813,32050,-6813,
-                                  31927,-7371,31927,-7371,31927,-7371,31927,-7371,
-                                  31793,-7928,31793,-7928,31793,-7928,31793,-7928,
-                                  31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                  31497,-9032,31497,-9032,31497,-9032,31497,-9032,
-                                  31335,-9581,31335,-9581,31335,-9581,31335,-9581,
-                                  31163,-10126,31163,-10126,31163,-10126,31163,-10126,
-                                  30981,-10668,30981,-10668,30981,-10668,30981,-10668,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30590,-11743,30590,-11743,30590,-11743,30590,-11743,
-                                  30381,-12275,30381,-12275,30381,-12275,30381,-12275,
-                                  30162,-12804,30162,-12804,30162,-12804,30162,-12804,
-                                  29934,-13328,29934,-13328,29934,-13328,29934,-13328,
-                                  29696,-13848,29696,-13848,29696,-13848,29696,-13848,
-                                  29450,-14365,29450,-14365,29450,-14365,29450,-14365,
-                                  29195,-14876,29195,-14876,29195,-14876,29195,-14876,
-                                  28931,-15384,28931,-15384,28931,-15384,28931,-15384,
-                                  28658,-15886,28658,-15886,28658,-15886,28658,-15886,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  28086,-16877,28086,-16877,28086,-16877,28086,-16877,
-                                  27787,-17364,27787,-17364,27787,-17364,27787,-17364,
-                                  27480,-17847,27480,-17847,27480,-17847,27480,-17847,
-                                  27165,-18324,27165,-18324,27165,-18324,27165,-18324,
-                                  26841,-18795,26841,-18795,26841,-18795,26841,-18795,
-                                  26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                                  26168,-19720,26168,-19720,26168,-19720,26168,-19720,
-                                  25820,-20174,25820,-20174,25820,-20174,25820,-20174,
-                                  25464,-20621,25464,-20621,25464,-20621,25464,-20621,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24729,-21498,24729,-21498,24729,-21498,24729,-21498,
-                                  24350,-21926,24350,-21926,24350,-21926,24350,-21926,
-                                  23964,-22348,23964,-22348,23964,-22348,23964,-22348,
-                                  23570,-22762,23570,-22762,23570,-22762,23570,-22762,
-                                  23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                  22761,-23571,22761,-23571,22761,-23571,22761,-23571,
-                                  22347,-23965,22347,-23965,22347,-23965,22347,-23965,
-                                  21925,-24351,21925,-24351,21925,-24351,21925,-24351,
-                                  21497,-24730,21497,-24730,21497,-24730,21497,-24730,
-                                  21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                  20620,-25465,20620,-25465,20620,-25465,20620,-25465,
-                                  20173,-25821,20173,-25821,20173,-25821,20173,-25821,
-                                  19719,-26169,19719,-26169,19719,-26169,19719,-26169,
-                                  19259,-26510,19259,-26510,19259,-26510,19259,-26510,
-                                  18794,-26842,18794,-26842,18794,-26842,18794,-26842,
-                                  18323,-27166,18323,-27166,18323,-27166,18323,-27166,
-                                  17846,-27481,17846,-27481,17846,-27481,17846,-27481,
-                                  17363,-27788,17363,-27788,17363,-27788,17363,-27788,
-                                  16876,-28087,16876,-28087,16876,-28087,16876,-28087,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  15885,-28659,15885,-28659,15885,-28659,15885,-28659,
-                                  15383,-28932,15383,-28932,15383,-28932,15383,-28932,
-                                  14875,-29196,14875,-29196,14875,-29196,14875,-29196,
-                                  14364,-29451,14364,-29451,14364,-29451,14364,-29451,
-                                  13847,-29697,13847,-29697,13847,-29697,13847,-29697,
-                                  13327,-29935,13327,-29935,13327,-29935,13327,-29935,
-                                  12803,-30163,12803,-30163,12803,-30163,12803,-30163,
-                                  12274,-30382,12274,-30382,12274,-30382,12274,-30382,
-                                  11742,-30591,11742,-30591,11742,-30591,11742,-30591,
-                                  11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                  10667,-30982,10667,-30982,10667,-30982,10667,-30982,
-                                  10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                                  9580,-31336,9580,-31336,9580,-31336,9580,-31336,
-                                  9031,-31498,9031,-31498,9031,-31498,9031,-31498,
-                                  8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                  7927,-31794,7927,-31794,7927,-31794,7927,-31794,
-                                  7370,-31928,7370,-31928,7370,-31928,7370,-31928,
-                                  6812,-32051,6812,-32051,6812,-32051,6812,-32051,
-                                  6252,-32165,6252,-32165,6252,-32165,6252,-32165,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  5125,-32364,5125,-32364,5125,-32364,5125,-32364,
-                                  4560,-32449,4560,-32449,4560,-32449,4560,-32449,
-                                  3993,-32523,3993,-32523,3993,-32523,3993,-32523,
-                                  3425,-32588,3425,-32588,3425,-32588,3425,-32588,
-                                  2855,-32643,2855,-32643,2855,-32643,2855,-32643,
-                                  2285,-32688,2285,-32688,2285,-32688,2285,-32688,
-                                  1714,-32723,1714,-32723,1714,-32723,1714,-32723,
-                                  1143,-32748,1143,-32748,1143,-32748,1143,-32748,
-                                  571,-32763,571,-32763,571,-32763,571,-32763,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -572,-32763,-572,-32763,-572,-32763,-572,-32763,
-                                  -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748,
-                                  -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723,
-                                  -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688,
-                                  -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643,
-                                  -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588,
-                                  -3994,-32523,-3994,-32523,-3994,-32523,-3994,-32523,
-                                  -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449,
-                                  -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364,
-                                  -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                  -6253,-32165,-6253,-32165,-6253,-32165,-6253,-32165,
-                                  -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051,
-                                  -7371,-31928,-7371,-31928,-7371,-31928,-7371,-31928,
-                                  -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794,
-                                  -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651,
-                                  -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498,
-                                  -9581,-31336,-9581,-31336,-9581,-31336,-9581,-31336,
-                                  -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164,
-                                  -10668,-30982,-10668,-30982,-10668,-30982,-10668,-30982,
-                                  -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791,
-                                  -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591,
-                                  -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382,
-                                  -12804,-30163,-12804,-30163,-12804,-30163,-12804,-30163,
-                                  -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935,
-                                  -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697,
-                                  -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451,
-                                  -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196,
-                                  -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932,
-                                  -15886,-28659,-15886,-28659,-15886,-28659,-15886,-28659
-                                 };
-static int16_t twb360[119*2*4] = {32747,-1144,32747,-1144,32747,-1144,32747,-1144,
-                                  32687,-2286,32687,-2286,32687,-2286,32687,-2286,
-                                  32587,-3426,32587,-3426,32587,-3426,32587,-3426,
-                                  32448,-4561,32448,-4561,32448,-4561,32448,-4561,
-                                  32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                  32050,-6813,32050,-6813,32050,-6813,32050,-6813,
-                                  31793,-7928,31793,-7928,31793,-7928,31793,-7928,
-                                  31497,-9032,31497,-9032,31497,-9032,31497,-9032,
-                                  31163,-10126,31163,-10126,31163,-10126,31163,-10126,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30381,-12275,30381,-12275,30381,-12275,30381,-12275,
-                                  29934,-13328,29934,-13328,29934,-13328,29934,-13328,
-                                  29450,-14365,29450,-14365,29450,-14365,29450,-14365,
-                                  28931,-15384,28931,-15384,28931,-15384,28931,-15384,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  27787,-17364,27787,-17364,27787,-17364,27787,-17364,
-                                  27165,-18324,27165,-18324,27165,-18324,27165,-18324,
-                                  26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                                  25820,-20174,25820,-20174,25820,-20174,25820,-20174,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24350,-21926,24350,-21926,24350,-21926,24350,-21926,
-                                  23570,-22762,23570,-22762,23570,-22762,23570,-22762,
-                                  22761,-23571,22761,-23571,22761,-23571,22761,-23571,
-                                  21925,-24351,21925,-24351,21925,-24351,21925,-24351,
-                                  21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                  20173,-25821,20173,-25821,20173,-25821,20173,-25821,
-                                  19259,-26510,19259,-26510,19259,-26510,19259,-26510,
-                                  18323,-27166,18323,-27166,18323,-27166,18323,-27166,
-                                  17363,-27788,17363,-27788,17363,-27788,17363,-27788,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  15383,-28932,15383,-28932,15383,-28932,15383,-28932,
-                                  14364,-29451,14364,-29451,14364,-29451,14364,-29451,
-                                  13327,-29935,13327,-29935,13327,-29935,13327,-29935,
-                                  12274,-30382,12274,-30382,12274,-30382,12274,-30382,
-                                  11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                  10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                                  9031,-31498,9031,-31498,9031,-31498,9031,-31498,
-                                  7927,-31794,7927,-31794,7927,-31794,7927,-31794,
-                                  6812,-32051,6812,-32051,6812,-32051,6812,-32051,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  4560,-32449,4560,-32449,4560,-32449,4560,-32449,
-                                  3425,-32588,3425,-32588,3425,-32588,3425,-32588,
-                                  2285,-32688,2285,-32688,2285,-32688,2285,-32688,
-                                  1143,-32748,1143,-32748,1143,-32748,1143,-32748,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748,
-                                  -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688,
-                                  -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588,
-                                  -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449,
-                                  -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                  -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051,
-                                  -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794,
-                                  -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498,
-                                  -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164,
-                                  -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791,
-                                  -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382,
-                                  -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935,
-                                  -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451,
-                                  -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932,
-                                  -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                                  -17364,-27788,-17364,-27788,-17364,-27788,-17364,-27788,
-                                  -18324,-27166,-18324,-27166,-18324,-27166,-18324,-27166,
-                                  -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510,
-                                  -20174,-25821,-20174,-25821,-20174,-25821,-20174,-25821,
-                                  -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101,
-                                  -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351,
-                                  -22762,-23571,-22762,-23571,-22762,-23571,-22762,-23571,
-                                  -23571,-22762,-23571,-22762,-23571,-22762,-23571,-22762,
-                                  -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926,
-                                  -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063,
-                                  -25821,-20174,-25821,-20174,-25821,-20174,-25821,-20174,
-                                  -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260,
-                                  -27166,-18324,-27166,-18324,-27166,-18324,-27166,-18324,
-                                  -27788,-17364,-27788,-17364,-27788,-17364,-27788,-17364,
-                                  -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384,
-                                  -28932,-15384,-28932,-15384,-28932,-15384,-28932,-15384,
-                                  -29451,-14365,-29451,-14365,-29451,-14365,-29451,-14365,
-                                  -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328,
-                                  -30382,-12275,-30382,-12275,-30382,-12275,-30382,-12275,
-                                  -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207,
-                                  -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126,
-                                  -31498,-9032,-31498,-9032,-31498,-9032,-31498,-9032,
-                                  -31794,-7928,-31794,-7928,-31794,-7928,-31794,-7928,
-                                  -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813,
-                                  -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690,
-                                  -32449,-4561,-32449,-4561,-32449,-4561,-32449,-4561,
-                                  -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426,
-                                  -32688,-2286,-32688,-2286,-32688,-2286,-32688,-2286,
-                                  -32748,-1144,-32748,-1144,-32748,-1144,-32748,-1144,
-                                  -32767,-1,-32767,-1,-32767,-1,-32767,-1,
-                                  -32748,1143,-32748,1143,-32748,1143,-32748,1143,
-                                  -32688,2285,-32688,2285,-32688,2285,-32688,2285,
-                                  -32588,3425,-32588,3425,-32588,3425,-32588,3425,
-                                  -32449,4560,-32449,4560,-32449,4560,-32449,4560,
-                                  -32270,5689,-32270,5689,-32270,5689,-32270,5689,
-                                  -32051,6812,-32051,6812,-32051,6812,-32051,6812,
-                                  -31794,7927,-31794,7927,-31794,7927,-31794,7927,
-                                  -31498,9031,-31498,9031,-31498,9031,-31498,9031,
-                                  -31164,10125,-31164,10125,-31164,10125,-31164,10125,
-                                  -30791,11206,-30791,11206,-30791,11206,-30791,11206,
-                                  -30382,12274,-30382,12274,-30382,12274,-30382,12274,
-                                  -29935,13327,-29935,13327,-29935,13327,-29935,13327,
-                                  -29451,14364,-29451,14364,-29451,14364,-29451,14364,
-                                  -28932,15383,-28932,15383,-28932,15383,-28932,15383,
-                                  -28378,16383,-28378,16383,-28378,16383,-28378,16383,
-                                  -27788,17363,-27788,17363,-27788,17363,-27788,17363,
-                                  -27166,18323,-27166,18323,-27166,18323,-27166,18323,
-                                  -26510,19259,-26510,19259,-26510,19259,-26510,19259,
-                                  -25821,20173,-25821,20173,-25821,20173,-25821,20173,
-                                  -25101,21062,-25101,21062,-25101,21062,-25101,21062,
-                                  -24351,21925,-24351,21925,-24351,21925,-24351,21925,
-                                  -23571,22761,-23571,22761,-23571,22761,-23571,22761,
-                                  -22762,23570,-22762,23570,-22762,23570,-22762,23570,
-                                  -21926,24350,-21926,24350,-21926,24350,-21926,24350,
-                                  -21063,25100,-21063,25100,-21063,25100,-21063,25100,
-                                  -20174,25820,-20174,25820,-20174,25820,-20174,25820,
-                                  -19260,26509,-19260,26509,-19260,26509,-19260,26509,
-                                  -18324,27165,-18324,27165,-18324,27165,-18324,27165,
-                                  -17364,27787,-17364,27787,-17364,27787,-17364,27787
-                                 };
-
+static int16_t twa360[119*2*4];
+static int16_t twb360[119*2*4];
 
 void dft360(int16_t *x,int16_t *y,unsigned char scale_flag)  // 120 x 3
 {
@@ -9310,329 +7626,9 @@ void dft360(int16_t *x,int16_t *y,unsigned char scale_flag)  // 120 x 3
 
 };
 
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:95)/384));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:95)/384));
-twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(1:95)/384));
-twa2 = zeros(1,2*95);
-twb2 = zeros(1,2*95);
-twc2 = zeros(1,2*95);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-twc2(1:2:end) = real(twc);
-twc2(2:2:end) = imag(twc);
-fd=fopen("twiddle_tmp.txt","w");
-fprintf(fd,"static int16_t twa384[95*2*4] = {");
-for i=1:2:(2*94)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-fprintf(fd,"static int16_t twb384[95*2*4] = {");
-for i=1:2:(2*94)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-fprintf(fd,"static int16_t twc384[95*2*4] = {");
-for i=1:2:(2*94)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1));
-fclose(fd);
- */
-
-static int16_t twa384[95*2*4] = {32762,-537,32762,-537,32762,-537,32762,-537,
-                                 32749,-1073,32749,-1073,32749,-1073,32749,-1073,
-                                 32727,-1608,32727,-1608,32727,-1608,32727,-1608,
-                                 32696,-2144,32696,-2144,32696,-2144,32696,-2144,
-                                 32657,-2678,32657,-2678,32657,-2678,32657,-2678,
-                                 32609,-3212,32609,-3212,32609,-3212,32609,-3212,
-                                 32552,-3745,32552,-3745,32552,-3745,32552,-3745,
-                                 32486,-4277,32486,-4277,32486,-4277,32486,-4277,
-                                 32412,-4808,32412,-4808,32412,-4808,32412,-4808,
-                                 32329,-5338,32329,-5338,32329,-5338,32329,-5338,
-                                 32237,-5866,32237,-5866,32237,-5866,32237,-5866,
-                                 32137,-6393,32137,-6393,32137,-6393,32137,-6393,
-                                 32028,-6918,32028,-6918,32028,-6918,32028,-6918,
-                                 31911,-7441,31911,-7441,31911,-7441,31911,-7441,
-                                 31785,-7962,31785,-7962,31785,-7962,31785,-7962,
-                                 31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                 31507,-8998,31507,-8998,31507,-8998,31507,-8998,
-                                 31356,-9512,31356,-9512,31356,-9512,31356,-9512,
-                                 31196,-10024,31196,-10024,31196,-10024,31196,-10024,
-                                 31028,-10533,31028,-10533,31028,-10533,31028,-10533,
-                                 30851,-11039,30851,-11039,30851,-11039,30851,-11039,
-                                 30666,-11543,30666,-11543,30666,-11543,30666,-11543,
-                                 30473,-12043,30473,-12043,30473,-12043,30473,-12043,
-                                 30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                 30063,-13034,30063,-13034,30063,-13034,30063,-13034,
-                                 29846,-13524,29846,-13524,29846,-13524,29846,-13524,
-                                 29621,-14010,29621,-14010,29621,-14010,29621,-14010,
-                                 29387,-14493,29387,-14493,29387,-14493,29387,-14493,
-                                 29146,-14972,29146,-14972,29146,-14972,29146,-14972,
-                                 28897,-15447,28897,-15447,28897,-15447,28897,-15447,
-                                 28641,-15918,28641,-15918,28641,-15918,28641,-15918,
-                                 28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                 28105,-16846,28105,-16846,28105,-16846,28105,-16846,
-                                 27825,-17304,27825,-17304,27825,-17304,27825,-17304,
-                                 27538,-17757,27538,-17757,27538,-17757,27538,-17757,
-                                 27244,-18205,27244,-18205,27244,-18205,27244,-18205,
-                                 26943,-18648,26943,-18648,26943,-18648,26943,-18648,
-                                 26634,-19087,26634,-19087,26634,-19087,26634,-19087,
-                                 26318,-19520,26318,-19520,26318,-19520,26318,-19520,
-                                 25995,-19948,25995,-19948,25995,-19948,25995,-19948,
-                                 25665,-20370,25665,-20370,25665,-20370,25665,-20370,
-                                 25329,-20788,25329,-20788,25329,-20788,25329,-20788,
-                                 24985,-21199,24985,-21199,24985,-21199,24985,-21199,
-                                 24635,-21605,24635,-21605,24635,-21605,24635,-21605,
-                                 24278,-22005,24278,-22005,24278,-22005,24278,-22005,
-                                 23915,-22400,23915,-22400,23915,-22400,23915,-22400,
-                                 23545,-22788,23545,-22788,23545,-22788,23545,-22788,
-                                 23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                 22787,-23546,22787,-23546,22787,-23546,22787,-23546,
-                                 22399,-23916,22399,-23916,22399,-23916,22399,-23916,
-                                 22004,-24279,22004,-24279,22004,-24279,22004,-24279,
-                                 21604,-24636,21604,-24636,21604,-24636,21604,-24636,
-                                 21198,-24986,21198,-24986,21198,-24986,21198,-24986,
-                                 20787,-25330,20787,-25330,20787,-25330,20787,-25330,
-                                 20369,-25666,20369,-25666,20369,-25666,20369,-25666,
-                                 19947,-25996,19947,-25996,19947,-25996,19947,-25996,
-                                 19519,-26319,19519,-26319,19519,-26319,19519,-26319,
-                                 19086,-26635,19086,-26635,19086,-26635,19086,-26635,
-                                 18647,-26944,18647,-26944,18647,-26944,18647,-26944,
-                                 18204,-27245,18204,-27245,18204,-27245,18204,-27245,
-                                 17756,-27539,17756,-27539,17756,-27539,17756,-27539,
-                                 17303,-27826,17303,-27826,17303,-27826,17303,-27826,
-                                 16845,-28106,16845,-28106,16845,-28106,16845,-28106,
-                                 16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                 15917,-28642,15917,-28642,15917,-28642,15917,-28642,
-                                 15446,-28898,15446,-28898,15446,-28898,15446,-28898,
-                                 14971,-29147,14971,-29147,14971,-29147,14971,-29147,
-                                 14492,-29388,14492,-29388,14492,-29388,14492,-29388,
-                                 14009,-29622,14009,-29622,14009,-29622,14009,-29622,
-                                 13523,-29847,13523,-29847,13523,-29847,13523,-29847,
-                                 13033,-30064,13033,-30064,13033,-30064,13033,-30064,
-                                 12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                 12042,-30474,12042,-30474,12042,-30474,12042,-30474,
-                                 11542,-30667,11542,-30667,11542,-30667,11542,-30667,
-                                 11038,-30852,11038,-30852,11038,-30852,11038,-30852,
-                                 10532,-31029,10532,-31029,10532,-31029,10532,-31029,
-                                 10023,-31197,10023,-31197,10023,-31197,10023,-31197,
-                                 9511,-31357,9511,-31357,9511,-31357,9511,-31357,
-                                 8997,-31508,8997,-31508,8997,-31508,8997,-31508,
-                                 8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                 7961,-31786,7961,-31786,7961,-31786,7961,-31786,
-                                 7440,-31912,7440,-31912,7440,-31912,7440,-31912,
-                                 6917,-32029,6917,-32029,6917,-32029,6917,-32029,
-                                 6392,-32138,6392,-32138,6392,-32138,6392,-32138,
-                                 5865,-32238,5865,-32238,5865,-32238,5865,-32238,
-                                 5337,-32330,5337,-32330,5337,-32330,5337,-32330,
-                                 4807,-32413,4807,-32413,4807,-32413,4807,-32413,
-                                 4276,-32487,4276,-32487,4276,-32487,4276,-32487,
-                                 3744,-32553,3744,-32553,3744,-32553,3744,-32553,
-                                 3211,-32610,3211,-32610,3211,-32610,3211,-32610,
-                                 2677,-32658,2677,-32658,2677,-32658,2677,-32658,
-                                 2143,-32697,2143,-32697,2143,-32697,2143,-32697,
-                                 1607,-32728,1607,-32728,1607,-32728,1607,-32728,
-                                 1072,-32750,1072,-32750,1072,-32750,1072,-32750,
-                                 536,-32763,536,-32763,536,-32763,536,-32763
-                                };
-static int16_t twb384[95*2*4] = {32749,-1073,32749,-1073,32749,-1073,32749,-1073,
-                                 32696,-2144,32696,-2144,32696,-2144,32696,-2144,
-                                 32609,-3212,32609,-3212,32609,-3212,32609,-3212,
-                                 32486,-4277,32486,-4277,32486,-4277,32486,-4277,
-                                 32329,-5338,32329,-5338,32329,-5338,32329,-5338,
-                                 32137,-6393,32137,-6393,32137,-6393,32137,-6393,
-                                 31911,-7441,31911,-7441,31911,-7441,31911,-7441,
-                                 31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                 31356,-9512,31356,-9512,31356,-9512,31356,-9512,
-                                 31028,-10533,31028,-10533,31028,-10533,31028,-10533,
-                                 30666,-11543,30666,-11543,30666,-11543,30666,-11543,
-                                 30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                 29846,-13524,29846,-13524,29846,-13524,29846,-13524,
-                                 29387,-14493,29387,-14493,29387,-14493,29387,-14493,
-                                 28897,-15447,28897,-15447,28897,-15447,28897,-15447,
-                                 28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                 27825,-17304,27825,-17304,27825,-17304,27825,-17304,
-                                 27244,-18205,27244,-18205,27244,-18205,27244,-18205,
-                                 26634,-19087,26634,-19087,26634,-19087,26634,-19087,
-                                 25995,-19948,25995,-19948,25995,-19948,25995,-19948,
-                                 25329,-20788,25329,-20788,25329,-20788,25329,-20788,
-                                 24635,-21605,24635,-21605,24635,-21605,24635,-21605,
-                                 23915,-22400,23915,-22400,23915,-22400,23915,-22400,
-                                 23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                 22399,-23916,22399,-23916,22399,-23916,22399,-23916,
-                                 21604,-24636,21604,-24636,21604,-24636,21604,-24636,
-                                 20787,-25330,20787,-25330,20787,-25330,20787,-25330,
-                                 19947,-25996,19947,-25996,19947,-25996,19947,-25996,
-                                 19086,-26635,19086,-26635,19086,-26635,19086,-26635,
-                                 18204,-27245,18204,-27245,18204,-27245,18204,-27245,
-                                 17303,-27826,17303,-27826,17303,-27826,17303,-27826,
-                                 16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                 15446,-28898,15446,-28898,15446,-28898,15446,-28898,
-                                 14492,-29388,14492,-29388,14492,-29388,14492,-29388,
-                                 13523,-29847,13523,-29847,13523,-29847,13523,-29847,
-                                 12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                 11542,-30667,11542,-30667,11542,-30667,11542,-30667,
-                                 10532,-31029,10532,-31029,10532,-31029,10532,-31029,
-                                 9511,-31357,9511,-31357,9511,-31357,9511,-31357,
-                                 8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                 7440,-31912,7440,-31912,7440,-31912,7440,-31912,
-                                 6392,-32138,6392,-32138,6392,-32138,6392,-32138,
-                                 5337,-32330,5337,-32330,5337,-32330,5337,-32330,
-                                 4276,-32487,4276,-32487,4276,-32487,4276,-32487,
-                                 3211,-32610,3211,-32610,3211,-32610,3211,-32610,
-                                 2143,-32697,2143,-32697,2143,-32697,2143,-32697,
-                                 1072,-32750,1072,-32750,1072,-32750,1072,-32750,
-                                 0,-32767,0,-32767,0,-32767,0,-32767,
-                                 -1073,-32750,-1073,-32750,-1073,-32750,-1073,-32750,
-                                 -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697,
-                                 -3212,-32610,-3212,-32610,-3212,-32610,-3212,-32610,
-                                 -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487,
-                                 -5338,-32330,-5338,-32330,-5338,-32330,-5338,-32330,
-                                 -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138,
-                                 -7441,-31912,-7441,-31912,-7441,-31912,-7441,-31912,
-                                 -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651,
-                                 -9512,-31357,-9512,-31357,-9512,-31357,-9512,-31357,
-                                 -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029,
-                                 -11543,-30667,-11543,-30667,-11543,-30667,-11543,-30667,
-                                 -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273,
-                                 -13524,-29847,-13524,-29847,-13524,-29847,-13524,-29847,
-                                 -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388,
-                                 -15447,-28898,-15447,-28898,-15447,-28898,-15447,-28898,
-                                 -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                                 -17304,-27826,-17304,-27826,-17304,-27826,-17304,-27826,
-                                 -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245,
-                                 -19087,-26635,-19087,-26635,-19087,-26635,-19087,-26635,
-                                 -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996,
-                                 -20788,-25330,-20788,-25330,-20788,-25330,-20788,-25330,
-                                 -21605,-24636,-21605,-24636,-21605,-24636,-21605,-24636,
-                                 -22400,-23916,-22400,-23916,-22400,-23916,-22400,-23916,
-                                 -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170,
-                                 -23916,-22400,-23916,-22400,-23916,-22400,-23916,-22400,
-                                 -24636,-21605,-24636,-21605,-24636,-21605,-24636,-21605,
-                                 -25330,-20788,-25330,-20788,-25330,-20788,-25330,-20788,
-                                 -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948,
-                                 -26635,-19087,-26635,-19087,-26635,-19087,-26635,-19087,
-                                 -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205,
-                                 -27826,-17304,-27826,-17304,-27826,-17304,-27826,-17304,
-                                 -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384,
-                                 -28898,-15447,-28898,-15447,-28898,-15447,-28898,-15447,
-                                 -29388,-14493,-29388,-14493,-29388,-14493,-29388,-14493,
-                                 -29847,-13524,-29847,-13524,-29847,-13524,-29847,-13524,
-                                 -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540,
-                                 -30667,-11543,-30667,-11543,-30667,-11543,-30667,-11543,
-                                 -31029,-10533,-31029,-10533,-31029,-10533,-31029,-10533,
-                                 -31357,-9512,-31357,-9512,-31357,-9512,-31357,-9512,
-                                 -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481,
-                                 -31912,-7441,-31912,-7441,-31912,-7441,-31912,-7441,
-                                 -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393,
-                                 -32330,-5338,-32330,-5338,-32330,-5338,-32330,-5338,
-                                 -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277,
-                                 -32610,-3212,-32610,-3212,-32610,-3212,-32610,-3212,
-                                 -32697,-2144,-32697,-2144,-32697,-2144,-32697,-2144,
-                                 -32750,-1073,-32750,-1073,-32750,-1073,-32750,-1073
-                                };
-static int16_t twc384[95*2*4] = {32727,-1608,32727,-1608,32727,-1608,32727,-1608,
-                                 32609,-3212,32609,-3212,32609,-3212,32609,-3212,
-                                 32412,-4808,32412,-4808,32412,-4808,32412,-4808,
-                                 32137,-6393,32137,-6393,32137,-6393,32137,-6393,
-                                 31785,-7962,31785,-7962,31785,-7962,31785,-7962,
-                                 31356,-9512,31356,-9512,31356,-9512,31356,-9512,
-                                 30851,-11039,30851,-11039,30851,-11039,30851,-11039,
-                                 30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                 29621,-14010,29621,-14010,29621,-14010,29621,-14010,
-                                 28897,-15447,28897,-15447,28897,-15447,28897,-15447,
-                                 28105,-16846,28105,-16846,28105,-16846,28105,-16846,
-                                 27244,-18205,27244,-18205,27244,-18205,27244,-18205,
-                                 26318,-19520,26318,-19520,26318,-19520,26318,-19520,
-                                 25329,-20788,25329,-20788,25329,-20788,25329,-20788,
-                                 24278,-22005,24278,-22005,24278,-22005,24278,-22005,
-                                 23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                 22004,-24279,22004,-24279,22004,-24279,22004,-24279,
-                                 20787,-25330,20787,-25330,20787,-25330,20787,-25330,
-                                 19519,-26319,19519,-26319,19519,-26319,19519,-26319,
-                                 18204,-27245,18204,-27245,18204,-27245,18204,-27245,
-                                 16845,-28106,16845,-28106,16845,-28106,16845,-28106,
-                                 15446,-28898,15446,-28898,15446,-28898,15446,-28898,
-                                 14009,-29622,14009,-29622,14009,-29622,14009,-29622,
-                                 12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                 11038,-30852,11038,-30852,11038,-30852,11038,-30852,
-                                 9511,-31357,9511,-31357,9511,-31357,9511,-31357,
-                                 7961,-31786,7961,-31786,7961,-31786,7961,-31786,
-                                 6392,-32138,6392,-32138,6392,-32138,6392,-32138,
-                                 4807,-32413,4807,-32413,4807,-32413,4807,-32413,
-                                 3211,-32610,3211,-32610,3211,-32610,3211,-32610,
-                                 1607,-32728,1607,-32728,1607,-32728,1607,-32728,
-                                 0,-32767,0,-32767,0,-32767,0,-32767,
-                                 -1608,-32728,-1608,-32728,-1608,-32728,-1608,-32728,
-                                 -3212,-32610,-3212,-32610,-3212,-32610,-3212,-32610,
-                                 -4808,-32413,-4808,-32413,-4808,-32413,-4808,-32413,
-                                 -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138,
-                                 -7962,-31786,-7962,-31786,-7962,-31786,-7962,-31786,
-                                 -9512,-31357,-9512,-31357,-9512,-31357,-9512,-31357,
-                                 -11039,-30852,-11039,-30852,-11039,-30852,-11039,-30852,
-                                 -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273,
-                                 -14010,-29622,-14010,-29622,-14010,-29622,-14010,-29622,
-                                 -15447,-28898,-15447,-28898,-15447,-28898,-15447,-28898,
-                                 -16846,-28106,-16846,-28106,-16846,-28106,-16846,-28106,
-                                 -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245,
-                                 -19520,-26319,-19520,-26319,-19520,-26319,-19520,-26319,
-                                 -20788,-25330,-20788,-25330,-20788,-25330,-20788,-25330,
-                                 -22005,-24279,-22005,-24279,-22005,-24279,-22005,-24279,
-                                 -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170,
-                                 -24279,-22005,-24279,-22005,-24279,-22005,-24279,-22005,
-                                 -25330,-20788,-25330,-20788,-25330,-20788,-25330,-20788,
-                                 -26319,-19520,-26319,-19520,-26319,-19520,-26319,-19520,
-                                 -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205,
-                                 -28106,-16846,-28106,-16846,-28106,-16846,-28106,-16846,
-                                 -28898,-15447,-28898,-15447,-28898,-15447,-28898,-15447,
-                                 -29622,-14010,-29622,-14010,-29622,-14010,-29622,-14010,
-                                 -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540,
-                                 -30852,-11039,-30852,-11039,-30852,-11039,-30852,-11039,
-                                 -31357,-9512,-31357,-9512,-31357,-9512,-31357,-9512,
-                                 -31786,-7962,-31786,-7962,-31786,-7962,-31786,-7962,
-                                 -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393,
-                                 -32413,-4808,-32413,-4808,-32413,-4808,-32413,-4808,
-                                 -32610,-3212,-32610,-3212,-32610,-3212,-32610,-3212,
-                                 -32728,-1608,-32728,-1608,-32728,-1608,-32728,-1608,
-                                 -32767,-1,-32767,-1,-32767,-1,-32767,-1,
-                                 -32728,1607,-32728,1607,-32728,1607,-32728,1607,
-                                 -32610,3211,-32610,3211,-32610,3211,-32610,3211,
-                                 -32413,4807,-32413,4807,-32413,4807,-32413,4807,
-                                 -32138,6392,-32138,6392,-32138,6392,-32138,6392,
-                                 -31786,7961,-31786,7961,-31786,7961,-31786,7961,
-                                 -31357,9511,-31357,9511,-31357,9511,-31357,9511,
-                                 -30852,11038,-30852,11038,-30852,11038,-30852,11038,
-                                 -30273,12539,-30273,12539,-30273,12539,-30273,12539,
-                                 -29622,14009,-29622,14009,-29622,14009,-29622,14009,
-                                 -28898,15446,-28898,15446,-28898,15446,-28898,15446,
-                                 -28106,16845,-28106,16845,-28106,16845,-28106,16845,
-                                 -27245,18204,-27245,18204,-27245,18204,-27245,18204,
-                                 -26319,19519,-26319,19519,-26319,19519,-26319,19519,
-                                 -25330,20787,-25330,20787,-25330,20787,-25330,20787,
-                                 -24279,22004,-24279,22004,-24279,22004,-24279,22004,
-                                 -23170,23169,-23170,23169,-23170,23169,-23170,23169,
-                                 -22005,24278,-22005,24278,-22005,24278,-22005,24278,
-                                 -20788,25329,-20788,25329,-20788,25329,-20788,25329,
-                                 -19520,26318,-19520,26318,-19520,26318,-19520,26318,
-                                 -18205,27244,-18205,27244,-18205,27244,-18205,27244,
-                                 -16846,28105,-16846,28105,-16846,28105,-16846,28105,
-                                 -15447,28897,-15447,28897,-15447,28897,-15447,28897,
-                                 -14010,29621,-14010,29621,-14010,29621,-14010,29621,
-                                 -12540,30272,-12540,30272,-12540,30272,-12540,30272,
-                                 -11039,30851,-11039,30851,-11039,30851,-11039,30851,
-                                 -9512,31356,-9512,31356,-9512,31356,-9512,31356,
-                                 -7962,31785,-7962,31785,-7962,31785,-7962,31785,
-                                 -6393,32137,-6393,32137,-6393,32137,-6393,32137,
-                                 -4808,32412,-4808,32412,-4808,32412,-4808,32412,
-                                 -3212,32609,-3212,32609,-3212,32609,-3212,32609,
-                                 -1608,32727,-1608,32727,-1608,32727,-1608,32727
-                                };
+static int16_t twa384[95*2*4];
+static int16_t twb384[95*2*4];
+static int16_t twc384[95*2*4];
 
 void dft384(int16_t *x,int16_t *y,unsigned char scale_flag)  // 96 x 4
 {
@@ -9688,366 +7684,9 @@ void dft384(int16_t *x,int16_t *y,unsigned char scale_flag)  // 96 x 4
 
 };
 
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:107)/432));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:107)/432));
-twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(1:107)/432));
-twa2 = zeros(1,2*107);
-twb2 = zeros(1,2*107);
-twc2 = zeros(1,2*107);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-twc2(1:2:end) = real(twc);
-twc2(2:2:end) = imag(twc);
-fd=fopen("twiddle_tmp.txt","w");
-fprintf(fd,"static int16_t twa432[107*2*4] = {");
-for i=1:2:(2*106)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-fprintf(fd,"static int16_t twb432[107*2*4] = {");
-for i=1:2:(2*106)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-fprintf(fd,"static int16_t twc432[107*2*4] = {");
-for i=1:2:(2*106)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1));
-fclose(fd);
- */
-
-static int16_t twa432[107*2*4] = {32763,-477,32763,-477,32763,-477,32763,-477,
-                                  32753,-954,32753,-954,32753,-954,32753,-954,
-                                  32735,-1430,32735,-1430,32735,-1430,32735,-1430,
-                                  32711,-1906,32711,-1906,32711,-1906,32711,-1906,
-                                  32680,-2381,32680,-2381,32680,-2381,32680,-2381,
-                                  32642,-2856,32642,-2856,32642,-2856,32642,-2856,
-                                  32597,-3331,32597,-3331,32597,-3331,32597,-3331,
-                                  32545,-3805,32545,-3805,32545,-3805,32545,-3805,
-                                  32486,-4277,32486,-4277,32486,-4277,32486,-4277,
-                                  32421,-4749,32421,-4749,32421,-4749,32421,-4749,
-                                  32348,-5221,32348,-5221,32348,-5221,32348,-5221,
-                                  32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                  32183,-6159,32183,-6159,32183,-6159,32183,-6159,
-                                  32090,-6627,32090,-6627,32090,-6627,32090,-6627,
-                                  31990,-7093,31990,-7093,31990,-7093,31990,-7093,
-                                  31883,-7557,31883,-7557,31883,-7557,31883,-7557,
-                                  31770,-8020,31770,-8020,31770,-8020,31770,-8020,
-                                  31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                  31523,-8941,31523,-8941,31523,-8941,31523,-8941,
-                                  31390,-9398,31390,-9398,31390,-9398,31390,-9398,
-                                  31250,-9854,31250,-9854,31250,-9854,31250,-9854,
-                                  31103,-10307,31103,-10307,31103,-10307,31103,-10307,
-                                  30950,-10758,30950,-10758,30950,-10758,30950,-10758,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30624,-11654,30624,-11654,30624,-11654,30624,-11654,
-                                  30451,-12098,30451,-12098,30451,-12098,30451,-12098,
-                                  30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                  30087,-12979,30087,-12979,30087,-12979,30087,-12979,
-                                  29895,-13415,29895,-13415,29895,-13415,29895,-13415,
-                                  29696,-13848,29696,-13848,29696,-13848,29696,-13848,
-                                  29492,-14279,29492,-14279,29492,-14279,29492,-14279,
-                                  29281,-14706,29281,-14706,29281,-14706,29281,-14706,
-                                  29064,-15131,29064,-15131,29064,-15131,29064,-15131,
-                                  28841,-15552,28841,-15552,28841,-15552,28841,-15552,
-                                  28612,-15970,28612,-15970,28612,-15970,28612,-15970,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  28135,-16795,28135,-16795,28135,-16795,28135,-16795,
-                                  27888,-17202,27888,-17202,27888,-17202,27888,-17202,
-                                  27635,-17606,27635,-17606,27635,-17606,27635,-17606,
-                                  27376,-18006,27376,-18006,27376,-18006,27376,-18006,
-                                  27111,-18403,27111,-18403,27111,-18403,27111,-18403,
-                                  26841,-18795,26841,-18795,26841,-18795,26841,-18795,
-                                  26564,-19183,26564,-19183,26564,-19183,26564,-19183,
-                                  26283,-19568,26283,-19568,26283,-19568,26283,-19568,
-                                  25995,-19948,25995,-19948,25995,-19948,25995,-19948,
-                                  25702,-20324,25702,-20324,25702,-20324,25702,-20324,
-                                  25404,-20695,25404,-20695,25404,-20695,25404,-20695,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24791,-21426,24791,-21426,24791,-21426,24791,-21426,
-                                  24477,-21784,24477,-21784,24477,-21784,24477,-21784,
-                                  24158,-22138,24158,-22138,24158,-22138,24158,-22138,
-                                  23833,-22487,23833,-22487,23833,-22487,23833,-22487,
-                                  23504,-22831,23504,-22831,23504,-22831,23504,-22831,
-                                  23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                  22830,-23505,22830,-23505,22830,-23505,22830,-23505,
-                                  22486,-23834,22486,-23834,22486,-23834,22486,-23834,
-                                  22137,-24159,22137,-24159,22137,-24159,22137,-24159,
-                                  21783,-24478,21783,-24478,21783,-24478,21783,-24478,
-                                  21425,-24792,21425,-24792,21425,-24792,21425,-24792,
-                                  21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                  20694,-25405,20694,-25405,20694,-25405,20694,-25405,
-                                  20323,-25703,20323,-25703,20323,-25703,20323,-25703,
-                                  19947,-25996,19947,-25996,19947,-25996,19947,-25996,
-                                  19567,-26284,19567,-26284,19567,-26284,19567,-26284,
-                                  19182,-26565,19182,-26565,19182,-26565,19182,-26565,
-                                  18794,-26842,18794,-26842,18794,-26842,18794,-26842,
-                                  18402,-27112,18402,-27112,18402,-27112,18402,-27112,
-                                  18005,-27377,18005,-27377,18005,-27377,18005,-27377,
-                                  17605,-27636,17605,-27636,17605,-27636,17605,-27636,
-                                  17201,-27889,17201,-27889,17201,-27889,17201,-27889,
-                                  16794,-28136,16794,-28136,16794,-28136,16794,-28136,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  15969,-28613,15969,-28613,15969,-28613,15969,-28613,
-                                  15551,-28842,15551,-28842,15551,-28842,15551,-28842,
-                                  15130,-29065,15130,-29065,15130,-29065,15130,-29065,
-                                  14705,-29282,14705,-29282,14705,-29282,14705,-29282,
-                                  14278,-29493,14278,-29493,14278,-29493,14278,-29493,
-                                  13847,-29697,13847,-29697,13847,-29697,13847,-29697,
-                                  13414,-29896,13414,-29896,13414,-29896,13414,-29896,
-                                  12978,-30088,12978,-30088,12978,-30088,12978,-30088,
-                                  12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                  12097,-30452,12097,-30452,12097,-30452,12097,-30452,
-                                  11653,-30625,11653,-30625,11653,-30625,11653,-30625,
-                                  11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                  10757,-30951,10757,-30951,10757,-30951,10757,-30951,
-                                  10306,-31104,10306,-31104,10306,-31104,10306,-31104,
-                                  9853,-31251,9853,-31251,9853,-31251,9853,-31251,
-                                  9397,-31391,9397,-31391,9397,-31391,9397,-31391,
-                                  8940,-31524,8940,-31524,8940,-31524,8940,-31524,
-                                  8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                  8019,-31771,8019,-31771,8019,-31771,8019,-31771,
-                                  7556,-31884,7556,-31884,7556,-31884,7556,-31884,
-                                  7092,-31991,7092,-31991,7092,-31991,7092,-31991,
-                                  6626,-32091,6626,-32091,6626,-32091,6626,-32091,
-                                  6158,-32184,6158,-32184,6158,-32184,6158,-32184,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  5220,-32349,5220,-32349,5220,-32349,5220,-32349,
-                                  4748,-32422,4748,-32422,4748,-32422,4748,-32422,
-                                  4276,-32487,4276,-32487,4276,-32487,4276,-32487,
-                                  3804,-32546,3804,-32546,3804,-32546,3804,-32546,
-                                  3330,-32598,3330,-32598,3330,-32598,3330,-32598,
-                                  2855,-32643,2855,-32643,2855,-32643,2855,-32643,
-                                  2380,-32681,2380,-32681,2380,-32681,2380,-32681,
-                                  1905,-32712,1905,-32712,1905,-32712,1905,-32712,
-                                  1429,-32736,1429,-32736,1429,-32736,1429,-32736,
-                                  953,-32754,953,-32754,953,-32754,953,-32754,
-                                  476,-32764,476,-32764,476,-32764,476,-32764
-                                 };
-static int16_t twb432[107*2*4] = {32753,-954,32753,-954,32753,-954,32753,-954,
-                                  32711,-1906,32711,-1906,32711,-1906,32711,-1906,
-                                  32642,-2856,32642,-2856,32642,-2856,32642,-2856,
-                                  32545,-3805,32545,-3805,32545,-3805,32545,-3805,
-                                  32421,-4749,32421,-4749,32421,-4749,32421,-4749,
-                                  32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                  32090,-6627,32090,-6627,32090,-6627,32090,-6627,
-                                  31883,-7557,31883,-7557,31883,-7557,31883,-7557,
-                                  31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                  31390,-9398,31390,-9398,31390,-9398,31390,-9398,
-                                  31103,-10307,31103,-10307,31103,-10307,31103,-10307,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30451,-12098,30451,-12098,30451,-12098,30451,-12098,
-                                  30087,-12979,30087,-12979,30087,-12979,30087,-12979,
-                                  29696,-13848,29696,-13848,29696,-13848,29696,-13848,
-                                  29281,-14706,29281,-14706,29281,-14706,29281,-14706,
-                                  28841,-15552,28841,-15552,28841,-15552,28841,-15552,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  27888,-17202,27888,-17202,27888,-17202,27888,-17202,
-                                  27376,-18006,27376,-18006,27376,-18006,27376,-18006,
-                                  26841,-18795,26841,-18795,26841,-18795,26841,-18795,
-                                  26283,-19568,26283,-19568,26283,-19568,26283,-19568,
-                                  25702,-20324,25702,-20324,25702,-20324,25702,-20324,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24477,-21784,24477,-21784,24477,-21784,24477,-21784,
-                                  23833,-22487,23833,-22487,23833,-22487,23833,-22487,
-                                  23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                  22486,-23834,22486,-23834,22486,-23834,22486,-23834,
-                                  21783,-24478,21783,-24478,21783,-24478,21783,-24478,
-                                  21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                  20323,-25703,20323,-25703,20323,-25703,20323,-25703,
-                                  19567,-26284,19567,-26284,19567,-26284,19567,-26284,
-                                  18794,-26842,18794,-26842,18794,-26842,18794,-26842,
-                                  18005,-27377,18005,-27377,18005,-27377,18005,-27377,
-                                  17201,-27889,17201,-27889,17201,-27889,17201,-27889,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  15551,-28842,15551,-28842,15551,-28842,15551,-28842,
-                                  14705,-29282,14705,-29282,14705,-29282,14705,-29282,
-                                  13847,-29697,13847,-29697,13847,-29697,13847,-29697,
-                                  12978,-30088,12978,-30088,12978,-30088,12978,-30088,
-                                  12097,-30452,12097,-30452,12097,-30452,12097,-30452,
-                                  11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                  10306,-31104,10306,-31104,10306,-31104,10306,-31104,
-                                  9397,-31391,9397,-31391,9397,-31391,9397,-31391,
-                                  8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                  7556,-31884,7556,-31884,7556,-31884,7556,-31884,
-                                  6626,-32091,6626,-32091,6626,-32091,6626,-32091,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  4748,-32422,4748,-32422,4748,-32422,4748,-32422,
-                                  3804,-32546,3804,-32546,3804,-32546,3804,-32546,
-                                  2855,-32643,2855,-32643,2855,-32643,2855,-32643,
-                                  1905,-32712,1905,-32712,1905,-32712,1905,-32712,
-                                  953,-32754,953,-32754,953,-32754,953,-32754,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -954,-32754,-954,-32754,-954,-32754,-954,-32754,
-                                  -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712,
-                                  -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643,
-                                  -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546,
-                                  -4749,-32422,-4749,-32422,-4749,-32422,-4749,-32422,
-                                  -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                  -6627,-32091,-6627,-32091,-6627,-32091,-6627,-32091,
-                                  -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884,
-                                  -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651,
-                                  -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391,
-                                  -10307,-31104,-10307,-31104,-10307,-31104,-10307,-31104,
-                                  -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791,
-                                  -12098,-30452,-12098,-30452,-12098,-30452,-12098,-30452,
-                                  -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088,
-                                  -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697,
-                                  -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282,
-                                  -15552,-28842,-15552,-28842,-15552,-28842,-15552,-28842,
-                                  -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                                  -17202,-27889,-17202,-27889,-17202,-27889,-17202,-27889,
-                                  -18006,-27377,-18006,-27377,-18006,-27377,-18006,-27377,
-                                  -18795,-26842,-18795,-26842,-18795,-26842,-18795,-26842,
-                                  -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284,
-                                  -20324,-25703,-20324,-25703,-20324,-25703,-20324,-25703,
-                                  -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101,
-                                  -21784,-24478,-21784,-24478,-21784,-24478,-21784,-24478,
-                                  -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834,
-                                  -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170,
-                                  -23834,-22487,-23834,-22487,-23834,-22487,-23834,-22487,
-                                  -24478,-21784,-24478,-21784,-24478,-21784,-24478,-21784,
-                                  -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063,
-                                  -25703,-20324,-25703,-20324,-25703,-20324,-25703,-20324,
-                                  -26284,-19568,-26284,-19568,-26284,-19568,-26284,-19568,
-                                  -26842,-18795,-26842,-18795,-26842,-18795,-26842,-18795,
-                                  -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006,
-                                  -27889,-17202,-27889,-17202,-27889,-17202,-27889,-17202,
-                                  -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384,
-                                  -28842,-15552,-28842,-15552,-28842,-15552,-28842,-15552,
-                                  -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706,
-                                  -29697,-13848,-29697,-13848,-29697,-13848,-29697,-13848,
-                                  -30088,-12979,-30088,-12979,-30088,-12979,-30088,-12979,
-                                  -30452,-12098,-30452,-12098,-30452,-12098,-30452,-12098,
-                                  -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207,
-                                  -31104,-10307,-31104,-10307,-31104,-10307,-31104,-10307,
-                                  -31391,-9398,-31391,-9398,-31391,-9398,-31391,-9398,
-                                  -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481,
-                                  -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557,
-                                  -32091,-6627,-32091,-6627,-32091,-6627,-32091,-6627,
-                                  -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690,
-                                  -32422,-4749,-32422,-4749,-32422,-4749,-32422,-4749,
-                                  -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805,
-                                  -32643,-2856,-32643,-2856,-32643,-2856,-32643,-2856,
-                                  -32712,-1906,-32712,-1906,-32712,-1906,-32712,-1906,
-                                  -32754,-954,-32754,-954,-32754,-954,-32754,-954
-                                 };
-static int16_t twc432[107*2*4] = {32735,-1430,32735,-1430,32735,-1430,32735,-1430,
-                                  32642,-2856,32642,-2856,32642,-2856,32642,-2856,
-                                  32486,-4277,32486,-4277,32486,-4277,32486,-4277,
-                                  32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                  31990,-7093,31990,-7093,31990,-7093,31990,-7093,
-                                  31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                  31250,-9854,31250,-9854,31250,-9854,31250,-9854,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                  29696,-13848,29696,-13848,29696,-13848,29696,-13848,
-                                  29064,-15131,29064,-15131,29064,-15131,29064,-15131,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  27635,-17606,27635,-17606,27635,-17606,27635,-17606,
-                                  26841,-18795,26841,-18795,26841,-18795,26841,-18795,
-                                  25995,-19948,25995,-19948,25995,-19948,25995,-19948,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24158,-22138,24158,-22138,24158,-22138,24158,-22138,
-                                  23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                  22137,-24159,22137,-24159,22137,-24159,22137,-24159,
-                                  21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                  19947,-25996,19947,-25996,19947,-25996,19947,-25996,
-                                  18794,-26842,18794,-26842,18794,-26842,18794,-26842,
-                                  17605,-27636,17605,-27636,17605,-27636,17605,-27636,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  15130,-29065,15130,-29065,15130,-29065,15130,-29065,
-                                  13847,-29697,13847,-29697,13847,-29697,13847,-29697,
-                                  12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                  11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                  9853,-31251,9853,-31251,9853,-31251,9853,-31251,
-                                  8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                  7092,-31991,7092,-31991,7092,-31991,7092,-31991,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  4276,-32487,4276,-32487,4276,-32487,4276,-32487,
-                                  2855,-32643,2855,-32643,2855,-32643,2855,-32643,
-                                  1429,-32736,1429,-32736,1429,-32736,1429,-32736,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -1430,-32736,-1430,-32736,-1430,-32736,-1430,-32736,
-                                  -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643,
-                                  -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487,
-                                  -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                  -7093,-31991,-7093,-31991,-7093,-31991,-7093,-31991,
-                                  -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651,
-                                  -9854,-31251,-9854,-31251,-9854,-31251,-9854,-31251,
-                                  -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791,
-                                  -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273,
-                                  -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697,
-                                  -15131,-29065,-15131,-29065,-15131,-29065,-15131,-29065,
-                                  -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                                  -17606,-27636,-17606,-27636,-17606,-27636,-17606,-27636,
-                                  -18795,-26842,-18795,-26842,-18795,-26842,-18795,-26842,
-                                  -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996,
-                                  -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101,
-                                  -22138,-24159,-22138,-24159,-22138,-24159,-22138,-24159,
-                                  -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170,
-                                  -24159,-22138,-24159,-22138,-24159,-22138,-24159,-22138,
-                                  -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063,
-                                  -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948,
-                                  -26842,-18795,-26842,-18795,-26842,-18795,-26842,-18795,
-                                  -27636,-17606,-27636,-17606,-27636,-17606,-27636,-17606,
-                                  -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384,
-                                  -29065,-15131,-29065,-15131,-29065,-15131,-29065,-15131,
-                                  -29697,-13848,-29697,-13848,-29697,-13848,-29697,-13848,
-                                  -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540,
-                                  -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207,
-                                  -31251,-9854,-31251,-9854,-31251,-9854,-31251,-9854,
-                                  -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481,
-                                  -31991,-7093,-31991,-7093,-31991,-7093,-31991,-7093,
-                                  -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690,
-                                  -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277,
-                                  -32643,-2856,-32643,-2856,-32643,-2856,-32643,-2856,
-                                  -32736,-1430,-32736,-1430,-32736,-1430,-32736,-1430,
-                                  -32767,-1,-32767,-1,-32767,-1,-32767,-1,
-                                  -32736,1429,-32736,1429,-32736,1429,-32736,1429,
-                                  -32643,2855,-32643,2855,-32643,2855,-32643,2855,
-                                  -32487,4276,-32487,4276,-32487,4276,-32487,4276,
-                                  -32270,5689,-32270,5689,-32270,5689,-32270,5689,
-                                  -31991,7092,-31991,7092,-31991,7092,-31991,7092,
-                                  -31651,8480,-31651,8480,-31651,8480,-31651,8480,
-                                  -31251,9853,-31251,9853,-31251,9853,-31251,9853,
-                                  -30791,11206,-30791,11206,-30791,11206,-30791,11206,
-                                  -30273,12539,-30273,12539,-30273,12539,-30273,12539,
-                                  -29697,13847,-29697,13847,-29697,13847,-29697,13847,
-                                  -29065,15130,-29065,15130,-29065,15130,-29065,15130,
-                                  -28378,16383,-28378,16383,-28378,16383,-28378,16383,
-                                  -27636,17605,-27636,17605,-27636,17605,-27636,17605,
-                                  -26842,18794,-26842,18794,-26842,18794,-26842,18794,
-                                  -25996,19947,-25996,19947,-25996,19947,-25996,19947,
-                                  -25101,21062,-25101,21062,-25101,21062,-25101,21062,
-                                  -24159,22137,-24159,22137,-24159,22137,-24159,22137,
-                                  -23170,23169,-23170,23169,-23170,23169,-23170,23169,
-                                  -22138,24158,-22138,24158,-22138,24158,-22138,24158,
-                                  -21063,25100,-21063,25100,-21063,25100,-21063,25100,
-                                  -19948,25995,-19948,25995,-19948,25995,-19948,25995,
-                                  -18795,26841,-18795,26841,-18795,26841,-18795,26841,
-                                  -17606,27635,-17606,27635,-17606,27635,-17606,27635,
-                                  -16384,28377,-16384,28377,-16384,28377,-16384,28377,
-                                  -15131,29064,-15131,29064,-15131,29064,-15131,29064,
-                                  -13848,29696,-13848,29696,-13848,29696,-13848,29696,
-                                  -12540,30272,-12540,30272,-12540,30272,-12540,30272,
-                                  -11207,30790,-11207,30790,-11207,30790,-11207,30790,
-                                  -9854,31250,-9854,31250,-9854,31250,-9854,31250,
-                                  -8481,31650,-8481,31650,-8481,31650,-8481,31650,
-                                  -7093,31990,-7093,31990,-7093,31990,-7093,31990,
-                                  -5690,32269,-5690,32269,-5690,32269,-5690,32269,
-                                  -4277,32486,-4277,32486,-4277,32486,-4277,32486,
-                                  -2856,32642,-2856,32642,-2856,32642,-2856,32642,
-                                  -1430,32735,-1430,32735,-1430,32735,-1430,32735
-                                 };
-
+static int16_t twa432[107*2*4];
+static int16_t twb432[107*2*4];
+static int16_t twc432[107*2*4];
 
 void dft432(int16_t *x,int16_t *y,unsigned char scale_flag)  // 108 x 4
 {
@@ -10101,402 +7740,9 @@ void dft432(int16_t *x,int16_t *y,unsigned char scale_flag)  // 108 x 4
   _m_empty();
 
 };
-/*
-Twiddles generated with
-
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:119)/480));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:119)/480));
-twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(1:119)/480));
-twa2 = zeros(1,2*119);
-twb2 = zeros(1,2*119);
-twc2 = zeros(1,2*119);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-twc2(1:2:end) = real(twc);
-twc2(2:2:end) = imag(twc);
-fd=fopen("twiddle_tmp.txt","w");
-fprintf(fd,"static int16_t twa480[119*2*4] = {");
-for i=1:2:(2*118)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-fprintf(fd,"static int16_t twb480[119*2*4] = {");
-for i=1:2:(2*118)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-fprintf(fd,"static int16_t twc480[119*2*4] = {");
-for i=1:2:(2*118)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1));
-fclose(fd);
-*/
-static int16_t twa480[119*2*4] = {32764,-429,32764,-429,32764,-429,32764,-429,
-                                  32755,-858,32755,-858,32755,-858,32755,-858,
-                                  32741,-1287,32741,-1287,32741,-1287,32741,-1287,
-                                  32722,-1715,32722,-1715,32722,-1715,32722,-1715,
-                                  32696,-2144,32696,-2144,32696,-2144,32696,-2144,
-                                  32665,-2571,32665,-2571,32665,-2571,32665,-2571,
-                                  32629,-2999,32629,-2999,32629,-2999,32629,-2999,
-                                  32587,-3426,32587,-3426,32587,-3426,32587,-3426,
-                                  32539,-3852,32539,-3852,32539,-3852,32539,-3852,
-                                  32486,-4277,32486,-4277,32486,-4277,32486,-4277,
-                                  32427,-4702,32427,-4702,32427,-4702,32427,-4702,
-                                  32363,-5126,32363,-5126,32363,-5126,32363,-5126,
-                                  32293,-5550,32293,-5550,32293,-5550,32293,-5550,
-                                  32218,-5972,32218,-5972,32218,-5972,32218,-5972,
-                                  32137,-6393,32137,-6393,32137,-6393,32137,-6393,
-                                  32050,-6813,32050,-6813,32050,-6813,32050,-6813,
-                                  31959,-7232,31959,-7232,31959,-7232,31959,-7232,
-                                  31861,-7650,31861,-7650,31861,-7650,31861,-7650,
-                                  31758,-8066,31758,-8066,31758,-8066,31758,-8066,
-                                  31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                  31536,-8895,31536,-8895,31536,-8895,31536,-8895,
-                                  31417,-9307,31417,-9307,31417,-9307,31417,-9307,
-                                  31293,-9717,31293,-9717,31293,-9717,31293,-9717,
-                                  31163,-10126,31163,-10126,31163,-10126,31163,-10126,
-                                  31028,-10533,31028,-10533,31028,-10533,31028,-10533,
-                                  30887,-10938,30887,-10938,30887,-10938,30887,-10938,
-                                  30741,-11342,30741,-11342,30741,-11342,30741,-11342,
-                                  30590,-11743,30590,-11743,30590,-11743,30590,-11743,
-                                  30434,-12143,30434,-12143,30434,-12143,30434,-12143,
-                                  30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                  30106,-12935,30106,-12935,30106,-12935,30106,-12935,
-                                  29934,-13328,29934,-13328,29934,-13328,29934,-13328,
-                                  29757,-13719,29757,-13719,29757,-13719,29757,-13719,
-                                  29575,-14107,29575,-14107,29575,-14107,29575,-14107,
-                                  29387,-14493,29387,-14493,29387,-14493,29387,-14493,
-                                  29195,-14876,29195,-14876,29195,-14876,29195,-14876,
-                                  28998,-15257,28998,-15257,28998,-15257,28998,-15257,
-                                  28796,-15636,28796,-15636,28796,-15636,28796,-15636,
-                                  28589,-16011,28589,-16011,28589,-16011,28589,-16011,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  28160,-16754,28160,-16754,28160,-16754,28160,-16754,
-                                  27938,-17121,27938,-17121,27938,-17121,27938,-17121,
-                                  27711,-17485,27711,-17485,27711,-17485,27711,-17485,
-                                  27480,-17847,27480,-17847,27480,-17847,27480,-17847,
-                                  27244,-18205,27244,-18205,27244,-18205,27244,-18205,
-                                  27004,-18560,27004,-18560,27004,-18560,27004,-18560,
-                                  26758,-18912,26758,-18912,26758,-18912,26758,-18912,
-                                  26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                                  26254,-19606,26254,-19606,26254,-19606,26254,-19606,
-                                  25995,-19948,25995,-19948,25995,-19948,25995,-19948,
-                                  25732,-20286,25732,-20286,25732,-20286,25732,-20286,
-                                  25464,-20621,25464,-20621,25464,-20621,25464,-20621,
-                                  25192,-20953,25192,-20953,25192,-20953,25192,-20953,
-                                  24916,-21281,24916,-21281,24916,-21281,24916,-21281,
-                                  24635,-21605,24635,-21605,24635,-21605,24635,-21605,
-                                  24350,-21926,24350,-21926,24350,-21926,24350,-21926,
-                                  24061,-22243,24061,-22243,24061,-22243,24061,-22243,
-                                  23768,-22556,23768,-22556,23768,-22556,23768,-22556,
-                                  23471,-22865,23471,-22865,23471,-22865,23471,-22865,
-                                  23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                  22864,-23472,22864,-23472,22864,-23472,22864,-23472,
-                                  22555,-23769,22555,-23769,22555,-23769,22555,-23769,
-                                  22242,-24062,22242,-24062,22242,-24062,22242,-24062,
-                                  21925,-24351,21925,-24351,21925,-24351,21925,-24351,
-                                  21604,-24636,21604,-24636,21604,-24636,21604,-24636,
-                                  21280,-24917,21280,-24917,21280,-24917,21280,-24917,
-                                  20952,-25193,20952,-25193,20952,-25193,20952,-25193,
-                                  20620,-25465,20620,-25465,20620,-25465,20620,-25465,
-                                  20285,-25733,20285,-25733,20285,-25733,20285,-25733,
-                                  19947,-25996,19947,-25996,19947,-25996,19947,-25996,
-                                  19605,-26255,19605,-26255,19605,-26255,19605,-26255,
-                                  19259,-26510,19259,-26510,19259,-26510,19259,-26510,
-                                  18911,-26759,18911,-26759,18911,-26759,18911,-26759,
-                                  18559,-27005,18559,-27005,18559,-27005,18559,-27005,
-                                  18204,-27245,18204,-27245,18204,-27245,18204,-27245,
-                                  17846,-27481,17846,-27481,17846,-27481,17846,-27481,
-                                  17484,-27712,17484,-27712,17484,-27712,17484,-27712,
-                                  17120,-27939,17120,-27939,17120,-27939,17120,-27939,
-                                  16753,-28161,16753,-28161,16753,-28161,16753,-28161,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  16010,-28590,16010,-28590,16010,-28590,16010,-28590,
-                                  15635,-28797,15635,-28797,15635,-28797,15635,-28797,
-                                  15256,-28999,15256,-28999,15256,-28999,15256,-28999,
-                                  14875,-29196,14875,-29196,14875,-29196,14875,-29196,
-                                  14492,-29388,14492,-29388,14492,-29388,14492,-29388,
-                                  14106,-29576,14106,-29576,14106,-29576,14106,-29576,
-                                  13718,-29758,13718,-29758,13718,-29758,13718,-29758,
-                                  13327,-29935,13327,-29935,13327,-29935,13327,-29935,
-                                  12934,-30107,12934,-30107,12934,-30107,12934,-30107,
-                                  12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                  12142,-30435,12142,-30435,12142,-30435,12142,-30435,
-                                  11742,-30591,11742,-30591,11742,-30591,11742,-30591,
-                                  11341,-30742,11341,-30742,11341,-30742,11341,-30742,
-                                  10937,-30888,10937,-30888,10937,-30888,10937,-30888,
-                                  10532,-31029,10532,-31029,10532,-31029,10532,-31029,
-                                  10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                                  9716,-31294,9716,-31294,9716,-31294,9716,-31294,
-                                  9306,-31418,9306,-31418,9306,-31418,9306,-31418,
-                                  8894,-31537,8894,-31537,8894,-31537,8894,-31537,
-                                  8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                  8065,-31759,8065,-31759,8065,-31759,8065,-31759,
-                                  7649,-31862,7649,-31862,7649,-31862,7649,-31862,
-                                  7231,-31960,7231,-31960,7231,-31960,7231,-31960,
-                                  6812,-32051,6812,-32051,6812,-32051,6812,-32051,
-                                  6392,-32138,6392,-32138,6392,-32138,6392,-32138,
-                                  5971,-32219,5971,-32219,5971,-32219,5971,-32219,
-                                  5549,-32294,5549,-32294,5549,-32294,5549,-32294,
-                                  5125,-32364,5125,-32364,5125,-32364,5125,-32364,
-                                  4701,-32428,4701,-32428,4701,-32428,4701,-32428,
-                                  4276,-32487,4276,-32487,4276,-32487,4276,-32487,
-                                  3851,-32540,3851,-32540,3851,-32540,3851,-32540,
-                                  3425,-32588,3425,-32588,3425,-32588,3425,-32588,
-                                  2998,-32630,2998,-32630,2998,-32630,2998,-32630,
-                                  2570,-32666,2570,-32666,2570,-32666,2570,-32666,
-                                  2143,-32697,2143,-32697,2143,-32697,2143,-32697,
-                                  1714,-32723,1714,-32723,1714,-32723,1714,-32723,
-                                  1286,-32742,1286,-32742,1286,-32742,1286,-32742,
-                                  857,-32756,857,-32756,857,-32756,857,-32756,
-                                  428,-32765,428,-32765,428,-32765,428,-32765
-                                 };
-static int16_t twb480[119*2*4] = {32755,-858,32755,-858,32755,-858,32755,-858,
-                                  32722,-1715,32722,-1715,32722,-1715,32722,-1715,
-                                  32665,-2571,32665,-2571,32665,-2571,32665,-2571,
-                                  32587,-3426,32587,-3426,32587,-3426,32587,-3426,
-                                  32486,-4277,32486,-4277,32486,-4277,32486,-4277,
-                                  32363,-5126,32363,-5126,32363,-5126,32363,-5126,
-                                  32218,-5972,32218,-5972,32218,-5972,32218,-5972,
-                                  32050,-6813,32050,-6813,32050,-6813,32050,-6813,
-                                  31861,-7650,31861,-7650,31861,-7650,31861,-7650,
-                                  31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                  31417,-9307,31417,-9307,31417,-9307,31417,-9307,
-                                  31163,-10126,31163,-10126,31163,-10126,31163,-10126,
-                                  30887,-10938,30887,-10938,30887,-10938,30887,-10938,
-                                  30590,-11743,30590,-11743,30590,-11743,30590,-11743,
-                                  30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                  29934,-13328,29934,-13328,29934,-13328,29934,-13328,
-                                  29575,-14107,29575,-14107,29575,-14107,29575,-14107,
-                                  29195,-14876,29195,-14876,29195,-14876,29195,-14876,
-                                  28796,-15636,28796,-15636,28796,-15636,28796,-15636,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  27938,-17121,27938,-17121,27938,-17121,27938,-17121,
-                                  27480,-17847,27480,-17847,27480,-17847,27480,-17847,
-                                  27004,-18560,27004,-18560,27004,-18560,27004,-18560,
-                                  26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                                  25995,-19948,25995,-19948,25995,-19948,25995,-19948,
-                                  25464,-20621,25464,-20621,25464,-20621,25464,-20621,
-                                  24916,-21281,24916,-21281,24916,-21281,24916,-21281,
-                                  24350,-21926,24350,-21926,24350,-21926,24350,-21926,
-                                  23768,-22556,23768,-22556,23768,-22556,23768,-22556,
-                                  23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                  22555,-23769,22555,-23769,22555,-23769,22555,-23769,
-                                  21925,-24351,21925,-24351,21925,-24351,21925,-24351,
-                                  21280,-24917,21280,-24917,21280,-24917,21280,-24917,
-                                  20620,-25465,20620,-25465,20620,-25465,20620,-25465,
-                                  19947,-25996,19947,-25996,19947,-25996,19947,-25996,
-                                  19259,-26510,19259,-26510,19259,-26510,19259,-26510,
-                                  18559,-27005,18559,-27005,18559,-27005,18559,-27005,
-                                  17846,-27481,17846,-27481,17846,-27481,17846,-27481,
-                                  17120,-27939,17120,-27939,17120,-27939,17120,-27939,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  15635,-28797,15635,-28797,15635,-28797,15635,-28797,
-                                  14875,-29196,14875,-29196,14875,-29196,14875,-29196,
-                                  14106,-29576,14106,-29576,14106,-29576,14106,-29576,
-                                  13327,-29935,13327,-29935,13327,-29935,13327,-29935,
-                                  12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                  11742,-30591,11742,-30591,11742,-30591,11742,-30591,
-                                  10937,-30888,10937,-30888,10937,-30888,10937,-30888,
-                                  10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                                  9306,-31418,9306,-31418,9306,-31418,9306,-31418,
-                                  8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                  7649,-31862,7649,-31862,7649,-31862,7649,-31862,
-                                  6812,-32051,6812,-32051,6812,-32051,6812,-32051,
-                                  5971,-32219,5971,-32219,5971,-32219,5971,-32219,
-                                  5125,-32364,5125,-32364,5125,-32364,5125,-32364,
-                                  4276,-32487,4276,-32487,4276,-32487,4276,-32487,
-                                  3425,-32588,3425,-32588,3425,-32588,3425,-32588,
-                                  2570,-32666,2570,-32666,2570,-32666,2570,-32666,
-                                  1714,-32723,1714,-32723,1714,-32723,1714,-32723,
-                                  857,-32756,857,-32756,857,-32756,857,-32756,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -858,-32756,-858,-32756,-858,-32756,-858,-32756,
-                                  -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723,
-                                  -2571,-32666,-2571,-32666,-2571,-32666,-2571,-32666,
-                                  -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588,
-                                  -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487,
-                                  -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364,
-                                  -5972,-32219,-5972,-32219,-5972,-32219,-5972,-32219,
-                                  -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051,
-                                  -7650,-31862,-7650,-31862,-7650,-31862,-7650,-31862,
-                                  -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651,
-                                  -9307,-31418,-9307,-31418,-9307,-31418,-9307,-31418,
-                                  -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164,
-                                  -10938,-30888,-10938,-30888,-10938,-30888,-10938,-30888,
-                                  -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591,
-                                  -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273,
-                                  -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935,
-                                  -14107,-29576,-14107,-29576,-14107,-29576,-14107,-29576,
-                                  -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196,
-                                  -15636,-28797,-15636,-28797,-15636,-28797,-15636,-28797,
-                                  -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                                  -17121,-27939,-17121,-27939,-17121,-27939,-17121,-27939,
-                                  -17847,-27481,-17847,-27481,-17847,-27481,-17847,-27481,
-                                  -18560,-27005,-18560,-27005,-18560,-27005,-18560,-27005,
-                                  -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510,
-                                  -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996,
-                                  -20621,-25465,-20621,-25465,-20621,-25465,-20621,-25465,
-                                  -21281,-24917,-21281,-24917,-21281,-24917,-21281,-24917,
-                                  -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351,
-                                  -22556,-23769,-22556,-23769,-22556,-23769,-22556,-23769,
-                                  -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170,
-                                  -23769,-22556,-23769,-22556,-23769,-22556,-23769,-22556,
-                                  -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926,
-                                  -24917,-21281,-24917,-21281,-24917,-21281,-24917,-21281,
-                                  -25465,-20621,-25465,-20621,-25465,-20621,-25465,-20621,
-                                  -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948,
-                                  -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260,
-                                  -27005,-18560,-27005,-18560,-27005,-18560,-27005,-18560,
-                                  -27481,-17847,-27481,-17847,-27481,-17847,-27481,-17847,
-                                  -27939,-17121,-27939,-17121,-27939,-17121,-27939,-17121,
-                                  -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384,
-                                  -28797,-15636,-28797,-15636,-28797,-15636,-28797,-15636,
-                                  -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876,
-                                  -29576,-14107,-29576,-14107,-29576,-14107,-29576,-14107,
-                                  -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328,
-                                  -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540,
-                                  -30591,-11743,-30591,-11743,-30591,-11743,-30591,-11743,
-                                  -30888,-10938,-30888,-10938,-30888,-10938,-30888,-10938,
-                                  -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126,
-                                  -31418,-9307,-31418,-9307,-31418,-9307,-31418,-9307,
-                                  -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481,
-                                  -31862,-7650,-31862,-7650,-31862,-7650,-31862,-7650,
-                                  -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813,
-                                  -32219,-5972,-32219,-5972,-32219,-5972,-32219,-5972,
-                                  -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126,
-                                  -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277,
-                                  -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426,
-                                  -32666,-2571,-32666,-2571,-32666,-2571,-32666,-2571,
-                                  -32723,-1715,-32723,-1715,-32723,-1715,-32723,-1715,
-                                  -32756,-858,-32756,-858,-32756,-858,-32756,-858
-                                 };
-static int16_t twc480[119*2*4] = {32741,-1287,32741,-1287,32741,-1287,32741,-1287,
-                                  32665,-2571,32665,-2571,32665,-2571,32665,-2571,
-                                  32539,-3852,32539,-3852,32539,-3852,32539,-3852,
-                                  32363,-5126,32363,-5126,32363,-5126,32363,-5126,
-                                  32137,-6393,32137,-6393,32137,-6393,32137,-6393,
-                                  31861,-7650,31861,-7650,31861,-7650,31861,-7650,
-                                  31536,-8895,31536,-8895,31536,-8895,31536,-8895,
-                                  31163,-10126,31163,-10126,31163,-10126,31163,-10126,
-                                  30741,-11342,30741,-11342,30741,-11342,30741,-11342,
-                                  30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                  29757,-13719,29757,-13719,29757,-13719,29757,-13719,
-                                  29195,-14876,29195,-14876,29195,-14876,29195,-14876,
-                                  28589,-16011,28589,-16011,28589,-16011,28589,-16011,
-                                  27938,-17121,27938,-17121,27938,-17121,27938,-17121,
-                                  27244,-18205,27244,-18205,27244,-18205,27244,-18205,
-                                  26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                                  25732,-20286,25732,-20286,25732,-20286,25732,-20286,
-                                  24916,-21281,24916,-21281,24916,-21281,24916,-21281,
-                                  24061,-22243,24061,-22243,24061,-22243,24061,-22243,
-                                  23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                  22242,-24062,22242,-24062,22242,-24062,22242,-24062,
-                                  21280,-24917,21280,-24917,21280,-24917,21280,-24917,
-                                  20285,-25733,20285,-25733,20285,-25733,20285,-25733,
-                                  19259,-26510,19259,-26510,19259,-26510,19259,-26510,
-                                  18204,-27245,18204,-27245,18204,-27245,18204,-27245,
-                                  17120,-27939,17120,-27939,17120,-27939,17120,-27939,
-                                  16010,-28590,16010,-28590,16010,-28590,16010,-28590,
-                                  14875,-29196,14875,-29196,14875,-29196,14875,-29196,
-                                  13718,-29758,13718,-29758,13718,-29758,13718,-29758,
-                                  12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                  11341,-30742,11341,-30742,11341,-30742,11341,-30742,
-                                  10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                                  8894,-31537,8894,-31537,8894,-31537,8894,-31537,
-                                  7649,-31862,7649,-31862,7649,-31862,7649,-31862,
-                                  6392,-32138,6392,-32138,6392,-32138,6392,-32138,
-                                  5125,-32364,5125,-32364,5125,-32364,5125,-32364,
-                                  3851,-32540,3851,-32540,3851,-32540,3851,-32540,
-                                  2570,-32666,2570,-32666,2570,-32666,2570,-32666,
-                                  1286,-32742,1286,-32742,1286,-32742,1286,-32742,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -1287,-32742,-1287,-32742,-1287,-32742,-1287,-32742,
-                                  -2571,-32666,-2571,-32666,-2571,-32666,-2571,-32666,
-                                  -3852,-32540,-3852,-32540,-3852,-32540,-3852,-32540,
-                                  -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364,
-                                  -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138,
-                                  -7650,-31862,-7650,-31862,-7650,-31862,-7650,-31862,
-                                  -8895,-31537,-8895,-31537,-8895,-31537,-8895,-31537,
-                                  -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164,
-                                  -11342,-30742,-11342,-30742,-11342,-30742,-11342,-30742,
-                                  -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273,
-                                  -13719,-29758,-13719,-29758,-13719,-29758,-13719,-29758,
-                                  -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196,
-                                  -16011,-28590,-16011,-28590,-16011,-28590,-16011,-28590,
-                                  -17121,-27939,-17121,-27939,-17121,-27939,-17121,-27939,
-                                  -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245,
-                                  -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510,
-                                  -20286,-25733,-20286,-25733,-20286,-25733,-20286,-25733,
-                                  -21281,-24917,-21281,-24917,-21281,-24917,-21281,-24917,
-                                  -22243,-24062,-22243,-24062,-22243,-24062,-22243,-24062,
-                                  -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170,
-                                  -24062,-22243,-24062,-22243,-24062,-22243,-24062,-22243,
-                                  -24917,-21281,-24917,-21281,-24917,-21281,-24917,-21281,
-                                  -25733,-20286,-25733,-20286,-25733,-20286,-25733,-20286,
-                                  -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260,
-                                  -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205,
-                                  -27939,-17121,-27939,-17121,-27939,-17121,-27939,-17121,
-                                  -28590,-16011,-28590,-16011,-28590,-16011,-28590,-16011,
-                                  -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876,
-                                  -29758,-13719,-29758,-13719,-29758,-13719,-29758,-13719,
-                                  -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540,
-                                  -30742,-11342,-30742,-11342,-30742,-11342,-30742,-11342,
-                                  -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126,
-                                  -31537,-8895,-31537,-8895,-31537,-8895,-31537,-8895,
-                                  -31862,-7650,-31862,-7650,-31862,-7650,-31862,-7650,
-                                  -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393,
-                                  -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126,
-                                  -32540,-3852,-32540,-3852,-32540,-3852,-32540,-3852,
-                                  -32666,-2571,-32666,-2571,-32666,-2571,-32666,-2571,
-                                  -32742,-1287,-32742,-1287,-32742,-1287,-32742,-1287,
-                                  -32767,-1,-32767,-1,-32767,-1,-32767,-1,
-                                  -32742,1286,-32742,1286,-32742,1286,-32742,1286,
-                                  -32666,2570,-32666,2570,-32666,2570,-32666,2570,
-                                  -32540,3851,-32540,3851,-32540,3851,-32540,3851,
-                                  -32364,5125,-32364,5125,-32364,5125,-32364,5125,
-                                  -32138,6392,-32138,6392,-32138,6392,-32138,6392,
-                                  -31862,7649,-31862,7649,-31862,7649,-31862,7649,
-                                  -31537,8894,-31537,8894,-31537,8894,-31537,8894,
-                                  -31164,10125,-31164,10125,-31164,10125,-31164,10125,
-                                  -30742,11341,-30742,11341,-30742,11341,-30742,11341,
-                                  -30273,12539,-30273,12539,-30273,12539,-30273,12539,
-                                  -29758,13718,-29758,13718,-29758,13718,-29758,13718,
-                                  -29196,14875,-29196,14875,-29196,14875,-29196,14875,
-                                  -28590,16010,-28590,16010,-28590,16010,-28590,16010,
-                                  -27939,17120,-27939,17120,-27939,17120,-27939,17120,
-                                  -27245,18204,-27245,18204,-27245,18204,-27245,18204,
-                                  -26510,19259,-26510,19259,-26510,19259,-26510,19259,
-                                  -25733,20285,-25733,20285,-25733,20285,-25733,20285,
-                                  -24917,21280,-24917,21280,-24917,21280,-24917,21280,
-                                  -24062,22242,-24062,22242,-24062,22242,-24062,22242,
-                                  -23170,23169,-23170,23169,-23170,23169,-23170,23169,
-                                  -22243,24061,-22243,24061,-22243,24061,-22243,24061,
-                                  -21281,24916,-21281,24916,-21281,24916,-21281,24916,
-                                  -20286,25732,-20286,25732,-20286,25732,-20286,25732,
-                                  -19260,26509,-19260,26509,-19260,26509,-19260,26509,
-                                  -18205,27244,-18205,27244,-18205,27244,-18205,27244,
-                                  -17121,27938,-17121,27938,-17121,27938,-17121,27938,
-                                  -16011,28589,-16011,28589,-16011,28589,-16011,28589,
-                                  -14876,29195,-14876,29195,-14876,29195,-14876,29195,
-                                  -13719,29757,-13719,29757,-13719,29757,-13719,29757,
-                                  -12540,30272,-12540,30272,-12540,30272,-12540,30272,
-                                  -11342,30741,-11342,30741,-11342,30741,-11342,30741,
-                                  -10126,31163,-10126,31163,-10126,31163,-10126,31163,
-                                  -8895,31536,-8895,31536,-8895,31536,-8895,31536,
-                                  -7650,31861,-7650,31861,-7650,31861,-7650,31861,
-                                  -6393,32137,-6393,32137,-6393,32137,-6393,32137,
-                                  -5126,32363,-5126,32363,-5126,32363,-5126,32363,
-                                  -3852,32539,-3852,32539,-3852,32539,-3852,32539,
-                                  -2571,32665,-2571,32665,-2571,32665,-2571,32665,
-                                  -1287,32741,-1287,32741,-1287,32741,-1287,32741
-                                 };
+static int16_t twa480[119*2*4];
+static int16_t twb480[119*2*4];
+static int16_t twc480[119*2*4];
 
 void dft480(int16_t *x,int16_t *y,unsigned char scale_flag)  // 120 x 4
 {
@@ -10552,392 +7798,9 @@ void dft480(int16_t *x,int16_t *y,unsigned char scale_flag)  // 120 x 4
 
 };
 
-/*
-Twiddles generated with
-
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:179)/540));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:179)/540));
-twa2 = zeros(1,2*179);
-twb2 = zeros(1,2*179);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-fd=fopen("twiddle_tmp.txt","w");
-fprintf(fd,"static int16_t twa540[179*2*4] = {");
-for i=1:2:(2*178)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-fprintf(fd,"static int16_t twb540[179*2*4] = {");
-for i=1:2:(2*178)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-fclose(fd);
-*/
-static int16_t twa540[179*2*4] = {32764,-382,32764,-382,32764,-382,32764,-382,
-                                  32758,-763,32758,-763,32758,-763,32758,-763,
-                                  32747,-1144,32747,-1144,32747,-1144,32747,-1144,
-                                  32731,-1525,32731,-1525,32731,-1525,32731,-1525,
-                                  32711,-1906,32711,-1906,32711,-1906,32711,-1906,
-                                  32687,-2286,32687,-2286,32687,-2286,32687,-2286,
-                                  32658,-2666,32658,-2666,32658,-2666,32658,-2666,
-                                  32625,-3046,32625,-3046,32625,-3046,32625,-3046,
-                                  32587,-3426,32587,-3426,32587,-3426,32587,-3426,
-                                  32545,-3805,32545,-3805,32545,-3805,32545,-3805,
-                                  32498,-4183,32498,-4183,32498,-4183,32498,-4183,
-                                  32448,-4561,32448,-4561,32448,-4561,32448,-4561,
-                                  32392,-4938,32392,-4938,32392,-4938,32392,-4938,
-                                  32333,-5315,32333,-5315,32333,-5315,32333,-5315,
-                                  32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                  32200,-6066,32200,-6066,32200,-6066,32200,-6066,
-                                  32128,-6440,32128,-6440,32128,-6440,32128,-6440,
-                                  32050,-6813,32050,-6813,32050,-6813,32050,-6813,
-                                  31969,-7186,31969,-7186,31969,-7186,31969,-7186,
-                                  31883,-7557,31883,-7557,31883,-7557,31883,-7557,
-                                  31793,-7928,31793,-7928,31793,-7928,31793,-7928,
-                                  31699,-8297,31699,-8297,31699,-8297,31699,-8297,
-                                  31600,-8665,31600,-8665,31600,-8665,31600,-8665,
-                                  31497,-9032,31497,-9032,31497,-9032,31497,-9032,
-                                  31390,-9398,31390,-9398,31390,-9398,31390,-9398,
-                                  31278,-9763,31278,-9763,31278,-9763,31278,-9763,
-                                  31163,-10126,31163,-10126,31163,-10126,31163,-10126,
-                                  31043,-10488,31043,-10488,31043,-10488,31043,-10488,
-                                  30919,-10848,30919,-10848,30919,-10848,30919,-10848,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30658,-11565,30658,-11565,30658,-11565,30658,-11565,
-                                  30521,-11921,30521,-11921,30521,-11921,30521,-11921,
-                                  30381,-12275,30381,-12275,30381,-12275,30381,-12275,
-                                  30236,-12628,30236,-12628,30236,-12628,30236,-12628,
-                                  30087,-12979,30087,-12979,30087,-12979,30087,-12979,
-                                  29934,-13328,29934,-13328,29934,-13328,29934,-13328,
-                                  29777,-13675,29777,-13675,29777,-13675,29777,-13675,
-                                  29615,-14021,29615,-14021,29615,-14021,29615,-14021,
-                                  29450,-14365,29450,-14365,29450,-14365,29450,-14365,
-                                  29281,-14706,29281,-14706,29281,-14706,29281,-14706,
-                                  29108,-15046,29108,-15046,29108,-15046,29108,-15046,
-                                  28931,-15384,28931,-15384,28931,-15384,28931,-15384,
-                                  28750,-15719,28750,-15719,28750,-15719,28750,-15719,
-                                  28565,-16053,28565,-16053,28565,-16053,28565,-16053,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  28184,-16713,28184,-16713,28184,-16713,28184,-16713,
-                                  27988,-17040,27988,-17040,27988,-17040,27988,-17040,
-                                  27787,-17364,27787,-17364,27787,-17364,27787,-17364,
-                                  27584,-17687,27584,-17687,27584,-17687,27584,-17687,
-                                  27376,-18006,27376,-18006,27376,-18006,27376,-18006,
-                                  27165,-18324,27165,-18324,27165,-18324,27165,-18324,
-                                  26950,-18638,26950,-18638,26950,-18638,26950,-18638,
-                                  26731,-18951,26731,-18951,26731,-18951,26731,-18951,
-                                  26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                                  26283,-19568,26283,-19568,26283,-19568,26283,-19568,
-                                  26053,-19872,26053,-19872,26053,-19872,26053,-19872,
-                                  25820,-20174,25820,-20174,25820,-20174,25820,-20174,
-                                  25584,-20473,25584,-20473,25584,-20473,25584,-20473,
-                                  25344,-20769,25344,-20769,25344,-20769,25344,-20769,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24854,-21353,24854,-21353,24854,-21353,24854,-21353,
-                                  24604,-21641,24604,-21641,24604,-21641,24604,-21641,
-                                  24350,-21926,24350,-21926,24350,-21926,24350,-21926,
-                                  24093,-22208,24093,-22208,24093,-22208,24093,-22208,
-                                  23833,-22487,23833,-22487,23833,-22487,23833,-22487,
-                                  23570,-22762,23570,-22762,23570,-22762,23570,-22762,
-                                  23304,-23035,23304,-23035,23304,-23035,23304,-23035,
-                                  23034,-23305,23034,-23305,23034,-23305,23034,-23305,
-                                  22761,-23571,22761,-23571,22761,-23571,22761,-23571,
-                                  22486,-23834,22486,-23834,22486,-23834,22486,-23834,
-                                  22207,-24094,22207,-24094,22207,-24094,22207,-24094,
-                                  21925,-24351,21925,-24351,21925,-24351,21925,-24351,
-                                  21640,-24605,21640,-24605,21640,-24605,21640,-24605,
-                                  21352,-24855,21352,-24855,21352,-24855,21352,-24855,
-                                  21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                  20768,-25345,20768,-25345,20768,-25345,20768,-25345,
-                                  20472,-25585,20472,-25585,20472,-25585,20472,-25585,
-                                  20173,-25821,20173,-25821,20173,-25821,20173,-25821,
-                                  19871,-26054,19871,-26054,19871,-26054,19871,-26054,
-                                  19567,-26284,19567,-26284,19567,-26284,19567,-26284,
-                                  19259,-26510,19259,-26510,19259,-26510,19259,-26510,
-                                  18950,-26732,18950,-26732,18950,-26732,18950,-26732,
-                                  18637,-26951,18637,-26951,18637,-26951,18637,-26951,
-                                  18323,-27166,18323,-27166,18323,-27166,18323,-27166,
-                                  18005,-27377,18005,-27377,18005,-27377,18005,-27377,
-                                  17686,-27585,17686,-27585,17686,-27585,17686,-27585,
-                                  17363,-27788,17363,-27788,17363,-27788,17363,-27788,
-                                  17039,-27989,17039,-27989,17039,-27989,17039,-27989,
-                                  16712,-28185,16712,-28185,16712,-28185,16712,-28185,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  16052,-28566,16052,-28566,16052,-28566,16052,-28566,
-                                  15718,-28751,15718,-28751,15718,-28751,15718,-28751,
-                                  15383,-28932,15383,-28932,15383,-28932,15383,-28932,
-                                  15045,-29109,15045,-29109,15045,-29109,15045,-29109,
-                                  14705,-29282,14705,-29282,14705,-29282,14705,-29282,
-                                  14364,-29451,14364,-29451,14364,-29451,14364,-29451,
-                                  14020,-29616,14020,-29616,14020,-29616,14020,-29616,
-                                  13674,-29778,13674,-29778,13674,-29778,13674,-29778,
-                                  13327,-29935,13327,-29935,13327,-29935,13327,-29935,
-                                  12978,-30088,12978,-30088,12978,-30088,12978,-30088,
-                                  12627,-30237,12627,-30237,12627,-30237,12627,-30237,
-                                  12274,-30382,12274,-30382,12274,-30382,12274,-30382,
-                                  11920,-30522,11920,-30522,11920,-30522,11920,-30522,
-                                  11564,-30659,11564,-30659,11564,-30659,11564,-30659,
-                                  11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                  10847,-30920,10847,-30920,10847,-30920,10847,-30920,
-                                  10487,-31044,10487,-31044,10487,-31044,10487,-31044,
-                                  10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                                  9762,-31279,9762,-31279,9762,-31279,9762,-31279,
-                                  9397,-31391,9397,-31391,9397,-31391,9397,-31391,
-                                  9031,-31498,9031,-31498,9031,-31498,9031,-31498,
-                                  8664,-31601,8664,-31601,8664,-31601,8664,-31601,
-                                  8296,-31700,8296,-31700,8296,-31700,8296,-31700,
-                                  7927,-31794,7927,-31794,7927,-31794,7927,-31794,
-                                  7556,-31884,7556,-31884,7556,-31884,7556,-31884,
-                                  7185,-31970,7185,-31970,7185,-31970,7185,-31970,
-                                  6812,-32051,6812,-32051,6812,-32051,6812,-32051,
-                                  6439,-32129,6439,-32129,6439,-32129,6439,-32129,
-                                  6065,-32201,6065,-32201,6065,-32201,6065,-32201,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  5314,-32334,5314,-32334,5314,-32334,5314,-32334,
-                                  4937,-32393,4937,-32393,4937,-32393,4937,-32393,
-                                  4560,-32449,4560,-32449,4560,-32449,4560,-32449,
-                                  4182,-32499,4182,-32499,4182,-32499,4182,-32499,
-                                  3804,-32546,3804,-32546,3804,-32546,3804,-32546,
-                                  3425,-32588,3425,-32588,3425,-32588,3425,-32588,
-                                  3045,-32626,3045,-32626,3045,-32626,3045,-32626,
-                                  2665,-32659,2665,-32659,2665,-32659,2665,-32659,
-                                  2285,-32688,2285,-32688,2285,-32688,2285,-32688,
-                                  1905,-32712,1905,-32712,1905,-32712,1905,-32712,
-                                  1524,-32732,1524,-32732,1524,-32732,1524,-32732,
-                                  1143,-32748,1143,-32748,1143,-32748,1143,-32748,
-                                  762,-32759,762,-32759,762,-32759,762,-32759,
-                                  381,-32765,381,-32765,381,-32765,381,-32765,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -382,-32765,-382,-32765,-382,-32765,-382,-32765,
-                                  -763,-32759,-763,-32759,-763,-32759,-763,-32759,
-                                  -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748,
-                                  -1525,-32732,-1525,-32732,-1525,-32732,-1525,-32732,
-                                  -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712,
-                                  -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688,
-                                  -2666,-32659,-2666,-32659,-2666,-32659,-2666,-32659,
-                                  -3046,-32626,-3046,-32626,-3046,-32626,-3046,-32626,
-                                  -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588,
-                                  -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546,
-                                  -4183,-32499,-4183,-32499,-4183,-32499,-4183,-32499,
-                                  -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449,
-                                  -4938,-32393,-4938,-32393,-4938,-32393,-4938,-32393,
-                                  -5315,-32334,-5315,-32334,-5315,-32334,-5315,-32334,
-                                  -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                  -6066,-32201,-6066,-32201,-6066,-32201,-6066,-32201,
-                                  -6440,-32129,-6440,-32129,-6440,-32129,-6440,-32129,
-                                  -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051,
-                                  -7186,-31970,-7186,-31970,-7186,-31970,-7186,-31970,
-                                  -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884,
-                                  -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794,
-                                  -8297,-31700,-8297,-31700,-8297,-31700,-8297,-31700,
-                                  -8665,-31601,-8665,-31601,-8665,-31601,-8665,-31601,
-                                  -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498,
-                                  -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391,
-                                  -9763,-31279,-9763,-31279,-9763,-31279,-9763,-31279,
-                                  -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164,
-                                  -10488,-31044,-10488,-31044,-10488,-31044,-10488,-31044,
-                                  -10848,-30920,-10848,-30920,-10848,-30920,-10848,-30920,
-                                  -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791,
-                                  -11565,-30659,-11565,-30659,-11565,-30659,-11565,-30659,
-                                  -11921,-30522,-11921,-30522,-11921,-30522,-11921,-30522,
-                                  -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382,
-                                  -12628,-30237,-12628,-30237,-12628,-30237,-12628,-30237,
-                                  -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088,
-                                  -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935,
-                                  -13675,-29778,-13675,-29778,-13675,-29778,-13675,-29778,
-                                  -14021,-29616,-14021,-29616,-14021,-29616,-14021,-29616,
-                                  -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451,
-                                  -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282,
-                                  -15046,-29109,-15046,-29109,-15046,-29109,-15046,-29109,
-                                  -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932,
-                                  -15719,-28751,-15719,-28751,-15719,-28751,-15719,-28751,
-                                  -16053,-28566,-16053,-28566,-16053,-28566,-16053,-28566
-                                 };
-static int16_t twb540[179*2*4] = {32758,-763,32758,-763,32758,-763,32758,-763,
-                                  32731,-1525,32731,-1525,32731,-1525,32731,-1525,
-                                  32687,-2286,32687,-2286,32687,-2286,32687,-2286,
-                                  32625,-3046,32625,-3046,32625,-3046,32625,-3046,
-                                  32545,-3805,32545,-3805,32545,-3805,32545,-3805,
-                                  32448,-4561,32448,-4561,32448,-4561,32448,-4561,
-                                  32333,-5315,32333,-5315,32333,-5315,32333,-5315,
-                                  32200,-6066,32200,-6066,32200,-6066,32200,-6066,
-                                  32050,-6813,32050,-6813,32050,-6813,32050,-6813,
-                                  31883,-7557,31883,-7557,31883,-7557,31883,-7557,
-                                  31699,-8297,31699,-8297,31699,-8297,31699,-8297,
-                                  31497,-9032,31497,-9032,31497,-9032,31497,-9032,
-                                  31278,-9763,31278,-9763,31278,-9763,31278,-9763,
-                                  31043,-10488,31043,-10488,31043,-10488,31043,-10488,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30521,-11921,30521,-11921,30521,-11921,30521,-11921,
-                                  30236,-12628,30236,-12628,30236,-12628,30236,-12628,
-                                  29934,-13328,29934,-13328,29934,-13328,29934,-13328,
-                                  29615,-14021,29615,-14021,29615,-14021,29615,-14021,
-                                  29281,-14706,29281,-14706,29281,-14706,29281,-14706,
-                                  28931,-15384,28931,-15384,28931,-15384,28931,-15384,
-                                  28565,-16053,28565,-16053,28565,-16053,28565,-16053,
-                                  28184,-16713,28184,-16713,28184,-16713,28184,-16713,
-                                  27787,-17364,27787,-17364,27787,-17364,27787,-17364,
-                                  27376,-18006,27376,-18006,27376,-18006,27376,-18006,
-                                  26950,-18638,26950,-18638,26950,-18638,26950,-18638,
-                                  26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                                  26053,-19872,26053,-19872,26053,-19872,26053,-19872,
-                                  25584,-20473,25584,-20473,25584,-20473,25584,-20473,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24604,-21641,24604,-21641,24604,-21641,24604,-21641,
-                                  24093,-22208,24093,-22208,24093,-22208,24093,-22208,
-                                  23570,-22762,23570,-22762,23570,-22762,23570,-22762,
-                                  23034,-23305,23034,-23305,23034,-23305,23034,-23305,
-                                  22486,-23834,22486,-23834,22486,-23834,22486,-23834,
-                                  21925,-24351,21925,-24351,21925,-24351,21925,-24351,
-                                  21352,-24855,21352,-24855,21352,-24855,21352,-24855,
-                                  20768,-25345,20768,-25345,20768,-25345,20768,-25345,
-                                  20173,-25821,20173,-25821,20173,-25821,20173,-25821,
-                                  19567,-26284,19567,-26284,19567,-26284,19567,-26284,
-                                  18950,-26732,18950,-26732,18950,-26732,18950,-26732,
-                                  18323,-27166,18323,-27166,18323,-27166,18323,-27166,
-                                  17686,-27585,17686,-27585,17686,-27585,17686,-27585,
-                                  17039,-27989,17039,-27989,17039,-27989,17039,-27989,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  15718,-28751,15718,-28751,15718,-28751,15718,-28751,
-                                  15045,-29109,15045,-29109,15045,-29109,15045,-29109,
-                                  14364,-29451,14364,-29451,14364,-29451,14364,-29451,
-                                  13674,-29778,13674,-29778,13674,-29778,13674,-29778,
-                                  12978,-30088,12978,-30088,12978,-30088,12978,-30088,
-                                  12274,-30382,12274,-30382,12274,-30382,12274,-30382,
-                                  11564,-30659,11564,-30659,11564,-30659,11564,-30659,
-                                  10847,-30920,10847,-30920,10847,-30920,10847,-30920,
-                                  10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                                  9397,-31391,9397,-31391,9397,-31391,9397,-31391,
-                                  8664,-31601,8664,-31601,8664,-31601,8664,-31601,
-                                  7927,-31794,7927,-31794,7927,-31794,7927,-31794,
-                                  7185,-31970,7185,-31970,7185,-31970,7185,-31970,
-                                  6439,-32129,6439,-32129,6439,-32129,6439,-32129,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  4937,-32393,4937,-32393,4937,-32393,4937,-32393,
-                                  4182,-32499,4182,-32499,4182,-32499,4182,-32499,
-                                  3425,-32588,3425,-32588,3425,-32588,3425,-32588,
-                                  2665,-32659,2665,-32659,2665,-32659,2665,-32659,
-                                  1905,-32712,1905,-32712,1905,-32712,1905,-32712,
-                                  1143,-32748,1143,-32748,1143,-32748,1143,-32748,
-                                  381,-32765,381,-32765,381,-32765,381,-32765,
-                                  -382,-32765,-382,-32765,-382,-32765,-382,-32765,
-                                  -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748,
-                                  -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712,
-                                  -2666,-32659,-2666,-32659,-2666,-32659,-2666,-32659,
-                                  -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588,
-                                  -4183,-32499,-4183,-32499,-4183,-32499,-4183,-32499,
-                                  -4938,-32393,-4938,-32393,-4938,-32393,-4938,-32393,
-                                  -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                  -6440,-32129,-6440,-32129,-6440,-32129,-6440,-32129,
-                                  -7186,-31970,-7186,-31970,-7186,-31970,-7186,-31970,
-                                  -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794,
-                                  -8665,-31601,-8665,-31601,-8665,-31601,-8665,-31601,
-                                  -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391,
-                                  -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164,
-                                  -10848,-30920,-10848,-30920,-10848,-30920,-10848,-30920,
-                                  -11565,-30659,-11565,-30659,-11565,-30659,-11565,-30659,
-                                  -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382,
-                                  -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088,
-                                  -13675,-29778,-13675,-29778,-13675,-29778,-13675,-29778,
-                                  -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451,
-                                  -15046,-29109,-15046,-29109,-15046,-29109,-15046,-29109,
-                                  -15719,-28751,-15719,-28751,-15719,-28751,-15719,-28751,
-                                  -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                                  -17040,-27989,-17040,-27989,-17040,-27989,-17040,-27989,
-                                  -17687,-27585,-17687,-27585,-17687,-27585,-17687,-27585,
-                                  -18324,-27166,-18324,-27166,-18324,-27166,-18324,-27166,
-                                  -18951,-26732,-18951,-26732,-18951,-26732,-18951,-26732,
-                                  -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284,
-                                  -20174,-25821,-20174,-25821,-20174,-25821,-20174,-25821,
-                                  -20769,-25345,-20769,-25345,-20769,-25345,-20769,-25345,
-                                  -21353,-24855,-21353,-24855,-21353,-24855,-21353,-24855,
-                                  -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351,
-                                  -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834,
-                                  -23035,-23305,-23035,-23305,-23035,-23305,-23035,-23305,
-                                  -23571,-22762,-23571,-22762,-23571,-22762,-23571,-22762,
-                                  -24094,-22208,-24094,-22208,-24094,-22208,-24094,-22208,
-                                  -24605,-21641,-24605,-21641,-24605,-21641,-24605,-21641,
-                                  -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063,
-                                  -25585,-20473,-25585,-20473,-25585,-20473,-25585,-20473,
-                                  -26054,-19872,-26054,-19872,-26054,-19872,-26054,-19872,
-                                  -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260,
-                                  -26951,-18638,-26951,-18638,-26951,-18638,-26951,-18638,
-                                  -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006,
-                                  -27788,-17364,-27788,-17364,-27788,-17364,-27788,-17364,
-                                  -28185,-16713,-28185,-16713,-28185,-16713,-28185,-16713,
-                                  -28566,-16053,-28566,-16053,-28566,-16053,-28566,-16053,
-                                  -28932,-15384,-28932,-15384,-28932,-15384,-28932,-15384,
-                                  -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706,
-                                  -29616,-14021,-29616,-14021,-29616,-14021,-29616,-14021,
-                                  -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328,
-                                  -30237,-12628,-30237,-12628,-30237,-12628,-30237,-12628,
-                                  -30522,-11921,-30522,-11921,-30522,-11921,-30522,-11921,
-                                  -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207,
-                                  -31044,-10488,-31044,-10488,-31044,-10488,-31044,-10488,
-                                  -31279,-9763,-31279,-9763,-31279,-9763,-31279,-9763,
-                                  -31498,-9032,-31498,-9032,-31498,-9032,-31498,-9032,
-                                  -31700,-8297,-31700,-8297,-31700,-8297,-31700,-8297,
-                                  -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557,
-                                  -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813,
-                                  -32201,-6066,-32201,-6066,-32201,-6066,-32201,-6066,
-                                  -32334,-5315,-32334,-5315,-32334,-5315,-32334,-5315,
-                                  -32449,-4561,-32449,-4561,-32449,-4561,-32449,-4561,
-                                  -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805,
-                                  -32626,-3046,-32626,-3046,-32626,-3046,-32626,-3046,
-                                  -32688,-2286,-32688,-2286,-32688,-2286,-32688,-2286,
-                                  -32732,-1525,-32732,-1525,-32732,-1525,-32732,-1525,
-                                  -32759,-763,-32759,-763,-32759,-763,-32759,-763,
-                                  -32767,-1,-32767,-1,-32767,-1,-32767,-1,
-                                  -32759,762,-32759,762,-32759,762,-32759,762,
-                                  -32732,1524,-32732,1524,-32732,1524,-32732,1524,
-                                  -32688,2285,-32688,2285,-32688,2285,-32688,2285,
-                                  -32626,3045,-32626,3045,-32626,3045,-32626,3045,
-                                  -32546,3804,-32546,3804,-32546,3804,-32546,3804,
-                                  -32449,4560,-32449,4560,-32449,4560,-32449,4560,
-                                  -32334,5314,-32334,5314,-32334,5314,-32334,5314,
-                                  -32201,6065,-32201,6065,-32201,6065,-32201,6065,
-                                  -32051,6812,-32051,6812,-32051,6812,-32051,6812,
-                                  -31884,7556,-31884,7556,-31884,7556,-31884,7556,
-                                  -31700,8296,-31700,8296,-31700,8296,-31700,8296,
-                                  -31498,9031,-31498,9031,-31498,9031,-31498,9031,
-                                  -31279,9762,-31279,9762,-31279,9762,-31279,9762,
-                                  -31044,10487,-31044,10487,-31044,10487,-31044,10487,
-                                  -30791,11206,-30791,11206,-30791,11206,-30791,11206,
-                                  -30522,11920,-30522,11920,-30522,11920,-30522,11920,
-                                  -30237,12627,-30237,12627,-30237,12627,-30237,12627,
-                                  -29935,13327,-29935,13327,-29935,13327,-29935,13327,
-                                  -29616,14020,-29616,14020,-29616,14020,-29616,14020,
-                                  -29282,14705,-29282,14705,-29282,14705,-29282,14705,
-                                  -28932,15383,-28932,15383,-28932,15383,-28932,15383,
-                                  -28566,16052,-28566,16052,-28566,16052,-28566,16052,
-                                  -28185,16712,-28185,16712,-28185,16712,-28185,16712,
-                                  -27788,17363,-27788,17363,-27788,17363,-27788,17363,
-                                  -27377,18005,-27377,18005,-27377,18005,-27377,18005,
-                                  -26951,18637,-26951,18637,-26951,18637,-26951,18637,
-                                  -26510,19259,-26510,19259,-26510,19259,-26510,19259,
-                                  -26054,19871,-26054,19871,-26054,19871,-26054,19871,
-                                  -25585,20472,-25585,20472,-25585,20472,-25585,20472,
-                                  -25101,21062,-25101,21062,-25101,21062,-25101,21062,
-                                  -24605,21640,-24605,21640,-24605,21640,-24605,21640,
-                                  -24094,22207,-24094,22207,-24094,22207,-24094,22207,
-                                  -23571,22761,-23571,22761,-23571,22761,-23571,22761,
-                                  -23035,23304,-23035,23304,-23035,23304,-23035,23304,
-                                  -22487,23833,-22487,23833,-22487,23833,-22487,23833,
-                                  -21926,24350,-21926,24350,-21926,24350,-21926,24350,
-                                  -21353,24854,-21353,24854,-21353,24854,-21353,24854,
-                                  -20769,25344,-20769,25344,-20769,25344,-20769,25344,
-                                  -20174,25820,-20174,25820,-20174,25820,-20174,25820,
-                                  -19568,26283,-19568,26283,-19568,26283,-19568,26283,
-                                  -18951,26731,-18951,26731,-18951,26731,-18951,26731,
-                                  -18324,27165,-18324,27165,-18324,27165,-18324,27165,
-                                  -17687,27584,-17687,27584,-17687,27584,-17687,27584,
-                                  -17040,27988,-17040,27988,-17040,27988,-17040,27988
-                                 };
+
+static int16_t twa540[179*2*4];
+static int16_t twb540[179*2*4];
 
 void dft540(int16_t *x,int16_t *y,unsigned char scale_flag)  // 180 x 3
 {
@@ -10987,416 +7850,8 @@ void dft540(int16_t *x,int16_t *y,unsigned char scale_flag)  // 180 x 3
 
 };
 
-/*
-Twiddles generated with
-
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:191)/576));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:191)/576));
-twa2 = zeros(1,2*191);
-twb2 = zeros(1,2*191);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-fd=fopen("twiddle_tmp.txt","w");
-fprintf(fd,"static int16_t twa576[191*2*4] = {");
-for i=1:2:(2*190)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-fprintf(fd,"static int16_t twb576[191*2*4] = {");
-for i=1:2:(2*190)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-fclose(fd);
-*/
-static int16_t twa576[191*2*4] = {32765,-358,32765,-358,32765,-358,32765,-358,
-                                  32759,-715,32759,-715,32759,-715,32759,-715,
-                                  32749,-1073,32749,-1073,32749,-1073,32749,-1073,
-                                  32735,-1430,32735,-1430,32735,-1430,32735,-1430,
-                                  32718,-1787,32718,-1787,32718,-1787,32718,-1787,
-                                  32696,-2144,32696,-2144,32696,-2144,32696,-2144,
-                                  32671,-2500,32671,-2500,32671,-2500,32671,-2500,
-                                  32642,-2856,32642,-2856,32642,-2856,32642,-2856,
-                                  32609,-3212,32609,-3212,32609,-3212,32609,-3212,
-                                  32572,-3568,32572,-3568,32572,-3568,32572,-3568,
-                                  32531,-3923,32531,-3923,32531,-3923,32531,-3923,
-                                  32486,-4277,32486,-4277,32486,-4277,32486,-4277,
-                                  32438,-4632,32438,-4632,32438,-4632,32438,-4632,
-                                  32385,-4985,32385,-4985,32385,-4985,32385,-4985,
-                                  32329,-5338,32329,-5338,32329,-5338,32329,-5338,
-                                  32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                  32205,-6042,32205,-6042,32205,-6042,32205,-6042,
-                                  32137,-6393,32137,-6393,32137,-6393,32137,-6393,
-                                  32065,-6743,32065,-6743,32065,-6743,32065,-6743,
-                                  31990,-7093,31990,-7093,31990,-7093,31990,-7093,
-                                  31911,-7441,31911,-7441,31911,-7441,31911,-7441,
-                                  31827,-7789,31827,-7789,31827,-7789,31827,-7789,
-                                  31741,-8135,31741,-8135,31741,-8135,31741,-8135,
-                                  31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                  31556,-8826,31556,-8826,31556,-8826,31556,-8826,
-                                  31457,-9170,31457,-9170,31457,-9170,31457,-9170,
-                                  31356,-9512,31356,-9512,31356,-9512,31356,-9512,
-                                  31250,-9854,31250,-9854,31250,-9854,31250,-9854,
-                                  31141,-10194,31141,-10194,31141,-10194,31141,-10194,
-                                  31028,-10533,31028,-10533,31028,-10533,31028,-10533,
-                                  30911,-10871,30911,-10871,30911,-10871,30911,-10871,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30666,-11543,30666,-11543,30666,-11543,30666,-11543,
-                                  30539,-11877,30539,-11877,30539,-11877,30539,-11877,
-                                  30407,-12209,30407,-12209,30407,-12209,30407,-12209,
-                                  30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                  30134,-12869,30134,-12869,30134,-12869,30134,-12869,
-                                  29992,-13197,29992,-13197,29992,-13197,29992,-13197,
-                                  29846,-13524,29846,-13524,29846,-13524,29846,-13524,
-                                  29696,-13848,29696,-13848,29696,-13848,29696,-13848,
-                                  29544,-14172,29544,-14172,29544,-14172,29544,-14172,
-                                  29387,-14493,29387,-14493,29387,-14493,29387,-14493,
-                                  29227,-14813,29227,-14813,29227,-14813,29227,-14813,
-                                  29064,-15131,29064,-15131,29064,-15131,29064,-15131,
-                                  28897,-15447,28897,-15447,28897,-15447,28897,-15447,
-                                  28727,-15761,28727,-15761,28727,-15761,28727,-15761,
-                                  28554,-16073,28554,-16073,28554,-16073,28554,-16073,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  28196,-16693,28196,-16693,28196,-16693,28196,-16693,
-                                  28012,-16999,28012,-16999,28012,-16999,28012,-16999,
-                                  27825,-17304,27825,-17304,27825,-17304,27825,-17304,
-                                  27635,-17606,27635,-17606,27635,-17606,27635,-17606,
-                                  27441,-17907,27441,-17907,27441,-17907,27441,-17907,
-                                  27244,-18205,27244,-18205,27244,-18205,27244,-18205,
-                                  27044,-18501,27044,-18501,27044,-18501,27044,-18501,
-                                  26841,-18795,26841,-18795,26841,-18795,26841,-18795,
-                                  26634,-19087,26634,-19087,26634,-19087,26634,-19087,
-                                  26424,-19376,26424,-19376,26424,-19376,26424,-19376,
-                                  26211,-19663,26211,-19663,26211,-19663,26211,-19663,
-                                  25995,-19948,25995,-19948,25995,-19948,25995,-19948,
-                                  25776,-20230,25776,-20230,25776,-20230,25776,-20230,
-                                  25554,-20510,25554,-20510,25554,-20510,25554,-20510,
-                                  25329,-20788,25329,-20788,25329,-20788,25329,-20788,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24869,-21335,24869,-21335,24869,-21335,24869,-21335,
-                                  24635,-21605,24635,-21605,24635,-21605,24635,-21605,
-                                  24398,-21873,24398,-21873,24398,-21873,24398,-21873,
-                                  24158,-22138,24158,-22138,24158,-22138,24158,-22138,
-                                  23915,-22400,23915,-22400,23915,-22400,23915,-22400,
-                                  23669,-22659,23669,-22659,23669,-22659,23669,-22659,
-                                  23421,-22916,23421,-22916,23421,-22916,23421,-22916,
-                                  23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                  22915,-23422,22915,-23422,22915,-23422,22915,-23422,
-                                  22658,-23670,22658,-23670,22658,-23670,22658,-23670,
-                                  22399,-23916,22399,-23916,22399,-23916,22399,-23916,
-                                  22137,-24159,22137,-24159,22137,-24159,22137,-24159,
-                                  21872,-24399,21872,-24399,21872,-24399,21872,-24399,
-                                  21604,-24636,21604,-24636,21604,-24636,21604,-24636,
-                                  21334,-24870,21334,-24870,21334,-24870,21334,-24870,
-                                  21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                  20787,-25330,20787,-25330,20787,-25330,20787,-25330,
-                                  20509,-25555,20509,-25555,20509,-25555,20509,-25555,
-                                  20229,-25777,20229,-25777,20229,-25777,20229,-25777,
-                                  19947,-25996,19947,-25996,19947,-25996,19947,-25996,
-                                  19662,-26212,19662,-26212,19662,-26212,19662,-26212,
-                                  19375,-26425,19375,-26425,19375,-26425,19375,-26425,
-                                  19086,-26635,19086,-26635,19086,-26635,19086,-26635,
-                                  18794,-26842,18794,-26842,18794,-26842,18794,-26842,
-                                  18500,-27045,18500,-27045,18500,-27045,18500,-27045,
-                                  18204,-27245,18204,-27245,18204,-27245,18204,-27245,
-                                  17906,-27442,17906,-27442,17906,-27442,17906,-27442,
-                                  17605,-27636,17605,-27636,17605,-27636,17605,-27636,
-                                  17303,-27826,17303,-27826,17303,-27826,17303,-27826,
-                                  16998,-28013,16998,-28013,16998,-28013,16998,-28013,
-                                  16692,-28197,16692,-28197,16692,-28197,16692,-28197,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  16072,-28555,16072,-28555,16072,-28555,16072,-28555,
-                                  15760,-28728,15760,-28728,15760,-28728,15760,-28728,
-                                  15446,-28898,15446,-28898,15446,-28898,15446,-28898,
-                                  15130,-29065,15130,-29065,15130,-29065,15130,-29065,
-                                  14812,-29228,14812,-29228,14812,-29228,14812,-29228,
-                                  14492,-29388,14492,-29388,14492,-29388,14492,-29388,
-                                  14171,-29545,14171,-29545,14171,-29545,14171,-29545,
-                                  13847,-29697,13847,-29697,13847,-29697,13847,-29697,
-                                  13523,-29847,13523,-29847,13523,-29847,13523,-29847,
-                                  13196,-29993,13196,-29993,13196,-29993,13196,-29993,
-                                  12868,-30135,12868,-30135,12868,-30135,12868,-30135,
-                                  12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                  12208,-30408,12208,-30408,12208,-30408,12208,-30408,
-                                  11876,-30540,11876,-30540,11876,-30540,11876,-30540,
-                                  11542,-30667,11542,-30667,11542,-30667,11542,-30667,
-                                  11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                  10870,-30912,10870,-30912,10870,-30912,10870,-30912,
-                                  10532,-31029,10532,-31029,10532,-31029,10532,-31029,
-                                  10193,-31142,10193,-31142,10193,-31142,10193,-31142,
-                                  9853,-31251,9853,-31251,9853,-31251,9853,-31251,
-                                  9511,-31357,9511,-31357,9511,-31357,9511,-31357,
-                                  9169,-31458,9169,-31458,9169,-31458,9169,-31458,
-                                  8825,-31557,8825,-31557,8825,-31557,8825,-31557,
-                                  8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                  8134,-31742,8134,-31742,8134,-31742,8134,-31742,
-                                  7788,-31828,7788,-31828,7788,-31828,7788,-31828,
-                                  7440,-31912,7440,-31912,7440,-31912,7440,-31912,
-                                  7092,-31991,7092,-31991,7092,-31991,7092,-31991,
-                                  6742,-32066,6742,-32066,6742,-32066,6742,-32066,
-                                  6392,-32138,6392,-32138,6392,-32138,6392,-32138,
-                                  6041,-32206,6041,-32206,6041,-32206,6041,-32206,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  5337,-32330,5337,-32330,5337,-32330,5337,-32330,
-                                  4984,-32386,4984,-32386,4984,-32386,4984,-32386,
-                                  4631,-32439,4631,-32439,4631,-32439,4631,-32439,
-                                  4276,-32487,4276,-32487,4276,-32487,4276,-32487,
-                                  3922,-32532,3922,-32532,3922,-32532,3922,-32532,
-                                  3567,-32573,3567,-32573,3567,-32573,3567,-32573,
-                                  3211,-32610,3211,-32610,3211,-32610,3211,-32610,
-                                  2855,-32643,2855,-32643,2855,-32643,2855,-32643,
-                                  2499,-32672,2499,-32672,2499,-32672,2499,-32672,
-                                  2143,-32697,2143,-32697,2143,-32697,2143,-32697,
-                                  1786,-32719,1786,-32719,1786,-32719,1786,-32719,
-                                  1429,-32736,1429,-32736,1429,-32736,1429,-32736,
-                                  1072,-32750,1072,-32750,1072,-32750,1072,-32750,
-                                  714,-32760,714,-32760,714,-32760,714,-32760,
-                                  357,-32766,357,-32766,357,-32766,357,-32766,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -358,-32766,-358,-32766,-358,-32766,-358,-32766,
-                                  -715,-32760,-715,-32760,-715,-32760,-715,-32760,
-                                  -1073,-32750,-1073,-32750,-1073,-32750,-1073,-32750,
-                                  -1430,-32736,-1430,-32736,-1430,-32736,-1430,-32736,
-                                  -1787,-32719,-1787,-32719,-1787,-32719,-1787,-32719,
-                                  -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697,
-                                  -2500,-32672,-2500,-32672,-2500,-32672,-2500,-32672,
-                                  -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643,
-                                  -3212,-32610,-3212,-32610,-3212,-32610,-3212,-32610,
-                                  -3568,-32573,-3568,-32573,-3568,-32573,-3568,-32573,
-                                  -3923,-32532,-3923,-32532,-3923,-32532,-3923,-32532,
-                                  -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487,
-                                  -4632,-32439,-4632,-32439,-4632,-32439,-4632,-32439,
-                                  -4985,-32386,-4985,-32386,-4985,-32386,-4985,-32386,
-                                  -5338,-32330,-5338,-32330,-5338,-32330,-5338,-32330,
-                                  -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                  -6042,-32206,-6042,-32206,-6042,-32206,-6042,-32206,
-                                  -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138,
-                                  -6743,-32066,-6743,-32066,-6743,-32066,-6743,-32066,
-                                  -7093,-31991,-7093,-31991,-7093,-31991,-7093,-31991,
-                                  -7441,-31912,-7441,-31912,-7441,-31912,-7441,-31912,
-                                  -7789,-31828,-7789,-31828,-7789,-31828,-7789,-31828,
-                                  -8135,-31742,-8135,-31742,-8135,-31742,-8135,-31742,
-                                  -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651,
-                                  -8826,-31557,-8826,-31557,-8826,-31557,-8826,-31557,
-                                  -9170,-31458,-9170,-31458,-9170,-31458,-9170,-31458,
-                                  -9512,-31357,-9512,-31357,-9512,-31357,-9512,-31357,
-                                  -9854,-31251,-9854,-31251,-9854,-31251,-9854,-31251,
-                                  -10194,-31142,-10194,-31142,-10194,-31142,-10194,-31142,
-                                  -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029,
-                                  -10871,-30912,-10871,-30912,-10871,-30912,-10871,-30912,
-                                  -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791,
-                                  -11543,-30667,-11543,-30667,-11543,-30667,-11543,-30667,
-                                  -11877,-30540,-11877,-30540,-11877,-30540,-11877,-30540,
-                                  -12209,-30408,-12209,-30408,-12209,-30408,-12209,-30408,
-                                  -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273,
-                                  -12869,-30135,-12869,-30135,-12869,-30135,-12869,-30135,
-                                  -13197,-29993,-13197,-29993,-13197,-29993,-13197,-29993,
-                                  -13524,-29847,-13524,-29847,-13524,-29847,-13524,-29847,
-                                  -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697,
-                                  -14172,-29545,-14172,-29545,-14172,-29545,-14172,-29545,
-                                  -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388,
-                                  -14813,-29228,-14813,-29228,-14813,-29228,-14813,-29228,
-                                  -15131,-29065,-15131,-29065,-15131,-29065,-15131,-29065,
-                                  -15447,-28898,-15447,-28898,-15447,-28898,-15447,-28898,
-                                  -15761,-28728,-15761,-28728,-15761,-28728,-15761,-28728,
-                                  -16073,-28555,-16073,-28555,-16073,-28555,-16073,-28555
-                                 };
-static int16_t twb576[191*2*4] = {32759,-715,32759,-715,32759,-715,32759,-715,
-                                  32735,-1430,32735,-1430,32735,-1430,32735,-1430,
-                                  32696,-2144,32696,-2144,32696,-2144,32696,-2144,
-                                  32642,-2856,32642,-2856,32642,-2856,32642,-2856,
-                                  32572,-3568,32572,-3568,32572,-3568,32572,-3568,
-                                  32486,-4277,32486,-4277,32486,-4277,32486,-4277,
-                                  32385,-4985,32385,-4985,32385,-4985,32385,-4985,
-                                  32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                  32137,-6393,32137,-6393,32137,-6393,32137,-6393,
-                                  31990,-7093,31990,-7093,31990,-7093,31990,-7093,
-                                  31827,-7789,31827,-7789,31827,-7789,31827,-7789,
-                                  31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                  31457,-9170,31457,-9170,31457,-9170,31457,-9170,
-                                  31250,-9854,31250,-9854,31250,-9854,31250,-9854,
-                                  31028,-10533,31028,-10533,31028,-10533,31028,-10533,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30539,-11877,30539,-11877,30539,-11877,30539,-11877,
-                                  30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                  29992,-13197,29992,-13197,29992,-13197,29992,-13197,
-                                  29696,-13848,29696,-13848,29696,-13848,29696,-13848,
-                                  29387,-14493,29387,-14493,29387,-14493,29387,-14493,
-                                  29064,-15131,29064,-15131,29064,-15131,29064,-15131,
-                                  28727,-15761,28727,-15761,28727,-15761,28727,-15761,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  28012,-16999,28012,-16999,28012,-16999,28012,-16999,
-                                  27635,-17606,27635,-17606,27635,-17606,27635,-17606,
-                                  27244,-18205,27244,-18205,27244,-18205,27244,-18205,
-                                  26841,-18795,26841,-18795,26841,-18795,26841,-18795,
-                                  26424,-19376,26424,-19376,26424,-19376,26424,-19376,
-                                  25995,-19948,25995,-19948,25995,-19948,25995,-19948,
-                                  25554,-20510,25554,-20510,25554,-20510,25554,-20510,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24635,-21605,24635,-21605,24635,-21605,24635,-21605,
-                                  24158,-22138,24158,-22138,24158,-22138,24158,-22138,
-                                  23669,-22659,23669,-22659,23669,-22659,23669,-22659,
-                                  23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                  22658,-23670,22658,-23670,22658,-23670,22658,-23670,
-                                  22137,-24159,22137,-24159,22137,-24159,22137,-24159,
-                                  21604,-24636,21604,-24636,21604,-24636,21604,-24636,
-                                  21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                  20509,-25555,20509,-25555,20509,-25555,20509,-25555,
-                                  19947,-25996,19947,-25996,19947,-25996,19947,-25996,
-                                  19375,-26425,19375,-26425,19375,-26425,19375,-26425,
-                                  18794,-26842,18794,-26842,18794,-26842,18794,-26842,
-                                  18204,-27245,18204,-27245,18204,-27245,18204,-27245,
-                                  17605,-27636,17605,-27636,17605,-27636,17605,-27636,
-                                  16998,-28013,16998,-28013,16998,-28013,16998,-28013,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  15760,-28728,15760,-28728,15760,-28728,15760,-28728,
-                                  15130,-29065,15130,-29065,15130,-29065,15130,-29065,
-                                  14492,-29388,14492,-29388,14492,-29388,14492,-29388,
-                                  13847,-29697,13847,-29697,13847,-29697,13847,-29697,
-                                  13196,-29993,13196,-29993,13196,-29993,13196,-29993,
-                                  12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                  11876,-30540,11876,-30540,11876,-30540,11876,-30540,
-                                  11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                  10532,-31029,10532,-31029,10532,-31029,10532,-31029,
-                                  9853,-31251,9853,-31251,9853,-31251,9853,-31251,
-                                  9169,-31458,9169,-31458,9169,-31458,9169,-31458,
-                                  8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                  7788,-31828,7788,-31828,7788,-31828,7788,-31828,
-                                  7092,-31991,7092,-31991,7092,-31991,7092,-31991,
-                                  6392,-32138,6392,-32138,6392,-32138,6392,-32138,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  4984,-32386,4984,-32386,4984,-32386,4984,-32386,
-                                  4276,-32487,4276,-32487,4276,-32487,4276,-32487,
-                                  3567,-32573,3567,-32573,3567,-32573,3567,-32573,
-                                  2855,-32643,2855,-32643,2855,-32643,2855,-32643,
-                                  2143,-32697,2143,-32697,2143,-32697,2143,-32697,
-                                  1429,-32736,1429,-32736,1429,-32736,1429,-32736,
-                                  714,-32760,714,-32760,714,-32760,714,-32760,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -715,-32760,-715,-32760,-715,-32760,-715,-32760,
-                                  -1430,-32736,-1430,-32736,-1430,-32736,-1430,-32736,
-                                  -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697,
-                                  -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643,
-                                  -3568,-32573,-3568,-32573,-3568,-32573,-3568,-32573,
-                                  -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487,
-                                  -4985,-32386,-4985,-32386,-4985,-32386,-4985,-32386,
-                                  -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                  -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138,
-                                  -7093,-31991,-7093,-31991,-7093,-31991,-7093,-31991,
-                                  -7789,-31828,-7789,-31828,-7789,-31828,-7789,-31828,
-                                  -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651,
-                                  -9170,-31458,-9170,-31458,-9170,-31458,-9170,-31458,
-                                  -9854,-31251,-9854,-31251,-9854,-31251,-9854,-31251,
-                                  -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029,
-                                  -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791,
-                                  -11877,-30540,-11877,-30540,-11877,-30540,-11877,-30540,
-                                  -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273,
-                                  -13197,-29993,-13197,-29993,-13197,-29993,-13197,-29993,
-                                  -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697,
-                                  -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388,
-                                  -15131,-29065,-15131,-29065,-15131,-29065,-15131,-29065,
-                                  -15761,-28728,-15761,-28728,-15761,-28728,-15761,-28728,
-                                  -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                                  -16999,-28013,-16999,-28013,-16999,-28013,-16999,-28013,
-                                  -17606,-27636,-17606,-27636,-17606,-27636,-17606,-27636,
-                                  -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245,
-                                  -18795,-26842,-18795,-26842,-18795,-26842,-18795,-26842,
-                                  -19376,-26425,-19376,-26425,-19376,-26425,-19376,-26425,
-                                  -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996,
-                                  -20510,-25555,-20510,-25555,-20510,-25555,-20510,-25555,
-                                  -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101,
-                                  -21605,-24636,-21605,-24636,-21605,-24636,-21605,-24636,
-                                  -22138,-24159,-22138,-24159,-22138,-24159,-22138,-24159,
-                                  -22659,-23670,-22659,-23670,-22659,-23670,-22659,-23670,
-                                  -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170,
-                                  -23670,-22659,-23670,-22659,-23670,-22659,-23670,-22659,
-                                  -24159,-22138,-24159,-22138,-24159,-22138,-24159,-22138,
-                                  -24636,-21605,-24636,-21605,-24636,-21605,-24636,-21605,
-                                  -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063,
-                                  -25555,-20510,-25555,-20510,-25555,-20510,-25555,-20510,
-                                  -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948,
-                                  -26425,-19376,-26425,-19376,-26425,-19376,-26425,-19376,
-                                  -26842,-18795,-26842,-18795,-26842,-18795,-26842,-18795,
-                                  -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205,
-                                  -27636,-17606,-27636,-17606,-27636,-17606,-27636,-17606,
-                                  -28013,-16999,-28013,-16999,-28013,-16999,-28013,-16999,
-                                  -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384,
-                                  -28728,-15761,-28728,-15761,-28728,-15761,-28728,-15761,
-                                  -29065,-15131,-29065,-15131,-29065,-15131,-29065,-15131,
-                                  -29388,-14493,-29388,-14493,-29388,-14493,-29388,-14493,
-                                  -29697,-13848,-29697,-13848,-29697,-13848,-29697,-13848,
-                                  -29993,-13197,-29993,-13197,-29993,-13197,-29993,-13197,
-                                  -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540,
-                                  -30540,-11877,-30540,-11877,-30540,-11877,-30540,-11877,
-                                  -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207,
-                                  -31029,-10533,-31029,-10533,-31029,-10533,-31029,-10533,
-                                  -31251,-9854,-31251,-9854,-31251,-9854,-31251,-9854,
-                                  -31458,-9170,-31458,-9170,-31458,-9170,-31458,-9170,
-                                  -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481,
-                                  -31828,-7789,-31828,-7789,-31828,-7789,-31828,-7789,
-                                  -31991,-7093,-31991,-7093,-31991,-7093,-31991,-7093,
-                                  -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393,
-                                  -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690,
-                                  -32386,-4985,-32386,-4985,-32386,-4985,-32386,-4985,
-                                  -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277,
-                                  -32573,-3568,-32573,-3568,-32573,-3568,-32573,-3568,
-                                  -32643,-2856,-32643,-2856,-32643,-2856,-32643,-2856,
-                                  -32697,-2144,-32697,-2144,-32697,-2144,-32697,-2144,
-                                  -32736,-1430,-32736,-1430,-32736,-1430,-32736,-1430,
-                                  -32760,-715,-32760,-715,-32760,-715,-32760,-715,
-                                  -32767,-1,-32767,-1,-32767,-1,-32767,-1,
-                                  -32760,714,-32760,714,-32760,714,-32760,714,
-                                  -32736,1429,-32736,1429,-32736,1429,-32736,1429,
-                                  -32697,2143,-32697,2143,-32697,2143,-32697,2143,
-                                  -32643,2855,-32643,2855,-32643,2855,-32643,2855,
-                                  -32573,3567,-32573,3567,-32573,3567,-32573,3567,
-                                  -32487,4276,-32487,4276,-32487,4276,-32487,4276,
-                                  -32386,4984,-32386,4984,-32386,4984,-32386,4984,
-                                  -32270,5689,-32270,5689,-32270,5689,-32270,5689,
-                                  -32138,6392,-32138,6392,-32138,6392,-32138,6392,
-                                  -31991,7092,-31991,7092,-31991,7092,-31991,7092,
-                                  -31828,7788,-31828,7788,-31828,7788,-31828,7788,
-                                  -31651,8480,-31651,8480,-31651,8480,-31651,8480,
-                                  -31458,9169,-31458,9169,-31458,9169,-31458,9169,
-                                  -31251,9853,-31251,9853,-31251,9853,-31251,9853,
-                                  -31029,10532,-31029,10532,-31029,10532,-31029,10532,
-                                  -30791,11206,-30791,11206,-30791,11206,-30791,11206,
-                                  -30540,11876,-30540,11876,-30540,11876,-30540,11876,
-                                  -30273,12539,-30273,12539,-30273,12539,-30273,12539,
-                                  -29993,13196,-29993,13196,-29993,13196,-29993,13196,
-                                  -29697,13847,-29697,13847,-29697,13847,-29697,13847,
-                                  -29388,14492,-29388,14492,-29388,14492,-29388,14492,
-                                  -29065,15130,-29065,15130,-29065,15130,-29065,15130,
-                                  -28728,15760,-28728,15760,-28728,15760,-28728,15760,
-                                  -28378,16383,-28378,16383,-28378,16383,-28378,16383,
-                                  -28013,16998,-28013,16998,-28013,16998,-28013,16998,
-                                  -27636,17605,-27636,17605,-27636,17605,-27636,17605,
-                                  -27245,18204,-27245,18204,-27245,18204,-27245,18204,
-                                  -26842,18794,-26842,18794,-26842,18794,-26842,18794,
-                                  -26425,19375,-26425,19375,-26425,19375,-26425,19375,
-                                  -25996,19947,-25996,19947,-25996,19947,-25996,19947,
-                                  -25555,20509,-25555,20509,-25555,20509,-25555,20509,
-                                  -25101,21062,-25101,21062,-25101,21062,-25101,21062,
-                                  -24636,21604,-24636,21604,-24636,21604,-24636,21604,
-                                  -24159,22137,-24159,22137,-24159,22137,-24159,22137,
-                                  -23670,22658,-23670,22658,-23670,22658,-23670,22658,
-                                  -23170,23169,-23170,23169,-23170,23169,-23170,23169,
-                                  -22659,23669,-22659,23669,-22659,23669,-22659,23669,
-                                  -22138,24158,-22138,24158,-22138,24158,-22138,24158,
-                                  -21605,24635,-21605,24635,-21605,24635,-21605,24635,
-                                  -21063,25100,-21063,25100,-21063,25100,-21063,25100,
-                                  -20510,25554,-20510,25554,-20510,25554,-20510,25554,
-                                  -19948,25995,-19948,25995,-19948,25995,-19948,25995,
-                                  -19376,26424,-19376,26424,-19376,26424,-19376,26424,
-                                  -18795,26841,-18795,26841,-18795,26841,-18795,26841,
-                                  -18205,27244,-18205,27244,-18205,27244,-18205,27244,
-                                  -17606,27635,-17606,27635,-17606,27635,-17606,27635,
-                                  -16999,28012,-16999,28012,-16999,28012,-16999,28012
-                                 };
+static int16_t twa576[191*2*4];
+static int16_t twb576[191*2*4];
 
 void dft576(int16_t *x,int16_t *y,unsigned char scale_flag)  // 192 x 3
 {
@@ -11446,320 +7901,8 @@ void dft576(int16_t *x,int16_t *y,unsigned char scale_flag)  // 192 x 3
   _m_empty();
 };
 
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:299)/600));
-twa2 = zeros(1,2*299);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-fd=fopen("twiddle_tmp.txt","w");
-fprintf(fd,"static int16_t twa600[299*2*4] = {");
-for i=1:2:(2*298)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-fclose(fd);
- */
-static int16_t twa600[299*2*4] = {32765,-344,32765,-344,32765,-344,32765,-344,
-                                  32759,-687,32759,-687,32759,-687,32759,-687,
-                                  32750,-1030,32750,-1030,32750,-1030,32750,-1030,
-                                  32738,-1373,32738,-1373,32738,-1373,32738,-1373,
-                                  32722,-1715,32722,-1715,32722,-1715,32722,-1715,
-                                  32702,-2058,32702,-2058,32702,-2058,32702,-2058,
-                                  32679,-2400,32679,-2400,32679,-2400,32679,-2400,
-                                  32652,-2742,32652,-2742,32652,-2742,32652,-2742,
-                                  32621,-3084,32621,-3084,32621,-3084,32621,-3084,
-                                  32587,-3426,32587,-3426,32587,-3426,32587,-3426,
-                                  32549,-3767,32549,-3767,32549,-3767,32549,-3767,
-                                  32508,-4107,32508,-4107,32508,-4107,32508,-4107,
-                                  32463,-4447,32463,-4447,32463,-4447,32463,-4447,
-                                  32415,-4787,32415,-4787,32415,-4787,32415,-4787,
-                                  32363,-5126,32363,-5126,32363,-5126,32363,-5126,
-                                  32308,-5465,32308,-5465,32308,-5465,32308,-5465,
-                                  32249,-5803,32249,-5803,32249,-5803,32249,-5803,
-                                  32186,-6140,32186,-6140,32186,-6140,32186,-6140,
-                                  32120,-6477,32120,-6477,32120,-6477,32120,-6477,
-                                  32050,-6813,32050,-6813,32050,-6813,32050,-6813,
-                                  31977,-7148,31977,-7148,31977,-7148,31977,-7148,
-                                  31901,-7483,31901,-7483,31901,-7483,31901,-7483,
-                                  31821,-7817,31821,-7817,31821,-7817,31821,-7817,
-                                  31737,-8149,31737,-8149,31737,-8149,31737,-8149,
-                                  31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                  31559,-8812,31559,-8812,31559,-8812,31559,-8812,
-                                  31465,-9142,31465,-9142,31465,-9142,31465,-9142,
-                                  31368,-9471,31368,-9471,31368,-9471,31368,-9471,
-                                  31267,-9799,31267,-9799,31267,-9799,31267,-9799,
-                                  31163,-10126,31163,-10126,31163,-10126,31163,-10126,
-                                  31055,-10452,31055,-10452,31055,-10452,31055,-10452,
-                                  30944,-10776,30944,-10776,30944,-10776,30944,-10776,
-                                  30829,-11100,30829,-11100,30829,-11100,30829,-11100,
-                                  30711,-11422,30711,-11422,30711,-11422,30711,-11422,
-                                  30590,-11743,30590,-11743,30590,-11743,30590,-11743,
-                                  30465,-12063,30465,-12063,30465,-12063,30465,-12063,
-                                  30338,-12381,30338,-12381,30338,-12381,30338,-12381,
-                                  30206,-12698,30206,-12698,30206,-12698,30206,-12698,
-                                  30072,-13014,30072,-13014,30072,-13014,30072,-13014,
-                                  29934,-13328,29934,-13328,29934,-13328,29934,-13328,
-                                  29792,-13641,29792,-13641,29792,-13641,29792,-13641,
-                                  29648,-13952,29648,-13952,29648,-13952,29648,-13952,
-                                  29500,-14262,29500,-14262,29500,-14262,29500,-14262,
-                                  29349,-14570,29349,-14570,29349,-14570,29349,-14570,
-                                  29195,-14876,29195,-14876,29195,-14876,29195,-14876,
-                                  29038,-15181,29038,-15181,29038,-15181,29038,-15181,
-                                  28877,-15485,28877,-15485,28877,-15485,28877,-15485,
-                                  28713,-15786,28713,-15786,28713,-15786,28713,-15786,
-                                  28547,-16086,28547,-16086,28547,-16086,28547,-16086,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  28203,-16680,28203,-16680,28203,-16680,28203,-16680,
-                                  28027,-16975,28027,-16975,28027,-16975,28027,-16975,
-                                  27848,-17267,27848,-17267,27848,-17267,27848,-17267,
-                                  27666,-17558,27666,-17558,27666,-17558,27666,-17558,
-                                  27480,-17847,27480,-17847,27480,-17847,27480,-17847,
-                                  27292,-18133,27292,-18133,27292,-18133,27292,-18133,
-                                  27100,-18418,27100,-18418,27100,-18418,27100,-18418,
-                                  26906,-18701,26906,-18701,26906,-18701,26906,-18701,
-                                  26709,-18982,26709,-18982,26709,-18982,26709,-18982,
-                                  26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                                  26305,-19537,26305,-19537,26305,-19537,26305,-19537,
-                                  26099,-19811,26099,-19811,26099,-19811,26099,-19811,
-                                  25891,-20084,25891,-20084,25891,-20084,25891,-20084,
-                                  25679,-20354,25679,-20354,25679,-20354,25679,-20354,
-                                  25464,-20621,25464,-20621,25464,-20621,25464,-20621,
-                                  25247,-20887,25247,-20887,25247,-20887,25247,-20887,
-                                  25027,-21150,25027,-21150,25027,-21150,25027,-21150,
-                                  24804,-21411,24804,-21411,24804,-21411,24804,-21411,
-                                  24578,-21670,24578,-21670,24578,-21670,24578,-21670,
-                                  24350,-21926,24350,-21926,24350,-21926,24350,-21926,
-                                  24119,-22180,24119,-22180,24119,-22180,24119,-22180,
-                                  23886,-22431,23886,-22431,23886,-22431,23886,-22431,
-                                  23649,-22680,23649,-22680,23649,-22680,23649,-22680,
-                                  23411,-22926,23411,-22926,23411,-22926,23411,-22926,
-                                  23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                  22925,-23412,22925,-23412,22925,-23412,22925,-23412,
-                                  22679,-23650,22679,-23650,22679,-23650,22679,-23650,
-                                  22430,-23887,22430,-23887,22430,-23887,22430,-23887,
-                                  22179,-24120,22179,-24120,22179,-24120,22179,-24120,
-                                  21925,-24351,21925,-24351,21925,-24351,21925,-24351,
-                                  21669,-24579,21669,-24579,21669,-24579,21669,-24579,
-                                  21410,-24805,21410,-24805,21410,-24805,21410,-24805,
-                                  21149,-25028,21149,-25028,21149,-25028,21149,-25028,
-                                  20886,-25248,20886,-25248,20886,-25248,20886,-25248,
-                                  20620,-25465,20620,-25465,20620,-25465,20620,-25465,
-                                  20353,-25680,20353,-25680,20353,-25680,20353,-25680,
-                                  20083,-25892,20083,-25892,20083,-25892,20083,-25892,
-                                  19810,-26100,19810,-26100,19810,-26100,19810,-26100,
-                                  19536,-26306,19536,-26306,19536,-26306,19536,-26306,
-                                  19259,-26510,19259,-26510,19259,-26510,19259,-26510,
-                                  18981,-26710,18981,-26710,18981,-26710,18981,-26710,
-                                  18700,-26907,18700,-26907,18700,-26907,18700,-26907,
-                                  18417,-27101,18417,-27101,18417,-27101,18417,-27101,
-                                  18132,-27293,18132,-27293,18132,-27293,18132,-27293,
-                                  17846,-27481,17846,-27481,17846,-27481,17846,-27481,
-                                  17557,-27667,17557,-27667,17557,-27667,17557,-27667,
-                                  17266,-27849,17266,-27849,17266,-27849,17266,-27849,
-                                  16974,-28028,16974,-28028,16974,-28028,16974,-28028,
-                                  16679,-28204,16679,-28204,16679,-28204,16679,-28204,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  16085,-28548,16085,-28548,16085,-28548,16085,-28548,
-                                  15785,-28714,15785,-28714,15785,-28714,15785,-28714,
-                                  15484,-28878,15484,-28878,15484,-28878,15484,-28878,
-                                  15180,-29039,15180,-29039,15180,-29039,15180,-29039,
-                                  14875,-29196,14875,-29196,14875,-29196,14875,-29196,
-                                  14569,-29350,14569,-29350,14569,-29350,14569,-29350,
-                                  14261,-29501,14261,-29501,14261,-29501,14261,-29501,
-                                  13951,-29649,13951,-29649,13951,-29649,13951,-29649,
-                                  13640,-29793,13640,-29793,13640,-29793,13640,-29793,
-                                  13327,-29935,13327,-29935,13327,-29935,13327,-29935,
-                                  13013,-30073,13013,-30073,13013,-30073,13013,-30073,
-                                  12697,-30207,12697,-30207,12697,-30207,12697,-30207,
-                                  12380,-30339,12380,-30339,12380,-30339,12380,-30339,
-                                  12062,-30466,12062,-30466,12062,-30466,12062,-30466,
-                                  11742,-30591,11742,-30591,11742,-30591,11742,-30591,
-                                  11421,-30712,11421,-30712,11421,-30712,11421,-30712,
-                                  11099,-30830,11099,-30830,11099,-30830,11099,-30830,
-                                  10775,-30945,10775,-30945,10775,-30945,10775,-30945,
-                                  10451,-31056,10451,-31056,10451,-31056,10451,-31056,
-                                  10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                                  9798,-31268,9798,-31268,9798,-31268,9798,-31268,
-                                  9470,-31369,9470,-31369,9470,-31369,9470,-31369,
-                                  9141,-31466,9141,-31466,9141,-31466,9141,-31466,
-                                  8811,-31560,8811,-31560,8811,-31560,8811,-31560,
-                                  8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                  8148,-31738,8148,-31738,8148,-31738,8148,-31738,
-                                  7816,-31822,7816,-31822,7816,-31822,7816,-31822,
-                                  7482,-31902,7482,-31902,7482,-31902,7482,-31902,
-                                  7147,-31978,7147,-31978,7147,-31978,7147,-31978,
-                                  6812,-32051,6812,-32051,6812,-32051,6812,-32051,
-                                  6476,-32121,6476,-32121,6476,-32121,6476,-32121,
-                                  6139,-32187,6139,-32187,6139,-32187,6139,-32187,
-                                  5802,-32250,5802,-32250,5802,-32250,5802,-32250,
-                                  5464,-32309,5464,-32309,5464,-32309,5464,-32309,
-                                  5125,-32364,5125,-32364,5125,-32364,5125,-32364,
-                                  4786,-32416,4786,-32416,4786,-32416,4786,-32416,
-                                  4446,-32464,4446,-32464,4446,-32464,4446,-32464,
-                                  4106,-32509,4106,-32509,4106,-32509,4106,-32509,
-                                  3766,-32550,3766,-32550,3766,-32550,3766,-32550,
-                                  3425,-32588,3425,-32588,3425,-32588,3425,-32588,
-                                  3083,-32622,3083,-32622,3083,-32622,3083,-32622,
-                                  2741,-32653,2741,-32653,2741,-32653,2741,-32653,
-                                  2399,-32680,2399,-32680,2399,-32680,2399,-32680,
-                                  2057,-32703,2057,-32703,2057,-32703,2057,-32703,
-                                  1714,-32723,1714,-32723,1714,-32723,1714,-32723,
-                                  1372,-32739,1372,-32739,1372,-32739,1372,-32739,
-                                  1029,-32751,1029,-32751,1029,-32751,1029,-32751,
-                                  686,-32760,686,-32760,686,-32760,686,-32760,
-                                  343,-32766,343,-32766,343,-32766,343,-32766,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -344,-32766,-344,-32766,-344,-32766,-344,-32766,
-                                  -687,-32760,-687,-32760,-687,-32760,-687,-32760,
-                                  -1030,-32751,-1030,-32751,-1030,-32751,-1030,-32751,
-                                  -1373,-32739,-1373,-32739,-1373,-32739,-1373,-32739,
-                                  -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723,
-                                  -2058,-32703,-2058,-32703,-2058,-32703,-2058,-32703,
-                                  -2400,-32680,-2400,-32680,-2400,-32680,-2400,-32680,
-                                  -2742,-32653,-2742,-32653,-2742,-32653,-2742,-32653,
-                                  -3084,-32622,-3084,-32622,-3084,-32622,-3084,-32622,
-                                  -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588,
-                                  -3767,-32550,-3767,-32550,-3767,-32550,-3767,-32550,
-                                  -4107,-32509,-4107,-32509,-4107,-32509,-4107,-32509,
-                                  -4447,-32464,-4447,-32464,-4447,-32464,-4447,-32464,
-                                  -4787,-32416,-4787,-32416,-4787,-32416,-4787,-32416,
-                                  -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364,
-                                  -5465,-32309,-5465,-32309,-5465,-32309,-5465,-32309,
-                                  -5803,-32250,-5803,-32250,-5803,-32250,-5803,-32250,
-                                  -6140,-32187,-6140,-32187,-6140,-32187,-6140,-32187,
-                                  -6477,-32121,-6477,-32121,-6477,-32121,-6477,-32121,
-                                  -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051,
-                                  -7148,-31978,-7148,-31978,-7148,-31978,-7148,-31978,
-                                  -7483,-31902,-7483,-31902,-7483,-31902,-7483,-31902,
-                                  -7817,-31822,-7817,-31822,-7817,-31822,-7817,-31822,
-                                  -8149,-31738,-8149,-31738,-8149,-31738,-8149,-31738,
-                                  -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651,
-                                  -8812,-31560,-8812,-31560,-8812,-31560,-8812,-31560,
-                                  -9142,-31466,-9142,-31466,-9142,-31466,-9142,-31466,
-                                  -9471,-31369,-9471,-31369,-9471,-31369,-9471,-31369,
-                                  -9799,-31268,-9799,-31268,-9799,-31268,-9799,-31268,
-                                  -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164,
-                                  -10452,-31056,-10452,-31056,-10452,-31056,-10452,-31056,
-                                  -10776,-30945,-10776,-30945,-10776,-30945,-10776,-30945,
-                                  -11100,-30830,-11100,-30830,-11100,-30830,-11100,-30830,
-                                  -11422,-30712,-11422,-30712,-11422,-30712,-11422,-30712,
-                                  -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591,
-                                  -12063,-30466,-12063,-30466,-12063,-30466,-12063,-30466,
-                                  -12381,-30339,-12381,-30339,-12381,-30339,-12381,-30339,
-                                  -12698,-30207,-12698,-30207,-12698,-30207,-12698,-30207,
-                                  -13014,-30073,-13014,-30073,-13014,-30073,-13014,-30073,
-                                  -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935,
-                                  -13641,-29793,-13641,-29793,-13641,-29793,-13641,-29793,
-                                  -13952,-29649,-13952,-29649,-13952,-29649,-13952,-29649,
-                                  -14262,-29501,-14262,-29501,-14262,-29501,-14262,-29501,
-                                  -14570,-29350,-14570,-29350,-14570,-29350,-14570,-29350,
-                                  -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196,
-                                  -15181,-29039,-15181,-29039,-15181,-29039,-15181,-29039,
-                                  -15485,-28878,-15485,-28878,-15485,-28878,-15485,-28878,
-                                  -15786,-28714,-15786,-28714,-15786,-28714,-15786,-28714,
-                                  -16086,-28548,-16086,-28548,-16086,-28548,-16086,-28548,
-                                  -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                                  -16680,-28204,-16680,-28204,-16680,-28204,-16680,-28204,
-                                  -16975,-28028,-16975,-28028,-16975,-28028,-16975,-28028,
-                                  -17267,-27849,-17267,-27849,-17267,-27849,-17267,-27849,
-                                  -17558,-27667,-17558,-27667,-17558,-27667,-17558,-27667,
-                                  -17847,-27481,-17847,-27481,-17847,-27481,-17847,-27481,
-                                  -18133,-27293,-18133,-27293,-18133,-27293,-18133,-27293,
-                                  -18418,-27101,-18418,-27101,-18418,-27101,-18418,-27101,
-                                  -18701,-26907,-18701,-26907,-18701,-26907,-18701,-26907,
-                                  -18982,-26710,-18982,-26710,-18982,-26710,-18982,-26710,
-                                  -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510,
-                                  -19537,-26306,-19537,-26306,-19537,-26306,-19537,-26306,
-                                  -19811,-26100,-19811,-26100,-19811,-26100,-19811,-26100,
-                                  -20084,-25892,-20084,-25892,-20084,-25892,-20084,-25892,
-                                  -20354,-25680,-20354,-25680,-20354,-25680,-20354,-25680,
-                                  -20621,-25465,-20621,-25465,-20621,-25465,-20621,-25465,
-                                  -20887,-25248,-20887,-25248,-20887,-25248,-20887,-25248,
-                                  -21150,-25028,-21150,-25028,-21150,-25028,-21150,-25028,
-                                  -21411,-24805,-21411,-24805,-21411,-24805,-21411,-24805,
-                                  -21670,-24579,-21670,-24579,-21670,-24579,-21670,-24579,
-                                  -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351,
-                                  -22180,-24120,-22180,-24120,-22180,-24120,-22180,-24120,
-                                  -22431,-23887,-22431,-23887,-22431,-23887,-22431,-23887,
-                                  -22680,-23650,-22680,-23650,-22680,-23650,-22680,-23650,
-                                  -22926,-23412,-22926,-23412,-22926,-23412,-22926,-23412,
-                                  -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170,
-                                  -23412,-22926,-23412,-22926,-23412,-22926,-23412,-22926,
-                                  -23650,-22680,-23650,-22680,-23650,-22680,-23650,-22680,
-                                  -23887,-22431,-23887,-22431,-23887,-22431,-23887,-22431,
-                                  -24120,-22180,-24120,-22180,-24120,-22180,-24120,-22180,
-                                  -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926,
-                                  -24579,-21670,-24579,-21670,-24579,-21670,-24579,-21670,
-                                  -24805,-21411,-24805,-21411,-24805,-21411,-24805,-21411,
-                                  -25028,-21150,-25028,-21150,-25028,-21150,-25028,-21150,
-                                  -25248,-20887,-25248,-20887,-25248,-20887,-25248,-20887,
-                                  -25465,-20621,-25465,-20621,-25465,-20621,-25465,-20621,
-                                  -25680,-20354,-25680,-20354,-25680,-20354,-25680,-20354,
-                                  -25892,-20084,-25892,-20084,-25892,-20084,-25892,-20084,
-                                  -26100,-19811,-26100,-19811,-26100,-19811,-26100,-19811,
-                                  -26306,-19537,-26306,-19537,-26306,-19537,-26306,-19537,
-                                  -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260,
-                                  -26710,-18982,-26710,-18982,-26710,-18982,-26710,-18982,
-                                  -26907,-18701,-26907,-18701,-26907,-18701,-26907,-18701,
-                                  -27101,-18418,-27101,-18418,-27101,-18418,-27101,-18418,
-                                  -27293,-18133,-27293,-18133,-27293,-18133,-27293,-18133,
-                                  -27481,-17847,-27481,-17847,-27481,-17847,-27481,-17847,
-                                  -27667,-17558,-27667,-17558,-27667,-17558,-27667,-17558,
-                                  -27849,-17267,-27849,-17267,-27849,-17267,-27849,-17267,
-                                  -28028,-16975,-28028,-16975,-28028,-16975,-28028,-16975,
-                                  -28204,-16680,-28204,-16680,-28204,-16680,-28204,-16680,
-                                  -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384,
-                                  -28548,-16086,-28548,-16086,-28548,-16086,-28548,-16086,
-                                  -28714,-15786,-28714,-15786,-28714,-15786,-28714,-15786,
-                                  -28878,-15485,-28878,-15485,-28878,-15485,-28878,-15485,
-                                  -29039,-15181,-29039,-15181,-29039,-15181,-29039,-15181,
-                                  -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876,
-                                  -29350,-14570,-29350,-14570,-29350,-14570,-29350,-14570,
-                                  -29501,-14262,-29501,-14262,-29501,-14262,-29501,-14262,
-                                  -29649,-13952,-29649,-13952,-29649,-13952,-29649,-13952,
-                                  -29793,-13641,-29793,-13641,-29793,-13641,-29793,-13641,
-                                  -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328,
-                                  -30073,-13014,-30073,-13014,-30073,-13014,-30073,-13014,
-                                  -30207,-12698,-30207,-12698,-30207,-12698,-30207,-12698,
-                                  -30339,-12381,-30339,-12381,-30339,-12381,-30339,-12381,
-                                  -30466,-12063,-30466,-12063,-30466,-12063,-30466,-12063,
-                                  -30591,-11743,-30591,-11743,-30591,-11743,-30591,-11743,
-                                  -30712,-11422,-30712,-11422,-30712,-11422,-30712,-11422,
-                                  -30830,-11100,-30830,-11100,-30830,-11100,-30830,-11100,
-                                  -30945,-10776,-30945,-10776,-30945,-10776,-30945,-10776,
-                                  -31056,-10452,-31056,-10452,-31056,-10452,-31056,-10452,
-                                  -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126,
-                                  -31268,-9799,-31268,-9799,-31268,-9799,-31268,-9799,
-                                  -31369,-9471,-31369,-9471,-31369,-9471,-31369,-9471,
-                                  -31466,-9142,-31466,-9142,-31466,-9142,-31466,-9142,
-                                  -31560,-8812,-31560,-8812,-31560,-8812,-31560,-8812,
-                                  -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481,
-                                  -31738,-8149,-31738,-8149,-31738,-8149,-31738,-8149,
-                                  -31822,-7817,-31822,-7817,-31822,-7817,-31822,-7817,
-                                  -31902,-7483,-31902,-7483,-31902,-7483,-31902,-7483,
-                                  -31978,-7148,-31978,-7148,-31978,-7148,-31978,-7148,
-                                  -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813,
-                                  -32121,-6477,-32121,-6477,-32121,-6477,-32121,-6477,
-                                  -32187,-6140,-32187,-6140,-32187,-6140,-32187,-6140,
-                                  -32250,-5803,-32250,-5803,-32250,-5803,-32250,-5803,
-                                  -32309,-5465,-32309,-5465,-32309,-5465,-32309,-5465,
-                                  -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126,
-                                  -32416,-4787,-32416,-4787,-32416,-4787,-32416,-4787,
-                                  -32464,-4447,-32464,-4447,-32464,-4447,-32464,-4447,
-                                  -32509,-4107,-32509,-4107,-32509,-4107,-32509,-4107,
-                                  -32550,-3767,-32550,-3767,-32550,-3767,-32550,-3767,
-                                  -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426,
-                                  -32622,-3084,-32622,-3084,-32622,-3084,-32622,-3084,
-                                  -32653,-2742,-32653,-2742,-32653,-2742,-32653,-2742,
-                                  -32680,-2400,-32680,-2400,-32680,-2400,-32680,-2400,
-                                  -32703,-2058,-32703,-2058,-32703,-2058,-32703,-2058,
-                                  -32723,-1715,-32723,-1715,-32723,-1715,-32723,-1715,
-                                  -32739,-1373,-32739,-1373,-32739,-1373,-32739,-1373,
-                                  -32751,-1030,-32751,-1030,-32751,-1030,-32751,-1030,
-                                  -32760,-687,-32760,-687,-32760,-687,-32760,-687,
-                                  -32766,-344,-32766,-344,-32766,-344,-32766,-344
-                                 };
+
+static int16_t twa600[299*2*4];
 
 void dft600(int16_t *x,int16_t *y,unsigned char scale_flag)  // 300 x 2
 {
@@ -11803,464 +7946,8 @@ void dft600(int16_t *x,int16_t *y,unsigned char scale_flag)  // 300 x 2
 };
 
 
-/*
-Twiddles generated with
-
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:215)/648));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:215)/648));
-twa2 = zeros(1,2*215);
-twb2 = zeros(1,2*215);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-fd=fopen("twiddle_tmp.txt","w");
-fprintf(fd,"static int16_t twa648[215*2*4] = {");
-for i=1:2:(2*214)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-fprintf(fd,"static int16_t twb648[215*2*4] = {");
-for i=1:2:(2*214)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-fclose(fd);
-*/
-static int16_t twa648[215*2*4] = {32765,-318,32765,-318,32765,-318,32765,-318,
-                                  32760,-636,32760,-636,32760,-636,32760,-636,
-                                  32753,-954,32753,-954,32753,-954,32753,-954,
-                                  32742,-1271,32742,-1271,32742,-1271,32742,-1271,
-                                  32728,-1588,32728,-1588,32728,-1588,32728,-1588,
-                                  32711,-1906,32711,-1906,32711,-1906,32711,-1906,
-                                  32691,-2223,32691,-2223,32691,-2223,32691,-2223,
-                                  32668,-2540,32668,-2540,32668,-2540,32668,-2540,
-                                  32642,-2856,32642,-2856,32642,-2856,32642,-2856,
-                                  32613,-3173,32613,-3173,32613,-3173,32613,-3173,
-                                  32580,-3489,32580,-3489,32580,-3489,32580,-3489,
-                                  32545,-3805,32545,-3805,32545,-3805,32545,-3805,
-                                  32507,-4120,32507,-4120,32507,-4120,32507,-4120,
-                                  32465,-4435,32465,-4435,32465,-4435,32465,-4435,
-                                  32421,-4749,32421,-4749,32421,-4749,32421,-4749,
-                                  32373,-5064,32373,-5064,32373,-5064,32373,-5064,
-                                  32322,-5377,32322,-5377,32322,-5377,32322,-5377,
-                                  32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                  32212,-6003,32212,-6003,32212,-6003,32212,-6003,
-                                  32152,-6315,32152,-6315,32152,-6315,32152,-6315,
-                                  32090,-6627,32090,-6627,32090,-6627,32090,-6627,
-                                  32024,-6937,32024,-6937,32024,-6937,32024,-6937,
-                                  31955,-7248,31955,-7248,31955,-7248,31955,-7248,
-                                  31883,-7557,31883,-7557,31883,-7557,31883,-7557,
-                                  31808,-7866,31808,-7866,31808,-7866,31808,-7866,
-                                  31731,-8174,31731,-8174,31731,-8174,31731,-8174,
-                                  31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                  31566,-8788,31566,-8788,31566,-8788,31566,-8788,
-                                  31480,-9093,31480,-9093,31480,-9093,31480,-9093,
-                                  31390,-9398,31390,-9398,31390,-9398,31390,-9398,
-                                  31297,-9702,31297,-9702,31297,-9702,31297,-9702,
-                                  31202,-10005,31202,-10005,31202,-10005,31202,-10005,
-                                  31103,-10307,31103,-10307,31103,-10307,31103,-10307,
-                                  31002,-10608,31002,-10608,31002,-10608,31002,-10608,
-                                  30898,-10908,30898,-10908,30898,-10908,30898,-10908,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30680,-11505,30680,-11505,30680,-11505,30680,-11505,
-                                  30567,-11802,30567,-11802,30567,-11802,30567,-11802,
-                                  30451,-12098,30451,-12098,30451,-12098,30451,-12098,
-                                  30333,-12393,30333,-12393,30333,-12393,30333,-12393,
-                                  30211,-12687,30211,-12687,30211,-12687,30211,-12687,
-                                  30087,-12979,30087,-12979,30087,-12979,30087,-12979,
-                                  29959,-13270,29959,-13270,29959,-13270,29959,-13270,
-                                  29829,-13560,29829,-13560,29829,-13560,29829,-13560,
-                                  29696,-13848,29696,-13848,29696,-13848,29696,-13848,
-                                  29561,-14136,29561,-14136,29561,-14136,29561,-14136,
-                                  29422,-14422,29422,-14422,29422,-14422,29422,-14422,
-                                  29281,-14706,29281,-14706,29281,-14706,29281,-14706,
-                                  29137,-14990,29137,-14990,29137,-14990,29137,-14990,
-                                  28990,-15271,28990,-15271,28990,-15271,28990,-15271,
-                                  28841,-15552,28841,-15552,28841,-15552,28841,-15552,
-                                  28689,-15831,28689,-15831,28689,-15831,28689,-15831,
-                                  28534,-16108,28534,-16108,28534,-16108,28534,-16108,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  28216,-16658,28216,-16658,28216,-16658,28216,-16658,
-                                  28054,-16931,28054,-16931,28054,-16931,28054,-16931,
-                                  27888,-17202,27888,-17202,27888,-17202,27888,-17202,
-                                  27720,-17472,27720,-17472,27720,-17472,27720,-17472,
-                                  27549,-17740,27549,-17740,27549,-17740,27549,-17740,
-                                  27376,-18006,27376,-18006,27376,-18006,27376,-18006,
-                                  27200,-18271,27200,-18271,27200,-18271,27200,-18271,
-                                  27022,-18534,27022,-18534,27022,-18534,27022,-18534,
-                                  26841,-18795,26841,-18795,26841,-18795,26841,-18795,
-                                  26657,-19054,26657,-19054,26657,-19054,26657,-19054,
-                                  26471,-19312,26471,-19312,26471,-19312,26471,-19312,
-                                  26283,-19568,26283,-19568,26283,-19568,26283,-19568,
-                                  26092,-19822,26092,-19822,26092,-19822,26092,-19822,
-                                  25898,-20074,25898,-20074,25898,-20074,25898,-20074,
-                                  25702,-20324,25702,-20324,25702,-20324,25702,-20324,
-                                  25504,-20572,25504,-20572,25504,-20572,25504,-20572,
-                                  25304,-20818,25304,-20818,25304,-20818,25304,-20818,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24895,-21305,24895,-21305,24895,-21305,24895,-21305,
-                                  24687,-21546,24687,-21546,24687,-21546,24687,-21546,
-                                  24477,-21784,24477,-21784,24477,-21784,24477,-21784,
-                                  24265,-22020,24265,-22020,24265,-22020,24265,-22020,
-                                  24050,-22254,24050,-22254,24050,-22254,24050,-22254,
-                                  23833,-22487,23833,-22487,23833,-22487,23833,-22487,
-                                  23614,-22717,23614,-22717,23614,-22717,23614,-22717,
-                                  23393,-22945,23393,-22945,23393,-22945,23393,-22945,
-                                  23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                  22944,-23394,22944,-23394,22944,-23394,22944,-23394,
-                                  22716,-23615,22716,-23615,22716,-23615,22716,-23615,
-                                  22486,-23834,22486,-23834,22486,-23834,22486,-23834,
-                                  22253,-24051,22253,-24051,22253,-24051,22253,-24051,
-                                  22019,-24266,22019,-24266,22019,-24266,22019,-24266,
-                                  21783,-24478,21783,-24478,21783,-24478,21783,-24478,
-                                  21545,-24688,21545,-24688,21545,-24688,21545,-24688,
-                                  21304,-24896,21304,-24896,21304,-24896,21304,-24896,
-                                  21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                  20817,-25305,20817,-25305,20817,-25305,20817,-25305,
-                                  20571,-25505,20571,-25505,20571,-25505,20571,-25505,
-                                  20323,-25703,20323,-25703,20323,-25703,20323,-25703,
-                                  20073,-25899,20073,-25899,20073,-25899,20073,-25899,
-                                  19821,-26093,19821,-26093,19821,-26093,19821,-26093,
-                                  19567,-26284,19567,-26284,19567,-26284,19567,-26284,
-                                  19311,-26472,19311,-26472,19311,-26472,19311,-26472,
-                                  19053,-26658,19053,-26658,19053,-26658,19053,-26658,
-                                  18794,-26842,18794,-26842,18794,-26842,18794,-26842,
-                                  18533,-27023,18533,-27023,18533,-27023,18533,-27023,
-                                  18270,-27201,18270,-27201,18270,-27201,18270,-27201,
-                                  18005,-27377,18005,-27377,18005,-27377,18005,-27377,
-                                  17739,-27550,17739,-27550,17739,-27550,17739,-27550,
-                                  17471,-27721,17471,-27721,17471,-27721,17471,-27721,
-                                  17201,-27889,17201,-27889,17201,-27889,17201,-27889,
-                                  16930,-28055,16930,-28055,16930,-28055,16930,-28055,
-                                  16657,-28217,16657,-28217,16657,-28217,16657,-28217,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  16107,-28535,16107,-28535,16107,-28535,16107,-28535,
-                                  15830,-28690,15830,-28690,15830,-28690,15830,-28690,
-                                  15551,-28842,15551,-28842,15551,-28842,15551,-28842,
-                                  15270,-28991,15270,-28991,15270,-28991,15270,-28991,
-                                  14989,-29138,14989,-29138,14989,-29138,14989,-29138,
-                                  14705,-29282,14705,-29282,14705,-29282,14705,-29282,
-                                  14421,-29423,14421,-29423,14421,-29423,14421,-29423,
-                                  14135,-29562,14135,-29562,14135,-29562,14135,-29562,
-                                  13847,-29697,13847,-29697,13847,-29697,13847,-29697,
-                                  13559,-29830,13559,-29830,13559,-29830,13559,-29830,
-                                  13269,-29960,13269,-29960,13269,-29960,13269,-29960,
-                                  12978,-30088,12978,-30088,12978,-30088,12978,-30088,
-                                  12686,-30212,12686,-30212,12686,-30212,12686,-30212,
-                                  12392,-30334,12392,-30334,12392,-30334,12392,-30334,
-                                  12097,-30452,12097,-30452,12097,-30452,12097,-30452,
-                                  11801,-30568,11801,-30568,11801,-30568,11801,-30568,
-                                  11504,-30681,11504,-30681,11504,-30681,11504,-30681,
-                                  11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                  10907,-30899,10907,-30899,10907,-30899,10907,-30899,
-                                  10607,-31003,10607,-31003,10607,-31003,10607,-31003,
-                                  10306,-31104,10306,-31104,10306,-31104,10306,-31104,
-                                  10004,-31203,10004,-31203,10004,-31203,10004,-31203,
-                                  9701,-31298,9701,-31298,9701,-31298,9701,-31298,
-                                  9397,-31391,9397,-31391,9397,-31391,9397,-31391,
-                                  9092,-31481,9092,-31481,9092,-31481,9092,-31481,
-                                  8787,-31567,8787,-31567,8787,-31567,8787,-31567,
-                                  8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                  8173,-31732,8173,-31732,8173,-31732,8173,-31732,
-                                  7865,-31809,7865,-31809,7865,-31809,7865,-31809,
-                                  7556,-31884,7556,-31884,7556,-31884,7556,-31884,
-                                  7247,-31956,7247,-31956,7247,-31956,7247,-31956,
-                                  6936,-32025,6936,-32025,6936,-32025,6936,-32025,
-                                  6626,-32091,6626,-32091,6626,-32091,6626,-32091,
-                                  6314,-32153,6314,-32153,6314,-32153,6314,-32153,
-                                  6002,-32213,6002,-32213,6002,-32213,6002,-32213,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  5376,-32323,5376,-32323,5376,-32323,5376,-32323,
-                                  5063,-32374,5063,-32374,5063,-32374,5063,-32374,
-                                  4748,-32422,4748,-32422,4748,-32422,4748,-32422,
-                                  4434,-32466,4434,-32466,4434,-32466,4434,-32466,
-                                  4119,-32508,4119,-32508,4119,-32508,4119,-32508,
-                                  3804,-32546,3804,-32546,3804,-32546,3804,-32546,
-                                  3488,-32581,3488,-32581,3488,-32581,3488,-32581,
-                                  3172,-32614,3172,-32614,3172,-32614,3172,-32614,
-                                  2855,-32643,2855,-32643,2855,-32643,2855,-32643,
-                                  2539,-32669,2539,-32669,2539,-32669,2539,-32669,
-                                  2222,-32692,2222,-32692,2222,-32692,2222,-32692,
-                                  1905,-32712,1905,-32712,1905,-32712,1905,-32712,
-                                  1587,-32729,1587,-32729,1587,-32729,1587,-32729,
-                                  1270,-32743,1270,-32743,1270,-32743,1270,-32743,
-                                  953,-32754,953,-32754,953,-32754,953,-32754,
-                                  635,-32761,635,-32761,635,-32761,635,-32761,
-                                  317,-32766,317,-32766,317,-32766,317,-32766,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -318,-32766,-318,-32766,-318,-32766,-318,-32766,
-                                  -636,-32761,-636,-32761,-636,-32761,-636,-32761,
-                                  -954,-32754,-954,-32754,-954,-32754,-954,-32754,
-                                  -1271,-32743,-1271,-32743,-1271,-32743,-1271,-32743,
-                                  -1588,-32729,-1588,-32729,-1588,-32729,-1588,-32729,
-                                  -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712,
-                                  -2223,-32692,-2223,-32692,-2223,-32692,-2223,-32692,
-                                  -2540,-32669,-2540,-32669,-2540,-32669,-2540,-32669,
-                                  -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643,
-                                  -3173,-32614,-3173,-32614,-3173,-32614,-3173,-32614,
-                                  -3489,-32581,-3489,-32581,-3489,-32581,-3489,-32581,
-                                  -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546,
-                                  -4120,-32508,-4120,-32508,-4120,-32508,-4120,-32508,
-                                  -4435,-32466,-4435,-32466,-4435,-32466,-4435,-32466,
-                                  -4749,-32422,-4749,-32422,-4749,-32422,-4749,-32422,
-                                  -5064,-32374,-5064,-32374,-5064,-32374,-5064,-32374,
-                                  -5377,-32323,-5377,-32323,-5377,-32323,-5377,-32323,
-                                  -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                  -6003,-32213,-6003,-32213,-6003,-32213,-6003,-32213,
-                                  -6315,-32153,-6315,-32153,-6315,-32153,-6315,-32153,
-                                  -6627,-32091,-6627,-32091,-6627,-32091,-6627,-32091,
-                                  -6937,-32025,-6937,-32025,-6937,-32025,-6937,-32025,
-                                  -7248,-31956,-7248,-31956,-7248,-31956,-7248,-31956,
-                                  -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884,
-                                  -7866,-31809,-7866,-31809,-7866,-31809,-7866,-31809,
-                                  -8174,-31732,-8174,-31732,-8174,-31732,-8174,-31732,
-                                  -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651,
-                                  -8788,-31567,-8788,-31567,-8788,-31567,-8788,-31567,
-                                  -9093,-31481,-9093,-31481,-9093,-31481,-9093,-31481,
-                                  -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391,
-                                  -9702,-31298,-9702,-31298,-9702,-31298,-9702,-31298,
-                                  -10005,-31203,-10005,-31203,-10005,-31203,-10005,-31203,
-                                  -10307,-31104,-10307,-31104,-10307,-31104,-10307,-31104,
-                                  -10608,-31003,-10608,-31003,-10608,-31003,-10608,-31003,
-                                  -10908,-30899,-10908,-30899,-10908,-30899,-10908,-30899,
-                                  -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791,
-                                  -11505,-30681,-11505,-30681,-11505,-30681,-11505,-30681,
-                                  -11802,-30568,-11802,-30568,-11802,-30568,-11802,-30568,
-                                  -12098,-30452,-12098,-30452,-12098,-30452,-12098,-30452,
-                                  -12393,-30334,-12393,-30334,-12393,-30334,-12393,-30334,
-                                  -12687,-30212,-12687,-30212,-12687,-30212,-12687,-30212,
-                                  -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088,
-                                  -13270,-29960,-13270,-29960,-13270,-29960,-13270,-29960,
-                                  -13560,-29830,-13560,-29830,-13560,-29830,-13560,-29830,
-                                  -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697,
-                                  -14136,-29562,-14136,-29562,-14136,-29562,-14136,-29562,
-                                  -14422,-29423,-14422,-29423,-14422,-29423,-14422,-29423,
-                                  -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282,
-                                  -14990,-29138,-14990,-29138,-14990,-29138,-14990,-29138,
-                                  -15271,-28991,-15271,-28991,-15271,-28991,-15271,-28991,
-                                  -15552,-28842,-15552,-28842,-15552,-28842,-15552,-28842,
-                                  -15831,-28690,-15831,-28690,-15831,-28690,-15831,-28690,
-                                  -16108,-28535,-16108,-28535,-16108,-28535,-16108,-28535
-                                 };
-static int16_t twb648[215*2*4] = {32760,-636,32760,-636,32760,-636,32760,-636,
-                                  32742,-1271,32742,-1271,32742,-1271,32742,-1271,
-                                  32711,-1906,32711,-1906,32711,-1906,32711,-1906,
-                                  32668,-2540,32668,-2540,32668,-2540,32668,-2540,
-                                  32613,-3173,32613,-3173,32613,-3173,32613,-3173,
-                                  32545,-3805,32545,-3805,32545,-3805,32545,-3805,
-                                  32465,-4435,32465,-4435,32465,-4435,32465,-4435,
-                                  32373,-5064,32373,-5064,32373,-5064,32373,-5064,
-                                  32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                  32152,-6315,32152,-6315,32152,-6315,32152,-6315,
-                                  32024,-6937,32024,-6937,32024,-6937,32024,-6937,
-                                  31883,-7557,31883,-7557,31883,-7557,31883,-7557,
-                                  31731,-8174,31731,-8174,31731,-8174,31731,-8174,
-                                  31566,-8788,31566,-8788,31566,-8788,31566,-8788,
-                                  31390,-9398,31390,-9398,31390,-9398,31390,-9398,
-                                  31202,-10005,31202,-10005,31202,-10005,31202,-10005,
-                                  31002,-10608,31002,-10608,31002,-10608,31002,-10608,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30567,-11802,30567,-11802,30567,-11802,30567,-11802,
-                                  30333,-12393,30333,-12393,30333,-12393,30333,-12393,
-                                  30087,-12979,30087,-12979,30087,-12979,30087,-12979,
-                                  29829,-13560,29829,-13560,29829,-13560,29829,-13560,
-                                  29561,-14136,29561,-14136,29561,-14136,29561,-14136,
-                                  29281,-14706,29281,-14706,29281,-14706,29281,-14706,
-                                  28990,-15271,28990,-15271,28990,-15271,28990,-15271,
-                                  28689,-15831,28689,-15831,28689,-15831,28689,-15831,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  28054,-16931,28054,-16931,28054,-16931,28054,-16931,
-                                  27720,-17472,27720,-17472,27720,-17472,27720,-17472,
-                                  27376,-18006,27376,-18006,27376,-18006,27376,-18006,
-                                  27022,-18534,27022,-18534,27022,-18534,27022,-18534,
-                                  26657,-19054,26657,-19054,26657,-19054,26657,-19054,
-                                  26283,-19568,26283,-19568,26283,-19568,26283,-19568,
-                                  25898,-20074,25898,-20074,25898,-20074,25898,-20074,
-                                  25504,-20572,25504,-20572,25504,-20572,25504,-20572,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24687,-21546,24687,-21546,24687,-21546,24687,-21546,
-                                  24265,-22020,24265,-22020,24265,-22020,24265,-22020,
-                                  23833,-22487,23833,-22487,23833,-22487,23833,-22487,
-                                  23393,-22945,23393,-22945,23393,-22945,23393,-22945,
-                                  22944,-23394,22944,-23394,22944,-23394,22944,-23394,
-                                  22486,-23834,22486,-23834,22486,-23834,22486,-23834,
-                                  22019,-24266,22019,-24266,22019,-24266,22019,-24266,
-                                  21545,-24688,21545,-24688,21545,-24688,21545,-24688,
-                                  21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                  20571,-25505,20571,-25505,20571,-25505,20571,-25505,
-                                  20073,-25899,20073,-25899,20073,-25899,20073,-25899,
-                                  19567,-26284,19567,-26284,19567,-26284,19567,-26284,
-                                  19053,-26658,19053,-26658,19053,-26658,19053,-26658,
-                                  18533,-27023,18533,-27023,18533,-27023,18533,-27023,
-                                  18005,-27377,18005,-27377,18005,-27377,18005,-27377,
-                                  17471,-27721,17471,-27721,17471,-27721,17471,-27721,
-                                  16930,-28055,16930,-28055,16930,-28055,16930,-28055,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  15830,-28690,15830,-28690,15830,-28690,15830,-28690,
-                                  15270,-28991,15270,-28991,15270,-28991,15270,-28991,
-                                  14705,-29282,14705,-29282,14705,-29282,14705,-29282,
-                                  14135,-29562,14135,-29562,14135,-29562,14135,-29562,
-                                  13559,-29830,13559,-29830,13559,-29830,13559,-29830,
-                                  12978,-30088,12978,-30088,12978,-30088,12978,-30088,
-                                  12392,-30334,12392,-30334,12392,-30334,12392,-30334,
-                                  11801,-30568,11801,-30568,11801,-30568,11801,-30568,
-                                  11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                  10607,-31003,10607,-31003,10607,-31003,10607,-31003,
-                                  10004,-31203,10004,-31203,10004,-31203,10004,-31203,
-                                  9397,-31391,9397,-31391,9397,-31391,9397,-31391,
-                                  8787,-31567,8787,-31567,8787,-31567,8787,-31567,
-                                  8173,-31732,8173,-31732,8173,-31732,8173,-31732,
-                                  7556,-31884,7556,-31884,7556,-31884,7556,-31884,
-                                  6936,-32025,6936,-32025,6936,-32025,6936,-32025,
-                                  6314,-32153,6314,-32153,6314,-32153,6314,-32153,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  5063,-32374,5063,-32374,5063,-32374,5063,-32374,
-                                  4434,-32466,4434,-32466,4434,-32466,4434,-32466,
-                                  3804,-32546,3804,-32546,3804,-32546,3804,-32546,
-                                  3172,-32614,3172,-32614,3172,-32614,3172,-32614,
-                                  2539,-32669,2539,-32669,2539,-32669,2539,-32669,
-                                  1905,-32712,1905,-32712,1905,-32712,1905,-32712,
-                                  1270,-32743,1270,-32743,1270,-32743,1270,-32743,
-                                  635,-32761,635,-32761,635,-32761,635,-32761,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -636,-32761,-636,-32761,-636,-32761,-636,-32761,
-                                  -1271,-32743,-1271,-32743,-1271,-32743,-1271,-32743,
-                                  -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712,
-                                  -2540,-32669,-2540,-32669,-2540,-32669,-2540,-32669,
-                                  -3173,-32614,-3173,-32614,-3173,-32614,-3173,-32614,
-                                  -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546,
-                                  -4435,-32466,-4435,-32466,-4435,-32466,-4435,-32466,
-                                  -5064,-32374,-5064,-32374,-5064,-32374,-5064,-32374,
-                                  -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                  -6315,-32153,-6315,-32153,-6315,-32153,-6315,-32153,
-                                  -6937,-32025,-6937,-32025,-6937,-32025,-6937,-32025,
-                                  -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884,
-                                  -8174,-31732,-8174,-31732,-8174,-31732,-8174,-31732,
-                                  -8788,-31567,-8788,-31567,-8788,-31567,-8788,-31567,
-                                  -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391,
-                                  -10005,-31203,-10005,-31203,-10005,-31203,-10005,-31203,
-                                  -10608,-31003,-10608,-31003,-10608,-31003,-10608,-31003,
-                                  -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791,
-                                  -11802,-30568,-11802,-30568,-11802,-30568,-11802,-30568,
-                                  -12393,-30334,-12393,-30334,-12393,-30334,-12393,-30334,
-                                  -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088,
-                                  -13560,-29830,-13560,-29830,-13560,-29830,-13560,-29830,
-                                  -14136,-29562,-14136,-29562,-14136,-29562,-14136,-29562,
-                                  -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282,
-                                  -15271,-28991,-15271,-28991,-15271,-28991,-15271,-28991,
-                                  -15831,-28690,-15831,-28690,-15831,-28690,-15831,-28690,
-                                  -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                                  -16931,-28055,-16931,-28055,-16931,-28055,-16931,-28055,
-                                  -17472,-27721,-17472,-27721,-17472,-27721,-17472,-27721,
-                                  -18006,-27377,-18006,-27377,-18006,-27377,-18006,-27377,
-                                  -18534,-27023,-18534,-27023,-18534,-27023,-18534,-27023,
-                                  -19054,-26658,-19054,-26658,-19054,-26658,-19054,-26658,
-                                  -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284,
-                                  -20074,-25899,-20074,-25899,-20074,-25899,-20074,-25899,
-                                  -20572,-25505,-20572,-25505,-20572,-25505,-20572,-25505,
-                                  -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101,
-                                  -21546,-24688,-21546,-24688,-21546,-24688,-21546,-24688,
-                                  -22020,-24266,-22020,-24266,-22020,-24266,-22020,-24266,
-                                  -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834,
-                                  -22945,-23394,-22945,-23394,-22945,-23394,-22945,-23394,
-                                  -23394,-22945,-23394,-22945,-23394,-22945,-23394,-22945,
-                                  -23834,-22487,-23834,-22487,-23834,-22487,-23834,-22487,
-                                  -24266,-22020,-24266,-22020,-24266,-22020,-24266,-22020,
-                                  -24688,-21546,-24688,-21546,-24688,-21546,-24688,-21546,
-                                  -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063,
-                                  -25505,-20572,-25505,-20572,-25505,-20572,-25505,-20572,
-                                  -25899,-20074,-25899,-20074,-25899,-20074,-25899,-20074,
-                                  -26284,-19568,-26284,-19568,-26284,-19568,-26284,-19568,
-                                  -26658,-19054,-26658,-19054,-26658,-19054,-26658,-19054,
-                                  -27023,-18534,-27023,-18534,-27023,-18534,-27023,-18534,
-                                  -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006,
-                                  -27721,-17472,-27721,-17472,-27721,-17472,-27721,-17472,
-                                  -28055,-16931,-28055,-16931,-28055,-16931,-28055,-16931,
-                                  -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384,
-                                  -28690,-15831,-28690,-15831,-28690,-15831,-28690,-15831,
-                                  -28991,-15271,-28991,-15271,-28991,-15271,-28991,-15271,
-                                  -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706,
-                                  -29562,-14136,-29562,-14136,-29562,-14136,-29562,-14136,
-                                  -29830,-13560,-29830,-13560,-29830,-13560,-29830,-13560,
-                                  -30088,-12979,-30088,-12979,-30088,-12979,-30088,-12979,
-                                  -30334,-12393,-30334,-12393,-30334,-12393,-30334,-12393,
-                                  -30568,-11802,-30568,-11802,-30568,-11802,-30568,-11802,
-                                  -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207,
-                                  -31003,-10608,-31003,-10608,-31003,-10608,-31003,-10608,
-                                  -31203,-10005,-31203,-10005,-31203,-10005,-31203,-10005,
-                                  -31391,-9398,-31391,-9398,-31391,-9398,-31391,-9398,
-                                  -31567,-8788,-31567,-8788,-31567,-8788,-31567,-8788,
-                                  -31732,-8174,-31732,-8174,-31732,-8174,-31732,-8174,
-                                  -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557,
-                                  -32025,-6937,-32025,-6937,-32025,-6937,-32025,-6937,
-                                  -32153,-6315,-32153,-6315,-32153,-6315,-32153,-6315,
-                                  -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690,
-                                  -32374,-5064,-32374,-5064,-32374,-5064,-32374,-5064,
-                                  -32466,-4435,-32466,-4435,-32466,-4435,-32466,-4435,
-                                  -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805,
-                                  -32614,-3173,-32614,-3173,-32614,-3173,-32614,-3173,
-                                  -32669,-2540,-32669,-2540,-32669,-2540,-32669,-2540,
-                                  -32712,-1906,-32712,-1906,-32712,-1906,-32712,-1906,
-                                  -32743,-1271,-32743,-1271,-32743,-1271,-32743,-1271,
-                                  -32761,-636,-32761,-636,-32761,-636,-32761,-636,
-                                  -32767,-1,-32767,-1,-32767,-1,-32767,-1,
-                                  -32761,635,-32761,635,-32761,635,-32761,635,
-                                  -32743,1270,-32743,1270,-32743,1270,-32743,1270,
-                                  -32712,1905,-32712,1905,-32712,1905,-32712,1905,
-                                  -32669,2539,-32669,2539,-32669,2539,-32669,2539,
-                                  -32614,3172,-32614,3172,-32614,3172,-32614,3172,
-                                  -32546,3804,-32546,3804,-32546,3804,-32546,3804,
-                                  -32466,4434,-32466,4434,-32466,4434,-32466,4434,
-                                  -32374,5063,-32374,5063,-32374,5063,-32374,5063,
-                                  -32270,5689,-32270,5689,-32270,5689,-32270,5689,
-                                  -32153,6314,-32153,6314,-32153,6314,-32153,6314,
-                                  -32025,6936,-32025,6936,-32025,6936,-32025,6936,
-                                  -31884,7556,-31884,7556,-31884,7556,-31884,7556,
-                                  -31732,8173,-31732,8173,-31732,8173,-31732,8173,
-                                  -31567,8787,-31567,8787,-31567,8787,-31567,8787,
-                                  -31391,9397,-31391,9397,-31391,9397,-31391,9397,
-                                  -31203,10004,-31203,10004,-31203,10004,-31203,10004,
-                                  -31003,10607,-31003,10607,-31003,10607,-31003,10607,
-                                  -30791,11206,-30791,11206,-30791,11206,-30791,11206,
-                                  -30568,11801,-30568,11801,-30568,11801,-30568,11801,
-                                  -30334,12392,-30334,12392,-30334,12392,-30334,12392,
-                                  -30088,12978,-30088,12978,-30088,12978,-30088,12978,
-                                  -29830,13559,-29830,13559,-29830,13559,-29830,13559,
-                                  -29562,14135,-29562,14135,-29562,14135,-29562,14135,
-                                  -29282,14705,-29282,14705,-29282,14705,-29282,14705,
-                                  -28991,15270,-28991,15270,-28991,15270,-28991,15270,
-                                  -28690,15830,-28690,15830,-28690,15830,-28690,15830,
-                                  -28378,16383,-28378,16383,-28378,16383,-28378,16383,
-                                  -28055,16930,-28055,16930,-28055,16930,-28055,16930,
-                                  -27721,17471,-27721,17471,-27721,17471,-27721,17471,
-                                  -27377,18005,-27377,18005,-27377,18005,-27377,18005,
-                                  -27023,18533,-27023,18533,-27023,18533,-27023,18533,
-                                  -26658,19053,-26658,19053,-26658,19053,-26658,19053,
-                                  -26284,19567,-26284,19567,-26284,19567,-26284,19567,
-                                  -25899,20073,-25899,20073,-25899,20073,-25899,20073,
-                                  -25505,20571,-25505,20571,-25505,20571,-25505,20571,
-                                  -25101,21062,-25101,21062,-25101,21062,-25101,21062,
-                                  -24688,21545,-24688,21545,-24688,21545,-24688,21545,
-                                  -24266,22019,-24266,22019,-24266,22019,-24266,22019,
-                                  -23834,22486,-23834,22486,-23834,22486,-23834,22486,
-                                  -23394,22944,-23394,22944,-23394,22944,-23394,22944,
-                                  -22945,23393,-22945,23393,-22945,23393,-22945,23393,
-                                  -22487,23833,-22487,23833,-22487,23833,-22487,23833,
-                                  -22020,24265,-22020,24265,-22020,24265,-22020,24265,
-                                  -21546,24687,-21546,24687,-21546,24687,-21546,24687,
-                                  -21063,25100,-21063,25100,-21063,25100,-21063,25100,
-                                  -20572,25504,-20572,25504,-20572,25504,-20572,25504,
-                                  -20074,25898,-20074,25898,-20074,25898,-20074,25898,
-                                  -19568,26283,-19568,26283,-19568,26283,-19568,26283,
-                                  -19054,26657,-19054,26657,-19054,26657,-19054,26657,
-                                  -18534,27022,-18534,27022,-18534,27022,-18534,27022,
-                                  -18006,27376,-18006,27376,-18006,27376,-18006,27376,
-                                  -17472,27720,-17472,27720,-17472,27720,-17472,27720,
-                                  -16931,28054,-16931,28054,-16931,28054,-16931,28054
-                                 };
+static int16_t twa648[215*2*4];
+static int16_t twb648[215*2*4];
 
 void dft648(int16_t *x,int16_t *y,unsigned char scale_flag)  // 216 x 3
 {
@@ -12311,583 +7998,10 @@ void dft648(int16_t *x,int16_t *y,unsigned char scale_flag)  // 216 x 3
 };
 
 
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:179)/720));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:179)/720));
-twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(1:179)/720));
-twa2 = zeros(1,2*179);
-twb2 = zeros(1,2*179);
-twc2 = zeros(1,2*179);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-twc2(1:2:end) = real(twc);
-twc2(2:2:end) = imag(twc);
-fd=fopen("twiddle_tmp.txt","w");
-fprintf(fd,"static int16_t twa720[179*2*4] = {");
-for i=1:2:(2*178)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-fprintf(fd,"\nstatic int16_t twb720[179*2*4] = {");
-for i=1:2:(2*178)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-fprintf(fd,"\nstatic int16_t twc720[179*2*4] = {");
-for i=1:2:(2*178)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1));
-fclose(fd);
- */
+static int16_t twa720[179*2*4];
+static int16_t twb720[179*2*4];
+static int16_t twc720[179*2*4];
 
-static int16_t twa720[179*2*4] = {32765,-286,32765,-286,32765,-286,32765,-286,
-                                  32762,-572,32762,-572,32762,-572,32762,-572,
-                                  32755,-858,32755,-858,32755,-858,32755,-858,
-                                  32747,-1144,32747,-1144,32747,-1144,32747,-1144,
-                                  32735,-1430,32735,-1430,32735,-1430,32735,-1430,
-                                  32722,-1715,32722,-1715,32722,-1715,32722,-1715,
-                                  32705,-2001,32705,-2001,32705,-2001,32705,-2001,
-                                  32687,-2286,32687,-2286,32687,-2286,32687,-2286,
-                                  32665,-2571,32665,-2571,32665,-2571,32665,-2571,
-                                  32642,-2856,32642,-2856,32642,-2856,32642,-2856,
-                                  32616,-3141,32616,-3141,32616,-3141,32616,-3141,
-                                  32587,-3426,32587,-3426,32587,-3426,32587,-3426,
-                                  32556,-3710,32556,-3710,32556,-3710,32556,-3710,
-                                  32522,-3994,32522,-3994,32522,-3994,32522,-3994,
-                                  32486,-4277,32486,-4277,32486,-4277,32486,-4277,
-                                  32448,-4561,32448,-4561,32448,-4561,32448,-4561,
-                                  32407,-4844,32407,-4844,32407,-4844,32407,-4844,
-                                  32363,-5126,32363,-5126,32363,-5126,32363,-5126,
-                                  32317,-5409,32317,-5409,32317,-5409,32317,-5409,
-                                  32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                  32218,-5972,32218,-5972,32218,-5972,32218,-5972,
-                                  32164,-6253,32164,-6253,32164,-6253,32164,-6253,
-                                  32109,-6533,32109,-6533,32109,-6533,32109,-6533,
-                                  32050,-6813,32050,-6813,32050,-6813,32050,-6813,
-                                  31990,-7093,31990,-7093,31990,-7093,31990,-7093,
-                                  31927,-7371,31927,-7371,31927,-7371,31927,-7371,
-                                  31861,-7650,31861,-7650,31861,-7650,31861,-7650,
-                                  31793,-7928,31793,-7928,31793,-7928,31793,-7928,
-                                  31723,-8205,31723,-8205,31723,-8205,31723,-8205,
-                                  31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                  31575,-8757,31575,-8757,31575,-8757,31575,-8757,
-                                  31497,-9032,31497,-9032,31497,-9032,31497,-9032,
-                                  31417,-9307,31417,-9307,31417,-9307,31417,-9307,
-                                  31335,-9581,31335,-9581,31335,-9581,31335,-9581,
-                                  31250,-9854,31250,-9854,31250,-9854,31250,-9854,
-                                  31163,-10126,31163,-10126,31163,-10126,31163,-10126,
-                                  31073,-10398,31073,-10398,31073,-10398,31073,-10398,
-                                  30981,-10668,30981,-10668,30981,-10668,30981,-10668,
-                                  30887,-10938,30887,-10938,30887,-10938,30887,-10938,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30691,-11476,30691,-11476,30691,-11476,30691,-11476,
-                                  30590,-11743,30590,-11743,30590,-11743,30590,-11743,
-                                  30486,-12010,30486,-12010,30486,-12010,30486,-12010,
-                                  30381,-12275,30381,-12275,30381,-12275,30381,-12275,
-                                  30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                  30162,-12804,30162,-12804,30162,-12804,30162,-12804,
-                                  30049,-13066,30049,-13066,30049,-13066,30049,-13066,
-                                  29934,-13328,29934,-13328,29934,-13328,29934,-13328,
-                                  29816,-13589,29816,-13589,29816,-13589,29816,-13589,
-                                  29696,-13848,29696,-13848,29696,-13848,29696,-13848,
-                                  29575,-14107,29575,-14107,29575,-14107,29575,-14107,
-                                  29450,-14365,29450,-14365,29450,-14365,29450,-14365,
-                                  29324,-14621,29324,-14621,29324,-14621,29324,-14621,
-                                  29195,-14876,29195,-14876,29195,-14876,29195,-14876,
-                                  29064,-15131,29064,-15131,29064,-15131,29064,-15131,
-                                  28931,-15384,28931,-15384,28931,-15384,28931,-15384,
-                                  28796,-15636,28796,-15636,28796,-15636,28796,-15636,
-                                  28658,-15886,28658,-15886,28658,-15886,28658,-15886,
-                                  28518,-16136,28518,-16136,28518,-16136,28518,-16136,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  28233,-16631,28233,-16631,28233,-16631,28233,-16631,
-                                  28086,-16877,28086,-16877,28086,-16877,28086,-16877,
-                                  27938,-17121,27938,-17121,27938,-17121,27938,-17121,
-                                  27787,-17364,27787,-17364,27787,-17364,27787,-17364,
-                                  27635,-17606,27635,-17606,27635,-17606,27635,-17606,
-                                  27480,-17847,27480,-17847,27480,-17847,27480,-17847,
-                                  27323,-18086,27323,-18086,27323,-18086,27323,-18086,
-                                  27165,-18324,27165,-18324,27165,-18324,27165,-18324,
-                                  27004,-18560,27004,-18560,27004,-18560,27004,-18560,
-                                  26841,-18795,26841,-18795,26841,-18795,26841,-18795,
-                                  26676,-19028,26676,-19028,26676,-19028,26676,-19028,
-                                  26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                                  26339,-19491,26339,-19491,26339,-19491,26339,-19491,
-                                  26168,-19720,26168,-19720,26168,-19720,26168,-19720,
-                                  25995,-19948,25995,-19948,25995,-19948,25995,-19948,
-                                  25820,-20174,25820,-20174,25820,-20174,25820,-20174,
-                                  25643,-20398,25643,-20398,25643,-20398,25643,-20398,
-                                  25464,-20621,25464,-20621,25464,-20621,25464,-20621,
-                                  25283,-20843,25283,-20843,25283,-20843,25283,-20843,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24916,-21281,24916,-21281,24916,-21281,24916,-21281,
-                                  24729,-21498,24729,-21498,24729,-21498,24729,-21498,
-                                  24541,-21713,24541,-21713,24541,-21713,24541,-21713,
-                                  24350,-21926,24350,-21926,24350,-21926,24350,-21926,
-                                  24158,-22138,24158,-22138,24158,-22138,24158,-22138,
-                                  23964,-22348,23964,-22348,23964,-22348,23964,-22348,
-                                  23768,-22556,23768,-22556,23768,-22556,23768,-22556,
-                                  23570,-22762,23570,-22762,23570,-22762,23570,-22762,
-                                  23371,-22967,23371,-22967,23371,-22967,23371,-22967,
-                                  23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                  22966,-23372,22966,-23372,22966,-23372,22966,-23372,
-                                  22761,-23571,22761,-23571,22761,-23571,22761,-23571,
-                                  22555,-23769,22555,-23769,22555,-23769,22555,-23769,
-                                  22347,-23965,22347,-23965,22347,-23965,22347,-23965,
-                                  22137,-24159,22137,-24159,22137,-24159,22137,-24159,
-                                  21925,-24351,21925,-24351,21925,-24351,21925,-24351,
-                                  21712,-24542,21712,-24542,21712,-24542,21712,-24542,
-                                  21497,-24730,21497,-24730,21497,-24730,21497,-24730,
-                                  21280,-24917,21280,-24917,21280,-24917,21280,-24917,
-                                  21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                  20842,-25284,20842,-25284,20842,-25284,20842,-25284,
-                                  20620,-25465,20620,-25465,20620,-25465,20620,-25465,
-                                  20397,-25644,20397,-25644,20397,-25644,20397,-25644,
-                                  20173,-25821,20173,-25821,20173,-25821,20173,-25821,
-                                  19947,-25996,19947,-25996,19947,-25996,19947,-25996,
-                                  19719,-26169,19719,-26169,19719,-26169,19719,-26169,
-                                  19490,-26340,19490,-26340,19490,-26340,19490,-26340,
-                                  19259,-26510,19259,-26510,19259,-26510,19259,-26510,
-                                  19027,-26677,19027,-26677,19027,-26677,19027,-26677,
-                                  18794,-26842,18794,-26842,18794,-26842,18794,-26842,
-                                  18559,-27005,18559,-27005,18559,-27005,18559,-27005,
-                                  18323,-27166,18323,-27166,18323,-27166,18323,-27166,
-                                  18085,-27324,18085,-27324,18085,-27324,18085,-27324,
-                                  17846,-27481,17846,-27481,17846,-27481,17846,-27481,
-                                  17605,-27636,17605,-27636,17605,-27636,17605,-27636,
-                                  17363,-27788,17363,-27788,17363,-27788,17363,-27788,
-                                  17120,-27939,17120,-27939,17120,-27939,17120,-27939,
-                                  16876,-28087,16876,-28087,16876,-28087,16876,-28087,
-                                  16630,-28234,16630,-28234,16630,-28234,16630,-28234,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  16135,-28519,16135,-28519,16135,-28519,16135,-28519,
-                                  15885,-28659,15885,-28659,15885,-28659,15885,-28659,
-                                  15635,-28797,15635,-28797,15635,-28797,15635,-28797,
-                                  15383,-28932,15383,-28932,15383,-28932,15383,-28932,
-                                  15130,-29065,15130,-29065,15130,-29065,15130,-29065,
-                                  14875,-29196,14875,-29196,14875,-29196,14875,-29196,
-                                  14620,-29325,14620,-29325,14620,-29325,14620,-29325,
-                                  14364,-29451,14364,-29451,14364,-29451,14364,-29451,
-                                  14106,-29576,14106,-29576,14106,-29576,14106,-29576,
-                                  13847,-29697,13847,-29697,13847,-29697,13847,-29697,
-                                  13588,-29817,13588,-29817,13588,-29817,13588,-29817,
-                                  13327,-29935,13327,-29935,13327,-29935,13327,-29935,
-                                  13065,-30050,13065,-30050,13065,-30050,13065,-30050,
-                                  12803,-30163,12803,-30163,12803,-30163,12803,-30163,
-                                  12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                  12274,-30382,12274,-30382,12274,-30382,12274,-30382,
-                                  12009,-30487,12009,-30487,12009,-30487,12009,-30487,
-                                  11742,-30591,11742,-30591,11742,-30591,11742,-30591,
-                                  11475,-30692,11475,-30692,11475,-30692,11475,-30692,
-                                  11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                  10937,-30888,10937,-30888,10937,-30888,10937,-30888,
-                                  10667,-30982,10667,-30982,10667,-30982,10667,-30982,
-                                  10397,-31074,10397,-31074,10397,-31074,10397,-31074,
-                                  10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                                  9853,-31251,9853,-31251,9853,-31251,9853,-31251,
-                                  9580,-31336,9580,-31336,9580,-31336,9580,-31336,
-                                  9306,-31418,9306,-31418,9306,-31418,9306,-31418,
-                                  9031,-31498,9031,-31498,9031,-31498,9031,-31498,
-                                  8756,-31576,8756,-31576,8756,-31576,8756,-31576,
-                                  8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                  8204,-31724,8204,-31724,8204,-31724,8204,-31724,
-                                  7927,-31794,7927,-31794,7927,-31794,7927,-31794,
-                                  7649,-31862,7649,-31862,7649,-31862,7649,-31862,
-                                  7370,-31928,7370,-31928,7370,-31928,7370,-31928,
-                                  7092,-31991,7092,-31991,7092,-31991,7092,-31991,
-                                  6812,-32051,6812,-32051,6812,-32051,6812,-32051,
-                                  6532,-32110,6532,-32110,6532,-32110,6532,-32110,
-                                  6252,-32165,6252,-32165,6252,-32165,6252,-32165,
-                                  5971,-32219,5971,-32219,5971,-32219,5971,-32219,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  5408,-32318,5408,-32318,5408,-32318,5408,-32318,
-                                  5125,-32364,5125,-32364,5125,-32364,5125,-32364,
-                                  4843,-32408,4843,-32408,4843,-32408,4843,-32408,
-                                  4560,-32449,4560,-32449,4560,-32449,4560,-32449,
-                                  4276,-32487,4276,-32487,4276,-32487,4276,-32487,
-                                  3993,-32523,3993,-32523,3993,-32523,3993,-32523,
-                                  3709,-32557,3709,-32557,3709,-32557,3709,-32557,
-                                  3425,-32588,3425,-32588,3425,-32588,3425,-32588,
-                                  3140,-32617,3140,-32617,3140,-32617,3140,-32617,
-                                  2855,-32643,2855,-32643,2855,-32643,2855,-32643,
-                                  2570,-32666,2570,-32666,2570,-32666,2570,-32666,
-                                  2285,-32688,2285,-32688,2285,-32688,2285,-32688,
-                                  2000,-32706,2000,-32706,2000,-32706,2000,-32706,
-                                  1714,-32723,1714,-32723,1714,-32723,1714,-32723,
-                                  1429,-32736,1429,-32736,1429,-32736,1429,-32736,
-                                  1143,-32748,1143,-32748,1143,-32748,1143,-32748,
-                                  857,-32756,857,-32756,857,-32756,857,-32756,
-                                  571,-32763,571,-32763,571,-32763,571,-32763,
-                                  285,-32766,285,-32766,285,-32766,285,-32766
-                                 };
-
-static int16_t twb720[179*2*4] = {32762,-572,32762,-572,32762,-572,32762,-572,
-                                  32747,-1144,32747,-1144,32747,-1144,32747,-1144,
-                                  32722,-1715,32722,-1715,32722,-1715,32722,-1715,
-                                  32687,-2286,32687,-2286,32687,-2286,32687,-2286,
-                                  32642,-2856,32642,-2856,32642,-2856,32642,-2856,
-                                  32587,-3426,32587,-3426,32587,-3426,32587,-3426,
-                                  32522,-3994,32522,-3994,32522,-3994,32522,-3994,
-                                  32448,-4561,32448,-4561,32448,-4561,32448,-4561,
-                                  32363,-5126,32363,-5126,32363,-5126,32363,-5126,
-                                  32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                  32164,-6253,32164,-6253,32164,-6253,32164,-6253,
-                                  32050,-6813,32050,-6813,32050,-6813,32050,-6813,
-                                  31927,-7371,31927,-7371,31927,-7371,31927,-7371,
-                                  31793,-7928,31793,-7928,31793,-7928,31793,-7928,
-                                  31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                  31497,-9032,31497,-9032,31497,-9032,31497,-9032,
-                                  31335,-9581,31335,-9581,31335,-9581,31335,-9581,
-                                  31163,-10126,31163,-10126,31163,-10126,31163,-10126,
-                                  30981,-10668,30981,-10668,30981,-10668,30981,-10668,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30590,-11743,30590,-11743,30590,-11743,30590,-11743,
-                                  30381,-12275,30381,-12275,30381,-12275,30381,-12275,
-                                  30162,-12804,30162,-12804,30162,-12804,30162,-12804,
-                                  29934,-13328,29934,-13328,29934,-13328,29934,-13328,
-                                  29696,-13848,29696,-13848,29696,-13848,29696,-13848,
-                                  29450,-14365,29450,-14365,29450,-14365,29450,-14365,
-                                  29195,-14876,29195,-14876,29195,-14876,29195,-14876,
-                                  28931,-15384,28931,-15384,28931,-15384,28931,-15384,
-                                  28658,-15886,28658,-15886,28658,-15886,28658,-15886,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  28086,-16877,28086,-16877,28086,-16877,28086,-16877,
-                                  27787,-17364,27787,-17364,27787,-17364,27787,-17364,
-                                  27480,-17847,27480,-17847,27480,-17847,27480,-17847,
-                                  27165,-18324,27165,-18324,27165,-18324,27165,-18324,
-                                  26841,-18795,26841,-18795,26841,-18795,26841,-18795,
-                                  26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                                  26168,-19720,26168,-19720,26168,-19720,26168,-19720,
-                                  25820,-20174,25820,-20174,25820,-20174,25820,-20174,
-                                  25464,-20621,25464,-20621,25464,-20621,25464,-20621,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24729,-21498,24729,-21498,24729,-21498,24729,-21498,
-                                  24350,-21926,24350,-21926,24350,-21926,24350,-21926,
-                                  23964,-22348,23964,-22348,23964,-22348,23964,-22348,
-                                  23570,-22762,23570,-22762,23570,-22762,23570,-22762,
-                                  23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                  22761,-23571,22761,-23571,22761,-23571,22761,-23571,
-                                  22347,-23965,22347,-23965,22347,-23965,22347,-23965,
-                                  21925,-24351,21925,-24351,21925,-24351,21925,-24351,
-                                  21497,-24730,21497,-24730,21497,-24730,21497,-24730,
-                                  21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                  20620,-25465,20620,-25465,20620,-25465,20620,-25465,
-                                  20173,-25821,20173,-25821,20173,-25821,20173,-25821,
-                                  19719,-26169,19719,-26169,19719,-26169,19719,-26169,
-                                  19259,-26510,19259,-26510,19259,-26510,19259,-26510,
-                                  18794,-26842,18794,-26842,18794,-26842,18794,-26842,
-                                  18323,-27166,18323,-27166,18323,-27166,18323,-27166,
-                                  17846,-27481,17846,-27481,17846,-27481,17846,-27481,
-                                  17363,-27788,17363,-27788,17363,-27788,17363,-27788,
-                                  16876,-28087,16876,-28087,16876,-28087,16876,-28087,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  15885,-28659,15885,-28659,15885,-28659,15885,-28659,
-                                  15383,-28932,15383,-28932,15383,-28932,15383,-28932,
-                                  14875,-29196,14875,-29196,14875,-29196,14875,-29196,
-                                  14364,-29451,14364,-29451,14364,-29451,14364,-29451,
-                                  13847,-29697,13847,-29697,13847,-29697,13847,-29697,
-                                  13327,-29935,13327,-29935,13327,-29935,13327,-29935,
-                                  12803,-30163,12803,-30163,12803,-30163,12803,-30163,
-                                  12274,-30382,12274,-30382,12274,-30382,12274,-30382,
-                                  11742,-30591,11742,-30591,11742,-30591,11742,-30591,
-                                  11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                  10667,-30982,10667,-30982,10667,-30982,10667,-30982,
-                                  10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                                  9580,-31336,9580,-31336,9580,-31336,9580,-31336,
-                                  9031,-31498,9031,-31498,9031,-31498,9031,-31498,
-                                  8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                  7927,-31794,7927,-31794,7927,-31794,7927,-31794,
-                                  7370,-31928,7370,-31928,7370,-31928,7370,-31928,
-                                  6812,-32051,6812,-32051,6812,-32051,6812,-32051,
-                                  6252,-32165,6252,-32165,6252,-32165,6252,-32165,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  5125,-32364,5125,-32364,5125,-32364,5125,-32364,
-                                  4560,-32449,4560,-32449,4560,-32449,4560,-32449,
-                                  3993,-32523,3993,-32523,3993,-32523,3993,-32523,
-                                  3425,-32588,3425,-32588,3425,-32588,3425,-32588,
-                                  2855,-32643,2855,-32643,2855,-32643,2855,-32643,
-                                  2285,-32688,2285,-32688,2285,-32688,2285,-32688,
-                                  1714,-32723,1714,-32723,1714,-32723,1714,-32723,
-                                  1143,-32748,1143,-32748,1143,-32748,1143,-32748,
-                                  571,-32763,571,-32763,571,-32763,571,-32763,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -572,-32763,-572,-32763,-572,-32763,-572,-32763,
-                                  -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748,
-                                  -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723,
-                                  -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688,
-                                  -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643,
-                                  -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588,
-                                  -3994,-32523,-3994,-32523,-3994,-32523,-3994,-32523,
-                                  -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449,
-                                  -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364,
-                                  -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                  -6253,-32165,-6253,-32165,-6253,-32165,-6253,-32165,
-                                  -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051,
-                                  -7371,-31928,-7371,-31928,-7371,-31928,-7371,-31928,
-                                  -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794,
-                                  -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651,
-                                  -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498,
-                                  -9581,-31336,-9581,-31336,-9581,-31336,-9581,-31336,
-                                  -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164,
-                                  -10668,-30982,-10668,-30982,-10668,-30982,-10668,-30982,
-                                  -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791,
-                                  -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591,
-                                  -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382,
-                                  -12804,-30163,-12804,-30163,-12804,-30163,-12804,-30163,
-                                  -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935,
-                                  -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697,
-                                  -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451,
-                                  -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196,
-                                  -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932,
-                                  -15886,-28659,-15886,-28659,-15886,-28659,-15886,-28659,
-                                  -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                                  -16877,-28087,-16877,-28087,-16877,-28087,-16877,-28087,
-                                  -17364,-27788,-17364,-27788,-17364,-27788,-17364,-27788,
-                                  -17847,-27481,-17847,-27481,-17847,-27481,-17847,-27481,
-                                  -18324,-27166,-18324,-27166,-18324,-27166,-18324,-27166,
-                                  -18795,-26842,-18795,-26842,-18795,-26842,-18795,-26842,
-                                  -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510,
-                                  -19720,-26169,-19720,-26169,-19720,-26169,-19720,-26169,
-                                  -20174,-25821,-20174,-25821,-20174,-25821,-20174,-25821,
-                                  -20621,-25465,-20621,-25465,-20621,-25465,-20621,-25465,
-                                  -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101,
-                                  -21498,-24730,-21498,-24730,-21498,-24730,-21498,-24730,
-                                  -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351,
-                                  -22348,-23965,-22348,-23965,-22348,-23965,-22348,-23965,
-                                  -22762,-23571,-22762,-23571,-22762,-23571,-22762,-23571,
-                                  -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170,
-                                  -23571,-22762,-23571,-22762,-23571,-22762,-23571,-22762,
-                                  -23965,-22348,-23965,-22348,-23965,-22348,-23965,-22348,
-                                  -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926,
-                                  -24730,-21498,-24730,-21498,-24730,-21498,-24730,-21498,
-                                  -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063,
-                                  -25465,-20621,-25465,-20621,-25465,-20621,-25465,-20621,
-                                  -25821,-20174,-25821,-20174,-25821,-20174,-25821,-20174,
-                                  -26169,-19720,-26169,-19720,-26169,-19720,-26169,-19720,
-                                  -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260,
-                                  -26842,-18795,-26842,-18795,-26842,-18795,-26842,-18795,
-                                  -27166,-18324,-27166,-18324,-27166,-18324,-27166,-18324,
-                                  -27481,-17847,-27481,-17847,-27481,-17847,-27481,-17847,
-                                  -27788,-17364,-27788,-17364,-27788,-17364,-27788,-17364,
-                                  -28087,-16877,-28087,-16877,-28087,-16877,-28087,-16877,
-                                  -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384,
-                                  -28659,-15886,-28659,-15886,-28659,-15886,-28659,-15886,
-                                  -28932,-15384,-28932,-15384,-28932,-15384,-28932,-15384,
-                                  -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876,
-                                  -29451,-14365,-29451,-14365,-29451,-14365,-29451,-14365,
-                                  -29697,-13848,-29697,-13848,-29697,-13848,-29697,-13848,
-                                  -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328,
-                                  -30163,-12804,-30163,-12804,-30163,-12804,-30163,-12804,
-                                  -30382,-12275,-30382,-12275,-30382,-12275,-30382,-12275,
-                                  -30591,-11743,-30591,-11743,-30591,-11743,-30591,-11743,
-                                  -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207,
-                                  -30982,-10668,-30982,-10668,-30982,-10668,-30982,-10668,
-                                  -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126,
-                                  -31336,-9581,-31336,-9581,-31336,-9581,-31336,-9581,
-                                  -31498,-9032,-31498,-9032,-31498,-9032,-31498,-9032,
-                                  -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481,
-                                  -31794,-7928,-31794,-7928,-31794,-7928,-31794,-7928,
-                                  -31928,-7371,-31928,-7371,-31928,-7371,-31928,-7371,
-                                  -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813,
-                                  -32165,-6253,-32165,-6253,-32165,-6253,-32165,-6253,
-                                  -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690,
-                                  -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126,
-                                  -32449,-4561,-32449,-4561,-32449,-4561,-32449,-4561,
-                                  -32523,-3994,-32523,-3994,-32523,-3994,-32523,-3994,
-                                  -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426,
-                                  -32643,-2856,-32643,-2856,-32643,-2856,-32643,-2856,
-                                  -32688,-2286,-32688,-2286,-32688,-2286,-32688,-2286,
-                                  -32723,-1715,-32723,-1715,-32723,-1715,-32723,-1715,
-                                  -32748,-1144,-32748,-1144,-32748,-1144,-32748,-1144,
-                                  -32763,-572,-32763,-572,-32763,-572,-32763,-572
-                                 };
-
-static int16_t twc720[179*2*4] = {32755,-858,32755,-858,32755,-858,32755,-858,
-                                  32722,-1715,32722,-1715,32722,-1715,32722,-1715,
-                                  32665,-2571,32665,-2571,32665,-2571,32665,-2571,
-                                  32587,-3426,32587,-3426,32587,-3426,32587,-3426,
-                                  32486,-4277,32486,-4277,32486,-4277,32486,-4277,
-                                  32363,-5126,32363,-5126,32363,-5126,32363,-5126,
-                                  32218,-5972,32218,-5972,32218,-5972,32218,-5972,
-                                  32050,-6813,32050,-6813,32050,-6813,32050,-6813,
-                                  31861,-7650,31861,-7650,31861,-7650,31861,-7650,
-                                  31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                  31417,-9307,31417,-9307,31417,-9307,31417,-9307,
-                                  31163,-10126,31163,-10126,31163,-10126,31163,-10126,
-                                  30887,-10938,30887,-10938,30887,-10938,30887,-10938,
-                                  30590,-11743,30590,-11743,30590,-11743,30590,-11743,
-                                  30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                  29934,-13328,29934,-13328,29934,-13328,29934,-13328,
-                                  29575,-14107,29575,-14107,29575,-14107,29575,-14107,
-                                  29195,-14876,29195,-14876,29195,-14876,29195,-14876,
-                                  28796,-15636,28796,-15636,28796,-15636,28796,-15636,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  27938,-17121,27938,-17121,27938,-17121,27938,-17121,
-                                  27480,-17847,27480,-17847,27480,-17847,27480,-17847,
-                                  27004,-18560,27004,-18560,27004,-18560,27004,-18560,
-                                  26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                                  25995,-19948,25995,-19948,25995,-19948,25995,-19948,
-                                  25464,-20621,25464,-20621,25464,-20621,25464,-20621,
-                                  24916,-21281,24916,-21281,24916,-21281,24916,-21281,
-                                  24350,-21926,24350,-21926,24350,-21926,24350,-21926,
-                                  23768,-22556,23768,-22556,23768,-22556,23768,-22556,
-                                  23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                  22555,-23769,22555,-23769,22555,-23769,22555,-23769,
-                                  21925,-24351,21925,-24351,21925,-24351,21925,-24351,
-                                  21280,-24917,21280,-24917,21280,-24917,21280,-24917,
-                                  20620,-25465,20620,-25465,20620,-25465,20620,-25465,
-                                  19947,-25996,19947,-25996,19947,-25996,19947,-25996,
-                                  19259,-26510,19259,-26510,19259,-26510,19259,-26510,
-                                  18559,-27005,18559,-27005,18559,-27005,18559,-27005,
-                                  17846,-27481,17846,-27481,17846,-27481,17846,-27481,
-                                  17120,-27939,17120,-27939,17120,-27939,17120,-27939,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  15635,-28797,15635,-28797,15635,-28797,15635,-28797,
-                                  14875,-29196,14875,-29196,14875,-29196,14875,-29196,
-                                  14106,-29576,14106,-29576,14106,-29576,14106,-29576,
-                                  13327,-29935,13327,-29935,13327,-29935,13327,-29935,
-                                  12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                  11742,-30591,11742,-30591,11742,-30591,11742,-30591,
-                                  10937,-30888,10937,-30888,10937,-30888,10937,-30888,
-                                  10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                                  9306,-31418,9306,-31418,9306,-31418,9306,-31418,
-                                  8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                  7649,-31862,7649,-31862,7649,-31862,7649,-31862,
-                                  6812,-32051,6812,-32051,6812,-32051,6812,-32051,
-                                  5971,-32219,5971,-32219,5971,-32219,5971,-32219,
-                                  5125,-32364,5125,-32364,5125,-32364,5125,-32364,
-                                  4276,-32487,4276,-32487,4276,-32487,4276,-32487,
-                                  3425,-32588,3425,-32588,3425,-32588,3425,-32588,
-                                  2570,-32666,2570,-32666,2570,-32666,2570,-32666,
-                                  1714,-32723,1714,-32723,1714,-32723,1714,-32723,
-                                  857,-32756,857,-32756,857,-32756,857,-32756,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -858,-32756,-858,-32756,-858,-32756,-858,-32756,
-                                  -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723,
-                                  -2571,-32666,-2571,-32666,-2571,-32666,-2571,-32666,
-                                  -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588,
-                                  -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487,
-                                  -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364,
-                                  -5972,-32219,-5972,-32219,-5972,-32219,-5972,-32219,
-                                  -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051,
-                                  -7650,-31862,-7650,-31862,-7650,-31862,-7650,-31862,
-                                  -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651,
-                                  -9307,-31418,-9307,-31418,-9307,-31418,-9307,-31418,
-                                  -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164,
-                                  -10938,-30888,-10938,-30888,-10938,-30888,-10938,-30888,
-                                  -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591,
-                                  -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273,
-                                  -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935,
-                                  -14107,-29576,-14107,-29576,-14107,-29576,-14107,-29576,
-                                  -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196,
-                                  -15636,-28797,-15636,-28797,-15636,-28797,-15636,-28797,
-                                  -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                                  -17121,-27939,-17121,-27939,-17121,-27939,-17121,-27939,
-                                  -17847,-27481,-17847,-27481,-17847,-27481,-17847,-27481,
-                                  -18560,-27005,-18560,-27005,-18560,-27005,-18560,-27005,
-                                  -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510,
-                                  -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996,
-                                  -20621,-25465,-20621,-25465,-20621,-25465,-20621,-25465,
-                                  -21281,-24917,-21281,-24917,-21281,-24917,-21281,-24917,
-                                  -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351,
-                                  -22556,-23769,-22556,-23769,-22556,-23769,-22556,-23769,
-                                  -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170,
-                                  -23769,-22556,-23769,-22556,-23769,-22556,-23769,-22556,
-                                  -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926,
-                                  -24917,-21281,-24917,-21281,-24917,-21281,-24917,-21281,
-                                  -25465,-20621,-25465,-20621,-25465,-20621,-25465,-20621,
-                                  -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948,
-                                  -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260,
-                                  -27005,-18560,-27005,-18560,-27005,-18560,-27005,-18560,
-                                  -27481,-17847,-27481,-17847,-27481,-17847,-27481,-17847,
-                                  -27939,-17121,-27939,-17121,-27939,-17121,-27939,-17121,
-                                  -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384,
-                                  -28797,-15636,-28797,-15636,-28797,-15636,-28797,-15636,
-                                  -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876,
-                                  -29576,-14107,-29576,-14107,-29576,-14107,-29576,-14107,
-                                  -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328,
-                                  -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540,
-                                  -30591,-11743,-30591,-11743,-30591,-11743,-30591,-11743,
-                                  -30888,-10938,-30888,-10938,-30888,-10938,-30888,-10938,
-                                  -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126,
-                                  -31418,-9307,-31418,-9307,-31418,-9307,-31418,-9307,
-                                  -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481,
-                                  -31862,-7650,-31862,-7650,-31862,-7650,-31862,-7650,
-                                  -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813,
-                                  -32219,-5972,-32219,-5972,-32219,-5972,-32219,-5972,
-                                  -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126,
-                                  -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277,
-                                  -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426,
-                                  -32666,-2571,-32666,-2571,-32666,-2571,-32666,-2571,
-                                  -32723,-1715,-32723,-1715,-32723,-1715,-32723,-1715,
-                                  -32756,-858,-32756,-858,-32756,-858,-32756,-858,
-                                  -32767,-1,-32767,-1,-32767,-1,-32767,-1,
-                                  -32756,857,-32756,857,-32756,857,-32756,857,
-                                  -32723,1714,-32723,1714,-32723,1714,-32723,1714,
-                                  -32666,2570,-32666,2570,-32666,2570,-32666,2570,
-                                  -32588,3425,-32588,3425,-32588,3425,-32588,3425,
-                                  -32487,4276,-32487,4276,-32487,4276,-32487,4276,
-                                  -32364,5125,-32364,5125,-32364,5125,-32364,5125,
-                                  -32219,5971,-32219,5971,-32219,5971,-32219,5971,
-                                  -32051,6812,-32051,6812,-32051,6812,-32051,6812,
-                                  -31862,7649,-31862,7649,-31862,7649,-31862,7649,
-                                  -31651,8480,-31651,8480,-31651,8480,-31651,8480,
-                                  -31418,9306,-31418,9306,-31418,9306,-31418,9306,
-                                  -31164,10125,-31164,10125,-31164,10125,-31164,10125,
-                                  -30888,10937,-30888,10937,-30888,10937,-30888,10937,
-                                  -30591,11742,-30591,11742,-30591,11742,-30591,11742,
-                                  -30273,12539,-30273,12539,-30273,12539,-30273,12539,
-                                  -29935,13327,-29935,13327,-29935,13327,-29935,13327,
-                                  -29576,14106,-29576,14106,-29576,14106,-29576,14106,
-                                  -29196,14875,-29196,14875,-29196,14875,-29196,14875,
-                                  -28797,15635,-28797,15635,-28797,15635,-28797,15635,
-                                  -28378,16383,-28378,16383,-28378,16383,-28378,16383,
-                                  -27939,17120,-27939,17120,-27939,17120,-27939,17120,
-                                  -27481,17846,-27481,17846,-27481,17846,-27481,17846,
-                                  -27005,18559,-27005,18559,-27005,18559,-27005,18559,
-                                  -26510,19259,-26510,19259,-26510,19259,-26510,19259,
-                                  -25996,19947,-25996,19947,-25996,19947,-25996,19947,
-                                  -25465,20620,-25465,20620,-25465,20620,-25465,20620,
-                                  -24917,21280,-24917,21280,-24917,21280,-24917,21280,
-                                  -24351,21925,-24351,21925,-24351,21925,-24351,21925,
-                                  -23769,22555,-23769,22555,-23769,22555,-23769,22555,
-                                  -23170,23169,-23170,23169,-23170,23169,-23170,23169,
-                                  -22556,23768,-22556,23768,-22556,23768,-22556,23768,
-                                  -21926,24350,-21926,24350,-21926,24350,-21926,24350,
-                                  -21281,24916,-21281,24916,-21281,24916,-21281,24916,
-                                  -20621,25464,-20621,25464,-20621,25464,-20621,25464,
-                                  -19948,25995,-19948,25995,-19948,25995,-19948,25995,
-                                  -19260,26509,-19260,26509,-19260,26509,-19260,26509,
-                                  -18560,27004,-18560,27004,-18560,27004,-18560,27004,
-                                  -17847,27480,-17847,27480,-17847,27480,-17847,27480,
-                                  -17121,27938,-17121,27938,-17121,27938,-17121,27938,
-                                  -16384,28377,-16384,28377,-16384,28377,-16384,28377,
-                                  -15636,28796,-15636,28796,-15636,28796,-15636,28796,
-                                  -14876,29195,-14876,29195,-14876,29195,-14876,29195,
-                                  -14107,29575,-14107,29575,-14107,29575,-14107,29575,
-                                  -13328,29934,-13328,29934,-13328,29934,-13328,29934,
-                                  -12540,30272,-12540,30272,-12540,30272,-12540,30272,
-                                  -11743,30590,-11743,30590,-11743,30590,-11743,30590,
-                                  -10938,30887,-10938,30887,-10938,30887,-10938,30887,
-                                  -10126,31163,-10126,31163,-10126,31163,-10126,31163,
-                                  -9307,31417,-9307,31417,-9307,31417,-9307,31417,
-                                  -8481,31650,-8481,31650,-8481,31650,-8481,31650,
-                                  -7650,31861,-7650,31861,-7650,31861,-7650,31861,
-                                  -6813,32050,-6813,32050,-6813,32050,-6813,32050,
-                                  -5972,32218,-5972,32218,-5972,32218,-5972,32218,
-                                  -5126,32363,-5126,32363,-5126,32363,-5126,32363,
-                                  -4277,32486,-4277,32486,-4277,32486,-4277,32486,
-                                  -3426,32587,-3426,32587,-3426,32587,-3426,32587,
-                                  -2571,32665,-2571,32665,-2571,32665,-2571,32665,
-                                  -1715,32722,-1715,32722,-1715,32722,-1715,32722,
-                                  -858,32755,-858,32755,-858,32755,-858,32755
-                                 };
 
 void dft720(int16_t *x,int16_t *y,unsigned char scale_flag)  // 180 x 4
 {
@@ -12943,606 +8057,68 @@ void dft720(int16_t *x,int16_t *y,unsigned char scale_flag)  // 180 x 4
 
 };
 
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:287)/864));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:287)/864));
-twa2 = zeros(1,2*287);
-twb2 = zeros(1,2*287);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-fd=fopen("twiddle_tmp.txt","w");
-fprintf(fd,"static int16_t twa864[287*2*4] = {");
-for i=1:2:(2*286)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-fprintf(fd,"static int16_t twb864[287*2*4] = {");
-for i=1:2:(2*286)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-fclose(fd);
-*/
-static int16_t twa864[287*2*4] = {32766,-239,32766,-239,32766,-239,32766,-239,
-                                  32763,-477,32763,-477,32763,-477,32763,-477,
-                                  32759,-715,32759,-715,32759,-715,32759,-715,
-                                  32753,-954,32753,-954,32753,-954,32753,-954,
-                                  32745,-1192,32745,-1192,32745,-1192,32745,-1192,
-                                  32735,-1430,32735,-1430,32735,-1430,32735,-1430,
-                                  32724,-1668,32724,-1668,32724,-1668,32724,-1668,
-                                  32711,-1906,32711,-1906,32711,-1906,32711,-1906,
-                                  32696,-2144,32696,-2144,32696,-2144,32696,-2144,
-                                  32680,-2381,32680,-2381,32680,-2381,32680,-2381,
-                                  32662,-2619,32662,-2619,32662,-2619,32662,-2619,
-                                  32642,-2856,32642,-2856,32642,-2856,32642,-2856,
-                                  32620,-3094,32620,-3094,32620,-3094,32620,-3094,
-                                  32597,-3331,32597,-3331,32597,-3331,32597,-3331,
-                                  32572,-3568,32572,-3568,32572,-3568,32572,-3568,
-                                  32545,-3805,32545,-3805,32545,-3805,32545,-3805,
-                                  32516,-4041,32516,-4041,32516,-4041,32516,-4041,
-                                  32486,-4277,32486,-4277,32486,-4277,32486,-4277,
-                                  32454,-4514,32454,-4514,32454,-4514,32454,-4514,
-                                  32421,-4749,32421,-4749,32421,-4749,32421,-4749,
-                                  32385,-4985,32385,-4985,32385,-4985,32385,-4985,
-                                  32348,-5221,32348,-5221,32348,-5221,32348,-5221,
-                                  32309,-5456,32309,-5456,32309,-5456,32309,-5456,
-                                  32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                  32226,-5925,32226,-5925,32226,-5925,32226,-5925,
-                                  32183,-6159,32183,-6159,32183,-6159,32183,-6159,
-                                  32137,-6393,32137,-6393,32137,-6393,32137,-6393,
-                                  32090,-6627,32090,-6627,32090,-6627,32090,-6627,
-                                  32041,-6860,32041,-6860,32041,-6860,32041,-6860,
-                                  31990,-7093,31990,-7093,31990,-7093,31990,-7093,
-                                  31937,-7325,31937,-7325,31937,-7325,31937,-7325,
-                                  31883,-7557,31883,-7557,31883,-7557,31883,-7557,
-                                  31827,-7789,31827,-7789,31827,-7789,31827,-7789,
-                                  31770,-8020,31770,-8020,31770,-8020,31770,-8020,
-                                  31711,-8251,31711,-8251,31711,-8251,31711,-8251,
-                                  31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                  31587,-8711,31587,-8711,31587,-8711,31587,-8711,
-                                  31523,-8941,31523,-8941,31523,-8941,31523,-8941,
-                                  31457,-9170,31457,-9170,31457,-9170,31457,-9170,
-                                  31390,-9398,31390,-9398,31390,-9398,31390,-9398,
-                                  31321,-9626,31321,-9626,31321,-9626,31321,-9626,
-                                  31250,-9854,31250,-9854,31250,-9854,31250,-9854,
-                                  31177,-10081,31177,-10081,31177,-10081,31177,-10081,
-                                  31103,-10307,31103,-10307,31103,-10307,31103,-10307,
-                                  31028,-10533,31028,-10533,31028,-10533,31028,-10533,
-                                  30950,-10758,30950,-10758,30950,-10758,30950,-10758,
-                                  30871,-10983,30871,-10983,30871,-10983,30871,-10983,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30708,-11431,30708,-11431,30708,-11431,30708,-11431,
-                                  30624,-11654,30624,-11654,30624,-11654,30624,-11654,
-                                  30539,-11877,30539,-11877,30539,-11877,30539,-11877,
-                                  30451,-12098,30451,-12098,30451,-12098,30451,-12098,
-                                  30363,-12319,30363,-12319,30363,-12319,30363,-12319,
-                                  30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                  30180,-12760,30180,-12760,30180,-12760,30180,-12760,
-                                  30087,-12979,30087,-12979,30087,-12979,30087,-12979,
-                                  29992,-13197,29992,-13197,29992,-13197,29992,-13197,
-                                  29895,-13415,29895,-13415,29895,-13415,29895,-13415,
-                                  29796,-13632,29796,-13632,29796,-13632,29796,-13632,
-                                  29696,-13848,29696,-13848,29696,-13848,29696,-13848,
-                                  29595,-14064,29595,-14064,29595,-14064,29595,-14064,
-                                  29492,-14279,29492,-14279,29492,-14279,29492,-14279,
-                                  29387,-14493,29387,-14493,29387,-14493,29387,-14493,
-                                  29281,-14706,29281,-14706,29281,-14706,29281,-14706,
-                                  29173,-14919,29173,-14919,29173,-14919,29173,-14919,
-                                  29064,-15131,29064,-15131,29064,-15131,29064,-15131,
-                                  28953,-15342,28953,-15342,28953,-15342,28953,-15342,
-                                  28841,-15552,28841,-15552,28841,-15552,28841,-15552,
-                                  28727,-15761,28727,-15761,28727,-15761,28727,-15761,
-                                  28612,-15970,28612,-15970,28612,-15970,28612,-15970,
-                                  28495,-16177,28495,-16177,28495,-16177,28495,-16177,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  28257,-16590,28257,-16590,28257,-16590,28257,-16590,
-                                  28135,-16795,28135,-16795,28135,-16795,28135,-16795,
-                                  28012,-16999,28012,-16999,28012,-16999,28012,-16999,
-                                  27888,-17202,27888,-17202,27888,-17202,27888,-17202,
-                                  27762,-17405,27762,-17405,27762,-17405,27762,-17405,
-                                  27635,-17606,27635,-17606,27635,-17606,27635,-17606,
-                                  27506,-17807,27506,-17807,27506,-17807,27506,-17807,
-                                  27376,-18006,27376,-18006,27376,-18006,27376,-18006,
-                                  27244,-18205,27244,-18205,27244,-18205,27244,-18205,
-                                  27111,-18403,27111,-18403,27111,-18403,27111,-18403,
-                                  26977,-18599,26977,-18599,26977,-18599,26977,-18599,
-                                  26841,-18795,26841,-18795,26841,-18795,26841,-18795,
-                                  26703,-18990,26703,-18990,26703,-18990,26703,-18990,
-                                  26564,-19183,26564,-19183,26564,-19183,26564,-19183,
-                                  26424,-19376,26424,-19376,26424,-19376,26424,-19376,
-                                  26283,-19568,26283,-19568,26283,-19568,26283,-19568,
-                                  26140,-19758,26140,-19758,26140,-19758,26140,-19758,
-                                  25995,-19948,25995,-19948,25995,-19948,25995,-19948,
-                                  25850,-20136,25850,-20136,25850,-20136,25850,-20136,
-                                  25702,-20324,25702,-20324,25702,-20324,25702,-20324,
-                                  25554,-20510,25554,-20510,25554,-20510,25554,-20510,
-                                  25404,-20695,25404,-20695,25404,-20695,25404,-20695,
-                                  25253,-20880,25253,-20880,25253,-20880,25253,-20880,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24947,-21245,24947,-21245,24947,-21245,24947,-21245,
-                                  24791,-21426,24791,-21426,24791,-21426,24791,-21426,
-                                  24635,-21605,24635,-21605,24635,-21605,24635,-21605,
-                                  24477,-21784,24477,-21784,24477,-21784,24477,-21784,
-                                  24318,-21961,24318,-21961,24318,-21961,24318,-21961,
-                                  24158,-22138,24158,-22138,24158,-22138,24158,-22138,
-                                  23996,-22313,23996,-22313,23996,-22313,23996,-22313,
-                                  23833,-22487,23833,-22487,23833,-22487,23833,-22487,
-                                  23669,-22659,23669,-22659,23669,-22659,23669,-22659,
-                                  23504,-22831,23504,-22831,23504,-22831,23504,-22831,
-                                  23337,-23001,23337,-23001,23337,-23001,23337,-23001,
-                                  23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                  23000,-23338,23000,-23338,23000,-23338,23000,-23338,
-                                  22830,-23505,22830,-23505,22830,-23505,22830,-23505,
-                                  22658,-23670,22658,-23670,22658,-23670,22658,-23670,
-                                  22486,-23834,22486,-23834,22486,-23834,22486,-23834,
-                                  22312,-23997,22312,-23997,22312,-23997,22312,-23997,
-                                  22137,-24159,22137,-24159,22137,-24159,22137,-24159,
-                                  21960,-24319,21960,-24319,21960,-24319,21960,-24319,
-                                  21783,-24478,21783,-24478,21783,-24478,21783,-24478,
-                                  21604,-24636,21604,-24636,21604,-24636,21604,-24636,
-                                  21425,-24792,21425,-24792,21425,-24792,21425,-24792,
-                                  21244,-24948,21244,-24948,21244,-24948,21244,-24948,
-                                  21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                  20879,-25254,20879,-25254,20879,-25254,20879,-25254,
-                                  20694,-25405,20694,-25405,20694,-25405,20694,-25405,
-                                  20509,-25555,20509,-25555,20509,-25555,20509,-25555,
-                                  20323,-25703,20323,-25703,20323,-25703,20323,-25703,
-                                  20135,-25851,20135,-25851,20135,-25851,20135,-25851,
-                                  19947,-25996,19947,-25996,19947,-25996,19947,-25996,
-                                  19757,-26141,19757,-26141,19757,-26141,19757,-26141,
-                                  19567,-26284,19567,-26284,19567,-26284,19567,-26284,
-                                  19375,-26425,19375,-26425,19375,-26425,19375,-26425,
-                                  19182,-26565,19182,-26565,19182,-26565,19182,-26565,
-                                  18989,-26704,18989,-26704,18989,-26704,18989,-26704,
-                                  18794,-26842,18794,-26842,18794,-26842,18794,-26842,
-                                  18598,-26978,18598,-26978,18598,-26978,18598,-26978,
-                                  18402,-27112,18402,-27112,18402,-27112,18402,-27112,
-                                  18204,-27245,18204,-27245,18204,-27245,18204,-27245,
-                                  18005,-27377,18005,-27377,18005,-27377,18005,-27377,
-                                  17806,-27507,17806,-27507,17806,-27507,17806,-27507,
-                                  17605,-27636,17605,-27636,17605,-27636,17605,-27636,
-                                  17404,-27763,17404,-27763,17404,-27763,17404,-27763,
-                                  17201,-27889,17201,-27889,17201,-27889,17201,-27889,
-                                  16998,-28013,16998,-28013,16998,-28013,16998,-28013,
-                                  16794,-28136,16794,-28136,16794,-28136,16794,-28136,
-                                  16589,-28258,16589,-28258,16589,-28258,16589,-28258,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  16176,-28496,16176,-28496,16176,-28496,16176,-28496,
-                                  15969,-28613,15969,-28613,15969,-28613,15969,-28613,
-                                  15760,-28728,15760,-28728,15760,-28728,15760,-28728,
-                                  15551,-28842,15551,-28842,15551,-28842,15551,-28842,
-                                  15341,-28954,15341,-28954,15341,-28954,15341,-28954,
-                                  15130,-29065,15130,-29065,15130,-29065,15130,-29065,
-                                  14918,-29174,14918,-29174,14918,-29174,14918,-29174,
-                                  14705,-29282,14705,-29282,14705,-29282,14705,-29282,
-                                  14492,-29388,14492,-29388,14492,-29388,14492,-29388,
-                                  14278,-29493,14278,-29493,14278,-29493,14278,-29493,
-                                  14063,-29596,14063,-29596,14063,-29596,14063,-29596,
-                                  13847,-29697,13847,-29697,13847,-29697,13847,-29697,
-                                  13631,-29797,13631,-29797,13631,-29797,13631,-29797,
-                                  13414,-29896,13414,-29896,13414,-29896,13414,-29896,
-                                  13196,-29993,13196,-29993,13196,-29993,13196,-29993,
-                                  12978,-30088,12978,-30088,12978,-30088,12978,-30088,
-                                  12759,-30181,12759,-30181,12759,-30181,12759,-30181,
-                                  12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                  12318,-30364,12318,-30364,12318,-30364,12318,-30364,
-                                  12097,-30452,12097,-30452,12097,-30452,12097,-30452,
-                                  11876,-30540,11876,-30540,11876,-30540,11876,-30540,
-                                  11653,-30625,11653,-30625,11653,-30625,11653,-30625,
-                                  11430,-30709,11430,-30709,11430,-30709,11430,-30709,
-                                  11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                  10982,-30872,10982,-30872,10982,-30872,10982,-30872,
-                                  10757,-30951,10757,-30951,10757,-30951,10757,-30951,
-                                  10532,-31029,10532,-31029,10532,-31029,10532,-31029,
-                                  10306,-31104,10306,-31104,10306,-31104,10306,-31104,
-                                  10080,-31178,10080,-31178,10080,-31178,10080,-31178,
-                                  9853,-31251,9853,-31251,9853,-31251,9853,-31251,
-                                  9625,-31322,9625,-31322,9625,-31322,9625,-31322,
-                                  9397,-31391,9397,-31391,9397,-31391,9397,-31391,
-                                  9169,-31458,9169,-31458,9169,-31458,9169,-31458,
-                                  8940,-31524,8940,-31524,8940,-31524,8940,-31524,
-                                  8710,-31588,8710,-31588,8710,-31588,8710,-31588,
-                                  8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                  8250,-31712,8250,-31712,8250,-31712,8250,-31712,
-                                  8019,-31771,8019,-31771,8019,-31771,8019,-31771,
-                                  7788,-31828,7788,-31828,7788,-31828,7788,-31828,
-                                  7556,-31884,7556,-31884,7556,-31884,7556,-31884,
-                                  7324,-31938,7324,-31938,7324,-31938,7324,-31938,
-                                  7092,-31991,7092,-31991,7092,-31991,7092,-31991,
-                                  6859,-32042,6859,-32042,6859,-32042,6859,-32042,
-                                  6626,-32091,6626,-32091,6626,-32091,6626,-32091,
-                                  6392,-32138,6392,-32138,6392,-32138,6392,-32138,
-                                  6158,-32184,6158,-32184,6158,-32184,6158,-32184,
-                                  5924,-32227,5924,-32227,5924,-32227,5924,-32227,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  5455,-32310,5455,-32310,5455,-32310,5455,-32310,
-                                  5220,-32349,5220,-32349,5220,-32349,5220,-32349,
-                                  4984,-32386,4984,-32386,4984,-32386,4984,-32386,
-                                  4748,-32422,4748,-32422,4748,-32422,4748,-32422,
-                                  4513,-32455,4513,-32455,4513,-32455,4513,-32455,
-                                  4276,-32487,4276,-32487,4276,-32487,4276,-32487,
-                                  4040,-32517,4040,-32517,4040,-32517,4040,-32517,
-                                  3804,-32546,3804,-32546,3804,-32546,3804,-32546,
-                                  3567,-32573,3567,-32573,3567,-32573,3567,-32573,
-                                  3330,-32598,3330,-32598,3330,-32598,3330,-32598,
-                                  3093,-32621,3093,-32621,3093,-32621,3093,-32621,
-                                  2855,-32643,2855,-32643,2855,-32643,2855,-32643,
-                                  2618,-32663,2618,-32663,2618,-32663,2618,-32663,
-                                  2380,-32681,2380,-32681,2380,-32681,2380,-32681,
-                                  2143,-32697,2143,-32697,2143,-32697,2143,-32697,
-                                  1905,-32712,1905,-32712,1905,-32712,1905,-32712,
-                                  1667,-32725,1667,-32725,1667,-32725,1667,-32725,
-                                  1429,-32736,1429,-32736,1429,-32736,1429,-32736,
-                                  1191,-32746,1191,-32746,1191,-32746,1191,-32746,
-                                  953,-32754,953,-32754,953,-32754,953,-32754,
-                                  714,-32760,714,-32760,714,-32760,714,-32760,
-                                  476,-32764,476,-32764,476,-32764,476,-32764,
-                                  238,-32767,238,-32767,238,-32767,238,-32767,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -239,-32767,-239,-32767,-239,-32767,-239,-32767,
-                                  -477,-32764,-477,-32764,-477,-32764,-477,-32764,
-                                  -715,-32760,-715,-32760,-715,-32760,-715,-32760,
-                                  -954,-32754,-954,-32754,-954,-32754,-954,-32754,
-                                  -1192,-32746,-1192,-32746,-1192,-32746,-1192,-32746,
-                                  -1430,-32736,-1430,-32736,-1430,-32736,-1430,-32736,
-                                  -1668,-32725,-1668,-32725,-1668,-32725,-1668,-32725,
-                                  -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712,
-                                  -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697,
-                                  -2381,-32681,-2381,-32681,-2381,-32681,-2381,-32681,
-                                  -2619,-32663,-2619,-32663,-2619,-32663,-2619,-32663,
-                                  -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643,
-                                  -3094,-32621,-3094,-32621,-3094,-32621,-3094,-32621,
-                                  -3331,-32598,-3331,-32598,-3331,-32598,-3331,-32598,
-                                  -3568,-32573,-3568,-32573,-3568,-32573,-3568,-32573,
-                                  -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546,
-                                  -4041,-32517,-4041,-32517,-4041,-32517,-4041,-32517,
-                                  -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487,
-                                  -4514,-32455,-4514,-32455,-4514,-32455,-4514,-32455,
-                                  -4749,-32422,-4749,-32422,-4749,-32422,-4749,-32422,
-                                  -4985,-32386,-4985,-32386,-4985,-32386,-4985,-32386,
-                                  -5221,-32349,-5221,-32349,-5221,-32349,-5221,-32349,
-                                  -5456,-32310,-5456,-32310,-5456,-32310,-5456,-32310,
-                                  -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                  -5925,-32227,-5925,-32227,-5925,-32227,-5925,-32227,
-                                  -6159,-32184,-6159,-32184,-6159,-32184,-6159,-32184,
-                                  -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138,
-                                  -6627,-32091,-6627,-32091,-6627,-32091,-6627,-32091,
-                                  -6860,-32042,-6860,-32042,-6860,-32042,-6860,-32042,
-                                  -7093,-31991,-7093,-31991,-7093,-31991,-7093,-31991,
-                                  -7325,-31938,-7325,-31938,-7325,-31938,-7325,-31938,
-                                  -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884,
-                                  -7789,-31828,-7789,-31828,-7789,-31828,-7789,-31828,
-                                  -8020,-31771,-8020,-31771,-8020,-31771,-8020,-31771,
-                                  -8251,-31712,-8251,-31712,-8251,-31712,-8251,-31712,
-                                  -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651,
-                                  -8711,-31588,-8711,-31588,-8711,-31588,-8711,-31588,
-                                  -8941,-31524,-8941,-31524,-8941,-31524,-8941,-31524,
-                                  -9170,-31458,-9170,-31458,-9170,-31458,-9170,-31458,
-                                  -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391,
-                                  -9626,-31322,-9626,-31322,-9626,-31322,-9626,-31322,
-                                  -9854,-31251,-9854,-31251,-9854,-31251,-9854,-31251,
-                                  -10081,-31178,-10081,-31178,-10081,-31178,-10081,-31178,
-                                  -10307,-31104,-10307,-31104,-10307,-31104,-10307,-31104,
-                                  -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029,
-                                  -10758,-30951,-10758,-30951,-10758,-30951,-10758,-30951,
-                                  -10983,-30872,-10983,-30872,-10983,-30872,-10983,-30872,
-                                  -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791,
-                                  -11431,-30709,-11431,-30709,-11431,-30709,-11431,-30709,
-                                  -11654,-30625,-11654,-30625,-11654,-30625,-11654,-30625,
-                                  -11877,-30540,-11877,-30540,-11877,-30540,-11877,-30540,
-                                  -12098,-30452,-12098,-30452,-12098,-30452,-12098,-30452,
-                                  -12319,-30364,-12319,-30364,-12319,-30364,-12319,-30364,
-                                  -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273,
-                                  -12760,-30181,-12760,-30181,-12760,-30181,-12760,-30181,
-                                  -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088,
-                                  -13197,-29993,-13197,-29993,-13197,-29993,-13197,-29993,
-                                  -13415,-29896,-13415,-29896,-13415,-29896,-13415,-29896,
-                                  -13632,-29797,-13632,-29797,-13632,-29797,-13632,-29797,
-                                  -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697,
-                                  -14064,-29596,-14064,-29596,-14064,-29596,-14064,-29596,
-                                  -14279,-29493,-14279,-29493,-14279,-29493,-14279,-29493,
-                                  -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388,
-                                  -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282,
-                                  -14919,-29174,-14919,-29174,-14919,-29174,-14919,-29174,
-                                  -15131,-29065,-15131,-29065,-15131,-29065,-15131,-29065,
-                                  -15342,-28954,-15342,-28954,-15342,-28954,-15342,-28954,
-                                  -15552,-28842,-15552,-28842,-15552,-28842,-15552,-28842,
-                                  -15761,-28728,-15761,-28728,-15761,-28728,-15761,-28728,
-                                  -15970,-28613,-15970,-28613,-15970,-28613,-15970,-28613,
-                                  -16177,-28496,-16177,-28496,-16177,-28496,-16177,-28496
-                                 };
-static int16_t twb864[287*2*4] = {32763,-477,32763,-477,32763,-477,32763,-477,
-                                  32753,-954,32753,-954,32753,-954,32753,-954,
-                                  32735,-1430,32735,-1430,32735,-1430,32735,-1430,
-                                  32711,-1906,32711,-1906,32711,-1906,32711,-1906,
-                                  32680,-2381,32680,-2381,32680,-2381,32680,-2381,
-                                  32642,-2856,32642,-2856,32642,-2856,32642,-2856,
-                                  32597,-3331,32597,-3331,32597,-3331,32597,-3331,
-                                  32545,-3805,32545,-3805,32545,-3805,32545,-3805,
-                                  32486,-4277,32486,-4277,32486,-4277,32486,-4277,
-                                  32421,-4749,32421,-4749,32421,-4749,32421,-4749,
-                                  32348,-5221,32348,-5221,32348,-5221,32348,-5221,
-                                  32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                  32183,-6159,32183,-6159,32183,-6159,32183,-6159,
-                                  32090,-6627,32090,-6627,32090,-6627,32090,-6627,
-                                  31990,-7093,31990,-7093,31990,-7093,31990,-7093,
-                                  31883,-7557,31883,-7557,31883,-7557,31883,-7557,
-                                  31770,-8020,31770,-8020,31770,-8020,31770,-8020,
-                                  31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                  31523,-8941,31523,-8941,31523,-8941,31523,-8941,
-                                  31390,-9398,31390,-9398,31390,-9398,31390,-9398,
-                                  31250,-9854,31250,-9854,31250,-9854,31250,-9854,
-                                  31103,-10307,31103,-10307,31103,-10307,31103,-10307,
-                                  30950,-10758,30950,-10758,30950,-10758,30950,-10758,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30624,-11654,30624,-11654,30624,-11654,30624,-11654,
-                                  30451,-12098,30451,-12098,30451,-12098,30451,-12098,
-                                  30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                  30087,-12979,30087,-12979,30087,-12979,30087,-12979,
-                                  29895,-13415,29895,-13415,29895,-13415,29895,-13415,
-                                  29696,-13848,29696,-13848,29696,-13848,29696,-13848,
-                                  29492,-14279,29492,-14279,29492,-14279,29492,-14279,
-                                  29281,-14706,29281,-14706,29281,-14706,29281,-14706,
-                                  29064,-15131,29064,-15131,29064,-15131,29064,-15131,
-                                  28841,-15552,28841,-15552,28841,-15552,28841,-15552,
-                                  28612,-15970,28612,-15970,28612,-15970,28612,-15970,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  28135,-16795,28135,-16795,28135,-16795,28135,-16795,
-                                  27888,-17202,27888,-17202,27888,-17202,27888,-17202,
-                                  27635,-17606,27635,-17606,27635,-17606,27635,-17606,
-                                  27376,-18006,27376,-18006,27376,-18006,27376,-18006,
-                                  27111,-18403,27111,-18403,27111,-18403,27111,-18403,
-                                  26841,-18795,26841,-18795,26841,-18795,26841,-18795,
-                                  26564,-19183,26564,-19183,26564,-19183,26564,-19183,
-                                  26283,-19568,26283,-19568,26283,-19568,26283,-19568,
-                                  25995,-19948,25995,-19948,25995,-19948,25995,-19948,
-                                  25702,-20324,25702,-20324,25702,-20324,25702,-20324,
-                                  25404,-20695,25404,-20695,25404,-20695,25404,-20695,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24791,-21426,24791,-21426,24791,-21426,24791,-21426,
-                                  24477,-21784,24477,-21784,24477,-21784,24477,-21784,
-                                  24158,-22138,24158,-22138,24158,-22138,24158,-22138,
-                                  23833,-22487,23833,-22487,23833,-22487,23833,-22487,
-                                  23504,-22831,23504,-22831,23504,-22831,23504,-22831,
-                                  23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                  22830,-23505,22830,-23505,22830,-23505,22830,-23505,
-                                  22486,-23834,22486,-23834,22486,-23834,22486,-23834,
-                                  22137,-24159,22137,-24159,22137,-24159,22137,-24159,
-                                  21783,-24478,21783,-24478,21783,-24478,21783,-24478,
-                                  21425,-24792,21425,-24792,21425,-24792,21425,-24792,
-                                  21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                  20694,-25405,20694,-25405,20694,-25405,20694,-25405,
-                                  20323,-25703,20323,-25703,20323,-25703,20323,-25703,
-                                  19947,-25996,19947,-25996,19947,-25996,19947,-25996,
-                                  19567,-26284,19567,-26284,19567,-26284,19567,-26284,
-                                  19182,-26565,19182,-26565,19182,-26565,19182,-26565,
-                                  18794,-26842,18794,-26842,18794,-26842,18794,-26842,
-                                  18402,-27112,18402,-27112,18402,-27112,18402,-27112,
-                                  18005,-27377,18005,-27377,18005,-27377,18005,-27377,
-                                  17605,-27636,17605,-27636,17605,-27636,17605,-27636,
-                                  17201,-27889,17201,-27889,17201,-27889,17201,-27889,
-                                  16794,-28136,16794,-28136,16794,-28136,16794,-28136,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  15969,-28613,15969,-28613,15969,-28613,15969,-28613,
-                                  15551,-28842,15551,-28842,15551,-28842,15551,-28842,
-                                  15130,-29065,15130,-29065,15130,-29065,15130,-29065,
-                                  14705,-29282,14705,-29282,14705,-29282,14705,-29282,
-                                  14278,-29493,14278,-29493,14278,-29493,14278,-29493,
-                                  13847,-29697,13847,-29697,13847,-29697,13847,-29697,
-                                  13414,-29896,13414,-29896,13414,-29896,13414,-29896,
-                                  12978,-30088,12978,-30088,12978,-30088,12978,-30088,
-                                  12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                  12097,-30452,12097,-30452,12097,-30452,12097,-30452,
-                                  11653,-30625,11653,-30625,11653,-30625,11653,-30625,
-                                  11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                  10757,-30951,10757,-30951,10757,-30951,10757,-30951,
-                                  10306,-31104,10306,-31104,10306,-31104,10306,-31104,
-                                  9853,-31251,9853,-31251,9853,-31251,9853,-31251,
-                                  9397,-31391,9397,-31391,9397,-31391,9397,-31391,
-                                  8940,-31524,8940,-31524,8940,-31524,8940,-31524,
-                                  8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                  8019,-31771,8019,-31771,8019,-31771,8019,-31771,
-                                  7556,-31884,7556,-31884,7556,-31884,7556,-31884,
-                                  7092,-31991,7092,-31991,7092,-31991,7092,-31991,
-                                  6626,-32091,6626,-32091,6626,-32091,6626,-32091,
-                                  6158,-32184,6158,-32184,6158,-32184,6158,-32184,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  5220,-32349,5220,-32349,5220,-32349,5220,-32349,
-                                  4748,-32422,4748,-32422,4748,-32422,4748,-32422,
-                                  4276,-32487,4276,-32487,4276,-32487,4276,-32487,
-                                  3804,-32546,3804,-32546,3804,-32546,3804,-32546,
-                                  3330,-32598,3330,-32598,3330,-32598,3330,-32598,
-                                  2855,-32643,2855,-32643,2855,-32643,2855,-32643,
-                                  2380,-32681,2380,-32681,2380,-32681,2380,-32681,
-                                  1905,-32712,1905,-32712,1905,-32712,1905,-32712,
-                                  1429,-32736,1429,-32736,1429,-32736,1429,-32736,
-                                  953,-32754,953,-32754,953,-32754,953,-32754,
-                                  476,-32764,476,-32764,476,-32764,476,-32764,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -477,-32764,-477,-32764,-477,-32764,-477,-32764,
-                                  -954,-32754,-954,-32754,-954,-32754,-954,-32754,
-                                  -1430,-32736,-1430,-32736,-1430,-32736,-1430,-32736,
-                                  -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712,
-                                  -2381,-32681,-2381,-32681,-2381,-32681,-2381,-32681,
-                                  -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643,
-                                  -3331,-32598,-3331,-32598,-3331,-32598,-3331,-32598,
-                                  -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546,
-                                  -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487,
-                                  -4749,-32422,-4749,-32422,-4749,-32422,-4749,-32422,
-                                  -5221,-32349,-5221,-32349,-5221,-32349,-5221,-32349,
-                                  -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                  -6159,-32184,-6159,-32184,-6159,-32184,-6159,-32184,
-                                  -6627,-32091,-6627,-32091,-6627,-32091,-6627,-32091,
-                                  -7093,-31991,-7093,-31991,-7093,-31991,-7093,-31991,
-                                  -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884,
-                                  -8020,-31771,-8020,-31771,-8020,-31771,-8020,-31771,
-                                  -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651,
-                                  -8941,-31524,-8941,-31524,-8941,-31524,-8941,-31524,
-                                  -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391,
-                                  -9854,-31251,-9854,-31251,-9854,-31251,-9854,-31251,
-                                  -10307,-31104,-10307,-31104,-10307,-31104,-10307,-31104,
-                                  -10758,-30951,-10758,-30951,-10758,-30951,-10758,-30951,
-                                  -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791,
-                                  -11654,-30625,-11654,-30625,-11654,-30625,-11654,-30625,
-                                  -12098,-30452,-12098,-30452,-12098,-30452,-12098,-30452,
-                                  -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273,
-                                  -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088,
-                                  -13415,-29896,-13415,-29896,-13415,-29896,-13415,-29896,
-                                  -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697,
-                                  -14279,-29493,-14279,-29493,-14279,-29493,-14279,-29493,
-                                  -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282,
-                                  -15131,-29065,-15131,-29065,-15131,-29065,-15131,-29065,
-                                  -15552,-28842,-15552,-28842,-15552,-28842,-15552,-28842,
-                                  -15970,-28613,-15970,-28613,-15970,-28613,-15970,-28613,
-                                  -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                                  -16795,-28136,-16795,-28136,-16795,-28136,-16795,-28136,
-                                  -17202,-27889,-17202,-27889,-17202,-27889,-17202,-27889,
-                                  -17606,-27636,-17606,-27636,-17606,-27636,-17606,-27636,
-                                  -18006,-27377,-18006,-27377,-18006,-27377,-18006,-27377,
-                                  -18403,-27112,-18403,-27112,-18403,-27112,-18403,-27112,
-                                  -18795,-26842,-18795,-26842,-18795,-26842,-18795,-26842,
-                                  -19183,-26565,-19183,-26565,-19183,-26565,-19183,-26565,
-                                  -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284,
-                                  -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996,
-                                  -20324,-25703,-20324,-25703,-20324,-25703,-20324,-25703,
-                                  -20695,-25405,-20695,-25405,-20695,-25405,-20695,-25405,
-                                  -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101,
-                                  -21426,-24792,-21426,-24792,-21426,-24792,-21426,-24792,
-                                  -21784,-24478,-21784,-24478,-21784,-24478,-21784,-24478,
-                                  -22138,-24159,-22138,-24159,-22138,-24159,-22138,-24159,
-                                  -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834,
-                                  -22831,-23505,-22831,-23505,-22831,-23505,-22831,-23505,
-                                  -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170,
-                                  -23505,-22831,-23505,-22831,-23505,-22831,-23505,-22831,
-                                  -23834,-22487,-23834,-22487,-23834,-22487,-23834,-22487,
-                                  -24159,-22138,-24159,-22138,-24159,-22138,-24159,-22138,
-                                  -24478,-21784,-24478,-21784,-24478,-21784,-24478,-21784,
-                                  -24792,-21426,-24792,-21426,-24792,-21426,-24792,-21426,
-                                  -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063,
-                                  -25405,-20695,-25405,-20695,-25405,-20695,-25405,-20695,
-                                  -25703,-20324,-25703,-20324,-25703,-20324,-25703,-20324,
-                                  -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948,
-                                  -26284,-19568,-26284,-19568,-26284,-19568,-26284,-19568,
-                                  -26565,-19183,-26565,-19183,-26565,-19183,-26565,-19183,
-                                  -26842,-18795,-26842,-18795,-26842,-18795,-26842,-18795,
-                                  -27112,-18403,-27112,-18403,-27112,-18403,-27112,-18403,
-                                  -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006,
-                                  -27636,-17606,-27636,-17606,-27636,-17606,-27636,-17606,
-                                  -27889,-17202,-27889,-17202,-27889,-17202,-27889,-17202,
-                                  -28136,-16795,-28136,-16795,-28136,-16795,-28136,-16795,
-                                  -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384,
-                                  -28613,-15970,-28613,-15970,-28613,-15970,-28613,-15970,
-                                  -28842,-15552,-28842,-15552,-28842,-15552,-28842,-15552,
-                                  -29065,-15131,-29065,-15131,-29065,-15131,-29065,-15131,
-                                  -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706,
-                                  -29493,-14279,-29493,-14279,-29493,-14279,-29493,-14279,
-                                  -29697,-13848,-29697,-13848,-29697,-13848,-29697,-13848,
-                                  -29896,-13415,-29896,-13415,-29896,-13415,-29896,-13415,
-                                  -30088,-12979,-30088,-12979,-30088,-12979,-30088,-12979,
-                                  -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540,
-                                  -30452,-12098,-30452,-12098,-30452,-12098,-30452,-12098,
-                                  -30625,-11654,-30625,-11654,-30625,-11654,-30625,-11654,
-                                  -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207,
-                                  -30951,-10758,-30951,-10758,-30951,-10758,-30951,-10758,
-                                  -31104,-10307,-31104,-10307,-31104,-10307,-31104,-10307,
-                                  -31251,-9854,-31251,-9854,-31251,-9854,-31251,-9854,
-                                  -31391,-9398,-31391,-9398,-31391,-9398,-31391,-9398,
-                                  -31524,-8941,-31524,-8941,-31524,-8941,-31524,-8941,
-                                  -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481,
-                                  -31771,-8020,-31771,-8020,-31771,-8020,-31771,-8020,
-                                  -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557,
-                                  -31991,-7093,-31991,-7093,-31991,-7093,-31991,-7093,
-                                  -32091,-6627,-32091,-6627,-32091,-6627,-32091,-6627,
-                                  -32184,-6159,-32184,-6159,-32184,-6159,-32184,-6159,
-                                  -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690,
-                                  -32349,-5221,-32349,-5221,-32349,-5221,-32349,-5221,
-                                  -32422,-4749,-32422,-4749,-32422,-4749,-32422,-4749,
-                                  -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277,
-                                  -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805,
-                                  -32598,-3331,-32598,-3331,-32598,-3331,-32598,-3331,
-                                  -32643,-2856,-32643,-2856,-32643,-2856,-32643,-2856,
-                                  -32681,-2381,-32681,-2381,-32681,-2381,-32681,-2381,
-                                  -32712,-1906,-32712,-1906,-32712,-1906,-32712,-1906,
-                                  -32736,-1430,-32736,-1430,-32736,-1430,-32736,-1430,
-                                  -32754,-954,-32754,-954,-32754,-954,-32754,-954,
-                                  -32764,-477,-32764,-477,-32764,-477,-32764,-477,
-                                  -32767,-1,-32767,-1,-32767,-1,-32767,-1,
-                                  -32764,476,-32764,476,-32764,476,-32764,476,
-                                  -32754,953,-32754,953,-32754,953,-32754,953,
-                                  -32736,1429,-32736,1429,-32736,1429,-32736,1429,
-                                  -32712,1905,-32712,1905,-32712,1905,-32712,1905,
-                                  -32681,2380,-32681,2380,-32681,2380,-32681,2380,
-                                  -32643,2855,-32643,2855,-32643,2855,-32643,2855,
-                                  -32598,3330,-32598,3330,-32598,3330,-32598,3330,
-                                  -32546,3804,-32546,3804,-32546,3804,-32546,3804,
-                                  -32487,4276,-32487,4276,-32487,4276,-32487,4276,
-                                  -32422,4748,-32422,4748,-32422,4748,-32422,4748,
-                                  -32349,5220,-32349,5220,-32349,5220,-32349,5220,
-                                  -32270,5689,-32270,5689,-32270,5689,-32270,5689,
-                                  -32184,6158,-32184,6158,-32184,6158,-32184,6158,
-                                  -32091,6626,-32091,6626,-32091,6626,-32091,6626,
-                                  -31991,7092,-31991,7092,-31991,7092,-31991,7092,
-                                  -31884,7556,-31884,7556,-31884,7556,-31884,7556,
-                                  -31771,8019,-31771,8019,-31771,8019,-31771,8019,
-                                  -31651,8480,-31651,8480,-31651,8480,-31651,8480,
-                                  -31524,8940,-31524,8940,-31524,8940,-31524,8940,
-                                  -31391,9397,-31391,9397,-31391,9397,-31391,9397,
-                                  -31251,9853,-31251,9853,-31251,9853,-31251,9853,
-                                  -31104,10306,-31104,10306,-31104,10306,-31104,10306,
-                                  -30951,10757,-30951,10757,-30951,10757,-30951,10757,
-                                  -30791,11206,-30791,11206,-30791,11206,-30791,11206,
-                                  -30625,11653,-30625,11653,-30625,11653,-30625,11653,
-                                  -30452,12097,-30452,12097,-30452,12097,-30452,12097,
-                                  -30273,12539,-30273,12539,-30273,12539,-30273,12539,
-                                  -30088,12978,-30088,12978,-30088,12978,-30088,12978,
-                                  -29896,13414,-29896,13414,-29896,13414,-29896,13414,
-                                  -29697,13847,-29697,13847,-29697,13847,-29697,13847,
-                                  -29493,14278,-29493,14278,-29493,14278,-29493,14278,
-                                  -29282,14705,-29282,14705,-29282,14705,-29282,14705,
-                                  -29065,15130,-29065,15130,-29065,15130,-29065,15130,
-                                  -28842,15551,-28842,15551,-28842,15551,-28842,15551,
-                                  -28613,15969,-28613,15969,-28613,15969,-28613,15969,
-                                  -28378,16383,-28378,16383,-28378,16383,-28378,16383,
-                                  -28136,16794,-28136,16794,-28136,16794,-28136,16794,
-                                  -27889,17201,-27889,17201,-27889,17201,-27889,17201,
-                                  -27636,17605,-27636,17605,-27636,17605,-27636,17605,
-                                  -27377,18005,-27377,18005,-27377,18005,-27377,18005,
-                                  -27112,18402,-27112,18402,-27112,18402,-27112,18402,
-                                  -26842,18794,-26842,18794,-26842,18794,-26842,18794,
-                                  -26565,19182,-26565,19182,-26565,19182,-26565,19182,
-                                  -26284,19567,-26284,19567,-26284,19567,-26284,19567,
-                                  -25996,19947,-25996,19947,-25996,19947,-25996,19947,
-                                  -25703,20323,-25703,20323,-25703,20323,-25703,20323,
-                                  -25405,20694,-25405,20694,-25405,20694,-25405,20694,
-                                  -25101,21062,-25101,21062,-25101,21062,-25101,21062,
-                                  -24792,21425,-24792,21425,-24792,21425,-24792,21425,
-                                  -24478,21783,-24478,21783,-24478,21783,-24478,21783,
-                                  -24159,22137,-24159,22137,-24159,22137,-24159,22137,
-                                  -23834,22486,-23834,22486,-23834,22486,-23834,22486,
-                                  -23505,22830,-23505,22830,-23505,22830,-23505,22830,
-                                  -23170,23169,-23170,23169,-23170,23169,-23170,23169,
-                                  -22831,23504,-22831,23504,-22831,23504,-22831,23504,
-                                  -22487,23833,-22487,23833,-22487,23833,-22487,23833,
-                                  -22138,24158,-22138,24158,-22138,24158,-22138,24158,
-                                  -21784,24477,-21784,24477,-21784,24477,-21784,24477,
-                                  -21426,24791,-21426,24791,-21426,24791,-21426,24791,
-                                  -21063,25100,-21063,25100,-21063,25100,-21063,25100,
-                                  -20695,25404,-20695,25404,-20695,25404,-20695,25404,
-                                  -20324,25702,-20324,25702,-20324,25702,-20324,25702,
-                                  -19948,25995,-19948,25995,-19948,25995,-19948,25995,
-                                  -19568,26283,-19568,26283,-19568,26283,-19568,26283,
-                                  -19183,26564,-19183,26564,-19183,26564,-19183,26564,
-                                  -18795,26841,-18795,26841,-18795,26841,-18795,26841,
-                                  -18403,27111,-18403,27111,-18403,27111,-18403,27111,
-                                  -18006,27376,-18006,27376,-18006,27376,-18006,27376,
-                                  -17606,27635,-17606,27635,-17606,27635,-17606,27635,
-                                  -17202,27888,-17202,27888,-17202,27888,-17202,27888,
-                                  -16795,28135,-16795,28135,-16795,28135,-16795,28135
-                                 };
+static int16_t twa768[191*2*4];
+static int16_t twb768[191*2*4];
+static int16_t twc768[191*2*4];
+
+void dft768(int16_t *x,int16_t *y,unsigned char scale_flag) { // 192x 4;
+
+  int i,j;
+  simd_q15_t *x128=(simd_q15_t *)x;
+  simd_q15_t *y128=(simd_q15_t *)y;
+  simd_q15_t *twa128=(simd_q15_t *)&twa768[0];
+  simd_q15_t *twb128=(simd_q15_t *)&twb768[0];
+  simd_q15_t *twc128=(simd_q15_t *)&twc768[0];
+  simd_q15_t x2128[768];// = (simd_q15_t *)&x2128array[0];
+  simd_q15_t ytmp128[768];//=&ytmp128array2[0];
+
+
+
+  for (i=0,j=0; i<192; i++,j+=4) {
+    x2128[i]     = x128[j];
+    x2128[i+192] = x128[j+1];
+    x2128[i+384] = x128[j+2];
+    x2128[i+576] = x128[j+3];
+  }
+
+  dft192((int16_t *)x2128,(int16_t *)ytmp128,1);
+  dft192((int16_t *)(x2128+192),(int16_t *)(ytmp128+192),1);
+  dft192((int16_t *)(x2128+384),(int16_t *)(ytmp128+384),1);
+  dft192((int16_t *)(x2128+576),(int16_t *)(ytmp128+576),1);
+
+  bfly4_tw1(ytmp128,ytmp128+192,ytmp128+384,ytmp128+576,y128,y128+192,y128+384,y128+576);
+
+  for (i=1,j=0; i<192; i++,j++) {
+    bfly4(ytmp128+i,
+          ytmp128+192+i,
+          ytmp128+384+i,
+          ytmp128+576+i,
+          y128+i,
+          y128+192+i,
+          y128+384+i,
+          y128+576+i,
+          twa128+j,
+          twb128+j,
+          twc128+j);
+  }
+
+  if (scale_flag==1) {
+    norm128 = set1_int16(16384);//dft_norm_table[13]);
+
+    for (i=0; i<768; i++) {
+      y128[i] = mulhi_int16(y128[i],norm128);
+    }
+  }
+
+  _mm_empty();
+  _m_empty();
+
+
+}
+
+
+static int16_t twa864[287*2*4];
+static int16_t twb864[287*2*4];
 
 void dft864(int16_t *x,int16_t *y,unsigned char scale_flag)  // 288 x 3
 {
@@ -13592,630 +8168,8 @@ void dft864(int16_t *x,int16_t *y,unsigned char scale_flag)  // 288 x 3
 
 };
 
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:299)/900));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:299)/900));
-twa2 = zeros(1,2*299);
-twb2 = zeros(1,2*299);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-fd=fopen("twiddle_tmp.txt","w");
-fprintf(fd,"static int16_t twa900[299*2*4] = {");
-for i=1:2:(2*298)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-fprintf(fd,"static int16_t twb900[299*2*4] = {");
-for i=1:2:(2*298)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-fclose(fd);
-*/
-static int16_t twa900[299*2*4] = {32766,-229,32766,-229,32766,-229,32766,-229,
-                                  32763,-458,32763,-458,32763,-458,32763,-458,
-                                  32759,-687,32759,-687,32759,-687,32759,-687,
-                                  32754,-915,32754,-915,32754,-915,32754,-915,
-                                  32747,-1144,32747,-1144,32747,-1144,32747,-1144,
-                                  32738,-1373,32738,-1373,32738,-1373,32738,-1373,
-                                  32727,-1601,32727,-1601,32727,-1601,32727,-1601,
-                                  32715,-1830,32715,-1830,32715,-1830,32715,-1830,
-                                  32702,-2058,32702,-2058,32702,-2058,32702,-2058,
-                                  32687,-2286,32687,-2286,32687,-2286,32687,-2286,
-                                  32670,-2514,32670,-2514,32670,-2514,32670,-2514,
-                                  32652,-2742,32652,-2742,32652,-2742,32652,-2742,
-                                  32632,-2970,32632,-2970,32632,-2970,32632,-2970,
-                                  32610,-3198,32610,-3198,32610,-3198,32610,-3198,
-                                  32587,-3426,32587,-3426,32587,-3426,32587,-3426,
-                                  32562,-3653,32562,-3653,32562,-3653,32562,-3653,
-                                  32536,-3880,32536,-3880,32536,-3880,32536,-3880,
-                                  32508,-4107,32508,-4107,32508,-4107,32508,-4107,
-                                  32479,-4334,32479,-4334,32479,-4334,32479,-4334,
-                                  32448,-4561,32448,-4561,32448,-4561,32448,-4561,
-                                  32415,-4787,32415,-4787,32415,-4787,32415,-4787,
-                                  32381,-5013,32381,-5013,32381,-5013,32381,-5013,
-                                  32345,-5239,32345,-5239,32345,-5239,32345,-5239,
-                                  32308,-5465,32308,-5465,32308,-5465,32308,-5465,
-                                  32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                  32228,-5916,32228,-5916,32228,-5916,32228,-5916,
-                                  32186,-6140,32186,-6140,32186,-6140,32186,-6140,
-                                  32142,-6365,32142,-6365,32142,-6365,32142,-6365,
-                                  32097,-6589,32097,-6589,32097,-6589,32097,-6589,
-                                  32050,-6813,32050,-6813,32050,-6813,32050,-6813,
-                                  32002,-7037,32002,-7037,32002,-7037,32002,-7037,
-                                  31952,-7260,31952,-7260,31952,-7260,31952,-7260,
-                                  31901,-7483,31901,-7483,31901,-7483,31901,-7483,
-                                  31848,-7705,31848,-7705,31848,-7705,31848,-7705,
-                                  31793,-7928,31793,-7928,31793,-7928,31793,-7928,
-                                  31737,-8149,31737,-8149,31737,-8149,31737,-8149,
-                                  31679,-8371,31679,-8371,31679,-8371,31679,-8371,
-                                  31620,-8592,31620,-8592,31620,-8592,31620,-8592,
-                                  31559,-8812,31559,-8812,31559,-8812,31559,-8812,
-                                  31497,-9032,31497,-9032,31497,-9032,31497,-9032,
-                                  31433,-9252,31433,-9252,31433,-9252,31433,-9252,
-                                  31368,-9471,31368,-9471,31368,-9471,31368,-9471,
-                                  31301,-9690,31301,-9690,31301,-9690,31301,-9690,
-                                  31233,-9908,31233,-9908,31233,-9908,31233,-9908,
-                                  31163,-10126,31163,-10126,31163,-10126,31163,-10126,
-                                  31091,-10343,31091,-10343,31091,-10343,31091,-10343,
-                                  31018,-10560,31018,-10560,31018,-10560,31018,-10560,
-                                  30944,-10776,30944,-10776,30944,-10776,30944,-10776,
-                                  30868,-10992,30868,-10992,30868,-10992,30868,-10992,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30711,-11422,30711,-11422,30711,-11422,30711,-11422,
-                                  30631,-11636,30631,-11636,30631,-11636,30631,-11636,
-                                  30549,-11850,30549,-11850,30549,-11850,30549,-11850,
-                                  30465,-12063,30465,-12063,30465,-12063,30465,-12063,
-                                  30381,-12275,30381,-12275,30381,-12275,30381,-12275,
-                                  30294,-12487,30294,-12487,30294,-12487,30294,-12487,
-                                  30206,-12698,30206,-12698,30206,-12698,30206,-12698,
-                                  30117,-12909,30117,-12909,30117,-12909,30117,-12909,
-                                  30026,-13119,30026,-13119,30026,-13119,30026,-13119,
-                                  29934,-13328,29934,-13328,29934,-13328,29934,-13328,
-                                  29840,-13537,29840,-13537,29840,-13537,29840,-13537,
-                                  29745,-13745,29745,-13745,29745,-13745,29745,-13745,
-                                  29648,-13952,29648,-13952,29648,-13952,29648,-13952,
-                                  29550,-14159,29550,-14159,29550,-14159,29550,-14159,
-                                  29450,-14365,29450,-14365,29450,-14365,29450,-14365,
-                                  29349,-14570,29349,-14570,29349,-14570,29349,-14570,
-                                  29247,-14774,29247,-14774,29247,-14774,29247,-14774,
-                                  29143,-14978,29143,-14978,29143,-14978,29143,-14978,
-                                  29038,-15181,29038,-15181,29038,-15181,29038,-15181,
-                                  28931,-15384,28931,-15384,28931,-15384,28931,-15384,
-                                  28823,-15585,28823,-15585,28823,-15585,28823,-15585,
-                                  28713,-15786,28713,-15786,28713,-15786,28713,-15786,
-                                  28603,-15986,28603,-15986,28603,-15986,28603,-15986,
-                                  28490,-16185,28490,-16185,28490,-16185,28490,-16185,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  28261,-16582,28261,-16582,28261,-16582,28261,-16582,
-                                  28145,-16779,28145,-16779,28145,-16779,28145,-16779,
-                                  28027,-16975,28027,-16975,28027,-16975,28027,-16975,
-                                  27908,-17170,27908,-17170,27908,-17170,27908,-17170,
-                                  27787,-17364,27787,-17364,27787,-17364,27787,-17364,
-                                  27666,-17558,27666,-17558,27666,-17558,27666,-17558,
-                                  27542,-17751,27542,-17751,27542,-17751,27542,-17751,
-                                  27418,-17943,27418,-17943,27418,-17943,27418,-17943,
-                                  27292,-18133,27292,-18133,27292,-18133,27292,-18133,
-                                  27165,-18324,27165,-18324,27165,-18324,27165,-18324,
-                                  27036,-18513,27036,-18513,27036,-18513,27036,-18513,
-                                  26906,-18701,26906,-18701,26906,-18701,26906,-18701,
-                                  26775,-18888,26775,-18888,26775,-18888,26775,-18888,
-                                  26642,-19075,26642,-19075,26642,-19075,26642,-19075,
-                                  26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                                  26373,-19445,26373,-19445,26373,-19445,26373,-19445,
-                                  26237,-19629,26237,-19629,26237,-19629,26237,-19629,
-                                  26099,-19811,26099,-19811,26099,-19811,26099,-19811,
-                                  25960,-19993,25960,-19993,25960,-19993,25960,-19993,
-                                  25820,-20174,25820,-20174,25820,-20174,25820,-20174,
-                                  25679,-20354,25679,-20354,25679,-20354,25679,-20354,
-                                  25536,-20532,25536,-20532,25536,-20532,25536,-20532,
-                                  25392,-20710,25392,-20710,25392,-20710,25392,-20710,
-                                  25247,-20887,25247,-20887,25247,-20887,25247,-20887,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24953,-21237,24953,-21237,24953,-21237,24953,-21237,
-                                  24804,-21411,24804,-21411,24804,-21411,24804,-21411,
-                                  24654,-21584,24654,-21584,24654,-21584,24654,-21584,
-                                  24503,-21755,24503,-21755,24503,-21755,24503,-21755,
-                                  24350,-21926,24350,-21926,24350,-21926,24350,-21926,
-                                  24196,-22095,24196,-22095,24196,-22095,24196,-22095,
-                                  24042,-22264,24042,-22264,24042,-22264,24042,-22264,
-                                  23886,-22431,23886,-22431,23886,-22431,23886,-22431,
-                                  23728,-22597,23728,-22597,23728,-22597,23728,-22597,
-                                  23570,-22762,23570,-22762,23570,-22762,23570,-22762,
-                                  23411,-22926,23411,-22926,23411,-22926,23411,-22926,
-                                  23250,-23089,23250,-23089,23250,-23089,23250,-23089,
-                                  23088,-23251,23088,-23251,23088,-23251,23088,-23251,
-                                  22925,-23412,22925,-23412,22925,-23412,22925,-23412,
-                                  22761,-23571,22761,-23571,22761,-23571,22761,-23571,
-                                  22596,-23729,22596,-23729,22596,-23729,22596,-23729,
-                                  22430,-23887,22430,-23887,22430,-23887,22430,-23887,
-                                  22263,-24043,22263,-24043,22263,-24043,22263,-24043,
-                                  22094,-24197,22094,-24197,22094,-24197,22094,-24197,
-                                  21925,-24351,21925,-24351,21925,-24351,21925,-24351,
-                                  21754,-24504,21754,-24504,21754,-24504,21754,-24504,
-                                  21583,-24655,21583,-24655,21583,-24655,21583,-24655,
-                                  21410,-24805,21410,-24805,21410,-24805,21410,-24805,
-                                  21236,-24954,21236,-24954,21236,-24954,21236,-24954,
-                                  21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                  20886,-25248,20886,-25248,20886,-25248,20886,-25248,
-                                  20709,-25393,20709,-25393,20709,-25393,20709,-25393,
-                                  20531,-25537,20531,-25537,20531,-25537,20531,-25537,
-                                  20353,-25680,20353,-25680,20353,-25680,20353,-25680,
-                                  20173,-25821,20173,-25821,20173,-25821,20173,-25821,
-                                  19992,-25961,19992,-25961,19992,-25961,19992,-25961,
-                                  19810,-26100,19810,-26100,19810,-26100,19810,-26100,
-                                  19628,-26238,19628,-26238,19628,-26238,19628,-26238,
-                                  19444,-26374,19444,-26374,19444,-26374,19444,-26374,
-                                  19259,-26510,19259,-26510,19259,-26510,19259,-26510,
-                                  19074,-26643,19074,-26643,19074,-26643,19074,-26643,
-                                  18887,-26776,18887,-26776,18887,-26776,18887,-26776,
-                                  18700,-26907,18700,-26907,18700,-26907,18700,-26907,
-                                  18512,-27037,18512,-27037,18512,-27037,18512,-27037,
-                                  18323,-27166,18323,-27166,18323,-27166,18323,-27166,
-                                  18132,-27293,18132,-27293,18132,-27293,18132,-27293,
-                                  17942,-27419,17942,-27419,17942,-27419,17942,-27419,
-                                  17750,-27543,17750,-27543,17750,-27543,17750,-27543,
-                                  17557,-27667,17557,-27667,17557,-27667,17557,-27667,
-                                  17363,-27788,17363,-27788,17363,-27788,17363,-27788,
-                                  17169,-27909,17169,-27909,17169,-27909,17169,-27909,
-                                  16974,-28028,16974,-28028,16974,-28028,16974,-28028,
-                                  16778,-28146,16778,-28146,16778,-28146,16778,-28146,
-                                  16581,-28262,16581,-28262,16581,-28262,16581,-28262,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  16184,-28491,16184,-28491,16184,-28491,16184,-28491,
-                                  15985,-28604,15985,-28604,15985,-28604,15985,-28604,
-                                  15785,-28714,15785,-28714,15785,-28714,15785,-28714,
-                                  15584,-28824,15584,-28824,15584,-28824,15584,-28824,
-                                  15383,-28932,15383,-28932,15383,-28932,15383,-28932,
-                                  15180,-29039,15180,-29039,15180,-29039,15180,-29039,
-                                  14977,-29144,14977,-29144,14977,-29144,14977,-29144,
-                                  14773,-29248,14773,-29248,14773,-29248,14773,-29248,
-                                  14569,-29350,14569,-29350,14569,-29350,14569,-29350,
-                                  14364,-29451,14364,-29451,14364,-29451,14364,-29451,
-                                  14158,-29551,14158,-29551,14158,-29551,14158,-29551,
-                                  13951,-29649,13951,-29649,13951,-29649,13951,-29649,
-                                  13744,-29746,13744,-29746,13744,-29746,13744,-29746,
-                                  13536,-29841,13536,-29841,13536,-29841,13536,-29841,
-                                  13327,-29935,13327,-29935,13327,-29935,13327,-29935,
-                                  13118,-30027,13118,-30027,13118,-30027,13118,-30027,
-                                  12908,-30118,12908,-30118,12908,-30118,12908,-30118,
-                                  12697,-30207,12697,-30207,12697,-30207,12697,-30207,
-                                  12486,-30295,12486,-30295,12486,-30295,12486,-30295,
-                                  12274,-30382,12274,-30382,12274,-30382,12274,-30382,
-                                  12062,-30466,12062,-30466,12062,-30466,12062,-30466,
-                                  11849,-30550,11849,-30550,11849,-30550,11849,-30550,
-                                  11635,-30632,11635,-30632,11635,-30632,11635,-30632,
-                                  11421,-30712,11421,-30712,11421,-30712,11421,-30712,
-                                  11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                  10991,-30869,10991,-30869,10991,-30869,10991,-30869,
-                                  10775,-30945,10775,-30945,10775,-30945,10775,-30945,
-                                  10559,-31019,10559,-31019,10559,-31019,10559,-31019,
-                                  10342,-31092,10342,-31092,10342,-31092,10342,-31092,
-                                  10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                                  9907,-31234,9907,-31234,9907,-31234,9907,-31234,
-                                  9689,-31302,9689,-31302,9689,-31302,9689,-31302,
-                                  9470,-31369,9470,-31369,9470,-31369,9470,-31369,
-                                  9251,-31434,9251,-31434,9251,-31434,9251,-31434,
-                                  9031,-31498,9031,-31498,9031,-31498,9031,-31498,
-                                  8811,-31560,8811,-31560,8811,-31560,8811,-31560,
-                                  8591,-31621,8591,-31621,8591,-31621,8591,-31621,
-                                  8370,-31680,8370,-31680,8370,-31680,8370,-31680,
-                                  8148,-31738,8148,-31738,8148,-31738,8148,-31738,
-                                  7927,-31794,7927,-31794,7927,-31794,7927,-31794,
-                                  7704,-31849,7704,-31849,7704,-31849,7704,-31849,
-                                  7482,-31902,7482,-31902,7482,-31902,7482,-31902,
-                                  7259,-31953,7259,-31953,7259,-31953,7259,-31953,
-                                  7036,-32003,7036,-32003,7036,-32003,7036,-32003,
-                                  6812,-32051,6812,-32051,6812,-32051,6812,-32051,
-                                  6588,-32098,6588,-32098,6588,-32098,6588,-32098,
-                                  6364,-32143,6364,-32143,6364,-32143,6364,-32143,
-                                  6139,-32187,6139,-32187,6139,-32187,6139,-32187,
-                                  5915,-32229,5915,-32229,5915,-32229,5915,-32229,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  5464,-32309,5464,-32309,5464,-32309,5464,-32309,
-                                  5238,-32346,5238,-32346,5238,-32346,5238,-32346,
-                                  5012,-32382,5012,-32382,5012,-32382,5012,-32382,
-                                  4786,-32416,4786,-32416,4786,-32416,4786,-32416,
-                                  4560,-32449,4560,-32449,4560,-32449,4560,-32449,
-                                  4333,-32480,4333,-32480,4333,-32480,4333,-32480,
-                                  4106,-32509,4106,-32509,4106,-32509,4106,-32509,
-                                  3879,-32537,3879,-32537,3879,-32537,3879,-32537,
-                                  3652,-32563,3652,-32563,3652,-32563,3652,-32563,
-                                  3425,-32588,3425,-32588,3425,-32588,3425,-32588,
-                                  3197,-32611,3197,-32611,3197,-32611,3197,-32611,
-                                  2969,-32633,2969,-32633,2969,-32633,2969,-32633,
-                                  2741,-32653,2741,-32653,2741,-32653,2741,-32653,
-                                  2513,-32671,2513,-32671,2513,-32671,2513,-32671,
-                                  2285,-32688,2285,-32688,2285,-32688,2285,-32688,
-                                  2057,-32703,2057,-32703,2057,-32703,2057,-32703,
-                                  1829,-32716,1829,-32716,1829,-32716,1829,-32716,
-                                  1600,-32728,1600,-32728,1600,-32728,1600,-32728,
-                                  1372,-32739,1372,-32739,1372,-32739,1372,-32739,
-                                  1143,-32748,1143,-32748,1143,-32748,1143,-32748,
-                                  914,-32755,914,-32755,914,-32755,914,-32755,
-                                  686,-32760,686,-32760,686,-32760,686,-32760,
-                                  457,-32764,457,-32764,457,-32764,457,-32764,
-                                  228,-32767,228,-32767,228,-32767,228,-32767,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -229,-32767,-229,-32767,-229,-32767,-229,-32767,
-                                  -458,-32764,-458,-32764,-458,-32764,-458,-32764,
-                                  -687,-32760,-687,-32760,-687,-32760,-687,-32760,
-                                  -915,-32755,-915,-32755,-915,-32755,-915,-32755,
-                                  -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748,
-                                  -1373,-32739,-1373,-32739,-1373,-32739,-1373,-32739,
-                                  -1601,-32728,-1601,-32728,-1601,-32728,-1601,-32728,
-                                  -1830,-32716,-1830,-32716,-1830,-32716,-1830,-32716,
-                                  -2058,-32703,-2058,-32703,-2058,-32703,-2058,-32703,
-                                  -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688,
-                                  -2514,-32671,-2514,-32671,-2514,-32671,-2514,-32671,
-                                  -2742,-32653,-2742,-32653,-2742,-32653,-2742,-32653,
-                                  -2970,-32633,-2970,-32633,-2970,-32633,-2970,-32633,
-                                  -3198,-32611,-3198,-32611,-3198,-32611,-3198,-32611,
-                                  -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588,
-                                  -3653,-32563,-3653,-32563,-3653,-32563,-3653,-32563,
-                                  -3880,-32537,-3880,-32537,-3880,-32537,-3880,-32537,
-                                  -4107,-32509,-4107,-32509,-4107,-32509,-4107,-32509,
-                                  -4334,-32480,-4334,-32480,-4334,-32480,-4334,-32480,
-                                  -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449,
-                                  -4787,-32416,-4787,-32416,-4787,-32416,-4787,-32416,
-                                  -5013,-32382,-5013,-32382,-5013,-32382,-5013,-32382,
-                                  -5239,-32346,-5239,-32346,-5239,-32346,-5239,-32346,
-                                  -5465,-32309,-5465,-32309,-5465,-32309,-5465,-32309,
-                                  -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                  -5916,-32229,-5916,-32229,-5916,-32229,-5916,-32229,
-                                  -6140,-32187,-6140,-32187,-6140,-32187,-6140,-32187,
-                                  -6365,-32143,-6365,-32143,-6365,-32143,-6365,-32143,
-                                  -6589,-32098,-6589,-32098,-6589,-32098,-6589,-32098,
-                                  -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051,
-                                  -7037,-32003,-7037,-32003,-7037,-32003,-7037,-32003,
-                                  -7260,-31953,-7260,-31953,-7260,-31953,-7260,-31953,
-                                  -7483,-31902,-7483,-31902,-7483,-31902,-7483,-31902,
-                                  -7705,-31849,-7705,-31849,-7705,-31849,-7705,-31849,
-                                  -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794,
-                                  -8149,-31738,-8149,-31738,-8149,-31738,-8149,-31738,
-                                  -8371,-31680,-8371,-31680,-8371,-31680,-8371,-31680,
-                                  -8592,-31621,-8592,-31621,-8592,-31621,-8592,-31621,
-                                  -8812,-31560,-8812,-31560,-8812,-31560,-8812,-31560,
-                                  -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498,
-                                  -9252,-31434,-9252,-31434,-9252,-31434,-9252,-31434,
-                                  -9471,-31369,-9471,-31369,-9471,-31369,-9471,-31369,
-                                  -9690,-31302,-9690,-31302,-9690,-31302,-9690,-31302,
-                                  -9908,-31234,-9908,-31234,-9908,-31234,-9908,-31234,
-                                  -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164,
-                                  -10343,-31092,-10343,-31092,-10343,-31092,-10343,-31092,
-                                  -10560,-31019,-10560,-31019,-10560,-31019,-10560,-31019,
-                                  -10776,-30945,-10776,-30945,-10776,-30945,-10776,-30945,
-                                  -10992,-30869,-10992,-30869,-10992,-30869,-10992,-30869,
-                                  -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791,
-                                  -11422,-30712,-11422,-30712,-11422,-30712,-11422,-30712,
-                                  -11636,-30632,-11636,-30632,-11636,-30632,-11636,-30632,
-                                  -11850,-30550,-11850,-30550,-11850,-30550,-11850,-30550,
-                                  -12063,-30466,-12063,-30466,-12063,-30466,-12063,-30466,
-                                  -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382,
-                                  -12487,-30295,-12487,-30295,-12487,-30295,-12487,-30295,
-                                  -12698,-30207,-12698,-30207,-12698,-30207,-12698,-30207,
-                                  -12909,-30118,-12909,-30118,-12909,-30118,-12909,-30118,
-                                  -13119,-30027,-13119,-30027,-13119,-30027,-13119,-30027,
-                                  -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935,
-                                  -13537,-29841,-13537,-29841,-13537,-29841,-13537,-29841,
-                                  -13745,-29746,-13745,-29746,-13745,-29746,-13745,-29746,
-                                  -13952,-29649,-13952,-29649,-13952,-29649,-13952,-29649,
-                                  -14159,-29551,-14159,-29551,-14159,-29551,-14159,-29551,
-                                  -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451,
-                                  -14570,-29350,-14570,-29350,-14570,-29350,-14570,-29350,
-                                  -14774,-29248,-14774,-29248,-14774,-29248,-14774,-29248,
-                                  -14978,-29144,-14978,-29144,-14978,-29144,-14978,-29144,
-                                  -15181,-29039,-15181,-29039,-15181,-29039,-15181,-29039,
-                                  -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932,
-                                  -15585,-28824,-15585,-28824,-15585,-28824,-15585,-28824,
-                                  -15786,-28714,-15786,-28714,-15786,-28714,-15786,-28714,
-                                  -15986,-28604,-15986,-28604,-15986,-28604,-15986,-28604,
-                                  -16185,-28491,-16185,-28491,-16185,-28491,-16185,-28491
-                                 };
-static int16_t twb900[299*2*4] = {32763,-458,32763,-458,32763,-458,32763,-458,
-                                  32754,-915,32754,-915,32754,-915,32754,-915,
-                                  32738,-1373,32738,-1373,32738,-1373,32738,-1373,
-                                  32715,-1830,32715,-1830,32715,-1830,32715,-1830,
-                                  32687,-2286,32687,-2286,32687,-2286,32687,-2286,
-                                  32652,-2742,32652,-2742,32652,-2742,32652,-2742,
-                                  32610,-3198,32610,-3198,32610,-3198,32610,-3198,
-                                  32562,-3653,32562,-3653,32562,-3653,32562,-3653,
-                                  32508,-4107,32508,-4107,32508,-4107,32508,-4107,
-                                  32448,-4561,32448,-4561,32448,-4561,32448,-4561,
-                                  32381,-5013,32381,-5013,32381,-5013,32381,-5013,
-                                  32308,-5465,32308,-5465,32308,-5465,32308,-5465,
-                                  32228,-5916,32228,-5916,32228,-5916,32228,-5916,
-                                  32142,-6365,32142,-6365,32142,-6365,32142,-6365,
-                                  32050,-6813,32050,-6813,32050,-6813,32050,-6813,
-                                  31952,-7260,31952,-7260,31952,-7260,31952,-7260,
-                                  31848,-7705,31848,-7705,31848,-7705,31848,-7705,
-                                  31737,-8149,31737,-8149,31737,-8149,31737,-8149,
-                                  31620,-8592,31620,-8592,31620,-8592,31620,-8592,
-                                  31497,-9032,31497,-9032,31497,-9032,31497,-9032,
-                                  31368,-9471,31368,-9471,31368,-9471,31368,-9471,
-                                  31233,-9908,31233,-9908,31233,-9908,31233,-9908,
-                                  31091,-10343,31091,-10343,31091,-10343,31091,-10343,
-                                  30944,-10776,30944,-10776,30944,-10776,30944,-10776,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30631,-11636,30631,-11636,30631,-11636,30631,-11636,
-                                  30465,-12063,30465,-12063,30465,-12063,30465,-12063,
-                                  30294,-12487,30294,-12487,30294,-12487,30294,-12487,
-                                  30117,-12909,30117,-12909,30117,-12909,30117,-12909,
-                                  29934,-13328,29934,-13328,29934,-13328,29934,-13328,
-                                  29745,-13745,29745,-13745,29745,-13745,29745,-13745,
-                                  29550,-14159,29550,-14159,29550,-14159,29550,-14159,
-                                  29349,-14570,29349,-14570,29349,-14570,29349,-14570,
-                                  29143,-14978,29143,-14978,29143,-14978,29143,-14978,
-                                  28931,-15384,28931,-15384,28931,-15384,28931,-15384,
-                                  28713,-15786,28713,-15786,28713,-15786,28713,-15786,
-                                  28490,-16185,28490,-16185,28490,-16185,28490,-16185,
-                                  28261,-16582,28261,-16582,28261,-16582,28261,-16582,
-                                  28027,-16975,28027,-16975,28027,-16975,28027,-16975,
-                                  27787,-17364,27787,-17364,27787,-17364,27787,-17364,
-                                  27542,-17751,27542,-17751,27542,-17751,27542,-17751,
-                                  27292,-18133,27292,-18133,27292,-18133,27292,-18133,
-                                  27036,-18513,27036,-18513,27036,-18513,27036,-18513,
-                                  26775,-18888,26775,-18888,26775,-18888,26775,-18888,
-                                  26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                                  26237,-19629,26237,-19629,26237,-19629,26237,-19629,
-                                  25960,-19993,25960,-19993,25960,-19993,25960,-19993,
-                                  25679,-20354,25679,-20354,25679,-20354,25679,-20354,
-                                  25392,-20710,25392,-20710,25392,-20710,25392,-20710,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24804,-21411,24804,-21411,24804,-21411,24804,-21411,
-                                  24503,-21755,24503,-21755,24503,-21755,24503,-21755,
-                                  24196,-22095,24196,-22095,24196,-22095,24196,-22095,
-                                  23886,-22431,23886,-22431,23886,-22431,23886,-22431,
-                                  23570,-22762,23570,-22762,23570,-22762,23570,-22762,
-                                  23250,-23089,23250,-23089,23250,-23089,23250,-23089,
-                                  22925,-23412,22925,-23412,22925,-23412,22925,-23412,
-                                  22596,-23729,22596,-23729,22596,-23729,22596,-23729,
-                                  22263,-24043,22263,-24043,22263,-24043,22263,-24043,
-                                  21925,-24351,21925,-24351,21925,-24351,21925,-24351,
-                                  21583,-24655,21583,-24655,21583,-24655,21583,-24655,
-                                  21236,-24954,21236,-24954,21236,-24954,21236,-24954,
-                                  20886,-25248,20886,-25248,20886,-25248,20886,-25248,
-                                  20531,-25537,20531,-25537,20531,-25537,20531,-25537,
-                                  20173,-25821,20173,-25821,20173,-25821,20173,-25821,
-                                  19810,-26100,19810,-26100,19810,-26100,19810,-26100,
-                                  19444,-26374,19444,-26374,19444,-26374,19444,-26374,
-                                  19074,-26643,19074,-26643,19074,-26643,19074,-26643,
-                                  18700,-26907,18700,-26907,18700,-26907,18700,-26907,
-                                  18323,-27166,18323,-27166,18323,-27166,18323,-27166,
-                                  17942,-27419,17942,-27419,17942,-27419,17942,-27419,
-                                  17557,-27667,17557,-27667,17557,-27667,17557,-27667,
-                                  17169,-27909,17169,-27909,17169,-27909,17169,-27909,
-                                  16778,-28146,16778,-28146,16778,-28146,16778,-28146,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  15985,-28604,15985,-28604,15985,-28604,15985,-28604,
-                                  15584,-28824,15584,-28824,15584,-28824,15584,-28824,
-                                  15180,-29039,15180,-29039,15180,-29039,15180,-29039,
-                                  14773,-29248,14773,-29248,14773,-29248,14773,-29248,
-                                  14364,-29451,14364,-29451,14364,-29451,14364,-29451,
-                                  13951,-29649,13951,-29649,13951,-29649,13951,-29649,
-                                  13536,-29841,13536,-29841,13536,-29841,13536,-29841,
-                                  13118,-30027,13118,-30027,13118,-30027,13118,-30027,
-                                  12697,-30207,12697,-30207,12697,-30207,12697,-30207,
-                                  12274,-30382,12274,-30382,12274,-30382,12274,-30382,
-                                  11849,-30550,11849,-30550,11849,-30550,11849,-30550,
-                                  11421,-30712,11421,-30712,11421,-30712,11421,-30712,
-                                  10991,-30869,10991,-30869,10991,-30869,10991,-30869,
-                                  10559,-31019,10559,-31019,10559,-31019,10559,-31019,
-                                  10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                                  9689,-31302,9689,-31302,9689,-31302,9689,-31302,
-                                  9251,-31434,9251,-31434,9251,-31434,9251,-31434,
-                                  8811,-31560,8811,-31560,8811,-31560,8811,-31560,
-                                  8370,-31680,8370,-31680,8370,-31680,8370,-31680,
-                                  7927,-31794,7927,-31794,7927,-31794,7927,-31794,
-                                  7482,-31902,7482,-31902,7482,-31902,7482,-31902,
-                                  7036,-32003,7036,-32003,7036,-32003,7036,-32003,
-                                  6588,-32098,6588,-32098,6588,-32098,6588,-32098,
-                                  6139,-32187,6139,-32187,6139,-32187,6139,-32187,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  5238,-32346,5238,-32346,5238,-32346,5238,-32346,
-                                  4786,-32416,4786,-32416,4786,-32416,4786,-32416,
-                                  4333,-32480,4333,-32480,4333,-32480,4333,-32480,
-                                  3879,-32537,3879,-32537,3879,-32537,3879,-32537,
-                                  3425,-32588,3425,-32588,3425,-32588,3425,-32588,
-                                  2969,-32633,2969,-32633,2969,-32633,2969,-32633,
-                                  2513,-32671,2513,-32671,2513,-32671,2513,-32671,
-                                  2057,-32703,2057,-32703,2057,-32703,2057,-32703,
-                                  1600,-32728,1600,-32728,1600,-32728,1600,-32728,
-                                  1143,-32748,1143,-32748,1143,-32748,1143,-32748,
-                                  686,-32760,686,-32760,686,-32760,686,-32760,
-                                  228,-32767,228,-32767,228,-32767,228,-32767,
-                                  -229,-32767,-229,-32767,-229,-32767,-229,-32767,
-                                  -687,-32760,-687,-32760,-687,-32760,-687,-32760,
-                                  -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748,
-                                  -1601,-32728,-1601,-32728,-1601,-32728,-1601,-32728,
-                                  -2058,-32703,-2058,-32703,-2058,-32703,-2058,-32703,
-                                  -2514,-32671,-2514,-32671,-2514,-32671,-2514,-32671,
-                                  -2970,-32633,-2970,-32633,-2970,-32633,-2970,-32633,
-                                  -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588,
-                                  -3880,-32537,-3880,-32537,-3880,-32537,-3880,-32537,
-                                  -4334,-32480,-4334,-32480,-4334,-32480,-4334,-32480,
-                                  -4787,-32416,-4787,-32416,-4787,-32416,-4787,-32416,
-                                  -5239,-32346,-5239,-32346,-5239,-32346,-5239,-32346,
-                                  -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                  -6140,-32187,-6140,-32187,-6140,-32187,-6140,-32187,
-                                  -6589,-32098,-6589,-32098,-6589,-32098,-6589,-32098,
-                                  -7037,-32003,-7037,-32003,-7037,-32003,-7037,-32003,
-                                  -7483,-31902,-7483,-31902,-7483,-31902,-7483,-31902,
-                                  -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794,
-                                  -8371,-31680,-8371,-31680,-8371,-31680,-8371,-31680,
-                                  -8812,-31560,-8812,-31560,-8812,-31560,-8812,-31560,
-                                  -9252,-31434,-9252,-31434,-9252,-31434,-9252,-31434,
-                                  -9690,-31302,-9690,-31302,-9690,-31302,-9690,-31302,
-                                  -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164,
-                                  -10560,-31019,-10560,-31019,-10560,-31019,-10560,-31019,
-                                  -10992,-30869,-10992,-30869,-10992,-30869,-10992,-30869,
-                                  -11422,-30712,-11422,-30712,-11422,-30712,-11422,-30712,
-                                  -11850,-30550,-11850,-30550,-11850,-30550,-11850,-30550,
-                                  -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382,
-                                  -12698,-30207,-12698,-30207,-12698,-30207,-12698,-30207,
-                                  -13119,-30027,-13119,-30027,-13119,-30027,-13119,-30027,
-                                  -13537,-29841,-13537,-29841,-13537,-29841,-13537,-29841,
-                                  -13952,-29649,-13952,-29649,-13952,-29649,-13952,-29649,
-                                  -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451,
-                                  -14774,-29248,-14774,-29248,-14774,-29248,-14774,-29248,
-                                  -15181,-29039,-15181,-29039,-15181,-29039,-15181,-29039,
-                                  -15585,-28824,-15585,-28824,-15585,-28824,-15585,-28824,
-                                  -15986,-28604,-15986,-28604,-15986,-28604,-15986,-28604,
-                                  -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                                  -16779,-28146,-16779,-28146,-16779,-28146,-16779,-28146,
-                                  -17170,-27909,-17170,-27909,-17170,-27909,-17170,-27909,
-                                  -17558,-27667,-17558,-27667,-17558,-27667,-17558,-27667,
-                                  -17943,-27419,-17943,-27419,-17943,-27419,-17943,-27419,
-                                  -18324,-27166,-18324,-27166,-18324,-27166,-18324,-27166,
-                                  -18701,-26907,-18701,-26907,-18701,-26907,-18701,-26907,
-                                  -19075,-26643,-19075,-26643,-19075,-26643,-19075,-26643,
-                                  -19445,-26374,-19445,-26374,-19445,-26374,-19445,-26374,
-                                  -19811,-26100,-19811,-26100,-19811,-26100,-19811,-26100,
-                                  -20174,-25821,-20174,-25821,-20174,-25821,-20174,-25821,
-                                  -20532,-25537,-20532,-25537,-20532,-25537,-20532,-25537,
-                                  -20887,-25248,-20887,-25248,-20887,-25248,-20887,-25248,
-                                  -21237,-24954,-21237,-24954,-21237,-24954,-21237,-24954,
-                                  -21584,-24655,-21584,-24655,-21584,-24655,-21584,-24655,
-                                  -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351,
-                                  -22264,-24043,-22264,-24043,-22264,-24043,-22264,-24043,
-                                  -22597,-23729,-22597,-23729,-22597,-23729,-22597,-23729,
-                                  -22926,-23412,-22926,-23412,-22926,-23412,-22926,-23412,
-                                  -23251,-23089,-23251,-23089,-23251,-23089,-23251,-23089,
-                                  -23571,-22762,-23571,-22762,-23571,-22762,-23571,-22762,
-                                  -23887,-22431,-23887,-22431,-23887,-22431,-23887,-22431,
-                                  -24197,-22095,-24197,-22095,-24197,-22095,-24197,-22095,
-                                  -24504,-21755,-24504,-21755,-24504,-21755,-24504,-21755,
-                                  -24805,-21411,-24805,-21411,-24805,-21411,-24805,-21411,
-                                  -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063,
-                                  -25393,-20710,-25393,-20710,-25393,-20710,-25393,-20710,
-                                  -25680,-20354,-25680,-20354,-25680,-20354,-25680,-20354,
-                                  -25961,-19993,-25961,-19993,-25961,-19993,-25961,-19993,
-                                  -26238,-19629,-26238,-19629,-26238,-19629,-26238,-19629,
-                                  -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260,
-                                  -26776,-18888,-26776,-18888,-26776,-18888,-26776,-18888,
-                                  -27037,-18513,-27037,-18513,-27037,-18513,-27037,-18513,
-                                  -27293,-18133,-27293,-18133,-27293,-18133,-27293,-18133,
-                                  -27543,-17751,-27543,-17751,-27543,-17751,-27543,-17751,
-                                  -27788,-17364,-27788,-17364,-27788,-17364,-27788,-17364,
-                                  -28028,-16975,-28028,-16975,-28028,-16975,-28028,-16975,
-                                  -28262,-16582,-28262,-16582,-28262,-16582,-28262,-16582,
-                                  -28491,-16185,-28491,-16185,-28491,-16185,-28491,-16185,
-                                  -28714,-15786,-28714,-15786,-28714,-15786,-28714,-15786,
-                                  -28932,-15384,-28932,-15384,-28932,-15384,-28932,-15384,
-                                  -29144,-14978,-29144,-14978,-29144,-14978,-29144,-14978,
-                                  -29350,-14570,-29350,-14570,-29350,-14570,-29350,-14570,
-                                  -29551,-14159,-29551,-14159,-29551,-14159,-29551,-14159,
-                                  -29746,-13745,-29746,-13745,-29746,-13745,-29746,-13745,
-                                  -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328,
-                                  -30118,-12909,-30118,-12909,-30118,-12909,-30118,-12909,
-                                  -30295,-12487,-30295,-12487,-30295,-12487,-30295,-12487,
-                                  -30466,-12063,-30466,-12063,-30466,-12063,-30466,-12063,
-                                  -30632,-11636,-30632,-11636,-30632,-11636,-30632,-11636,
-                                  -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207,
-                                  -30945,-10776,-30945,-10776,-30945,-10776,-30945,-10776,
-                                  -31092,-10343,-31092,-10343,-31092,-10343,-31092,-10343,
-                                  -31234,-9908,-31234,-9908,-31234,-9908,-31234,-9908,
-                                  -31369,-9471,-31369,-9471,-31369,-9471,-31369,-9471,
-                                  -31498,-9032,-31498,-9032,-31498,-9032,-31498,-9032,
-                                  -31621,-8592,-31621,-8592,-31621,-8592,-31621,-8592,
-                                  -31738,-8149,-31738,-8149,-31738,-8149,-31738,-8149,
-                                  -31849,-7705,-31849,-7705,-31849,-7705,-31849,-7705,
-                                  -31953,-7260,-31953,-7260,-31953,-7260,-31953,-7260,
-                                  -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813,
-                                  -32143,-6365,-32143,-6365,-32143,-6365,-32143,-6365,
-                                  -32229,-5916,-32229,-5916,-32229,-5916,-32229,-5916,
-                                  -32309,-5465,-32309,-5465,-32309,-5465,-32309,-5465,
-                                  -32382,-5013,-32382,-5013,-32382,-5013,-32382,-5013,
-                                  -32449,-4561,-32449,-4561,-32449,-4561,-32449,-4561,
-                                  -32509,-4107,-32509,-4107,-32509,-4107,-32509,-4107,
-                                  -32563,-3653,-32563,-3653,-32563,-3653,-32563,-3653,
-                                  -32611,-3198,-32611,-3198,-32611,-3198,-32611,-3198,
-                                  -32653,-2742,-32653,-2742,-32653,-2742,-32653,-2742,
-                                  -32688,-2286,-32688,-2286,-32688,-2286,-32688,-2286,
-                                  -32716,-1830,-32716,-1830,-32716,-1830,-32716,-1830,
-                                  -32739,-1373,-32739,-1373,-32739,-1373,-32739,-1373,
-                                  -32755,-915,-32755,-915,-32755,-915,-32755,-915,
-                                  -32764,-458,-32764,-458,-32764,-458,-32764,-458,
-                                  -32767,-1,-32767,-1,-32767,-1,-32767,-1,
-                                  -32764,457,-32764,457,-32764,457,-32764,457,
-                                  -32755,914,-32755,914,-32755,914,-32755,914,
-                                  -32739,1372,-32739,1372,-32739,1372,-32739,1372,
-                                  -32716,1829,-32716,1829,-32716,1829,-32716,1829,
-                                  -32688,2285,-32688,2285,-32688,2285,-32688,2285,
-                                  -32653,2741,-32653,2741,-32653,2741,-32653,2741,
-                                  -32611,3197,-32611,3197,-32611,3197,-32611,3197,
-                                  -32563,3652,-32563,3652,-32563,3652,-32563,3652,
-                                  -32509,4106,-32509,4106,-32509,4106,-32509,4106,
-                                  -32449,4560,-32449,4560,-32449,4560,-32449,4560,
-                                  -32382,5012,-32382,5012,-32382,5012,-32382,5012,
-                                  -32309,5464,-32309,5464,-32309,5464,-32309,5464,
-                                  -32229,5915,-32229,5915,-32229,5915,-32229,5915,
-                                  -32143,6364,-32143,6364,-32143,6364,-32143,6364,
-                                  -32051,6812,-32051,6812,-32051,6812,-32051,6812,
-                                  -31953,7259,-31953,7259,-31953,7259,-31953,7259,
-                                  -31849,7704,-31849,7704,-31849,7704,-31849,7704,
-                                  -31738,8148,-31738,8148,-31738,8148,-31738,8148,
-                                  -31621,8591,-31621,8591,-31621,8591,-31621,8591,
-                                  -31498,9031,-31498,9031,-31498,9031,-31498,9031,
-                                  -31369,9470,-31369,9470,-31369,9470,-31369,9470,
-                                  -31234,9907,-31234,9907,-31234,9907,-31234,9907,
-                                  -31092,10342,-31092,10342,-31092,10342,-31092,10342,
-                                  -30945,10775,-30945,10775,-30945,10775,-30945,10775,
-                                  -30791,11206,-30791,11206,-30791,11206,-30791,11206,
-                                  -30632,11635,-30632,11635,-30632,11635,-30632,11635,
-                                  -30466,12062,-30466,12062,-30466,12062,-30466,12062,
-                                  -30295,12486,-30295,12486,-30295,12486,-30295,12486,
-                                  -30118,12908,-30118,12908,-30118,12908,-30118,12908,
-                                  -29935,13327,-29935,13327,-29935,13327,-29935,13327,
-                                  -29746,13744,-29746,13744,-29746,13744,-29746,13744,
-                                  -29551,14158,-29551,14158,-29551,14158,-29551,14158,
-                                  -29350,14569,-29350,14569,-29350,14569,-29350,14569,
-                                  -29144,14977,-29144,14977,-29144,14977,-29144,14977,
-                                  -28932,15383,-28932,15383,-28932,15383,-28932,15383,
-                                  -28714,15785,-28714,15785,-28714,15785,-28714,15785,
-                                  -28491,16184,-28491,16184,-28491,16184,-28491,16184,
-                                  -28262,16581,-28262,16581,-28262,16581,-28262,16581,
-                                  -28028,16974,-28028,16974,-28028,16974,-28028,16974,
-                                  -27788,17363,-27788,17363,-27788,17363,-27788,17363,
-                                  -27543,17750,-27543,17750,-27543,17750,-27543,17750,
-                                  -27293,18132,-27293,18132,-27293,18132,-27293,18132,
-                                  -27037,18512,-27037,18512,-27037,18512,-27037,18512,
-                                  -26776,18887,-26776,18887,-26776,18887,-26776,18887,
-                                  -26510,19259,-26510,19259,-26510,19259,-26510,19259,
-                                  -26238,19628,-26238,19628,-26238,19628,-26238,19628,
-                                  -25961,19992,-25961,19992,-25961,19992,-25961,19992,
-                                  -25680,20353,-25680,20353,-25680,20353,-25680,20353,
-                                  -25393,20709,-25393,20709,-25393,20709,-25393,20709,
-                                  -25101,21062,-25101,21062,-25101,21062,-25101,21062,
-                                  -24805,21410,-24805,21410,-24805,21410,-24805,21410,
-                                  -24504,21754,-24504,21754,-24504,21754,-24504,21754,
-                                  -24197,22094,-24197,22094,-24197,22094,-24197,22094,
-                                  -23887,22430,-23887,22430,-23887,22430,-23887,22430,
-                                  -23571,22761,-23571,22761,-23571,22761,-23571,22761,
-                                  -23251,23088,-23251,23088,-23251,23088,-23251,23088,
-                                  -22926,23411,-22926,23411,-22926,23411,-22926,23411,
-                                  -22597,23728,-22597,23728,-22597,23728,-22597,23728,
-                                  -22264,24042,-22264,24042,-22264,24042,-22264,24042,
-                                  -21926,24350,-21926,24350,-21926,24350,-21926,24350,
-                                  -21584,24654,-21584,24654,-21584,24654,-21584,24654,
-                                  -21237,24953,-21237,24953,-21237,24953,-21237,24953,
-                                  -20887,25247,-20887,25247,-20887,25247,-20887,25247,
-                                  -20532,25536,-20532,25536,-20532,25536,-20532,25536,
-                                  -20174,25820,-20174,25820,-20174,25820,-20174,25820,
-                                  -19811,26099,-19811,26099,-19811,26099,-19811,26099,
-                                  -19445,26373,-19445,26373,-19445,26373,-19445,26373,
-                                  -19075,26642,-19075,26642,-19075,26642,-19075,26642,
-                                  -18701,26906,-18701,26906,-18701,26906,-18701,26906,
-                                  -18324,27165,-18324,27165,-18324,27165,-18324,27165,
-                                  -17943,27418,-17943,27418,-17943,27418,-17943,27418,
-                                  -17558,27666,-17558,27666,-17558,27666,-17558,27666,
-                                  -17170,27908,-17170,27908,-17170,27908,-17170,27908,
-                                  -16779,28145,-16779,28145,-16779,28145,-16779,28145
-                                 };
+static int16_t twa900[299*2*4];
+static int16_t twb900[299*2*4];
 
 void dft900(int16_t *x,int16_t *y,unsigned char scale_flag)  // 300 x 3
 {
@@ -14266,762 +8220,10 @@ void dft900(int16_t *x,int16_t *y,unsigned char scale_flag)  // 300 x 3
 };
 
 
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:239)/960));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:239)/960));
-twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(1:239)/960));
-twa2 = zeros(1,2*239);
-twb2 = zeros(1,2*239);
-twc2 = zeros(1,2*239);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-twc2(1:2:end) = real(twc);
-twc2(2:2:end) = imag(twc);
-fd=fopen("twiddle_tmp.txt","w");
-fprintf(fd,"static int16_t twa960[239*2*4] = {");
-for i=1:2:(2*238)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-fprintf(fd,"\nstatic int16_t twb960[239*2*4] = {");
-for i=1:2:(2*238)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-fprintf(fd,"\nstatic int16_t twc960[239*2*4] = {");
-for i=1:2:(2*238)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1));
-fclose(fd);
-*/
-static int16_t twa960[239*2*4] = {32766,-215,32766,-215,32766,-215,32766,-215,
-                                  32764,-429,32764,-429,32764,-429,32764,-429,
-                                  32760,-644,32760,-644,32760,-644,32760,-644,
-                                  32755,-858,32755,-858,32755,-858,32755,-858,
-                                  32749,-1073,32749,-1073,32749,-1073,32749,-1073,
-                                  32741,-1287,32741,-1287,32741,-1287,32741,-1287,
-                                  32732,-1501,32732,-1501,32732,-1501,32732,-1501,
-                                  32722,-1715,32722,-1715,32722,-1715,32722,-1715,
-                                  32710,-1930,32710,-1930,32710,-1930,32710,-1930,
-                                  32696,-2144,32696,-2144,32696,-2144,32696,-2144,
-                                  32682,-2358,32682,-2358,32682,-2358,32682,-2358,
-                                  32665,-2571,32665,-2571,32665,-2571,32665,-2571,
-                                  32648,-2785,32648,-2785,32648,-2785,32648,-2785,
-                                  32629,-2999,32629,-2999,32629,-2999,32629,-2999,
-                                  32609,-3212,32609,-3212,32609,-3212,32609,-3212,
-                                  32587,-3426,32587,-3426,32587,-3426,32587,-3426,
-                                  32564,-3639,32564,-3639,32564,-3639,32564,-3639,
-                                  32539,-3852,32539,-3852,32539,-3852,32539,-3852,
-                                  32513,-4065,32513,-4065,32513,-4065,32513,-4065,
-                                  32486,-4277,32486,-4277,32486,-4277,32486,-4277,
-                                  32457,-4490,32457,-4490,32457,-4490,32457,-4490,
-                                  32427,-4702,32427,-4702,32427,-4702,32427,-4702,
-                                  32396,-4914,32396,-4914,32396,-4914,32396,-4914,
-                                  32363,-5126,32363,-5126,32363,-5126,32363,-5126,
-                                  32329,-5338,32329,-5338,32329,-5338,32329,-5338,
-                                  32293,-5550,32293,-5550,32293,-5550,32293,-5550,
-                                  32256,-5761,32256,-5761,32256,-5761,32256,-5761,
-                                  32218,-5972,32218,-5972,32218,-5972,32218,-5972,
-                                  32178,-6183,32178,-6183,32178,-6183,32178,-6183,
-                                  32137,-6393,32137,-6393,32137,-6393,32137,-6393,
-                                  32094,-6603,32094,-6603,32094,-6603,32094,-6603,
-                                  32050,-6813,32050,-6813,32050,-6813,32050,-6813,
-                                  32005,-7023,32005,-7023,32005,-7023,32005,-7023,
-                                  31959,-7232,31959,-7232,31959,-7232,31959,-7232,
-                                  31911,-7441,31911,-7441,31911,-7441,31911,-7441,
-                                  31861,-7650,31861,-7650,31861,-7650,31861,-7650,
-                                  31810,-7858,31810,-7858,31810,-7858,31810,-7858,
-                                  31758,-8066,31758,-8066,31758,-8066,31758,-8066,
-                                  31705,-8274,31705,-8274,31705,-8274,31705,-8274,
-                                  31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                  31594,-8688,31594,-8688,31594,-8688,31594,-8688,
-                                  31536,-8895,31536,-8895,31536,-8895,31536,-8895,
-                                  31477,-9101,31477,-9101,31477,-9101,31477,-9101,
-                                  31417,-9307,31417,-9307,31417,-9307,31417,-9307,
-                                  31356,-9512,31356,-9512,31356,-9512,31356,-9512,
-                                  31293,-9717,31293,-9717,31293,-9717,31293,-9717,
-                                  31228,-9922,31228,-9922,31228,-9922,31228,-9922,
-                                  31163,-10126,31163,-10126,31163,-10126,31163,-10126,
-                                  31096,-10330,31096,-10330,31096,-10330,31096,-10330,
-                                  31028,-10533,31028,-10533,31028,-10533,31028,-10533,
-                                  30958,-10736,30958,-10736,30958,-10736,30958,-10736,
-                                  30887,-10938,30887,-10938,30887,-10938,30887,-10938,
-                                  30815,-11140,30815,-11140,30815,-11140,30815,-11140,
-                                  30741,-11342,30741,-11342,30741,-11342,30741,-11342,
-                                  30666,-11543,30666,-11543,30666,-11543,30666,-11543,
-                                  30590,-11743,30590,-11743,30590,-11743,30590,-11743,
-                                  30513,-11943,30513,-11943,30513,-11943,30513,-11943,
-                                  30434,-12143,30434,-12143,30434,-12143,30434,-12143,
-                                  30354,-12341,30354,-12341,30354,-12341,30354,-12341,
-                                  30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                  30190,-12738,30190,-12738,30190,-12738,30190,-12738,
-                                  30106,-12935,30106,-12935,30106,-12935,30106,-12935,
-                                  30020,-13132,30020,-13132,30020,-13132,30020,-13132,
-                                  29934,-13328,29934,-13328,29934,-13328,29934,-13328,
-                                  29846,-13524,29846,-13524,29846,-13524,29846,-13524,
-                                  29757,-13719,29757,-13719,29757,-13719,29757,-13719,
-                                  29666,-13913,29666,-13913,29666,-13913,29666,-13913,
-                                  29575,-14107,29575,-14107,29575,-14107,29575,-14107,
-                                  29482,-14300,29482,-14300,29482,-14300,29482,-14300,
-                                  29387,-14493,29387,-14493,29387,-14493,29387,-14493,
-                                  29292,-14685,29292,-14685,29292,-14685,29292,-14685,
-                                  29195,-14876,29195,-14876,29195,-14876,29195,-14876,
-                                  29097,-15067,29097,-15067,29097,-15067,29097,-15067,
-                                  28998,-15257,28998,-15257,28998,-15257,28998,-15257,
-                                  28897,-15447,28897,-15447,28897,-15447,28897,-15447,
-                                  28796,-15636,28796,-15636,28796,-15636,28796,-15636,
-                                  28693,-15824,28693,-15824,28693,-15824,28693,-15824,
-                                  28589,-16011,28589,-16011,28589,-16011,28589,-16011,
-                                  28483,-16198,28483,-16198,28483,-16198,28483,-16198,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  28269,-16569,28269,-16569,28269,-16569,28269,-16569,
-                                  28160,-16754,28160,-16754,28160,-16754,28160,-16754,
-                                  28049,-16938,28049,-16938,28049,-16938,28049,-16938,
-                                  27938,-17121,27938,-17121,27938,-17121,27938,-17121,
-                                  27825,-17304,27825,-17304,27825,-17304,27825,-17304,
-                                  27711,-17485,27711,-17485,27711,-17485,27711,-17485,
-                                  27596,-17666,27596,-17666,27596,-17666,27596,-17666,
-                                  27480,-17847,27480,-17847,27480,-17847,27480,-17847,
-                                  27363,-18026,27363,-18026,27363,-18026,27363,-18026,
-                                  27244,-18205,27244,-18205,27244,-18205,27244,-18205,
-                                  27125,-18383,27125,-18383,27125,-18383,27125,-18383,
-                                  27004,-18560,27004,-18560,27004,-18560,27004,-18560,
-                                  26882,-18736,26882,-18736,26882,-18736,26882,-18736,
-                                  26758,-18912,26758,-18912,26758,-18912,26758,-18912,
-                                  26634,-19087,26634,-19087,26634,-19087,26634,-19087,
-                                  26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                                  26382,-19434,26382,-19434,26382,-19434,26382,-19434,
-                                  26254,-19606,26254,-19606,26254,-19606,26254,-19606,
-                                  26125,-19777,26125,-19777,26125,-19777,26125,-19777,
-                                  25995,-19948,25995,-19948,25995,-19948,25995,-19948,
-                                  25864,-20117,25864,-20117,25864,-20117,25864,-20117,
-                                  25732,-20286,25732,-20286,25732,-20286,25732,-20286,
-                                  25599,-20454,25599,-20454,25599,-20454,25599,-20454,
-                                  25464,-20621,25464,-20621,25464,-20621,25464,-20621,
-                                  25329,-20788,25329,-20788,25329,-20788,25329,-20788,
-                                  25192,-20953,25192,-20953,25192,-20953,25192,-20953,
-                                  25054,-21117,25054,-21117,25054,-21117,25054,-21117,
-                                  24916,-21281,24916,-21281,24916,-21281,24916,-21281,
-                                  24776,-21444,24776,-21444,24776,-21444,24776,-21444,
-                                  24635,-21605,24635,-21605,24635,-21605,24635,-21605,
-                                  24493,-21766,24493,-21766,24493,-21766,24493,-21766,
-                                  24350,-21926,24350,-21926,24350,-21926,24350,-21926,
-                                  24206,-22085,24206,-22085,24206,-22085,24206,-22085,
-                                  24061,-22243,24061,-22243,24061,-22243,24061,-22243,
-                                  23915,-22400,23915,-22400,23915,-22400,23915,-22400,
-                                  23768,-22556,23768,-22556,23768,-22556,23768,-22556,
-                                  23620,-22711,23620,-22711,23620,-22711,23620,-22711,
-                                  23471,-22865,23471,-22865,23471,-22865,23471,-22865,
-                                  23320,-23018,23320,-23018,23320,-23018,23320,-23018,
-                                  23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                  23017,-23321,23017,-23321,23017,-23321,23017,-23321,
-                                  22864,-23472,22864,-23472,22864,-23472,22864,-23472,
-                                  22710,-23621,22710,-23621,22710,-23621,22710,-23621,
-                                  22555,-23769,22555,-23769,22555,-23769,22555,-23769,
-                                  22399,-23916,22399,-23916,22399,-23916,22399,-23916,
-                                  22242,-24062,22242,-24062,22242,-24062,22242,-24062,
-                                  22084,-24207,22084,-24207,22084,-24207,22084,-24207,
-                                  21925,-24351,21925,-24351,21925,-24351,21925,-24351,
-                                  21765,-24494,21765,-24494,21765,-24494,21765,-24494,
-                                  21604,-24636,21604,-24636,21604,-24636,21604,-24636,
-                                  21443,-24777,21443,-24777,21443,-24777,21443,-24777,
-                                  21280,-24917,21280,-24917,21280,-24917,21280,-24917,
-                                  21116,-25055,21116,-25055,21116,-25055,21116,-25055,
-                                  20952,-25193,20952,-25193,20952,-25193,20952,-25193,
-                                  20787,-25330,20787,-25330,20787,-25330,20787,-25330,
-                                  20620,-25465,20620,-25465,20620,-25465,20620,-25465,
-                                  20453,-25600,20453,-25600,20453,-25600,20453,-25600,
-                                  20285,-25733,20285,-25733,20285,-25733,20285,-25733,
-                                  20116,-25865,20116,-25865,20116,-25865,20116,-25865,
-                                  19947,-25996,19947,-25996,19947,-25996,19947,-25996,
-                                  19776,-26126,19776,-26126,19776,-26126,19776,-26126,
-                                  19605,-26255,19605,-26255,19605,-26255,19605,-26255,
-                                  19433,-26383,19433,-26383,19433,-26383,19433,-26383,
-                                  19259,-26510,19259,-26510,19259,-26510,19259,-26510,
-                                  19086,-26635,19086,-26635,19086,-26635,19086,-26635,
-                                  18911,-26759,18911,-26759,18911,-26759,18911,-26759,
-                                  18735,-26883,18735,-26883,18735,-26883,18735,-26883,
-                                  18559,-27005,18559,-27005,18559,-27005,18559,-27005,
-                                  18382,-27126,18382,-27126,18382,-27126,18382,-27126,
-                                  18204,-27245,18204,-27245,18204,-27245,18204,-27245,
-                                  18025,-27364,18025,-27364,18025,-27364,18025,-27364,
-                                  17846,-27481,17846,-27481,17846,-27481,17846,-27481,
-                                  17665,-27597,17665,-27597,17665,-27597,17665,-27597,
-                                  17484,-27712,17484,-27712,17484,-27712,17484,-27712,
-                                  17303,-27826,17303,-27826,17303,-27826,17303,-27826,
-                                  17120,-27939,17120,-27939,17120,-27939,17120,-27939,
-                                  16937,-28050,16937,-28050,16937,-28050,16937,-28050,
-                                  16753,-28161,16753,-28161,16753,-28161,16753,-28161,
-                                  16568,-28270,16568,-28270,16568,-28270,16568,-28270,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  16197,-28484,16197,-28484,16197,-28484,16197,-28484,
-                                  16010,-28590,16010,-28590,16010,-28590,16010,-28590,
-                                  15823,-28694,15823,-28694,15823,-28694,15823,-28694,
-                                  15635,-28797,15635,-28797,15635,-28797,15635,-28797,
-                                  15446,-28898,15446,-28898,15446,-28898,15446,-28898,
-                                  15256,-28999,15256,-28999,15256,-28999,15256,-28999,
-                                  15066,-29098,15066,-29098,15066,-29098,15066,-29098,
-                                  14875,-29196,14875,-29196,14875,-29196,14875,-29196,
-                                  14684,-29293,14684,-29293,14684,-29293,14684,-29293,
-                                  14492,-29388,14492,-29388,14492,-29388,14492,-29388,
-                                  14299,-29483,14299,-29483,14299,-29483,14299,-29483,
-                                  14106,-29576,14106,-29576,14106,-29576,14106,-29576,
-                                  13912,-29667,13912,-29667,13912,-29667,13912,-29667,
-                                  13718,-29758,13718,-29758,13718,-29758,13718,-29758,
-                                  13523,-29847,13523,-29847,13523,-29847,13523,-29847,
-                                  13327,-29935,13327,-29935,13327,-29935,13327,-29935,
-                                  13131,-30021,13131,-30021,13131,-30021,13131,-30021,
-                                  12934,-30107,12934,-30107,12934,-30107,12934,-30107,
-                                  12737,-30191,12737,-30191,12737,-30191,12737,-30191,
-                                  12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                  12340,-30355,12340,-30355,12340,-30355,12340,-30355,
-                                  12142,-30435,12142,-30435,12142,-30435,12142,-30435,
-                                  11942,-30514,11942,-30514,11942,-30514,11942,-30514,
-                                  11742,-30591,11742,-30591,11742,-30591,11742,-30591,
-                                  11542,-30667,11542,-30667,11542,-30667,11542,-30667,
-                                  11341,-30742,11341,-30742,11341,-30742,11341,-30742,
-                                  11139,-30816,11139,-30816,11139,-30816,11139,-30816,
-                                  10937,-30888,10937,-30888,10937,-30888,10937,-30888,
-                                  10735,-30959,10735,-30959,10735,-30959,10735,-30959,
-                                  10532,-31029,10532,-31029,10532,-31029,10532,-31029,
-                                  10329,-31097,10329,-31097,10329,-31097,10329,-31097,
-                                  10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                                  9921,-31229,9921,-31229,9921,-31229,9921,-31229,
-                                  9716,-31294,9716,-31294,9716,-31294,9716,-31294,
-                                  9511,-31357,9511,-31357,9511,-31357,9511,-31357,
-                                  9306,-31418,9306,-31418,9306,-31418,9306,-31418,
-                                  9100,-31478,9100,-31478,9100,-31478,9100,-31478,
-                                  8894,-31537,8894,-31537,8894,-31537,8894,-31537,
-                                  8687,-31595,8687,-31595,8687,-31595,8687,-31595,
-                                  8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                  8273,-31706,8273,-31706,8273,-31706,8273,-31706,
-                                  8065,-31759,8065,-31759,8065,-31759,8065,-31759,
-                                  7857,-31811,7857,-31811,7857,-31811,7857,-31811,
-                                  7649,-31862,7649,-31862,7649,-31862,7649,-31862,
-                                  7440,-31912,7440,-31912,7440,-31912,7440,-31912,
-                                  7231,-31960,7231,-31960,7231,-31960,7231,-31960,
-                                  7022,-32006,7022,-32006,7022,-32006,7022,-32006,
-                                  6812,-32051,6812,-32051,6812,-32051,6812,-32051,
-                                  6602,-32095,6602,-32095,6602,-32095,6602,-32095,
-                                  6392,-32138,6392,-32138,6392,-32138,6392,-32138,
-                                  6182,-32179,6182,-32179,6182,-32179,6182,-32179,
-                                  5971,-32219,5971,-32219,5971,-32219,5971,-32219,
-                                  5760,-32257,5760,-32257,5760,-32257,5760,-32257,
-                                  5549,-32294,5549,-32294,5549,-32294,5549,-32294,
-                                  5337,-32330,5337,-32330,5337,-32330,5337,-32330,
-                                  5125,-32364,5125,-32364,5125,-32364,5125,-32364,
-                                  4913,-32397,4913,-32397,4913,-32397,4913,-32397,
-                                  4701,-32428,4701,-32428,4701,-32428,4701,-32428,
-                                  4489,-32458,4489,-32458,4489,-32458,4489,-32458,
-                                  4276,-32487,4276,-32487,4276,-32487,4276,-32487,
-                                  4064,-32514,4064,-32514,4064,-32514,4064,-32514,
-                                  3851,-32540,3851,-32540,3851,-32540,3851,-32540,
-                                  3638,-32565,3638,-32565,3638,-32565,3638,-32565,
-                                  3425,-32588,3425,-32588,3425,-32588,3425,-32588,
-                                  3211,-32610,3211,-32610,3211,-32610,3211,-32610,
-                                  2998,-32630,2998,-32630,2998,-32630,2998,-32630,
-                                  2784,-32649,2784,-32649,2784,-32649,2784,-32649,
-                                  2570,-32666,2570,-32666,2570,-32666,2570,-32666,
-                                  2357,-32683,2357,-32683,2357,-32683,2357,-32683,
-                                  2143,-32697,2143,-32697,2143,-32697,2143,-32697,
-                                  1929,-32711,1929,-32711,1929,-32711,1929,-32711,
-                                  1714,-32723,1714,-32723,1714,-32723,1714,-32723,
-                                  1500,-32733,1500,-32733,1500,-32733,1500,-32733,
-                                  1286,-32742,1286,-32742,1286,-32742,1286,-32742,
-                                  1072,-32750,1072,-32750,1072,-32750,1072,-32750,
-                                  857,-32756,857,-32756,857,-32756,857,-32756,
-                                  643,-32761,643,-32761,643,-32761,643,-32761,
-                                  428,-32765,428,-32765,428,-32765,428,-32765,
-                                  214,-32767,214,-32767,214,-32767,214,-32767
-                                 };
-
-static int16_t twb960[239*2*4] = {32764,-429,32764,-429,32764,-429,32764,-429,
-                                  32755,-858,32755,-858,32755,-858,32755,-858,
-                                  32741,-1287,32741,-1287,32741,-1287,32741,-1287,
-                                  32722,-1715,32722,-1715,32722,-1715,32722,-1715,
-                                  32696,-2144,32696,-2144,32696,-2144,32696,-2144,
-                                  32665,-2571,32665,-2571,32665,-2571,32665,-2571,
-                                  32629,-2999,32629,-2999,32629,-2999,32629,-2999,
-                                  32587,-3426,32587,-3426,32587,-3426,32587,-3426,
-                                  32539,-3852,32539,-3852,32539,-3852,32539,-3852,
-                                  32486,-4277,32486,-4277,32486,-4277,32486,-4277,
-                                  32427,-4702,32427,-4702,32427,-4702,32427,-4702,
-                                  32363,-5126,32363,-5126,32363,-5126,32363,-5126,
-                                  32293,-5550,32293,-5550,32293,-5550,32293,-5550,
-                                  32218,-5972,32218,-5972,32218,-5972,32218,-5972,
-                                  32137,-6393,32137,-6393,32137,-6393,32137,-6393,
-                                  32050,-6813,32050,-6813,32050,-6813,32050,-6813,
-                                  31959,-7232,31959,-7232,31959,-7232,31959,-7232,
-                                  31861,-7650,31861,-7650,31861,-7650,31861,-7650,
-                                  31758,-8066,31758,-8066,31758,-8066,31758,-8066,
-                                  31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                  31536,-8895,31536,-8895,31536,-8895,31536,-8895,
-                                  31417,-9307,31417,-9307,31417,-9307,31417,-9307,
-                                  31293,-9717,31293,-9717,31293,-9717,31293,-9717,
-                                  31163,-10126,31163,-10126,31163,-10126,31163,-10126,
-                                  31028,-10533,31028,-10533,31028,-10533,31028,-10533,
-                                  30887,-10938,30887,-10938,30887,-10938,30887,-10938,
-                                  30741,-11342,30741,-11342,30741,-11342,30741,-11342,
-                                  30590,-11743,30590,-11743,30590,-11743,30590,-11743,
-                                  30434,-12143,30434,-12143,30434,-12143,30434,-12143,
-                                  30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                  30106,-12935,30106,-12935,30106,-12935,30106,-12935,
-                                  29934,-13328,29934,-13328,29934,-13328,29934,-13328,
-                                  29757,-13719,29757,-13719,29757,-13719,29757,-13719,
-                                  29575,-14107,29575,-14107,29575,-14107,29575,-14107,
-                                  29387,-14493,29387,-14493,29387,-14493,29387,-14493,
-                                  29195,-14876,29195,-14876,29195,-14876,29195,-14876,
-                                  28998,-15257,28998,-15257,28998,-15257,28998,-15257,
-                                  28796,-15636,28796,-15636,28796,-15636,28796,-15636,
-                                  28589,-16011,28589,-16011,28589,-16011,28589,-16011,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  28160,-16754,28160,-16754,28160,-16754,28160,-16754,
-                                  27938,-17121,27938,-17121,27938,-17121,27938,-17121,
-                                  27711,-17485,27711,-17485,27711,-17485,27711,-17485,
-                                  27480,-17847,27480,-17847,27480,-17847,27480,-17847,
-                                  27244,-18205,27244,-18205,27244,-18205,27244,-18205,
-                                  27004,-18560,27004,-18560,27004,-18560,27004,-18560,
-                                  26758,-18912,26758,-18912,26758,-18912,26758,-18912,
-                                  26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                                  26254,-19606,26254,-19606,26254,-19606,26254,-19606,
-                                  25995,-19948,25995,-19948,25995,-19948,25995,-19948,
-                                  25732,-20286,25732,-20286,25732,-20286,25732,-20286,
-                                  25464,-20621,25464,-20621,25464,-20621,25464,-20621,
-                                  25192,-20953,25192,-20953,25192,-20953,25192,-20953,
-                                  24916,-21281,24916,-21281,24916,-21281,24916,-21281,
-                                  24635,-21605,24635,-21605,24635,-21605,24635,-21605,
-                                  24350,-21926,24350,-21926,24350,-21926,24350,-21926,
-                                  24061,-22243,24061,-22243,24061,-22243,24061,-22243,
-                                  23768,-22556,23768,-22556,23768,-22556,23768,-22556,
-                                  23471,-22865,23471,-22865,23471,-22865,23471,-22865,
-                                  23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                  22864,-23472,22864,-23472,22864,-23472,22864,-23472,
-                                  22555,-23769,22555,-23769,22555,-23769,22555,-23769,
-                                  22242,-24062,22242,-24062,22242,-24062,22242,-24062,
-                                  21925,-24351,21925,-24351,21925,-24351,21925,-24351,
-                                  21604,-24636,21604,-24636,21604,-24636,21604,-24636,
-                                  21280,-24917,21280,-24917,21280,-24917,21280,-24917,
-                                  20952,-25193,20952,-25193,20952,-25193,20952,-25193,
-                                  20620,-25465,20620,-25465,20620,-25465,20620,-25465,
-                                  20285,-25733,20285,-25733,20285,-25733,20285,-25733,
-                                  19947,-25996,19947,-25996,19947,-25996,19947,-25996,
-                                  19605,-26255,19605,-26255,19605,-26255,19605,-26255,
-                                  19259,-26510,19259,-26510,19259,-26510,19259,-26510,
-                                  18911,-26759,18911,-26759,18911,-26759,18911,-26759,
-                                  18559,-27005,18559,-27005,18559,-27005,18559,-27005,
-                                  18204,-27245,18204,-27245,18204,-27245,18204,-27245,
-                                  17846,-27481,17846,-27481,17846,-27481,17846,-27481,
-                                  17484,-27712,17484,-27712,17484,-27712,17484,-27712,
-                                  17120,-27939,17120,-27939,17120,-27939,17120,-27939,
-                                  16753,-28161,16753,-28161,16753,-28161,16753,-28161,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  16010,-28590,16010,-28590,16010,-28590,16010,-28590,
-                                  15635,-28797,15635,-28797,15635,-28797,15635,-28797,
-                                  15256,-28999,15256,-28999,15256,-28999,15256,-28999,
-                                  14875,-29196,14875,-29196,14875,-29196,14875,-29196,
-                                  14492,-29388,14492,-29388,14492,-29388,14492,-29388,
-                                  14106,-29576,14106,-29576,14106,-29576,14106,-29576,
-                                  13718,-29758,13718,-29758,13718,-29758,13718,-29758,
-                                  13327,-29935,13327,-29935,13327,-29935,13327,-29935,
-                                  12934,-30107,12934,-30107,12934,-30107,12934,-30107,
-                                  12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                  12142,-30435,12142,-30435,12142,-30435,12142,-30435,
-                                  11742,-30591,11742,-30591,11742,-30591,11742,-30591,
-                                  11341,-30742,11341,-30742,11341,-30742,11341,-30742,
-                                  10937,-30888,10937,-30888,10937,-30888,10937,-30888,
-                                  10532,-31029,10532,-31029,10532,-31029,10532,-31029,
-                                  10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                                  9716,-31294,9716,-31294,9716,-31294,9716,-31294,
-                                  9306,-31418,9306,-31418,9306,-31418,9306,-31418,
-                                  8894,-31537,8894,-31537,8894,-31537,8894,-31537,
-                                  8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                  8065,-31759,8065,-31759,8065,-31759,8065,-31759,
-                                  7649,-31862,7649,-31862,7649,-31862,7649,-31862,
-                                  7231,-31960,7231,-31960,7231,-31960,7231,-31960,
-                                  6812,-32051,6812,-32051,6812,-32051,6812,-32051,
-                                  6392,-32138,6392,-32138,6392,-32138,6392,-32138,
-                                  5971,-32219,5971,-32219,5971,-32219,5971,-32219,
-                                  5549,-32294,5549,-32294,5549,-32294,5549,-32294,
-                                  5125,-32364,5125,-32364,5125,-32364,5125,-32364,
-                                  4701,-32428,4701,-32428,4701,-32428,4701,-32428,
-                                  4276,-32487,4276,-32487,4276,-32487,4276,-32487,
-                                  3851,-32540,3851,-32540,3851,-32540,3851,-32540,
-                                  3425,-32588,3425,-32588,3425,-32588,3425,-32588,
-                                  2998,-32630,2998,-32630,2998,-32630,2998,-32630,
-                                  2570,-32666,2570,-32666,2570,-32666,2570,-32666,
-                                  2143,-32697,2143,-32697,2143,-32697,2143,-32697,
-                                  1714,-32723,1714,-32723,1714,-32723,1714,-32723,
-                                  1286,-32742,1286,-32742,1286,-32742,1286,-32742,
-                                  857,-32756,857,-32756,857,-32756,857,-32756,
-                                  428,-32765,428,-32765,428,-32765,428,-32765,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -429,-32765,-429,-32765,-429,-32765,-429,-32765,
-                                  -858,-32756,-858,-32756,-858,-32756,-858,-32756,
-                                  -1287,-32742,-1287,-32742,-1287,-32742,-1287,-32742,
-                                  -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723,
-                                  -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697,
-                                  -2571,-32666,-2571,-32666,-2571,-32666,-2571,-32666,
-                                  -2999,-32630,-2999,-32630,-2999,-32630,-2999,-32630,
-                                  -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588,
-                                  -3852,-32540,-3852,-32540,-3852,-32540,-3852,-32540,
-                                  -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487,
-                                  -4702,-32428,-4702,-32428,-4702,-32428,-4702,-32428,
-                                  -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364,
-                                  -5550,-32294,-5550,-32294,-5550,-32294,-5550,-32294,
-                                  -5972,-32219,-5972,-32219,-5972,-32219,-5972,-32219,
-                                  -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138,
-                                  -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051,
-                                  -7232,-31960,-7232,-31960,-7232,-31960,-7232,-31960,
-                                  -7650,-31862,-7650,-31862,-7650,-31862,-7650,-31862,
-                                  -8066,-31759,-8066,-31759,-8066,-31759,-8066,-31759,
-                                  -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651,
-                                  -8895,-31537,-8895,-31537,-8895,-31537,-8895,-31537,
-                                  -9307,-31418,-9307,-31418,-9307,-31418,-9307,-31418,
-                                  -9717,-31294,-9717,-31294,-9717,-31294,-9717,-31294,
-                                  -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164,
-                                  -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029,
-                                  -10938,-30888,-10938,-30888,-10938,-30888,-10938,-30888,
-                                  -11342,-30742,-11342,-30742,-11342,-30742,-11342,-30742,
-                                  -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591,
-                                  -12143,-30435,-12143,-30435,-12143,-30435,-12143,-30435,
-                                  -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273,
-                                  -12935,-30107,-12935,-30107,-12935,-30107,-12935,-30107,
-                                  -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935,
-                                  -13719,-29758,-13719,-29758,-13719,-29758,-13719,-29758,
-                                  -14107,-29576,-14107,-29576,-14107,-29576,-14107,-29576,
-                                  -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388,
-                                  -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196,
-                                  -15257,-28999,-15257,-28999,-15257,-28999,-15257,-28999,
-                                  -15636,-28797,-15636,-28797,-15636,-28797,-15636,-28797,
-                                  -16011,-28590,-16011,-28590,-16011,-28590,-16011,-28590,
-                                  -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                                  -16754,-28161,-16754,-28161,-16754,-28161,-16754,-28161,
-                                  -17121,-27939,-17121,-27939,-17121,-27939,-17121,-27939,
-                                  -17485,-27712,-17485,-27712,-17485,-27712,-17485,-27712,
-                                  -17847,-27481,-17847,-27481,-17847,-27481,-17847,-27481,
-                                  -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245,
-                                  -18560,-27005,-18560,-27005,-18560,-27005,-18560,-27005,
-                                  -18912,-26759,-18912,-26759,-18912,-26759,-18912,-26759,
-                                  -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510,
-                                  -19606,-26255,-19606,-26255,-19606,-26255,-19606,-26255,
-                                  -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996,
-                                  -20286,-25733,-20286,-25733,-20286,-25733,-20286,-25733,
-                                  -20621,-25465,-20621,-25465,-20621,-25465,-20621,-25465,
-                                  -20953,-25193,-20953,-25193,-20953,-25193,-20953,-25193,
-                                  -21281,-24917,-21281,-24917,-21281,-24917,-21281,-24917,
-                                  -21605,-24636,-21605,-24636,-21605,-24636,-21605,-24636,
-                                  -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351,
-                                  -22243,-24062,-22243,-24062,-22243,-24062,-22243,-24062,
-                                  -22556,-23769,-22556,-23769,-22556,-23769,-22556,-23769,
-                                  -22865,-23472,-22865,-23472,-22865,-23472,-22865,-23472,
-                                  -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170,
-                                  -23472,-22865,-23472,-22865,-23472,-22865,-23472,-22865,
-                                  -23769,-22556,-23769,-22556,-23769,-22556,-23769,-22556,
-                                  -24062,-22243,-24062,-22243,-24062,-22243,-24062,-22243,
-                                  -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926,
-                                  -24636,-21605,-24636,-21605,-24636,-21605,-24636,-21605,
-                                  -24917,-21281,-24917,-21281,-24917,-21281,-24917,-21281,
-                                  -25193,-20953,-25193,-20953,-25193,-20953,-25193,-20953,
-                                  -25465,-20621,-25465,-20621,-25465,-20621,-25465,-20621,
-                                  -25733,-20286,-25733,-20286,-25733,-20286,-25733,-20286,
-                                  -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948,
-                                  -26255,-19606,-26255,-19606,-26255,-19606,-26255,-19606,
-                                  -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260,
-                                  -26759,-18912,-26759,-18912,-26759,-18912,-26759,-18912,
-                                  -27005,-18560,-27005,-18560,-27005,-18560,-27005,-18560,
-                                  -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205,
-                                  -27481,-17847,-27481,-17847,-27481,-17847,-27481,-17847,
-                                  -27712,-17485,-27712,-17485,-27712,-17485,-27712,-17485,
-                                  -27939,-17121,-27939,-17121,-27939,-17121,-27939,-17121,
-                                  -28161,-16754,-28161,-16754,-28161,-16754,-28161,-16754,
-                                  -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384,
-                                  -28590,-16011,-28590,-16011,-28590,-16011,-28590,-16011,
-                                  -28797,-15636,-28797,-15636,-28797,-15636,-28797,-15636,
-                                  -28999,-15257,-28999,-15257,-28999,-15257,-28999,-15257,
-                                  -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876,
-                                  -29388,-14493,-29388,-14493,-29388,-14493,-29388,-14493,
-                                  -29576,-14107,-29576,-14107,-29576,-14107,-29576,-14107,
-                                  -29758,-13719,-29758,-13719,-29758,-13719,-29758,-13719,
-                                  -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328,
-                                  -30107,-12935,-30107,-12935,-30107,-12935,-30107,-12935,
-                                  -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540,
-                                  -30435,-12143,-30435,-12143,-30435,-12143,-30435,-12143,
-                                  -30591,-11743,-30591,-11743,-30591,-11743,-30591,-11743,
-                                  -30742,-11342,-30742,-11342,-30742,-11342,-30742,-11342,
-                                  -30888,-10938,-30888,-10938,-30888,-10938,-30888,-10938,
-                                  -31029,-10533,-31029,-10533,-31029,-10533,-31029,-10533,
-                                  -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126,
-                                  -31294,-9717,-31294,-9717,-31294,-9717,-31294,-9717,
-                                  -31418,-9307,-31418,-9307,-31418,-9307,-31418,-9307,
-                                  -31537,-8895,-31537,-8895,-31537,-8895,-31537,-8895,
-                                  -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481,
-                                  -31759,-8066,-31759,-8066,-31759,-8066,-31759,-8066,
-                                  -31862,-7650,-31862,-7650,-31862,-7650,-31862,-7650,
-                                  -31960,-7232,-31960,-7232,-31960,-7232,-31960,-7232,
-                                  -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813,
-                                  -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393,
-                                  -32219,-5972,-32219,-5972,-32219,-5972,-32219,-5972,
-                                  -32294,-5550,-32294,-5550,-32294,-5550,-32294,-5550,
-                                  -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126,
-                                  -32428,-4702,-32428,-4702,-32428,-4702,-32428,-4702,
-                                  -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277,
-                                  -32540,-3852,-32540,-3852,-32540,-3852,-32540,-3852,
-                                  -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426,
-                                  -32630,-2999,-32630,-2999,-32630,-2999,-32630,-2999,
-                                  -32666,-2571,-32666,-2571,-32666,-2571,-32666,-2571,
-                                  -32697,-2144,-32697,-2144,-32697,-2144,-32697,-2144,
-                                  -32723,-1715,-32723,-1715,-32723,-1715,-32723,-1715,
-                                  -32742,-1287,-32742,-1287,-32742,-1287,-32742,-1287,
-                                  -32756,-858,-32756,-858,-32756,-858,-32756,-858,
-                                  -32765,-429,-32765,-429,-32765,-429,-32765,-429
-                                 };
-
-static int16_t twc960[239*2*4] = {32760,-644,32760,-644,32760,-644,32760,-644,
-                                  32741,-1287,32741,-1287,32741,-1287,32741,-1287,
-                                  32710,-1930,32710,-1930,32710,-1930,32710,-1930,
-                                  32665,-2571,32665,-2571,32665,-2571,32665,-2571,
-                                  32609,-3212,32609,-3212,32609,-3212,32609,-3212,
-                                  32539,-3852,32539,-3852,32539,-3852,32539,-3852,
-                                  32457,-4490,32457,-4490,32457,-4490,32457,-4490,
-                                  32363,-5126,32363,-5126,32363,-5126,32363,-5126,
-                                  32256,-5761,32256,-5761,32256,-5761,32256,-5761,
-                                  32137,-6393,32137,-6393,32137,-6393,32137,-6393,
-                                  32005,-7023,32005,-7023,32005,-7023,32005,-7023,
-                                  31861,-7650,31861,-7650,31861,-7650,31861,-7650,
-                                  31705,-8274,31705,-8274,31705,-8274,31705,-8274,
-                                  31536,-8895,31536,-8895,31536,-8895,31536,-8895,
-                                  31356,-9512,31356,-9512,31356,-9512,31356,-9512,
-                                  31163,-10126,31163,-10126,31163,-10126,31163,-10126,
-                                  30958,-10736,30958,-10736,30958,-10736,30958,-10736,
-                                  30741,-11342,30741,-11342,30741,-11342,30741,-11342,
-                                  30513,-11943,30513,-11943,30513,-11943,30513,-11943,
-                                  30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                  30020,-13132,30020,-13132,30020,-13132,30020,-13132,
-                                  29757,-13719,29757,-13719,29757,-13719,29757,-13719,
-                                  29482,-14300,29482,-14300,29482,-14300,29482,-14300,
-                                  29195,-14876,29195,-14876,29195,-14876,29195,-14876,
-                                  28897,-15447,28897,-15447,28897,-15447,28897,-15447,
-                                  28589,-16011,28589,-16011,28589,-16011,28589,-16011,
-                                  28269,-16569,28269,-16569,28269,-16569,28269,-16569,
-                                  27938,-17121,27938,-17121,27938,-17121,27938,-17121,
-                                  27596,-17666,27596,-17666,27596,-17666,27596,-17666,
-                                  27244,-18205,27244,-18205,27244,-18205,27244,-18205,
-                                  26882,-18736,26882,-18736,26882,-18736,26882,-18736,
-                                  26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                                  26125,-19777,26125,-19777,26125,-19777,26125,-19777,
-                                  25732,-20286,25732,-20286,25732,-20286,25732,-20286,
-                                  25329,-20788,25329,-20788,25329,-20788,25329,-20788,
-                                  24916,-21281,24916,-21281,24916,-21281,24916,-21281,
-                                  24493,-21766,24493,-21766,24493,-21766,24493,-21766,
-                                  24061,-22243,24061,-22243,24061,-22243,24061,-22243,
-                                  23620,-22711,23620,-22711,23620,-22711,23620,-22711,
-                                  23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                  22710,-23621,22710,-23621,22710,-23621,22710,-23621,
-                                  22242,-24062,22242,-24062,22242,-24062,22242,-24062,
-                                  21765,-24494,21765,-24494,21765,-24494,21765,-24494,
-                                  21280,-24917,21280,-24917,21280,-24917,21280,-24917,
-                                  20787,-25330,20787,-25330,20787,-25330,20787,-25330,
-                                  20285,-25733,20285,-25733,20285,-25733,20285,-25733,
-                                  19776,-26126,19776,-26126,19776,-26126,19776,-26126,
-                                  19259,-26510,19259,-26510,19259,-26510,19259,-26510,
-                                  18735,-26883,18735,-26883,18735,-26883,18735,-26883,
-                                  18204,-27245,18204,-27245,18204,-27245,18204,-27245,
-                                  17665,-27597,17665,-27597,17665,-27597,17665,-27597,
-                                  17120,-27939,17120,-27939,17120,-27939,17120,-27939,
-                                  16568,-28270,16568,-28270,16568,-28270,16568,-28270,
-                                  16010,-28590,16010,-28590,16010,-28590,16010,-28590,
-                                  15446,-28898,15446,-28898,15446,-28898,15446,-28898,
-                                  14875,-29196,14875,-29196,14875,-29196,14875,-29196,
-                                  14299,-29483,14299,-29483,14299,-29483,14299,-29483,
-                                  13718,-29758,13718,-29758,13718,-29758,13718,-29758,
-                                  13131,-30021,13131,-30021,13131,-30021,13131,-30021,
-                                  12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                  11942,-30514,11942,-30514,11942,-30514,11942,-30514,
-                                  11341,-30742,11341,-30742,11341,-30742,11341,-30742,
-                                  10735,-30959,10735,-30959,10735,-30959,10735,-30959,
-                                  10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                                  9511,-31357,9511,-31357,9511,-31357,9511,-31357,
-                                  8894,-31537,8894,-31537,8894,-31537,8894,-31537,
-                                  8273,-31706,8273,-31706,8273,-31706,8273,-31706,
-                                  7649,-31862,7649,-31862,7649,-31862,7649,-31862,
-                                  7022,-32006,7022,-32006,7022,-32006,7022,-32006,
-                                  6392,-32138,6392,-32138,6392,-32138,6392,-32138,
-                                  5760,-32257,5760,-32257,5760,-32257,5760,-32257,
-                                  5125,-32364,5125,-32364,5125,-32364,5125,-32364,
-                                  4489,-32458,4489,-32458,4489,-32458,4489,-32458,
-                                  3851,-32540,3851,-32540,3851,-32540,3851,-32540,
-                                  3211,-32610,3211,-32610,3211,-32610,3211,-32610,
-                                  2570,-32666,2570,-32666,2570,-32666,2570,-32666,
-                                  1929,-32711,1929,-32711,1929,-32711,1929,-32711,
-                                  1286,-32742,1286,-32742,1286,-32742,1286,-32742,
-                                  643,-32761,643,-32761,643,-32761,643,-32761,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -644,-32761,-644,-32761,-644,-32761,-644,-32761,
-                                  -1287,-32742,-1287,-32742,-1287,-32742,-1287,-32742,
-                                  -1930,-32711,-1930,-32711,-1930,-32711,-1930,-32711,
-                                  -2571,-32666,-2571,-32666,-2571,-32666,-2571,-32666,
-                                  -3212,-32610,-3212,-32610,-3212,-32610,-3212,-32610,
-                                  -3852,-32540,-3852,-32540,-3852,-32540,-3852,-32540,
-                                  -4490,-32458,-4490,-32458,-4490,-32458,-4490,-32458,
-                                  -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364,
-                                  -5761,-32257,-5761,-32257,-5761,-32257,-5761,-32257,
-                                  -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138,
-                                  -7023,-32006,-7023,-32006,-7023,-32006,-7023,-32006,
-                                  -7650,-31862,-7650,-31862,-7650,-31862,-7650,-31862,
-                                  -8274,-31706,-8274,-31706,-8274,-31706,-8274,-31706,
-                                  -8895,-31537,-8895,-31537,-8895,-31537,-8895,-31537,
-                                  -9512,-31357,-9512,-31357,-9512,-31357,-9512,-31357,
-                                  -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164,
-                                  -10736,-30959,-10736,-30959,-10736,-30959,-10736,-30959,
-                                  -11342,-30742,-11342,-30742,-11342,-30742,-11342,-30742,
-                                  -11943,-30514,-11943,-30514,-11943,-30514,-11943,-30514,
-                                  -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273,
-                                  -13132,-30021,-13132,-30021,-13132,-30021,-13132,-30021,
-                                  -13719,-29758,-13719,-29758,-13719,-29758,-13719,-29758,
-                                  -14300,-29483,-14300,-29483,-14300,-29483,-14300,-29483,
-                                  -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196,
-                                  -15447,-28898,-15447,-28898,-15447,-28898,-15447,-28898,
-                                  -16011,-28590,-16011,-28590,-16011,-28590,-16011,-28590,
-                                  -16569,-28270,-16569,-28270,-16569,-28270,-16569,-28270,
-                                  -17121,-27939,-17121,-27939,-17121,-27939,-17121,-27939,
-                                  -17666,-27597,-17666,-27597,-17666,-27597,-17666,-27597,
-                                  -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245,
-                                  -18736,-26883,-18736,-26883,-18736,-26883,-18736,-26883,
-                                  -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510,
-                                  -19777,-26126,-19777,-26126,-19777,-26126,-19777,-26126,
-                                  -20286,-25733,-20286,-25733,-20286,-25733,-20286,-25733,
-                                  -20788,-25330,-20788,-25330,-20788,-25330,-20788,-25330,
-                                  -21281,-24917,-21281,-24917,-21281,-24917,-21281,-24917,
-                                  -21766,-24494,-21766,-24494,-21766,-24494,-21766,-24494,
-                                  -22243,-24062,-22243,-24062,-22243,-24062,-22243,-24062,
-                                  -22711,-23621,-22711,-23621,-22711,-23621,-22711,-23621,
-                                  -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170,
-                                  -23621,-22711,-23621,-22711,-23621,-22711,-23621,-22711,
-                                  -24062,-22243,-24062,-22243,-24062,-22243,-24062,-22243,
-                                  -24494,-21766,-24494,-21766,-24494,-21766,-24494,-21766,
-                                  -24917,-21281,-24917,-21281,-24917,-21281,-24917,-21281,
-                                  -25330,-20788,-25330,-20788,-25330,-20788,-25330,-20788,
-                                  -25733,-20286,-25733,-20286,-25733,-20286,-25733,-20286,
-                                  -26126,-19777,-26126,-19777,-26126,-19777,-26126,-19777,
-                                  -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260,
-                                  -26883,-18736,-26883,-18736,-26883,-18736,-26883,-18736,
-                                  -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205,
-                                  -27597,-17666,-27597,-17666,-27597,-17666,-27597,-17666,
-                                  -27939,-17121,-27939,-17121,-27939,-17121,-27939,-17121,
-                                  -28270,-16569,-28270,-16569,-28270,-16569,-28270,-16569,
-                                  -28590,-16011,-28590,-16011,-28590,-16011,-28590,-16011,
-                                  -28898,-15447,-28898,-15447,-28898,-15447,-28898,-15447,
-                                  -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876,
-                                  -29483,-14300,-29483,-14300,-29483,-14300,-29483,-14300,
-                                  -29758,-13719,-29758,-13719,-29758,-13719,-29758,-13719,
-                                  -30021,-13132,-30021,-13132,-30021,-13132,-30021,-13132,
-                                  -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540,
-                                  -30514,-11943,-30514,-11943,-30514,-11943,-30514,-11943,
-                                  -30742,-11342,-30742,-11342,-30742,-11342,-30742,-11342,
-                                  -30959,-10736,-30959,-10736,-30959,-10736,-30959,-10736,
-                                  -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126,
-                                  -31357,-9512,-31357,-9512,-31357,-9512,-31357,-9512,
-                                  -31537,-8895,-31537,-8895,-31537,-8895,-31537,-8895,
-                                  -31706,-8274,-31706,-8274,-31706,-8274,-31706,-8274,
-                                  -31862,-7650,-31862,-7650,-31862,-7650,-31862,-7650,
-                                  -32006,-7023,-32006,-7023,-32006,-7023,-32006,-7023,
-                                  -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393,
-                                  -32257,-5761,-32257,-5761,-32257,-5761,-32257,-5761,
-                                  -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126,
-                                  -32458,-4490,-32458,-4490,-32458,-4490,-32458,-4490,
-                                  -32540,-3852,-32540,-3852,-32540,-3852,-32540,-3852,
-                                  -32610,-3212,-32610,-3212,-32610,-3212,-32610,-3212,
-                                  -32666,-2571,-32666,-2571,-32666,-2571,-32666,-2571,
-                                  -32711,-1930,-32711,-1930,-32711,-1930,-32711,-1930,
-                                  -32742,-1287,-32742,-1287,-32742,-1287,-32742,-1287,
-                                  -32761,-644,-32761,-644,-32761,-644,-32761,-644,
-                                  -32767,-1,-32767,-1,-32767,-1,-32767,-1,
-                                  -32761,643,-32761,643,-32761,643,-32761,643,
-                                  -32742,1286,-32742,1286,-32742,1286,-32742,1286,
-                                  -32711,1929,-32711,1929,-32711,1929,-32711,1929,
-                                  -32666,2570,-32666,2570,-32666,2570,-32666,2570,
-                                  -32610,3211,-32610,3211,-32610,3211,-32610,3211,
-                                  -32540,3851,-32540,3851,-32540,3851,-32540,3851,
-                                  -32458,4489,-32458,4489,-32458,4489,-32458,4489,
-                                  -32364,5125,-32364,5125,-32364,5125,-32364,5125,
-                                  -32257,5760,-32257,5760,-32257,5760,-32257,5760,
-                                  -32138,6392,-32138,6392,-32138,6392,-32138,6392,
-                                  -32006,7022,-32006,7022,-32006,7022,-32006,7022,
-                                  -31862,7649,-31862,7649,-31862,7649,-31862,7649,
-                                  -31706,8273,-31706,8273,-31706,8273,-31706,8273,
-                                  -31537,8894,-31537,8894,-31537,8894,-31537,8894,
-                                  -31357,9511,-31357,9511,-31357,9511,-31357,9511,
-                                  -31164,10125,-31164,10125,-31164,10125,-31164,10125,
-                                  -30959,10735,-30959,10735,-30959,10735,-30959,10735,
-                                  -30742,11341,-30742,11341,-30742,11341,-30742,11341,
-                                  -30514,11942,-30514,11942,-30514,11942,-30514,11942,
-                                  -30273,12539,-30273,12539,-30273,12539,-30273,12539,
-                                  -30021,13131,-30021,13131,-30021,13131,-30021,13131,
-                                  -29758,13718,-29758,13718,-29758,13718,-29758,13718,
-                                  -29483,14299,-29483,14299,-29483,14299,-29483,14299,
-                                  -29196,14875,-29196,14875,-29196,14875,-29196,14875,
-                                  -28898,15446,-28898,15446,-28898,15446,-28898,15446,
-                                  -28590,16010,-28590,16010,-28590,16010,-28590,16010,
-                                  -28270,16568,-28270,16568,-28270,16568,-28270,16568,
-                                  -27939,17120,-27939,17120,-27939,17120,-27939,17120,
-                                  -27597,17665,-27597,17665,-27597,17665,-27597,17665,
-                                  -27245,18204,-27245,18204,-27245,18204,-27245,18204,
-                                  -26883,18735,-26883,18735,-26883,18735,-26883,18735,
-                                  -26510,19259,-26510,19259,-26510,19259,-26510,19259,
-                                  -26126,19776,-26126,19776,-26126,19776,-26126,19776,
-                                  -25733,20285,-25733,20285,-25733,20285,-25733,20285,
-                                  -25330,20787,-25330,20787,-25330,20787,-25330,20787,
-                                  -24917,21280,-24917,21280,-24917,21280,-24917,21280,
-                                  -24494,21765,-24494,21765,-24494,21765,-24494,21765,
-                                  -24062,22242,-24062,22242,-24062,22242,-24062,22242,
-                                  -23621,22710,-23621,22710,-23621,22710,-23621,22710,
-                                  -23170,23169,-23170,23169,-23170,23169,-23170,23169,
-                                  -22711,23620,-22711,23620,-22711,23620,-22711,23620,
-                                  -22243,24061,-22243,24061,-22243,24061,-22243,24061,
-                                  -21766,24493,-21766,24493,-21766,24493,-21766,24493,
-                                  -21281,24916,-21281,24916,-21281,24916,-21281,24916,
-                                  -20788,25329,-20788,25329,-20788,25329,-20788,25329,
-                                  -20286,25732,-20286,25732,-20286,25732,-20286,25732,
-                                  -19777,26125,-19777,26125,-19777,26125,-19777,26125,
-                                  -19260,26509,-19260,26509,-19260,26509,-19260,26509,
-                                  -18736,26882,-18736,26882,-18736,26882,-18736,26882,
-                                  -18205,27244,-18205,27244,-18205,27244,-18205,27244,
-                                  -17666,27596,-17666,27596,-17666,27596,-17666,27596,
-                                  -17121,27938,-17121,27938,-17121,27938,-17121,27938,
-                                  -16569,28269,-16569,28269,-16569,28269,-16569,28269,
-                                  -16011,28589,-16011,28589,-16011,28589,-16011,28589,
-                                  -15447,28897,-15447,28897,-15447,28897,-15447,28897,
-                                  -14876,29195,-14876,29195,-14876,29195,-14876,29195,
-                                  -14300,29482,-14300,29482,-14300,29482,-14300,29482,
-                                  -13719,29757,-13719,29757,-13719,29757,-13719,29757,
-                                  -13132,30020,-13132,30020,-13132,30020,-13132,30020,
-                                  -12540,30272,-12540,30272,-12540,30272,-12540,30272,
-                                  -11943,30513,-11943,30513,-11943,30513,-11943,30513,
-                                  -11342,30741,-11342,30741,-11342,30741,-11342,30741,
-                                  -10736,30958,-10736,30958,-10736,30958,-10736,30958,
-                                  -10126,31163,-10126,31163,-10126,31163,-10126,31163,
-                                  -9512,31356,-9512,31356,-9512,31356,-9512,31356,
-                                  -8895,31536,-8895,31536,-8895,31536,-8895,31536,
-                                  -8274,31705,-8274,31705,-8274,31705,-8274,31705,
-                                  -7650,31861,-7650,31861,-7650,31861,-7650,31861,
-                                  -7023,32005,-7023,32005,-7023,32005,-7023,32005,
-                                  -6393,32137,-6393,32137,-6393,32137,-6393,32137,
-                                  -5761,32256,-5761,32256,-5761,32256,-5761,32256,
-                                  -5126,32363,-5126,32363,-5126,32363,-5126,32363,
-                                  -4490,32457,-4490,32457,-4490,32457,-4490,32457,
-                                  -3852,32539,-3852,32539,-3852,32539,-3852,32539,
-                                  -3212,32609,-3212,32609,-3212,32609,-3212,32609,
-                                  -2571,32665,-2571,32665,-2571,32665,-2571,32665,
-                                  -1930,32710,-1930,32710,-1930,32710,-1930,32710,
-                                  -1287,32741,-1287,32741,-1287,32741,-1287,32741,
-                                  -644,32760,-644,32760,-644,32760,-644,32760
-                                 };
+static int16_t twa960[239*2*4];
+static int16_t twb960[239*2*4];
+static int16_t twc960[239*2*4];
+
 
 void dft960(int16_t *x,int16_t *y,unsigned char scale_flag)  // 240 x 4
 {
@@ -15077,678 +8279,9 @@ void dft960(int16_t *x,int16_t *y,unsigned char scale_flag)  // 240 x 4
 
 };
 
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:323)/972));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:323)/972));
-twa2 = zeros(1,2*323);
-twb2 = zeros(1,2*323);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-fd=fopen("twiddle_tmp.txt","w");
-fprintf(fd,"static int16_t twa972[323*2*4] = {");
-for i=1:2:(2*322)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-fprintf(fd,"static int16_t twb972[323*2*4] = {");
-for i=1:2:(2*322)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-fclose(fd);
-*/
-static int16_t twa972[323*2*4] = {32766,-212,32766,-212,32766,-212,32766,-212,
-                                  32764,-424,32764,-424,32764,-424,32764,-424,
-                                  32760,-636,32760,-636,32760,-636,32760,-636,
-                                  32756,-848,32756,-848,32756,-848,32756,-848,
-                                  32749,-1059,32749,-1059,32749,-1059,32749,-1059,
-                                  32742,-1271,32742,-1271,32742,-1271,32742,-1271,
-                                  32733,-1483,32733,-1483,32733,-1483,32733,-1483,
-                                  32723,-1694,32723,-1694,32723,-1694,32723,-1694,
-                                  32711,-1906,32711,-1906,32711,-1906,32711,-1906,
-                                  32698,-2117,32698,-2117,32698,-2117,32698,-2117,
-                                  32684,-2328,32684,-2328,32684,-2328,32684,-2328,
-                                  32668,-2540,32668,-2540,32668,-2540,32668,-2540,
-                                  32651,-2751,32651,-2751,32651,-2751,32651,-2751,
-                                  32632,-2962,32632,-2962,32632,-2962,32632,-2962,
-                                  32613,-3173,32613,-3173,32613,-3173,32613,-3173,
-                                  32591,-3383,32591,-3383,32591,-3383,32591,-3383,
-                                  32569,-3594,32569,-3594,32569,-3594,32569,-3594,
-                                  32545,-3805,32545,-3805,32545,-3805,32545,-3805,
-                                  32520,-4015,32520,-4015,32520,-4015,32520,-4015,
-                                  32493,-4225,32493,-4225,32493,-4225,32493,-4225,
-                                  32465,-4435,32465,-4435,32465,-4435,32465,-4435,
-                                  32436,-4645,32436,-4645,32436,-4645,32436,-4645,
-                                  32405,-4854,32405,-4854,32405,-4854,32405,-4854,
-                                  32373,-5064,32373,-5064,32373,-5064,32373,-5064,
-                                  32340,-5273,32340,-5273,32340,-5273,32340,-5273,
-                                  32305,-5482,32305,-5482,32305,-5482,32305,-5482,
-                                  32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                  32231,-5899,32231,-5899,32231,-5899,32231,-5899,
-                                  32192,-6107,32192,-6107,32192,-6107,32192,-6107,
-                                  32152,-6315,32152,-6315,32152,-6315,32152,-6315,
-                                  32111,-6523,32111,-6523,32111,-6523,32111,-6523,
-                                  32068,-6730,32068,-6730,32068,-6730,32068,-6730,
-                                  32024,-6937,32024,-6937,32024,-6937,32024,-6937,
-                                  31978,-7144,31978,-7144,31978,-7144,31978,-7144,
-                                  31931,-7351,31931,-7351,31931,-7351,31931,-7351,
-                                  31883,-7557,31883,-7557,31883,-7557,31883,-7557,
-                                  31834,-7763,31834,-7763,31834,-7763,31834,-7763,
-                                  31783,-7969,31783,-7969,31783,-7969,31783,-7969,
-                                  31731,-8174,31731,-8174,31731,-8174,31731,-8174,
-                                  31677,-8379,31677,-8379,31677,-8379,31677,-8379,
-                                  31622,-8583,31622,-8583,31622,-8583,31622,-8583,
-                                  31566,-8788,31566,-8788,31566,-8788,31566,-8788,
-                                  31509,-8992,31509,-8992,31509,-8992,31509,-8992,
-                                  31450,-9195,31450,-9195,31450,-9195,31450,-9195,
-                                  31390,-9398,31390,-9398,31390,-9398,31390,-9398,
-                                  31329,-9601,31329,-9601,31329,-9601,31329,-9601,
-                                  31266,-9803,31266,-9803,31266,-9803,31266,-9803,
-                                  31202,-10005,31202,-10005,31202,-10005,31202,-10005,
-                                  31136,-10207,31136,-10207,31136,-10207,31136,-10207,
-                                  31070,-10408,31070,-10408,31070,-10408,31070,-10408,
-                                  31002,-10608,31002,-10608,31002,-10608,31002,-10608,
-                                  30933,-10808,30933,-10808,30933,-10808,30933,-10808,
-                                  30862,-11008,30862,-11008,30862,-11008,30862,-11008,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30717,-11406,30717,-11406,30717,-11406,30717,-11406,
-                                  30643,-11605,30643,-11605,30643,-11605,30643,-11605,
-                                  30567,-11802,30567,-11802,30567,-11802,30567,-11802,
-                                  30490,-12000,30490,-12000,30490,-12000,30490,-12000,
-                                  30412,-12197,30412,-12197,30412,-12197,30412,-12197,
-                                  30333,-12393,30333,-12393,30333,-12393,30333,-12393,
-                                  30252,-12589,30252,-12589,30252,-12589,30252,-12589,
-                                  30170,-12784,30170,-12784,30170,-12784,30170,-12784,
-                                  30087,-12979,30087,-12979,30087,-12979,30087,-12979,
-                                  30002,-13173,30002,-13173,30002,-13173,30002,-13173,
-                                  29916,-13367,29916,-13367,29916,-13367,29916,-13367,
-                                  29829,-13560,29829,-13560,29829,-13560,29829,-13560,
-                                  29741,-13752,29741,-13752,29741,-13752,29741,-13752,
-                                  29652,-13944,29652,-13944,29652,-13944,29652,-13944,
-                                  29561,-14136,29561,-14136,29561,-14136,29561,-14136,
-                                  29469,-14327,29469,-14327,29469,-14327,29469,-14327,
-                                  29376,-14517,29376,-14517,29376,-14517,29376,-14517,
-                                  29281,-14706,29281,-14706,29281,-14706,29281,-14706,
-                                  29185,-14895,29185,-14895,29185,-14895,29185,-14895,
-                                  29089,-15084,29089,-15084,29089,-15084,29089,-15084,
-                                  28990,-15271,28990,-15271,28990,-15271,28990,-15271,
-                                  28891,-15458,28891,-15458,28891,-15458,28891,-15458,
-                                  28791,-15645,28791,-15645,28791,-15645,28791,-15645,
-                                  28689,-15831,28689,-15831,28689,-15831,28689,-15831,
-                                  28586,-16016,28586,-16016,28586,-16016,28586,-16016,
-                                  28482,-16200,28482,-16200,28482,-16200,28482,-16200,
-                                  28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                  28270,-16567,28270,-16567,28270,-16567,28270,-16567,
-                                  28162,-16749,28162,-16749,28162,-16749,28162,-16749,
-                                  28054,-16931,28054,-16931,28054,-16931,28054,-16931,
-                                  27943,-17112,27943,-17112,27943,-17112,27943,-17112,
-                                  27832,-17292,27832,-17292,27832,-17292,27832,-17292,
-                                  27720,-17472,27720,-17472,27720,-17472,27720,-17472,
-                                  27606,-17651,27606,-17651,27606,-17651,27606,-17651,
-                                  27492,-17829,27492,-17829,27492,-17829,27492,-17829,
-                                  27376,-18006,27376,-18006,27376,-18006,27376,-18006,
-                                  27259,-18183,27259,-18183,27259,-18183,27259,-18183,
-                                  27141,-18359,27141,-18359,27141,-18359,27141,-18359,
-                                  27022,-18534,27022,-18534,27022,-18534,27022,-18534,
-                                  26901,-18708,26901,-18708,26901,-18708,26901,-18708,
-                                  26780,-18882,26780,-18882,26780,-18882,26780,-18882,
-                                  26657,-19054,26657,-19054,26657,-19054,26657,-19054,
-                                  26533,-19226,26533,-19226,26533,-19226,26533,-19226,
-                                  26409,-19397,26409,-19397,26409,-19397,26409,-19397,
-                                  26283,-19568,26283,-19568,26283,-19568,26283,-19568,
-                                  26156,-19737,26156,-19737,26156,-19737,26156,-19737,
-                                  26028,-19906,26028,-19906,26028,-19906,26028,-19906,
-                                  25898,-20074,25898,-20074,25898,-20074,25898,-20074,
-                                  25768,-20241,25768,-20241,25768,-20241,25768,-20241,
-                                  25637,-20407,25637,-20407,25637,-20407,25637,-20407,
-                                  25504,-20572,25504,-20572,25504,-20572,25504,-20572,
-                                  25371,-20736,25371,-20736,25371,-20736,25371,-20736,
-                                  25236,-20900,25236,-20900,25236,-20900,25236,-20900,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24964,-21225,24964,-21225,24964,-21225,24964,-21225,
-                                  24826,-21385,24826,-21385,24826,-21385,24826,-21385,
-                                  24687,-21546,24687,-21546,24687,-21546,24687,-21546,
-                                  24548,-21705,24548,-21705,24548,-21705,24548,-21705,
-                                  24407,-21863,24407,-21863,24407,-21863,24407,-21863,
-                                  24265,-22020,24265,-22020,24265,-22020,24265,-22020,
-                                  24122,-22177,24122,-22177,24122,-22177,24122,-22177,
-                                  23978,-22332,23978,-22332,23978,-22332,23978,-22332,
-                                  23833,-22487,23833,-22487,23833,-22487,23833,-22487,
-                                  23688,-22640,23688,-22640,23688,-22640,23688,-22640,
-                                  23541,-22793,23541,-22793,23541,-22793,23541,-22793,
-                                  23393,-22945,23393,-22945,23393,-22945,23393,-22945,
-                                  23244,-23095,23244,-23095,23244,-23095,23244,-23095,
-                                  23094,-23245,23094,-23245,23094,-23245,23094,-23245,
-                                  22944,-23394,22944,-23394,22944,-23394,22944,-23394,
-                                  22792,-23542,22792,-23542,22792,-23542,22792,-23542,
-                                  22639,-23689,22639,-23689,22639,-23689,22639,-23689,
-                                  22486,-23834,22486,-23834,22486,-23834,22486,-23834,
-                                  22331,-23979,22331,-23979,22331,-23979,22331,-23979,
-                                  22176,-24123,22176,-24123,22176,-24123,22176,-24123,
-                                  22019,-24266,22019,-24266,22019,-24266,22019,-24266,
-                                  21862,-24408,21862,-24408,21862,-24408,21862,-24408,
-                                  21704,-24549,21704,-24549,21704,-24549,21704,-24549,
-                                  21545,-24688,21545,-24688,21545,-24688,21545,-24688,
-                                  21384,-24827,21384,-24827,21384,-24827,21384,-24827,
-                                  21224,-24965,21224,-24965,21224,-24965,21224,-24965,
-                                  21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                  20899,-25237,20899,-25237,20899,-25237,20899,-25237,
-                                  20735,-25372,20735,-25372,20735,-25372,20735,-25372,
-                                  20571,-25505,20571,-25505,20571,-25505,20571,-25505,
-                                  20406,-25638,20406,-25638,20406,-25638,20406,-25638,
-                                  20240,-25769,20240,-25769,20240,-25769,20240,-25769,
-                                  20073,-25899,20073,-25899,20073,-25899,20073,-25899,
-                                  19905,-26029,19905,-26029,19905,-26029,19905,-26029,
-                                  19736,-26157,19736,-26157,19736,-26157,19736,-26157,
-                                  19567,-26284,19567,-26284,19567,-26284,19567,-26284,
-                                  19396,-26410,19396,-26410,19396,-26410,19396,-26410,
-                                  19225,-26534,19225,-26534,19225,-26534,19225,-26534,
-                                  19053,-26658,19053,-26658,19053,-26658,19053,-26658,
-                                  18881,-26781,18881,-26781,18881,-26781,18881,-26781,
-                                  18707,-26902,18707,-26902,18707,-26902,18707,-26902,
-                                  18533,-27023,18533,-27023,18533,-27023,18533,-27023,
-                                  18358,-27142,18358,-27142,18358,-27142,18358,-27142,
-                                  18182,-27260,18182,-27260,18182,-27260,18182,-27260,
-                                  18005,-27377,18005,-27377,18005,-27377,18005,-27377,
-                                  17828,-27493,17828,-27493,17828,-27493,17828,-27493,
-                                  17650,-27607,17650,-27607,17650,-27607,17650,-27607,
-                                  17471,-27721,17471,-27721,17471,-27721,17471,-27721,
-                                  17291,-27833,17291,-27833,17291,-27833,17291,-27833,
-                                  17111,-27944,17111,-27944,17111,-27944,17111,-27944,
-                                  16930,-28055,16930,-28055,16930,-28055,16930,-28055,
-                                  16748,-28163,16748,-28163,16748,-28163,16748,-28163,
-                                  16566,-28271,16566,-28271,16566,-28271,16566,-28271,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  16199,-28483,16199,-28483,16199,-28483,16199,-28483,
-                                  16015,-28587,16015,-28587,16015,-28587,16015,-28587,
-                                  15830,-28690,15830,-28690,15830,-28690,15830,-28690,
-                                  15644,-28792,15644,-28792,15644,-28792,15644,-28792,
-                                  15457,-28892,15457,-28892,15457,-28892,15457,-28892,
-                                  15270,-28991,15270,-28991,15270,-28991,15270,-28991,
-                                  15083,-29090,15083,-29090,15083,-29090,15083,-29090,
-                                  14894,-29186,14894,-29186,14894,-29186,14894,-29186,
-                                  14705,-29282,14705,-29282,14705,-29282,14705,-29282,
-                                  14516,-29377,14516,-29377,14516,-29377,14516,-29377,
-                                  14326,-29470,14326,-29470,14326,-29470,14326,-29470,
-                                  14135,-29562,14135,-29562,14135,-29562,14135,-29562,
-                                  13943,-29653,13943,-29653,13943,-29653,13943,-29653,
-                                  13751,-29742,13751,-29742,13751,-29742,13751,-29742,
-                                  13559,-29830,13559,-29830,13559,-29830,13559,-29830,
-                                  13366,-29917,13366,-29917,13366,-29917,13366,-29917,
-                                  13172,-30003,13172,-30003,13172,-30003,13172,-30003,
-                                  12978,-30088,12978,-30088,12978,-30088,12978,-30088,
-                                  12783,-30171,12783,-30171,12783,-30171,12783,-30171,
-                                  12588,-30253,12588,-30253,12588,-30253,12588,-30253,
-                                  12392,-30334,12392,-30334,12392,-30334,12392,-30334,
-                                  12196,-30413,12196,-30413,12196,-30413,12196,-30413,
-                                  11999,-30491,11999,-30491,11999,-30491,11999,-30491,
-                                  11801,-30568,11801,-30568,11801,-30568,11801,-30568,
-                                  11604,-30644,11604,-30644,11604,-30644,11604,-30644,
-                                  11405,-30718,11405,-30718,11405,-30718,11405,-30718,
-                                  11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                  11007,-30863,11007,-30863,11007,-30863,11007,-30863,
-                                  10807,-30934,10807,-30934,10807,-30934,10807,-30934,
-                                  10607,-31003,10607,-31003,10607,-31003,10607,-31003,
-                                  10407,-31071,10407,-31071,10407,-31071,10407,-31071,
-                                  10206,-31137,10206,-31137,10206,-31137,10206,-31137,
-                                  10004,-31203,10004,-31203,10004,-31203,10004,-31203,
-                                  9802,-31267,9802,-31267,9802,-31267,9802,-31267,
-                                  9600,-31330,9600,-31330,9600,-31330,9600,-31330,
-                                  9397,-31391,9397,-31391,9397,-31391,9397,-31391,
-                                  9194,-31451,9194,-31451,9194,-31451,9194,-31451,
-                                  8991,-31510,8991,-31510,8991,-31510,8991,-31510,
-                                  8787,-31567,8787,-31567,8787,-31567,8787,-31567,
-                                  8582,-31623,8582,-31623,8582,-31623,8582,-31623,
-                                  8378,-31678,8378,-31678,8378,-31678,8378,-31678,
-                                  8173,-31732,8173,-31732,8173,-31732,8173,-31732,
-                                  7968,-31784,7968,-31784,7968,-31784,7968,-31784,
-                                  7762,-31835,7762,-31835,7762,-31835,7762,-31835,
-                                  7556,-31884,7556,-31884,7556,-31884,7556,-31884,
-                                  7350,-31932,7350,-31932,7350,-31932,7350,-31932,
-                                  7143,-31979,7143,-31979,7143,-31979,7143,-31979,
-                                  6936,-32025,6936,-32025,6936,-32025,6936,-32025,
-                                  6729,-32069,6729,-32069,6729,-32069,6729,-32069,
-                                  6522,-32112,6522,-32112,6522,-32112,6522,-32112,
-                                  6314,-32153,6314,-32153,6314,-32153,6314,-32153,
-                                  6106,-32193,6106,-32193,6106,-32193,6106,-32193,
-                                  5898,-32232,5898,-32232,5898,-32232,5898,-32232,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  5481,-32306,5481,-32306,5481,-32306,5481,-32306,
-                                  5272,-32341,5272,-32341,5272,-32341,5272,-32341,
-                                  5063,-32374,5063,-32374,5063,-32374,5063,-32374,
-                                  4853,-32406,4853,-32406,4853,-32406,4853,-32406,
-                                  4644,-32437,4644,-32437,4644,-32437,4644,-32437,
-                                  4434,-32466,4434,-32466,4434,-32466,4434,-32466,
-                                  4224,-32494,4224,-32494,4224,-32494,4224,-32494,
-                                  4014,-32521,4014,-32521,4014,-32521,4014,-32521,
-                                  3804,-32546,3804,-32546,3804,-32546,3804,-32546,
-                                  3593,-32570,3593,-32570,3593,-32570,3593,-32570,
-                                  3382,-32592,3382,-32592,3382,-32592,3382,-32592,
-                                  3172,-32614,3172,-32614,3172,-32614,3172,-32614,
-                                  2961,-32633,2961,-32633,2961,-32633,2961,-32633,
-                                  2750,-32652,2750,-32652,2750,-32652,2750,-32652,
-                                  2539,-32669,2539,-32669,2539,-32669,2539,-32669,
-                                  2327,-32685,2327,-32685,2327,-32685,2327,-32685,
-                                  2116,-32699,2116,-32699,2116,-32699,2116,-32699,
-                                  1905,-32712,1905,-32712,1905,-32712,1905,-32712,
-                                  1693,-32724,1693,-32724,1693,-32724,1693,-32724,
-                                  1482,-32734,1482,-32734,1482,-32734,1482,-32734,
-                                  1270,-32743,1270,-32743,1270,-32743,1270,-32743,
-                                  1058,-32750,1058,-32750,1058,-32750,1058,-32750,
-                                  847,-32757,847,-32757,847,-32757,847,-32757,
-                                  635,-32761,635,-32761,635,-32761,635,-32761,
-                                  423,-32765,423,-32765,423,-32765,423,-32765,
-                                  211,-32767,211,-32767,211,-32767,211,-32767,
-                                  0,-32767,0,-32767,0,-32767,0,-32767,
-                                  -212,-32767,-212,-32767,-212,-32767,-212,-32767,
-                                  -424,-32765,-424,-32765,-424,-32765,-424,-32765,
-                                  -636,-32761,-636,-32761,-636,-32761,-636,-32761,
-                                  -848,-32757,-848,-32757,-848,-32757,-848,-32757,
-                                  -1059,-32750,-1059,-32750,-1059,-32750,-1059,-32750,
-                                  -1271,-32743,-1271,-32743,-1271,-32743,-1271,-32743,
-                                  -1483,-32734,-1483,-32734,-1483,-32734,-1483,-32734,
-                                  -1694,-32724,-1694,-32724,-1694,-32724,-1694,-32724,
-                                  -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712,
-                                  -2117,-32699,-2117,-32699,-2117,-32699,-2117,-32699,
-                                  -2328,-32685,-2328,-32685,-2328,-32685,-2328,-32685,
-                                  -2540,-32669,-2540,-32669,-2540,-32669,-2540,-32669,
-                                  -2751,-32652,-2751,-32652,-2751,-32652,-2751,-32652,
-                                  -2962,-32633,-2962,-32633,-2962,-32633,-2962,-32633,
-                                  -3173,-32614,-3173,-32614,-3173,-32614,-3173,-32614,
-                                  -3383,-32592,-3383,-32592,-3383,-32592,-3383,-32592,
-                                  -3594,-32570,-3594,-32570,-3594,-32570,-3594,-32570,
-                                  -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546,
-                                  -4015,-32521,-4015,-32521,-4015,-32521,-4015,-32521,
-                                  -4225,-32494,-4225,-32494,-4225,-32494,-4225,-32494,
-                                  -4435,-32466,-4435,-32466,-4435,-32466,-4435,-32466,
-                                  -4645,-32437,-4645,-32437,-4645,-32437,-4645,-32437,
-                                  -4854,-32406,-4854,-32406,-4854,-32406,-4854,-32406,
-                                  -5064,-32374,-5064,-32374,-5064,-32374,-5064,-32374,
-                                  -5273,-32341,-5273,-32341,-5273,-32341,-5273,-32341,
-                                  -5482,-32306,-5482,-32306,-5482,-32306,-5482,-32306,
-                                  -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                  -5899,-32232,-5899,-32232,-5899,-32232,-5899,-32232,
-                                  -6107,-32193,-6107,-32193,-6107,-32193,-6107,-32193,
-                                  -6315,-32153,-6315,-32153,-6315,-32153,-6315,-32153,
-                                  -6523,-32112,-6523,-32112,-6523,-32112,-6523,-32112,
-                                  -6730,-32069,-6730,-32069,-6730,-32069,-6730,-32069,
-                                  -6937,-32025,-6937,-32025,-6937,-32025,-6937,-32025,
-                                  -7144,-31979,-7144,-31979,-7144,-31979,-7144,-31979,
-                                  -7351,-31932,-7351,-31932,-7351,-31932,-7351,-31932,
-                                  -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884,
-                                  -7763,-31835,-7763,-31835,-7763,-31835,-7763,-31835,
-                                  -7969,-31784,-7969,-31784,-7969,-31784,-7969,-31784,
-                                  -8174,-31732,-8174,-31732,-8174,-31732,-8174,-31732,
-                                  -8379,-31678,-8379,-31678,-8379,-31678,-8379,-31678,
-                                  -8583,-31623,-8583,-31623,-8583,-31623,-8583,-31623,
-                                  -8788,-31567,-8788,-31567,-8788,-31567,-8788,-31567,
-                                  -8992,-31510,-8992,-31510,-8992,-31510,-8992,-31510,
-                                  -9195,-31451,-9195,-31451,-9195,-31451,-9195,-31451,
-                                  -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391,
-                                  -9601,-31330,-9601,-31330,-9601,-31330,-9601,-31330,
-                                  -9803,-31267,-9803,-31267,-9803,-31267,-9803,-31267,
-                                  -10005,-31203,-10005,-31203,-10005,-31203,-10005,-31203,
-                                  -10207,-31137,-10207,-31137,-10207,-31137,-10207,-31137,
-                                  -10408,-31071,-10408,-31071,-10408,-31071,-10408,-31071,
-                                  -10608,-31003,-10608,-31003,-10608,-31003,-10608,-31003,
-                                  -10808,-30934,-10808,-30934,-10808,-30934,-10808,-30934,
-                                  -11008,-30863,-11008,-30863,-11008,-30863,-11008,-30863,
-                                  -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791,
-                                  -11406,-30718,-11406,-30718,-11406,-30718,-11406,-30718,
-                                  -11605,-30644,-11605,-30644,-11605,-30644,-11605,-30644,
-                                  -11802,-30568,-11802,-30568,-11802,-30568,-11802,-30568,
-                                  -12000,-30491,-12000,-30491,-12000,-30491,-12000,-30491,
-                                  -12197,-30413,-12197,-30413,-12197,-30413,-12197,-30413,
-                                  -12393,-30334,-12393,-30334,-12393,-30334,-12393,-30334,
-                                  -12589,-30253,-12589,-30253,-12589,-30253,-12589,-30253,
-                                  -12784,-30171,-12784,-30171,-12784,-30171,-12784,-30171,
-                                  -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088,
-                                  -13173,-30003,-13173,-30003,-13173,-30003,-13173,-30003,
-                                  -13367,-29917,-13367,-29917,-13367,-29917,-13367,-29917,
-                                  -13560,-29830,-13560,-29830,-13560,-29830,-13560,-29830,
-                                  -13752,-29742,-13752,-29742,-13752,-29742,-13752,-29742,
-                                  -13944,-29653,-13944,-29653,-13944,-29653,-13944,-29653,
-                                  -14136,-29562,-14136,-29562,-14136,-29562,-14136,-29562,
-                                  -14327,-29470,-14327,-29470,-14327,-29470,-14327,-29470,
-                                  -14517,-29377,-14517,-29377,-14517,-29377,-14517,-29377,
-                                  -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282,
-                                  -14895,-29186,-14895,-29186,-14895,-29186,-14895,-29186,
-                                  -15084,-29090,-15084,-29090,-15084,-29090,-15084,-29090,
-                                  -15271,-28991,-15271,-28991,-15271,-28991,-15271,-28991,
-                                  -15458,-28892,-15458,-28892,-15458,-28892,-15458,-28892,
-                                  -15645,-28792,-15645,-28792,-15645,-28792,-15645,-28792,
-                                  -15831,-28690,-15831,-28690,-15831,-28690,-15831,-28690,
-                                  -16016,-28587,-16016,-28587,-16016,-28587,-16016,-28587,
-                                  -16200,-28483,-16200,-28483,-16200,-28483,-16200,-28483
-                                 };
-static int16_t twb972[323*2*4] = {32764,-424,32764,-424,32764,-424,32764,-424,
-                                  32756,-848,32756,-848,32756,-848,32756,-848,
-                                  32742,-1271,32742,-1271,32742,-1271,32742,-1271,
-                                  32723,-1694,32723,-1694,32723,-1694,32723,-1694,
-                                  32698,-2117,32698,-2117,32698,-2117,32698,-2117,
-                                  32668,-2540,32668,-2540,32668,-2540,32668,-2540,
-                                  32632,-2962,32632,-2962,32632,-2962,32632,-2962,
-                                  32591,-3383,32591,-3383,32591,-3383,32591,-3383,
-                                  32545,-3805,32545,-3805,32545,-3805,32545,-3805,
-                                  32493,-4225,32493,-4225,32493,-4225,32493,-4225,
-                                  32436,-4645,32436,-4645,32436,-4645,32436,-4645,
-                                  32373,-5064,32373,-5064,32373,-5064,32373,-5064,
-                                  32305,-5482,32305,-5482,32305,-5482,32305,-5482,
-                                  32231,-5899,32231,-5899,32231,-5899,32231,-5899,
-                                  32152,-6315,32152,-6315,32152,-6315,32152,-6315,
-                                  32068,-6730,32068,-6730,32068,-6730,32068,-6730,
-                                  31978,-7144,31978,-7144,31978,-7144,31978,-7144,
-                                  31883,-7557,31883,-7557,31883,-7557,31883,-7557,
-                                  31783,-7969,31783,-7969,31783,-7969,31783,-7969,
-                                  31677,-8379,31677,-8379,31677,-8379,31677,-8379,
-                                  31566,-8788,31566,-8788,31566,-8788,31566,-8788,
-                                  31450,-9195,31450,-9195,31450,-9195,31450,-9195,
-                                  31329,-9601,31329,-9601,31329,-9601,31329,-9601,
-                                  31202,-10005,31202,-10005,31202,-10005,31202,-10005,
-                                  31070,-10408,31070,-10408,31070,-10408,31070,-10408,
-                                  30933,-10808,30933,-10808,30933,-10808,30933,-10808,
-                                  30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                  30643,-11605,30643,-11605,30643,-11605,30643,-11605,
-                                  30490,-12000,30490,-12000,30490,-12000,30490,-12000,
-                                  30333,-12393,30333,-12393,30333,-12393,30333,-12393,
-                                  30170,-12784,30170,-12784,30170,-12784,30170,-12784,
-                                  30002,-13173,30002,-13173,30002,-13173,30002,-13173,
-                                  29829,-13560,29829,-13560,29829,-13560,29829,-13560,
-                                  29652,-13944,29652,-13944,29652,-13944,29652,-13944,
-                                  29469,-14327,29469,-14327,29469,-14327,29469,-14327,
-                                  29281,-14706,29281,-14706,29281,-14706,29281,-14706,
-                                  29089,-15084,29089,-15084,29089,-15084,29089,-15084,
-                                  28891,-15458,28891,-15458,28891,-15458,28891,-15458,
-                                  28689,-15831,28689,-15831,28689,-15831,28689,-15831,
-                                  28482,-16200,28482,-16200,28482,-16200,28482,-16200,
-                                  28270,-16567,28270,-16567,28270,-16567,28270,-16567,
-                                  28054,-16931,28054,-16931,28054,-16931,28054,-16931,
-                                  27832,-17292,27832,-17292,27832,-17292,27832,-17292,
-                                  27606,-17651,27606,-17651,27606,-17651,27606,-17651,
-                                  27376,-18006,27376,-18006,27376,-18006,27376,-18006,
-                                  27141,-18359,27141,-18359,27141,-18359,27141,-18359,
-                                  26901,-18708,26901,-18708,26901,-18708,26901,-18708,
-                                  26657,-19054,26657,-19054,26657,-19054,26657,-19054,
-                                  26409,-19397,26409,-19397,26409,-19397,26409,-19397,
-                                  26156,-19737,26156,-19737,26156,-19737,26156,-19737,
-                                  25898,-20074,25898,-20074,25898,-20074,25898,-20074,
-                                  25637,-20407,25637,-20407,25637,-20407,25637,-20407,
-                                  25371,-20736,25371,-20736,25371,-20736,25371,-20736,
-                                  25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                  24826,-21385,24826,-21385,24826,-21385,24826,-21385,
-                                  24548,-21705,24548,-21705,24548,-21705,24548,-21705,
-                                  24265,-22020,24265,-22020,24265,-22020,24265,-22020,
-                                  23978,-22332,23978,-22332,23978,-22332,23978,-22332,
-                                  23688,-22640,23688,-22640,23688,-22640,23688,-22640,
-                                  23393,-22945,23393,-22945,23393,-22945,23393,-22945,
-                                  23094,-23245,23094,-23245,23094,-23245,23094,-23245,
-                                  22792,-23542,22792,-23542,22792,-23542,22792,-23542,
-                                  22486,-23834,22486,-23834,22486,-23834,22486,-23834,
-                                  22176,-24123,22176,-24123,22176,-24123,22176,-24123,
-                                  21862,-24408,21862,-24408,21862,-24408,21862,-24408,
-                                  21545,-24688,21545,-24688,21545,-24688,21545,-24688,
-                                  21224,-24965,21224,-24965,21224,-24965,21224,-24965,
-                                  20899,-25237,20899,-25237,20899,-25237,20899,-25237,
-                                  20571,-25505,20571,-25505,20571,-25505,20571,-25505,
-                                  20240,-25769,20240,-25769,20240,-25769,20240,-25769,
-                                  19905,-26029,19905,-26029,19905,-26029,19905,-26029,
-                                  19567,-26284,19567,-26284,19567,-26284,19567,-26284,
-                                  19225,-26534,19225,-26534,19225,-26534,19225,-26534,
-                                  18881,-26781,18881,-26781,18881,-26781,18881,-26781,
-                                  18533,-27023,18533,-27023,18533,-27023,18533,-27023,
-                                  18182,-27260,18182,-27260,18182,-27260,18182,-27260,
-                                  17828,-27493,17828,-27493,17828,-27493,17828,-27493,
-                                  17471,-27721,17471,-27721,17471,-27721,17471,-27721,
-                                  17111,-27944,17111,-27944,17111,-27944,17111,-27944,
-                                  16748,-28163,16748,-28163,16748,-28163,16748,-28163,
-                                  16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                  16015,-28587,16015,-28587,16015,-28587,16015,-28587,
-                                  15644,-28792,15644,-28792,15644,-28792,15644,-28792,
-                                  15270,-28991,15270,-28991,15270,-28991,15270,-28991,
-                                  14894,-29186,14894,-29186,14894,-29186,14894,-29186,
-                                  14516,-29377,14516,-29377,14516,-29377,14516,-29377,
-                                  14135,-29562,14135,-29562,14135,-29562,14135,-29562,
-                                  13751,-29742,13751,-29742,13751,-29742,13751,-29742,
-                                  13366,-29917,13366,-29917,13366,-29917,13366,-29917,
-                                  12978,-30088,12978,-30088,12978,-30088,12978,-30088,
-                                  12588,-30253,12588,-30253,12588,-30253,12588,-30253,
-                                  12196,-30413,12196,-30413,12196,-30413,12196,-30413,
-                                  11801,-30568,11801,-30568,11801,-30568,11801,-30568,
-                                  11405,-30718,11405,-30718,11405,-30718,11405,-30718,
-                                  11007,-30863,11007,-30863,11007,-30863,11007,-30863,
-                                  10607,-31003,10607,-31003,10607,-31003,10607,-31003,
-                                  10206,-31137,10206,-31137,10206,-31137,10206,-31137,
-                                  9802,-31267,9802,-31267,9802,-31267,9802,-31267,
-                                  9397,-31391,9397,-31391,9397,-31391,9397,-31391,
-                                  8991,-31510,8991,-31510,8991,-31510,8991,-31510,
-                                  8582,-31623,8582,-31623,8582,-31623,8582,-31623,
-                                  8173,-31732,8173,-31732,8173,-31732,8173,-31732,
-                                  7762,-31835,7762,-31835,7762,-31835,7762,-31835,
-                                  7350,-31932,7350,-31932,7350,-31932,7350,-31932,
-                                  6936,-32025,6936,-32025,6936,-32025,6936,-32025,
-                                  6522,-32112,6522,-32112,6522,-32112,6522,-32112,
-                                  6106,-32193,6106,-32193,6106,-32193,6106,-32193,
-                                  5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                  5272,-32341,5272,-32341,5272,-32341,5272,-32341,
-                                  4853,-32406,4853,-32406,4853,-32406,4853,-32406,
-                                  4434,-32466,4434,-32466,4434,-32466,4434,-32466,
-                                  4014,-32521,4014,-32521,4014,-32521,4014,-32521,
-                                  3593,-32570,3593,-32570,3593,-32570,3593,-32570,
-                                  3172,-32614,3172,-32614,3172,-32614,3172,-32614,
-                                  2750,-32652,2750,-32652,2750,-32652,2750,-32652,
-                                  2327,-32685,2327,-32685,2327,-32685,2327,-32685,
-                                  1905,-32712,1905,-32712,1905,-32712,1905,-32712,
-                                  1482,-32734,1482,-32734,1482,-32734,1482,-32734,
-                                  1058,-32750,1058,-32750,1058,-32750,1058,-32750,
-                                  635,-32761,635,-32761,635,-32761,635,-32761,
-                                  211,-32767,211,-32767,211,-32767,211,-32767,
-                                  -212,-32767,-212,-32767,-212,-32767,-212,-32767,
-                                  -636,-32761,-636,-32761,-636,-32761,-636,-32761,
-                                  -1059,-32750,-1059,-32750,-1059,-32750,-1059,-32750,
-                                  -1483,-32734,-1483,-32734,-1483,-32734,-1483,-32734,
-                                  -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712,
-                                  -2328,-32685,-2328,-32685,-2328,-32685,-2328,-32685,
-                                  -2751,-32652,-2751,-32652,-2751,-32652,-2751,-32652,
-                                  -3173,-32614,-3173,-32614,-3173,-32614,-3173,-32614,
-                                  -3594,-32570,-3594,-32570,-3594,-32570,-3594,-32570,
-                                  -4015,-32521,-4015,-32521,-4015,-32521,-4015,-32521,
-                                  -4435,-32466,-4435,-32466,-4435,-32466,-4435,-32466,
-                                  -4854,-32406,-4854,-32406,-4854,-32406,-4854,-32406,
-                                  -5273,-32341,-5273,-32341,-5273,-32341,-5273,-32341,
-                                  -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                  -6107,-32193,-6107,-32193,-6107,-32193,-6107,-32193,
-                                  -6523,-32112,-6523,-32112,-6523,-32112,-6523,-32112,
-                                  -6937,-32025,-6937,-32025,-6937,-32025,-6937,-32025,
-                                  -7351,-31932,-7351,-31932,-7351,-31932,-7351,-31932,
-                                  -7763,-31835,-7763,-31835,-7763,-31835,-7763,-31835,
-                                  -8174,-31732,-8174,-31732,-8174,-31732,-8174,-31732,
-                                  -8583,-31623,-8583,-31623,-8583,-31623,-8583,-31623,
-                                  -8992,-31510,-8992,-31510,-8992,-31510,-8992,-31510,
-                                  -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391,
-                                  -9803,-31267,-9803,-31267,-9803,-31267,-9803,-31267,
-                                  -10207,-31137,-10207,-31137,-10207,-31137,-10207,-31137,
-                                  -10608,-31003,-10608,-31003,-10608,-31003,-10608,-31003,
-                                  -11008,-30863,-11008,-30863,-11008,-30863,-11008,-30863,
-                                  -11406,-30718,-11406,-30718,-11406,-30718,-11406,-30718,
-                                  -11802,-30568,-11802,-30568,-11802,-30568,-11802,-30568,
-                                  -12197,-30413,-12197,-30413,-12197,-30413,-12197,-30413,
-                                  -12589,-30253,-12589,-30253,-12589,-30253,-12589,-30253,
-                                  -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088,
-                                  -13367,-29917,-13367,-29917,-13367,-29917,-13367,-29917,
-                                  -13752,-29742,-13752,-29742,-13752,-29742,-13752,-29742,
-                                  -14136,-29562,-14136,-29562,-14136,-29562,-14136,-29562,
-                                  -14517,-29377,-14517,-29377,-14517,-29377,-14517,-29377,
-                                  -14895,-29186,-14895,-29186,-14895,-29186,-14895,-29186,
-                                  -15271,-28991,-15271,-28991,-15271,-28991,-15271,-28991,
-                                  -15645,-28792,-15645,-28792,-15645,-28792,-15645,-28792,
-                                  -16016,-28587,-16016,-28587,-16016,-28587,-16016,-28587,
-                                  -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                                  -16749,-28163,-16749,-28163,-16749,-28163,-16749,-28163,
-                                  -17112,-27944,-17112,-27944,-17112,-27944,-17112,-27944,
-                                  -17472,-27721,-17472,-27721,-17472,-27721,-17472,-27721,
-                                  -17829,-27493,-17829,-27493,-17829,-27493,-17829,-27493,
-                                  -18183,-27260,-18183,-27260,-18183,-27260,-18183,-27260,
-                                  -18534,-27023,-18534,-27023,-18534,-27023,-18534,-27023,
-                                  -18882,-26781,-18882,-26781,-18882,-26781,-18882,-26781,
-                                  -19226,-26534,-19226,-26534,-19226,-26534,-19226,-26534,
-                                  -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284,
-                                  -19906,-26029,-19906,-26029,-19906,-26029,-19906,-26029,
-                                  -20241,-25769,-20241,-25769,-20241,-25769,-20241,-25769,
-                                  -20572,-25505,-20572,-25505,-20572,-25505,-20572,-25505,
-                                  -20900,-25237,-20900,-25237,-20900,-25237,-20900,-25237,
-                                  -21225,-24965,-21225,-24965,-21225,-24965,-21225,-24965,
-                                  -21546,-24688,-21546,-24688,-21546,-24688,-21546,-24688,
-                                  -21863,-24408,-21863,-24408,-21863,-24408,-21863,-24408,
-                                  -22177,-24123,-22177,-24123,-22177,-24123,-22177,-24123,
-                                  -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834,
-                                  -22793,-23542,-22793,-23542,-22793,-23542,-22793,-23542,
-                                  -23095,-23245,-23095,-23245,-23095,-23245,-23095,-23245,
-                                  -23394,-22945,-23394,-22945,-23394,-22945,-23394,-22945,
-                                  -23689,-22640,-23689,-22640,-23689,-22640,-23689,-22640,
-                                  -23979,-22332,-23979,-22332,-23979,-22332,-23979,-22332,
-                                  -24266,-22020,-24266,-22020,-24266,-22020,-24266,-22020,
-                                  -24549,-21705,-24549,-21705,-24549,-21705,-24549,-21705,
-                                  -24827,-21385,-24827,-21385,-24827,-21385,-24827,-21385,
-                                  -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063,
-                                  -25372,-20736,-25372,-20736,-25372,-20736,-25372,-20736,
-                                  -25638,-20407,-25638,-20407,-25638,-20407,-25638,-20407,
-                                  -25899,-20074,-25899,-20074,-25899,-20074,-25899,-20074,
-                                  -26157,-19737,-26157,-19737,-26157,-19737,-26157,-19737,
-                                  -26410,-19397,-26410,-19397,-26410,-19397,-26410,-19397,
-                                  -26658,-19054,-26658,-19054,-26658,-19054,-26658,-19054,
-                                  -26902,-18708,-26902,-18708,-26902,-18708,-26902,-18708,
-                                  -27142,-18359,-27142,-18359,-27142,-18359,-27142,-18359,
-                                  -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006,
-                                  -27607,-17651,-27607,-17651,-27607,-17651,-27607,-17651,
-                                  -27833,-17292,-27833,-17292,-27833,-17292,-27833,-17292,
-                                  -28055,-16931,-28055,-16931,-28055,-16931,-28055,-16931,
-                                  -28271,-16567,-28271,-16567,-28271,-16567,-28271,-16567,
-                                  -28483,-16200,-28483,-16200,-28483,-16200,-28483,-16200,
-                                  -28690,-15831,-28690,-15831,-28690,-15831,-28690,-15831,
-                                  -28892,-15458,-28892,-15458,-28892,-15458,-28892,-15458,
-                                  -29090,-15084,-29090,-15084,-29090,-15084,-29090,-15084,
-                                  -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706,
-                                  -29470,-14327,-29470,-14327,-29470,-14327,-29470,-14327,
-                                  -29653,-13944,-29653,-13944,-29653,-13944,-29653,-13944,
-                                  -29830,-13560,-29830,-13560,-29830,-13560,-29830,-13560,
-                                  -30003,-13173,-30003,-13173,-30003,-13173,-30003,-13173,
-                                  -30171,-12784,-30171,-12784,-30171,-12784,-30171,-12784,
-                                  -30334,-12393,-30334,-12393,-30334,-12393,-30334,-12393,
-                                  -30491,-12000,-30491,-12000,-30491,-12000,-30491,-12000,
-                                  -30644,-11605,-30644,-11605,-30644,-11605,-30644,-11605,
-                                  -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207,
-                                  -30934,-10808,-30934,-10808,-30934,-10808,-30934,-10808,
-                                  -31071,-10408,-31071,-10408,-31071,-10408,-31071,-10408,
-                                  -31203,-10005,-31203,-10005,-31203,-10005,-31203,-10005,
-                                  -31330,-9601,-31330,-9601,-31330,-9601,-31330,-9601,
-                                  -31451,-9195,-31451,-9195,-31451,-9195,-31451,-9195,
-                                  -31567,-8788,-31567,-8788,-31567,-8788,-31567,-8788,
-                                  -31678,-8379,-31678,-8379,-31678,-8379,-31678,-8379,
-                                  -31784,-7969,-31784,-7969,-31784,-7969,-31784,-7969,
-                                  -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557,
-                                  -31979,-7144,-31979,-7144,-31979,-7144,-31979,-7144,
-                                  -32069,-6730,-32069,-6730,-32069,-6730,-32069,-6730,
-                                  -32153,-6315,-32153,-6315,-32153,-6315,-32153,-6315,
-                                  -32232,-5899,-32232,-5899,-32232,-5899,-32232,-5899,
-                                  -32306,-5482,-32306,-5482,-32306,-5482,-32306,-5482,
-                                  -32374,-5064,-32374,-5064,-32374,-5064,-32374,-5064,
-                                  -32437,-4645,-32437,-4645,-32437,-4645,-32437,-4645,
-                                  -32494,-4225,-32494,-4225,-32494,-4225,-32494,-4225,
-                                  -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805,
-                                  -32592,-3383,-32592,-3383,-32592,-3383,-32592,-3383,
-                                  -32633,-2962,-32633,-2962,-32633,-2962,-32633,-2962,
-                                  -32669,-2540,-32669,-2540,-32669,-2540,-32669,-2540,
-                                  -32699,-2117,-32699,-2117,-32699,-2117,-32699,-2117,
-                                  -32724,-1694,-32724,-1694,-32724,-1694,-32724,-1694,
-                                  -32743,-1271,-32743,-1271,-32743,-1271,-32743,-1271,
-                                  -32757,-848,-32757,-848,-32757,-848,-32757,-848,
-                                  -32765,-424,-32765,-424,-32765,-424,-32765,-424,
-                                  -32767,-1,-32767,-1,-32767,-1,-32767,-1,
-                                  -32765,423,-32765,423,-32765,423,-32765,423,
-                                  -32757,847,-32757,847,-32757,847,-32757,847,
-                                  -32743,1270,-32743,1270,-32743,1270,-32743,1270,
-                                  -32724,1693,-32724,1693,-32724,1693,-32724,1693,
-                                  -32699,2116,-32699,2116,-32699,2116,-32699,2116,
-                                  -32669,2539,-32669,2539,-32669,2539,-32669,2539,
-                                  -32633,2961,-32633,2961,-32633,2961,-32633,2961,
-                                  -32592,3382,-32592,3382,-32592,3382,-32592,3382,
-                                  -32546,3804,-32546,3804,-32546,3804,-32546,3804,
-                                  -32494,4224,-32494,4224,-32494,4224,-32494,4224,
-                                  -32437,4644,-32437,4644,-32437,4644,-32437,4644,
-                                  -32374,5063,-32374,5063,-32374,5063,-32374,5063,
-                                  -32306,5481,-32306,5481,-32306,5481,-32306,5481,
-                                  -32232,5898,-32232,5898,-32232,5898,-32232,5898,
-                                  -32153,6314,-32153,6314,-32153,6314,-32153,6314,
-                                  -32069,6729,-32069,6729,-32069,6729,-32069,6729,
-                                  -31979,7143,-31979,7143,-31979,7143,-31979,7143,
-                                  -31884,7556,-31884,7556,-31884,7556,-31884,7556,
-                                  -31784,7968,-31784,7968,-31784,7968,-31784,7968,
-                                  -31678,8378,-31678,8378,-31678,8378,-31678,8378,
-                                  -31567,8787,-31567,8787,-31567,8787,-31567,8787,
-                                  -31451,9194,-31451,9194,-31451,9194,-31451,9194,
-                                  -31330,9600,-31330,9600,-31330,9600,-31330,9600,
-                                  -31203,10004,-31203,10004,-31203,10004,-31203,10004,
-                                  -31071,10407,-31071,10407,-31071,10407,-31071,10407,
-                                  -30934,10807,-30934,10807,-30934,10807,-30934,10807,
-                                  -30791,11206,-30791,11206,-30791,11206,-30791,11206,
-                                  -30644,11604,-30644,11604,-30644,11604,-30644,11604,
-                                  -30491,11999,-30491,11999,-30491,11999,-30491,11999,
-                                  -30334,12392,-30334,12392,-30334,12392,-30334,12392,
-                                  -30171,12783,-30171,12783,-30171,12783,-30171,12783,
-                                  -30003,13172,-30003,13172,-30003,13172,-30003,13172,
-                                  -29830,13559,-29830,13559,-29830,13559,-29830,13559,
-                                  -29653,13943,-29653,13943,-29653,13943,-29653,13943,
-                                  -29470,14326,-29470,14326,-29470,14326,-29470,14326,
-                                  -29282,14705,-29282,14705,-29282,14705,-29282,14705,
-                                  -29090,15083,-29090,15083,-29090,15083,-29090,15083,
-                                  -28892,15457,-28892,15457,-28892,15457,-28892,15457,
-                                  -28690,15830,-28690,15830,-28690,15830,-28690,15830,
-                                  -28483,16199,-28483,16199,-28483,16199,-28483,16199,
-                                  -28271,16566,-28271,16566,-28271,16566,-28271,16566,
-                                  -28055,16930,-28055,16930,-28055,16930,-28055,16930,
-                                  -27833,17291,-27833,17291,-27833,17291,-27833,17291,
-                                  -27607,17650,-27607,17650,-27607,17650,-27607,17650,
-                                  -27377,18005,-27377,18005,-27377,18005,-27377,18005,
-                                  -27142,18358,-27142,18358,-27142,18358,-27142,18358,
-                                  -26902,18707,-26902,18707,-26902,18707,-26902,18707,
-                                  -26658,19053,-26658,19053,-26658,19053,-26658,19053,
-                                  -26410,19396,-26410,19396,-26410,19396,-26410,19396,
-                                  -26157,19736,-26157,19736,-26157,19736,-26157,19736,
-                                  -25899,20073,-25899,20073,-25899,20073,-25899,20073,
-                                  -25638,20406,-25638,20406,-25638,20406,-25638,20406,
-                                  -25372,20735,-25372,20735,-25372,20735,-25372,20735,
-                                  -25101,21062,-25101,21062,-25101,21062,-25101,21062,
-                                  -24827,21384,-24827,21384,-24827,21384,-24827,21384,
-                                  -24549,21704,-24549,21704,-24549,21704,-24549,21704,
-                                  -24266,22019,-24266,22019,-24266,22019,-24266,22019,
-                                  -23979,22331,-23979,22331,-23979,22331,-23979,22331,
-                                  -23689,22639,-23689,22639,-23689,22639,-23689,22639,
-                                  -23394,22944,-23394,22944,-23394,22944,-23394,22944,
-                                  -23095,23244,-23095,23244,-23095,23244,-23095,23244,
-                                  -22793,23541,-22793,23541,-22793,23541,-22793,23541,
-                                  -22487,23833,-22487,23833,-22487,23833,-22487,23833,
-                                  -22177,24122,-22177,24122,-22177,24122,-22177,24122,
-                                  -21863,24407,-21863,24407,-21863,24407,-21863,24407,
-                                  -21546,24687,-21546,24687,-21546,24687,-21546,24687,
-                                  -21225,24964,-21225,24964,-21225,24964,-21225,24964,
-                                  -20900,25236,-20900,25236,-20900,25236,-20900,25236,
-                                  -20572,25504,-20572,25504,-20572,25504,-20572,25504,
-                                  -20241,25768,-20241,25768,-20241,25768,-20241,25768,
-                                  -19906,26028,-19906,26028,-19906,26028,-19906,26028,
-                                  -19568,26283,-19568,26283,-19568,26283,-19568,26283,
-                                  -19226,26533,-19226,26533,-19226,26533,-19226,26533,
-                                  -18882,26780,-18882,26780,-18882,26780,-18882,26780,
-                                  -18534,27022,-18534,27022,-18534,27022,-18534,27022,
-                                  -18183,27259,-18183,27259,-18183,27259,-18183,27259,
-                                  -17829,27492,-17829,27492,-17829,27492,-17829,27492,
-                                  -17472,27720,-17472,27720,-17472,27720,-17472,27720,
-                                  -17112,27943,-17112,27943,-17112,27943,-17112,27943,
-                                  -16749,28162,-16749,28162,-16749,28162,-16749,28162
-                                 };
+
+static int16_t twa972[323*2*4];
+static int16_t twb972[323*2*4];
 
 void dft972(int16_t *x,int16_t *y,unsigned char scale_flag)  // 324 x 3
 {
@@ -15798,750 +8331,8 @@ void dft972(int16_t *x,int16_t *y,unsigned char scale_flag)  // 324 x 3
 
 };
 
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:359)/1080));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:359)/1080));
-twa2 = zeros(1,2*359);
-twb2 = zeros(1,2*359);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-fd=fopen("twiddle_tmp.txt","w");
-fprintf(fd,"static int16_t twa1080[359*2*4] = {");
-for i=1:2:(2*358)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-fprintf(fd,"static int16_t twb1080[359*2*4] = {");
-for i=1:2:(2*358)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-fclose(fd);
-*/
-static int16_t twa1080[359*2*4] = {32766,-191,32766,-191,32766,-191,32766,-191,
-                                   32764,-382,32764,-382,32764,-382,32764,-382,
-                                   32762,-572,32762,-572,32762,-572,32762,-572,
-                                   32758,-763,32758,-763,32758,-763,32758,-763,
-                                   32753,-954,32753,-954,32753,-954,32753,-954,
-                                   32747,-1144,32747,-1144,32747,-1144,32747,-1144,
-                                   32739,-1335,32739,-1335,32739,-1335,32739,-1335,
-                                   32731,-1525,32731,-1525,32731,-1525,32731,-1525,
-                                   32722,-1715,32722,-1715,32722,-1715,32722,-1715,
-                                   32711,-1906,32711,-1906,32711,-1906,32711,-1906,
-                                   32699,-2096,32699,-2096,32699,-2096,32699,-2096,
-                                   32687,-2286,32687,-2286,32687,-2286,32687,-2286,
-                                   32673,-2476,32673,-2476,32673,-2476,32673,-2476,
-                                   32658,-2666,32658,-2666,32658,-2666,32658,-2666,
-                                   32642,-2856,32642,-2856,32642,-2856,32642,-2856,
-                                   32625,-3046,32625,-3046,32625,-3046,32625,-3046,
-                                   32606,-3236,32606,-3236,32606,-3236,32606,-3236,
-                                   32587,-3426,32587,-3426,32587,-3426,32587,-3426,
-                                   32567,-3615,32567,-3615,32567,-3615,32567,-3615,
-                                   32545,-3805,32545,-3805,32545,-3805,32545,-3805,
-                                   32522,-3994,32522,-3994,32522,-3994,32522,-3994,
-                                   32498,-4183,32498,-4183,32498,-4183,32498,-4183,
-                                   32474,-4372,32474,-4372,32474,-4372,32474,-4372,
-                                   32448,-4561,32448,-4561,32448,-4561,32448,-4561,
-                                   32421,-4749,32421,-4749,32421,-4749,32421,-4749,
-                                   32392,-4938,32392,-4938,32392,-4938,32392,-4938,
-                                   32363,-5126,32363,-5126,32363,-5126,32363,-5126,
-                                   32333,-5315,32333,-5315,32333,-5315,32333,-5315,
-                                   32301,-5503,32301,-5503,32301,-5503,32301,-5503,
-                                   32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                   32235,-5878,32235,-5878,32235,-5878,32235,-5878,
-                                   32200,-6066,32200,-6066,32200,-6066,32200,-6066,
-                                   32164,-6253,32164,-6253,32164,-6253,32164,-6253,
-                                   32128,-6440,32128,-6440,32128,-6440,32128,-6440,
-                                   32090,-6627,32090,-6627,32090,-6627,32090,-6627,
-                                   32050,-6813,32050,-6813,32050,-6813,32050,-6813,
-                                   32010,-6999,32010,-6999,32010,-6999,32010,-6999,
-                                   31969,-7186,31969,-7186,31969,-7186,31969,-7186,
-                                   31927,-7371,31927,-7371,31927,-7371,31927,-7371,
-                                   31883,-7557,31883,-7557,31883,-7557,31883,-7557,
-                                   31839,-7742,31839,-7742,31839,-7742,31839,-7742,
-                                   31793,-7928,31793,-7928,31793,-7928,31793,-7928,
-                                   31747,-8112,31747,-8112,31747,-8112,31747,-8112,
-                                   31699,-8297,31699,-8297,31699,-8297,31699,-8297,
-                                   31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                   31600,-8665,31600,-8665,31600,-8665,31600,-8665,
-                                   31549,-8849,31549,-8849,31549,-8849,31549,-8849,
-                                   31497,-9032,31497,-9032,31497,-9032,31497,-9032,
-                                   31444,-9215,31444,-9215,31444,-9215,31444,-9215,
-                                   31390,-9398,31390,-9398,31390,-9398,31390,-9398,
-                                   31335,-9581,31335,-9581,31335,-9581,31335,-9581,
-                                   31278,-9763,31278,-9763,31278,-9763,31278,-9763,
-                                   31221,-9945,31221,-9945,31221,-9945,31221,-9945,
-                                   31163,-10126,31163,-10126,31163,-10126,31163,-10126,
-                                   31103,-10307,31103,-10307,31103,-10307,31103,-10307,
-                                   31043,-10488,31043,-10488,31043,-10488,31043,-10488,
-                                   30981,-10668,30981,-10668,30981,-10668,30981,-10668,
-                                   30919,-10848,30919,-10848,30919,-10848,30919,-10848,
-                                   30855,-11028,30855,-11028,30855,-11028,30855,-11028,
-                                   30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                   30725,-11386,30725,-11386,30725,-11386,30725,-11386,
-                                   30658,-11565,30658,-11565,30658,-11565,30658,-11565,
-                                   30590,-11743,30590,-11743,30590,-11743,30590,-11743,
-                                   30521,-11921,30521,-11921,30521,-11921,30521,-11921,
-                                   30451,-12098,30451,-12098,30451,-12098,30451,-12098,
-                                   30381,-12275,30381,-12275,30381,-12275,30381,-12275,
-                                   30309,-12452,30309,-12452,30309,-12452,30309,-12452,
-                                   30236,-12628,30236,-12628,30236,-12628,30236,-12628,
-                                   30162,-12804,30162,-12804,30162,-12804,30162,-12804,
-                                   30087,-12979,30087,-12979,30087,-12979,30087,-12979,
-                                   30011,-13154,30011,-13154,30011,-13154,30011,-13154,
-                                   29934,-13328,29934,-13328,29934,-13328,29934,-13328,
-                                   29856,-13502,29856,-13502,29856,-13502,29856,-13502,
-                                   29777,-13675,29777,-13675,29777,-13675,29777,-13675,
-                                   29696,-13848,29696,-13848,29696,-13848,29696,-13848,
-                                   29615,-14021,29615,-14021,29615,-14021,29615,-14021,
-                                   29533,-14193,29533,-14193,29533,-14193,29533,-14193,
-                                   29450,-14365,29450,-14365,29450,-14365,29450,-14365,
-                                   29366,-14536,29366,-14536,29366,-14536,29366,-14536,
-                                   29281,-14706,29281,-14706,29281,-14706,29281,-14706,
-                                   29195,-14876,29195,-14876,29195,-14876,29195,-14876,
-                                   29108,-15046,29108,-15046,29108,-15046,29108,-15046,
-                                   29020,-15215,29020,-15215,29020,-15215,29020,-15215,
-                                   28931,-15384,28931,-15384,28931,-15384,28931,-15384,
-                                   28841,-15552,28841,-15552,28841,-15552,28841,-15552,
-                                   28750,-15719,28750,-15719,28750,-15719,28750,-15719,
-                                   28658,-15886,28658,-15886,28658,-15886,28658,-15886,
-                                   28565,-16053,28565,-16053,28565,-16053,28565,-16053,
-                                   28471,-16219,28471,-16219,28471,-16219,28471,-16219,
-                                   28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                   28281,-16549,28281,-16549,28281,-16549,28281,-16549,
-                                   28184,-16713,28184,-16713,28184,-16713,28184,-16713,
-                                   28086,-16877,28086,-16877,28086,-16877,28086,-16877,
-                                   27988,-17040,27988,-17040,27988,-17040,27988,-17040,
-                                   27888,-17202,27888,-17202,27888,-17202,27888,-17202,
-                                   27787,-17364,27787,-17364,27787,-17364,27787,-17364,
-                                   27686,-17526,27686,-17526,27686,-17526,27686,-17526,
-                                   27584,-17687,27584,-17687,27584,-17687,27584,-17687,
-                                   27480,-17847,27480,-17847,27480,-17847,27480,-17847,
-                                   27376,-18006,27376,-18006,27376,-18006,27376,-18006,
-                                   27271,-18165,27271,-18165,27271,-18165,27271,-18165,
-                                   27165,-18324,27165,-18324,27165,-18324,27165,-18324,
-                                   27058,-18481,27058,-18481,27058,-18481,27058,-18481,
-                                   26950,-18638,26950,-18638,26950,-18638,26950,-18638,
-                                   26841,-18795,26841,-18795,26841,-18795,26841,-18795,
-                                   26731,-18951,26731,-18951,26731,-18951,26731,-18951,
-                                   26620,-19106,26620,-19106,26620,-19106,26620,-19106,
-                                   26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                                   26396,-19414,26396,-19414,26396,-19414,26396,-19414,
-                                   26283,-19568,26283,-19568,26283,-19568,26283,-19568,
-                                   26168,-19720,26168,-19720,26168,-19720,26168,-19720,
-                                   26053,-19872,26053,-19872,26053,-19872,26053,-19872,
-                                   25937,-20023,25937,-20023,25937,-20023,25937,-20023,
-                                   25820,-20174,25820,-20174,25820,-20174,25820,-20174,
-                                   25702,-20324,25702,-20324,25702,-20324,25702,-20324,
-                                   25584,-20473,25584,-20473,25584,-20473,25584,-20473,
-                                   25464,-20621,25464,-20621,25464,-20621,25464,-20621,
-                                   25344,-20769,25344,-20769,25344,-20769,25344,-20769,
-                                   25223,-20916,25223,-20916,25223,-20916,25223,-20916,
-                                   25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                   24978,-21208,24978,-21208,24978,-21208,24978,-21208,
-                                   24854,-21353,24854,-21353,24854,-21353,24854,-21353,
-                                   24729,-21498,24729,-21498,24729,-21498,24729,-21498,
-                                   24604,-21641,24604,-21641,24604,-21641,24604,-21641,
-                                   24477,-21784,24477,-21784,24477,-21784,24477,-21784,
-                                   24350,-21926,24350,-21926,24350,-21926,24350,-21926,
-                                   24222,-22067,24222,-22067,24222,-22067,24222,-22067,
-                                   24093,-22208,24093,-22208,24093,-22208,24093,-22208,
-                                   23964,-22348,23964,-22348,23964,-22348,23964,-22348,
-                                   23833,-22487,23833,-22487,23833,-22487,23833,-22487,
-                                   23702,-22625,23702,-22625,23702,-22625,23702,-22625,
-                                   23570,-22762,23570,-22762,23570,-22762,23570,-22762,
-                                   23437,-22899,23437,-22899,23437,-22899,23437,-22899,
-                                   23304,-23035,23304,-23035,23304,-23035,23304,-23035,
-                                   23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                   23034,-23305,23034,-23305,23034,-23305,23034,-23305,
-                                   22898,-23438,22898,-23438,22898,-23438,22898,-23438,
-                                   22761,-23571,22761,-23571,22761,-23571,22761,-23571,
-                                   22624,-23703,22624,-23703,22624,-23703,22624,-23703,
-                                   22486,-23834,22486,-23834,22486,-23834,22486,-23834,
-                                   22347,-23965,22347,-23965,22347,-23965,22347,-23965,
-                                   22207,-24094,22207,-24094,22207,-24094,22207,-24094,
-                                   22066,-24223,22066,-24223,22066,-24223,22066,-24223,
-                                   21925,-24351,21925,-24351,21925,-24351,21925,-24351,
-                                   21783,-24478,21783,-24478,21783,-24478,21783,-24478,
-                                   21640,-24605,21640,-24605,21640,-24605,21640,-24605,
-                                   21497,-24730,21497,-24730,21497,-24730,21497,-24730,
-                                   21352,-24855,21352,-24855,21352,-24855,21352,-24855,
-                                   21207,-24979,21207,-24979,21207,-24979,21207,-24979,
-                                   21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                   20915,-25224,20915,-25224,20915,-25224,20915,-25224,
-                                   20768,-25345,20768,-25345,20768,-25345,20768,-25345,
-                                   20620,-25465,20620,-25465,20620,-25465,20620,-25465,
-                                   20472,-25585,20472,-25585,20472,-25585,20472,-25585,
-                                   20323,-25703,20323,-25703,20323,-25703,20323,-25703,
-                                   20173,-25821,20173,-25821,20173,-25821,20173,-25821,
-                                   20022,-25938,20022,-25938,20022,-25938,20022,-25938,
-                                   19871,-26054,19871,-26054,19871,-26054,19871,-26054,
-                                   19719,-26169,19719,-26169,19719,-26169,19719,-26169,
-                                   19567,-26284,19567,-26284,19567,-26284,19567,-26284,
-                                   19413,-26397,19413,-26397,19413,-26397,19413,-26397,
-                                   19259,-26510,19259,-26510,19259,-26510,19259,-26510,
-                                   19105,-26621,19105,-26621,19105,-26621,19105,-26621,
-                                   18950,-26732,18950,-26732,18950,-26732,18950,-26732,
-                                   18794,-26842,18794,-26842,18794,-26842,18794,-26842,
-                                   18637,-26951,18637,-26951,18637,-26951,18637,-26951,
-                                   18480,-27059,18480,-27059,18480,-27059,18480,-27059,
-                                   18323,-27166,18323,-27166,18323,-27166,18323,-27166,
-                                   18164,-27272,18164,-27272,18164,-27272,18164,-27272,
-                                   18005,-27377,18005,-27377,18005,-27377,18005,-27377,
-                                   17846,-27481,17846,-27481,17846,-27481,17846,-27481,
-                                   17686,-27585,17686,-27585,17686,-27585,17686,-27585,
-                                   17525,-27687,17525,-27687,17525,-27687,17525,-27687,
-                                   17363,-27788,17363,-27788,17363,-27788,17363,-27788,
-                                   17201,-27889,17201,-27889,17201,-27889,17201,-27889,
-                                   17039,-27989,17039,-27989,17039,-27989,17039,-27989,
-                                   16876,-28087,16876,-28087,16876,-28087,16876,-28087,
-                                   16712,-28185,16712,-28185,16712,-28185,16712,-28185,
-                                   16548,-28282,16548,-28282,16548,-28282,16548,-28282,
-                                   16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                   16218,-28472,16218,-28472,16218,-28472,16218,-28472,
-                                   16052,-28566,16052,-28566,16052,-28566,16052,-28566,
-                                   15885,-28659,15885,-28659,15885,-28659,15885,-28659,
-                                   15718,-28751,15718,-28751,15718,-28751,15718,-28751,
-                                   15551,-28842,15551,-28842,15551,-28842,15551,-28842,
-                                   15383,-28932,15383,-28932,15383,-28932,15383,-28932,
-                                   15214,-29021,15214,-29021,15214,-29021,15214,-29021,
-                                   15045,-29109,15045,-29109,15045,-29109,15045,-29109,
-                                   14875,-29196,14875,-29196,14875,-29196,14875,-29196,
-                                   14705,-29282,14705,-29282,14705,-29282,14705,-29282,
-                                   14535,-29367,14535,-29367,14535,-29367,14535,-29367,
-                                   14364,-29451,14364,-29451,14364,-29451,14364,-29451,
-                                   14192,-29534,14192,-29534,14192,-29534,14192,-29534,
-                                   14020,-29616,14020,-29616,14020,-29616,14020,-29616,
-                                   13847,-29697,13847,-29697,13847,-29697,13847,-29697,
-                                   13674,-29778,13674,-29778,13674,-29778,13674,-29778,
-                                   13501,-29857,13501,-29857,13501,-29857,13501,-29857,
-                                   13327,-29935,13327,-29935,13327,-29935,13327,-29935,
-                                   13153,-30012,13153,-30012,13153,-30012,13153,-30012,
-                                   12978,-30088,12978,-30088,12978,-30088,12978,-30088,
-                                   12803,-30163,12803,-30163,12803,-30163,12803,-30163,
-                                   12627,-30237,12627,-30237,12627,-30237,12627,-30237,
-                                   12451,-30310,12451,-30310,12451,-30310,12451,-30310,
-                                   12274,-30382,12274,-30382,12274,-30382,12274,-30382,
-                                   12097,-30452,12097,-30452,12097,-30452,12097,-30452,
-                                   11920,-30522,11920,-30522,11920,-30522,11920,-30522,
-                                   11742,-30591,11742,-30591,11742,-30591,11742,-30591,
-                                   11564,-30659,11564,-30659,11564,-30659,11564,-30659,
-                                   11385,-30726,11385,-30726,11385,-30726,11385,-30726,
-                                   11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                   11027,-30856,11027,-30856,11027,-30856,11027,-30856,
-                                   10847,-30920,10847,-30920,10847,-30920,10847,-30920,
-                                   10667,-30982,10667,-30982,10667,-30982,10667,-30982,
-                                   10487,-31044,10487,-31044,10487,-31044,10487,-31044,
-                                   10306,-31104,10306,-31104,10306,-31104,10306,-31104,
-                                   10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                                   9944,-31222,9944,-31222,9944,-31222,9944,-31222,
-                                   9762,-31279,9762,-31279,9762,-31279,9762,-31279,
-                                   9580,-31336,9580,-31336,9580,-31336,9580,-31336,
-                                   9397,-31391,9397,-31391,9397,-31391,9397,-31391,
-                                   9214,-31445,9214,-31445,9214,-31445,9214,-31445,
-                                   9031,-31498,9031,-31498,9031,-31498,9031,-31498,
-                                   8848,-31550,8848,-31550,8848,-31550,8848,-31550,
-                                   8664,-31601,8664,-31601,8664,-31601,8664,-31601,
-                                   8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                   8296,-31700,8296,-31700,8296,-31700,8296,-31700,
-                                   8111,-31748,8111,-31748,8111,-31748,8111,-31748,
-                                   7927,-31794,7927,-31794,7927,-31794,7927,-31794,
-                                   7741,-31840,7741,-31840,7741,-31840,7741,-31840,
-                                   7556,-31884,7556,-31884,7556,-31884,7556,-31884,
-                                   7370,-31928,7370,-31928,7370,-31928,7370,-31928,
-                                   7185,-31970,7185,-31970,7185,-31970,7185,-31970,
-                                   6998,-32011,6998,-32011,6998,-32011,6998,-32011,
-                                   6812,-32051,6812,-32051,6812,-32051,6812,-32051,
-                                   6626,-32091,6626,-32091,6626,-32091,6626,-32091,
-                                   6439,-32129,6439,-32129,6439,-32129,6439,-32129,
-                                   6252,-32165,6252,-32165,6252,-32165,6252,-32165,
-                                   6065,-32201,6065,-32201,6065,-32201,6065,-32201,
-                                   5877,-32236,5877,-32236,5877,-32236,5877,-32236,
-                                   5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                   5502,-32302,5502,-32302,5502,-32302,5502,-32302,
-                                   5314,-32334,5314,-32334,5314,-32334,5314,-32334,
-                                   5125,-32364,5125,-32364,5125,-32364,5125,-32364,
-                                   4937,-32393,4937,-32393,4937,-32393,4937,-32393,
-                                   4748,-32422,4748,-32422,4748,-32422,4748,-32422,
-                                   4560,-32449,4560,-32449,4560,-32449,4560,-32449,
-                                   4371,-32475,4371,-32475,4371,-32475,4371,-32475,
-                                   4182,-32499,4182,-32499,4182,-32499,4182,-32499,
-                                   3993,-32523,3993,-32523,3993,-32523,3993,-32523,
-                                   3804,-32546,3804,-32546,3804,-32546,3804,-32546,
-                                   3614,-32568,3614,-32568,3614,-32568,3614,-32568,
-                                   3425,-32588,3425,-32588,3425,-32588,3425,-32588,
-                                   3235,-32607,3235,-32607,3235,-32607,3235,-32607,
-                                   3045,-32626,3045,-32626,3045,-32626,3045,-32626,
-                                   2855,-32643,2855,-32643,2855,-32643,2855,-32643,
-                                   2665,-32659,2665,-32659,2665,-32659,2665,-32659,
-                                   2475,-32674,2475,-32674,2475,-32674,2475,-32674,
-                                   2285,-32688,2285,-32688,2285,-32688,2285,-32688,
-                                   2095,-32700,2095,-32700,2095,-32700,2095,-32700,
-                                   1905,-32712,1905,-32712,1905,-32712,1905,-32712,
-                                   1714,-32723,1714,-32723,1714,-32723,1714,-32723,
-                                   1524,-32732,1524,-32732,1524,-32732,1524,-32732,
-                                   1334,-32740,1334,-32740,1334,-32740,1334,-32740,
-                                   1143,-32748,1143,-32748,1143,-32748,1143,-32748,
-                                   953,-32754,953,-32754,953,-32754,953,-32754,
-                                   762,-32759,762,-32759,762,-32759,762,-32759,
-                                   571,-32763,571,-32763,571,-32763,571,-32763,
-                                   381,-32765,381,-32765,381,-32765,381,-32765,
-                                   190,-32767,190,-32767,190,-32767,190,-32767,
-                                   0,-32767,0,-32767,0,-32767,0,-32767,
-                                   -191,-32767,-191,-32767,-191,-32767,-191,-32767,
-                                   -382,-32765,-382,-32765,-382,-32765,-382,-32765,
-                                   -572,-32763,-572,-32763,-572,-32763,-572,-32763,
-                                   -763,-32759,-763,-32759,-763,-32759,-763,-32759,
-                                   -954,-32754,-954,-32754,-954,-32754,-954,-32754,
-                                   -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748,
-                                   -1335,-32740,-1335,-32740,-1335,-32740,-1335,-32740,
-                                   -1525,-32732,-1525,-32732,-1525,-32732,-1525,-32732,
-                                   -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723,
-                                   -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712,
-                                   -2096,-32700,-2096,-32700,-2096,-32700,-2096,-32700,
-                                   -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688,
-                                   -2476,-32674,-2476,-32674,-2476,-32674,-2476,-32674,
-                                   -2666,-32659,-2666,-32659,-2666,-32659,-2666,-32659,
-                                   -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643,
-                                   -3046,-32626,-3046,-32626,-3046,-32626,-3046,-32626,
-                                   -3236,-32607,-3236,-32607,-3236,-32607,-3236,-32607,
-                                   -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588,
-                                   -3615,-32568,-3615,-32568,-3615,-32568,-3615,-32568,
-                                   -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546,
-                                   -3994,-32523,-3994,-32523,-3994,-32523,-3994,-32523,
-                                   -4183,-32499,-4183,-32499,-4183,-32499,-4183,-32499,
-                                   -4372,-32475,-4372,-32475,-4372,-32475,-4372,-32475,
-                                   -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449,
-                                   -4749,-32422,-4749,-32422,-4749,-32422,-4749,-32422,
-                                   -4938,-32393,-4938,-32393,-4938,-32393,-4938,-32393,
-                                   -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364,
-                                   -5315,-32334,-5315,-32334,-5315,-32334,-5315,-32334,
-                                   -5503,-32302,-5503,-32302,-5503,-32302,-5503,-32302,
-                                   -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                   -5878,-32236,-5878,-32236,-5878,-32236,-5878,-32236,
-                                   -6066,-32201,-6066,-32201,-6066,-32201,-6066,-32201,
-                                   -6253,-32165,-6253,-32165,-6253,-32165,-6253,-32165,
-                                   -6440,-32129,-6440,-32129,-6440,-32129,-6440,-32129,
-                                   -6627,-32091,-6627,-32091,-6627,-32091,-6627,-32091,
-                                   -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051,
-                                   -6999,-32011,-6999,-32011,-6999,-32011,-6999,-32011,
-                                   -7186,-31970,-7186,-31970,-7186,-31970,-7186,-31970,
-                                   -7371,-31928,-7371,-31928,-7371,-31928,-7371,-31928,
-                                   -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884,
-                                   -7742,-31840,-7742,-31840,-7742,-31840,-7742,-31840,
-                                   -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794,
-                                   -8112,-31748,-8112,-31748,-8112,-31748,-8112,-31748,
-                                   -8297,-31700,-8297,-31700,-8297,-31700,-8297,-31700,
-                                   -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651,
-                                   -8665,-31601,-8665,-31601,-8665,-31601,-8665,-31601,
-                                   -8849,-31550,-8849,-31550,-8849,-31550,-8849,-31550,
-                                   -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498,
-                                   -9215,-31445,-9215,-31445,-9215,-31445,-9215,-31445,
-                                   -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391,
-                                   -9581,-31336,-9581,-31336,-9581,-31336,-9581,-31336,
-                                   -9763,-31279,-9763,-31279,-9763,-31279,-9763,-31279,
-                                   -9945,-31222,-9945,-31222,-9945,-31222,-9945,-31222,
-                                   -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164,
-                                   -10307,-31104,-10307,-31104,-10307,-31104,-10307,-31104,
-                                   -10488,-31044,-10488,-31044,-10488,-31044,-10488,-31044,
-                                   -10668,-30982,-10668,-30982,-10668,-30982,-10668,-30982,
-                                   -10848,-30920,-10848,-30920,-10848,-30920,-10848,-30920,
-                                   -11028,-30856,-11028,-30856,-11028,-30856,-11028,-30856,
-                                   -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791,
-                                   -11386,-30726,-11386,-30726,-11386,-30726,-11386,-30726,
-                                   -11565,-30659,-11565,-30659,-11565,-30659,-11565,-30659,
-                                   -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591,
-                                   -11921,-30522,-11921,-30522,-11921,-30522,-11921,-30522,
-                                   -12098,-30452,-12098,-30452,-12098,-30452,-12098,-30452,
-                                   -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382,
-                                   -12452,-30310,-12452,-30310,-12452,-30310,-12452,-30310,
-                                   -12628,-30237,-12628,-30237,-12628,-30237,-12628,-30237,
-                                   -12804,-30163,-12804,-30163,-12804,-30163,-12804,-30163,
-                                   -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088,
-                                   -13154,-30012,-13154,-30012,-13154,-30012,-13154,-30012,
-                                   -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935,
-                                   -13502,-29857,-13502,-29857,-13502,-29857,-13502,-29857,
-                                   -13675,-29778,-13675,-29778,-13675,-29778,-13675,-29778,
-                                   -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697,
-                                   -14021,-29616,-14021,-29616,-14021,-29616,-14021,-29616,
-                                   -14193,-29534,-14193,-29534,-14193,-29534,-14193,-29534,
-                                   -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451,
-                                   -14536,-29367,-14536,-29367,-14536,-29367,-14536,-29367,
-                                   -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282,
-                                   -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196,
-                                   -15046,-29109,-15046,-29109,-15046,-29109,-15046,-29109,
-                                   -15215,-29021,-15215,-29021,-15215,-29021,-15215,-29021,
-                                   -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932,
-                                   -15552,-28842,-15552,-28842,-15552,-28842,-15552,-28842,
-                                   -15719,-28751,-15719,-28751,-15719,-28751,-15719,-28751,
-                                   -15886,-28659,-15886,-28659,-15886,-28659,-15886,-28659,
-                                   -16053,-28566,-16053,-28566,-16053,-28566,-16053,-28566,
-                                   -16219,-28472,-16219,-28472,-16219,-28472,-16219,-28472
-                                  };
-static int16_t twb1080[359*2*4] = {32764,-382,32764,-382,32764,-382,32764,-382,
-                                   32758,-763,32758,-763,32758,-763,32758,-763,
-                                   32747,-1144,32747,-1144,32747,-1144,32747,-1144,
-                                   32731,-1525,32731,-1525,32731,-1525,32731,-1525,
-                                   32711,-1906,32711,-1906,32711,-1906,32711,-1906,
-                                   32687,-2286,32687,-2286,32687,-2286,32687,-2286,
-                                   32658,-2666,32658,-2666,32658,-2666,32658,-2666,
-                                   32625,-3046,32625,-3046,32625,-3046,32625,-3046,
-                                   32587,-3426,32587,-3426,32587,-3426,32587,-3426,
-                                   32545,-3805,32545,-3805,32545,-3805,32545,-3805,
-                                   32498,-4183,32498,-4183,32498,-4183,32498,-4183,
-                                   32448,-4561,32448,-4561,32448,-4561,32448,-4561,
-                                   32392,-4938,32392,-4938,32392,-4938,32392,-4938,
-                                   32333,-5315,32333,-5315,32333,-5315,32333,-5315,
-                                   32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                   32200,-6066,32200,-6066,32200,-6066,32200,-6066,
-                                   32128,-6440,32128,-6440,32128,-6440,32128,-6440,
-                                   32050,-6813,32050,-6813,32050,-6813,32050,-6813,
-                                   31969,-7186,31969,-7186,31969,-7186,31969,-7186,
-                                   31883,-7557,31883,-7557,31883,-7557,31883,-7557,
-                                   31793,-7928,31793,-7928,31793,-7928,31793,-7928,
-                                   31699,-8297,31699,-8297,31699,-8297,31699,-8297,
-                                   31600,-8665,31600,-8665,31600,-8665,31600,-8665,
-                                   31497,-9032,31497,-9032,31497,-9032,31497,-9032,
-                                   31390,-9398,31390,-9398,31390,-9398,31390,-9398,
-                                   31278,-9763,31278,-9763,31278,-9763,31278,-9763,
-                                   31163,-10126,31163,-10126,31163,-10126,31163,-10126,
-                                   31043,-10488,31043,-10488,31043,-10488,31043,-10488,
-                                   30919,-10848,30919,-10848,30919,-10848,30919,-10848,
-                                   30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                   30658,-11565,30658,-11565,30658,-11565,30658,-11565,
-                                   30521,-11921,30521,-11921,30521,-11921,30521,-11921,
-                                   30381,-12275,30381,-12275,30381,-12275,30381,-12275,
-                                   30236,-12628,30236,-12628,30236,-12628,30236,-12628,
-                                   30087,-12979,30087,-12979,30087,-12979,30087,-12979,
-                                   29934,-13328,29934,-13328,29934,-13328,29934,-13328,
-                                   29777,-13675,29777,-13675,29777,-13675,29777,-13675,
-                                   29615,-14021,29615,-14021,29615,-14021,29615,-14021,
-                                   29450,-14365,29450,-14365,29450,-14365,29450,-14365,
-                                   29281,-14706,29281,-14706,29281,-14706,29281,-14706,
-                                   29108,-15046,29108,-15046,29108,-15046,29108,-15046,
-                                   28931,-15384,28931,-15384,28931,-15384,28931,-15384,
-                                   28750,-15719,28750,-15719,28750,-15719,28750,-15719,
-                                   28565,-16053,28565,-16053,28565,-16053,28565,-16053,
-                                   28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                   28184,-16713,28184,-16713,28184,-16713,28184,-16713,
-                                   27988,-17040,27988,-17040,27988,-17040,27988,-17040,
-                                   27787,-17364,27787,-17364,27787,-17364,27787,-17364,
-                                   27584,-17687,27584,-17687,27584,-17687,27584,-17687,
-                                   27376,-18006,27376,-18006,27376,-18006,27376,-18006,
-                                   27165,-18324,27165,-18324,27165,-18324,27165,-18324,
-                                   26950,-18638,26950,-18638,26950,-18638,26950,-18638,
-                                   26731,-18951,26731,-18951,26731,-18951,26731,-18951,
-                                   26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                                   26283,-19568,26283,-19568,26283,-19568,26283,-19568,
-                                   26053,-19872,26053,-19872,26053,-19872,26053,-19872,
-                                   25820,-20174,25820,-20174,25820,-20174,25820,-20174,
-                                   25584,-20473,25584,-20473,25584,-20473,25584,-20473,
-                                   25344,-20769,25344,-20769,25344,-20769,25344,-20769,
-                                   25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                   24854,-21353,24854,-21353,24854,-21353,24854,-21353,
-                                   24604,-21641,24604,-21641,24604,-21641,24604,-21641,
-                                   24350,-21926,24350,-21926,24350,-21926,24350,-21926,
-                                   24093,-22208,24093,-22208,24093,-22208,24093,-22208,
-                                   23833,-22487,23833,-22487,23833,-22487,23833,-22487,
-                                   23570,-22762,23570,-22762,23570,-22762,23570,-22762,
-                                   23304,-23035,23304,-23035,23304,-23035,23304,-23035,
-                                   23034,-23305,23034,-23305,23034,-23305,23034,-23305,
-                                   22761,-23571,22761,-23571,22761,-23571,22761,-23571,
-                                   22486,-23834,22486,-23834,22486,-23834,22486,-23834,
-                                   22207,-24094,22207,-24094,22207,-24094,22207,-24094,
-                                   21925,-24351,21925,-24351,21925,-24351,21925,-24351,
-                                   21640,-24605,21640,-24605,21640,-24605,21640,-24605,
-                                   21352,-24855,21352,-24855,21352,-24855,21352,-24855,
-                                   21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                   20768,-25345,20768,-25345,20768,-25345,20768,-25345,
-                                   20472,-25585,20472,-25585,20472,-25585,20472,-25585,
-                                   20173,-25821,20173,-25821,20173,-25821,20173,-25821,
-                                   19871,-26054,19871,-26054,19871,-26054,19871,-26054,
-                                   19567,-26284,19567,-26284,19567,-26284,19567,-26284,
-                                   19259,-26510,19259,-26510,19259,-26510,19259,-26510,
-                                   18950,-26732,18950,-26732,18950,-26732,18950,-26732,
-                                   18637,-26951,18637,-26951,18637,-26951,18637,-26951,
-                                   18323,-27166,18323,-27166,18323,-27166,18323,-27166,
-                                   18005,-27377,18005,-27377,18005,-27377,18005,-27377,
-                                   17686,-27585,17686,-27585,17686,-27585,17686,-27585,
-                                   17363,-27788,17363,-27788,17363,-27788,17363,-27788,
-                                   17039,-27989,17039,-27989,17039,-27989,17039,-27989,
-                                   16712,-28185,16712,-28185,16712,-28185,16712,-28185,
-                                   16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                   16052,-28566,16052,-28566,16052,-28566,16052,-28566,
-                                   15718,-28751,15718,-28751,15718,-28751,15718,-28751,
-                                   15383,-28932,15383,-28932,15383,-28932,15383,-28932,
-                                   15045,-29109,15045,-29109,15045,-29109,15045,-29109,
-                                   14705,-29282,14705,-29282,14705,-29282,14705,-29282,
-                                   14364,-29451,14364,-29451,14364,-29451,14364,-29451,
-                                   14020,-29616,14020,-29616,14020,-29616,14020,-29616,
-                                   13674,-29778,13674,-29778,13674,-29778,13674,-29778,
-                                   13327,-29935,13327,-29935,13327,-29935,13327,-29935,
-                                   12978,-30088,12978,-30088,12978,-30088,12978,-30088,
-                                   12627,-30237,12627,-30237,12627,-30237,12627,-30237,
-                                   12274,-30382,12274,-30382,12274,-30382,12274,-30382,
-                                   11920,-30522,11920,-30522,11920,-30522,11920,-30522,
-                                   11564,-30659,11564,-30659,11564,-30659,11564,-30659,
-                                   11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                   10847,-30920,10847,-30920,10847,-30920,10847,-30920,
-                                   10487,-31044,10487,-31044,10487,-31044,10487,-31044,
-                                   10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                                   9762,-31279,9762,-31279,9762,-31279,9762,-31279,
-                                   9397,-31391,9397,-31391,9397,-31391,9397,-31391,
-                                   9031,-31498,9031,-31498,9031,-31498,9031,-31498,
-                                   8664,-31601,8664,-31601,8664,-31601,8664,-31601,
-                                   8296,-31700,8296,-31700,8296,-31700,8296,-31700,
-                                   7927,-31794,7927,-31794,7927,-31794,7927,-31794,
-                                   7556,-31884,7556,-31884,7556,-31884,7556,-31884,
-                                   7185,-31970,7185,-31970,7185,-31970,7185,-31970,
-                                   6812,-32051,6812,-32051,6812,-32051,6812,-32051,
-                                   6439,-32129,6439,-32129,6439,-32129,6439,-32129,
-                                   6065,-32201,6065,-32201,6065,-32201,6065,-32201,
-                                   5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                   5314,-32334,5314,-32334,5314,-32334,5314,-32334,
-                                   4937,-32393,4937,-32393,4937,-32393,4937,-32393,
-                                   4560,-32449,4560,-32449,4560,-32449,4560,-32449,
-                                   4182,-32499,4182,-32499,4182,-32499,4182,-32499,
-                                   3804,-32546,3804,-32546,3804,-32546,3804,-32546,
-                                   3425,-32588,3425,-32588,3425,-32588,3425,-32588,
-                                   3045,-32626,3045,-32626,3045,-32626,3045,-32626,
-                                   2665,-32659,2665,-32659,2665,-32659,2665,-32659,
-                                   2285,-32688,2285,-32688,2285,-32688,2285,-32688,
-                                   1905,-32712,1905,-32712,1905,-32712,1905,-32712,
-                                   1524,-32732,1524,-32732,1524,-32732,1524,-32732,
-                                   1143,-32748,1143,-32748,1143,-32748,1143,-32748,
-                                   762,-32759,762,-32759,762,-32759,762,-32759,
-                                   381,-32765,381,-32765,381,-32765,381,-32765,
-                                   0,-32767,0,-32767,0,-32767,0,-32767,
-                                   -382,-32765,-382,-32765,-382,-32765,-382,-32765,
-                                   -763,-32759,-763,-32759,-763,-32759,-763,-32759,
-                                   -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748,
-                                   -1525,-32732,-1525,-32732,-1525,-32732,-1525,-32732,
-                                   -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712,
-                                   -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688,
-                                   -2666,-32659,-2666,-32659,-2666,-32659,-2666,-32659,
-                                   -3046,-32626,-3046,-32626,-3046,-32626,-3046,-32626,
-                                   -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588,
-                                   -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546,
-                                   -4183,-32499,-4183,-32499,-4183,-32499,-4183,-32499,
-                                   -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449,
-                                   -4938,-32393,-4938,-32393,-4938,-32393,-4938,-32393,
-                                   -5315,-32334,-5315,-32334,-5315,-32334,-5315,-32334,
-                                   -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                   -6066,-32201,-6066,-32201,-6066,-32201,-6066,-32201,
-                                   -6440,-32129,-6440,-32129,-6440,-32129,-6440,-32129,
-                                   -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051,
-                                   -7186,-31970,-7186,-31970,-7186,-31970,-7186,-31970,
-                                   -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884,
-                                   -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794,
-                                   -8297,-31700,-8297,-31700,-8297,-31700,-8297,-31700,
-                                   -8665,-31601,-8665,-31601,-8665,-31601,-8665,-31601,
-                                   -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498,
-                                   -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391,
-                                   -9763,-31279,-9763,-31279,-9763,-31279,-9763,-31279,
-                                   -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164,
-                                   -10488,-31044,-10488,-31044,-10488,-31044,-10488,-31044,
-                                   -10848,-30920,-10848,-30920,-10848,-30920,-10848,-30920,
-                                   -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791,
-                                   -11565,-30659,-11565,-30659,-11565,-30659,-11565,-30659,
-                                   -11921,-30522,-11921,-30522,-11921,-30522,-11921,-30522,
-                                   -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382,
-                                   -12628,-30237,-12628,-30237,-12628,-30237,-12628,-30237,
-                                   -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088,
-                                   -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935,
-                                   -13675,-29778,-13675,-29778,-13675,-29778,-13675,-29778,
-                                   -14021,-29616,-14021,-29616,-14021,-29616,-14021,-29616,
-                                   -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451,
-                                   -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282,
-                                   -15046,-29109,-15046,-29109,-15046,-29109,-15046,-29109,
-                                   -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932,
-                                   -15719,-28751,-15719,-28751,-15719,-28751,-15719,-28751,
-                                   -16053,-28566,-16053,-28566,-16053,-28566,-16053,-28566,
-                                   -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                                   -16713,-28185,-16713,-28185,-16713,-28185,-16713,-28185,
-                                   -17040,-27989,-17040,-27989,-17040,-27989,-17040,-27989,
-                                   -17364,-27788,-17364,-27788,-17364,-27788,-17364,-27788,
-                                   -17687,-27585,-17687,-27585,-17687,-27585,-17687,-27585,
-                                   -18006,-27377,-18006,-27377,-18006,-27377,-18006,-27377,
-                                   -18324,-27166,-18324,-27166,-18324,-27166,-18324,-27166,
-                                   -18638,-26951,-18638,-26951,-18638,-26951,-18638,-26951,
-                                   -18951,-26732,-18951,-26732,-18951,-26732,-18951,-26732,
-                                   -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510,
-                                   -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284,
-                                   -19872,-26054,-19872,-26054,-19872,-26054,-19872,-26054,
-                                   -20174,-25821,-20174,-25821,-20174,-25821,-20174,-25821,
-                                   -20473,-25585,-20473,-25585,-20473,-25585,-20473,-25585,
-                                   -20769,-25345,-20769,-25345,-20769,-25345,-20769,-25345,
-                                   -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101,
-                                   -21353,-24855,-21353,-24855,-21353,-24855,-21353,-24855,
-                                   -21641,-24605,-21641,-24605,-21641,-24605,-21641,-24605,
-                                   -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351,
-                                   -22208,-24094,-22208,-24094,-22208,-24094,-22208,-24094,
-                                   -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834,
-                                   -22762,-23571,-22762,-23571,-22762,-23571,-22762,-23571,
-                                   -23035,-23305,-23035,-23305,-23035,-23305,-23035,-23305,
-                                   -23305,-23035,-23305,-23035,-23305,-23035,-23305,-23035,
-                                   -23571,-22762,-23571,-22762,-23571,-22762,-23571,-22762,
-                                   -23834,-22487,-23834,-22487,-23834,-22487,-23834,-22487,
-                                   -24094,-22208,-24094,-22208,-24094,-22208,-24094,-22208,
-                                   -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926,
-                                   -24605,-21641,-24605,-21641,-24605,-21641,-24605,-21641,
-                                   -24855,-21353,-24855,-21353,-24855,-21353,-24855,-21353,
-                                   -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063,
-                                   -25345,-20769,-25345,-20769,-25345,-20769,-25345,-20769,
-                                   -25585,-20473,-25585,-20473,-25585,-20473,-25585,-20473,
-                                   -25821,-20174,-25821,-20174,-25821,-20174,-25821,-20174,
-                                   -26054,-19872,-26054,-19872,-26054,-19872,-26054,-19872,
-                                   -26284,-19568,-26284,-19568,-26284,-19568,-26284,-19568,
-                                   -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260,
-                                   -26732,-18951,-26732,-18951,-26732,-18951,-26732,-18951,
-                                   -26951,-18638,-26951,-18638,-26951,-18638,-26951,-18638,
-                                   -27166,-18324,-27166,-18324,-27166,-18324,-27166,-18324,
-                                   -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006,
-                                   -27585,-17687,-27585,-17687,-27585,-17687,-27585,-17687,
-                                   -27788,-17364,-27788,-17364,-27788,-17364,-27788,-17364,
-                                   -27989,-17040,-27989,-17040,-27989,-17040,-27989,-17040,
-                                   -28185,-16713,-28185,-16713,-28185,-16713,-28185,-16713,
-                                   -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384,
-                                   -28566,-16053,-28566,-16053,-28566,-16053,-28566,-16053,
-                                   -28751,-15719,-28751,-15719,-28751,-15719,-28751,-15719,
-                                   -28932,-15384,-28932,-15384,-28932,-15384,-28932,-15384,
-                                   -29109,-15046,-29109,-15046,-29109,-15046,-29109,-15046,
-                                   -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706,
-                                   -29451,-14365,-29451,-14365,-29451,-14365,-29451,-14365,
-                                   -29616,-14021,-29616,-14021,-29616,-14021,-29616,-14021,
-                                   -29778,-13675,-29778,-13675,-29778,-13675,-29778,-13675,
-                                   -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328,
-                                   -30088,-12979,-30088,-12979,-30088,-12979,-30088,-12979,
-                                   -30237,-12628,-30237,-12628,-30237,-12628,-30237,-12628,
-                                   -30382,-12275,-30382,-12275,-30382,-12275,-30382,-12275,
-                                   -30522,-11921,-30522,-11921,-30522,-11921,-30522,-11921,
-                                   -30659,-11565,-30659,-11565,-30659,-11565,-30659,-11565,
-                                   -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207,
-                                   -30920,-10848,-30920,-10848,-30920,-10848,-30920,-10848,
-                                   -31044,-10488,-31044,-10488,-31044,-10488,-31044,-10488,
-                                   -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126,
-                                   -31279,-9763,-31279,-9763,-31279,-9763,-31279,-9763,
-                                   -31391,-9398,-31391,-9398,-31391,-9398,-31391,-9398,
-                                   -31498,-9032,-31498,-9032,-31498,-9032,-31498,-9032,
-                                   -31601,-8665,-31601,-8665,-31601,-8665,-31601,-8665,
-                                   -31700,-8297,-31700,-8297,-31700,-8297,-31700,-8297,
-                                   -31794,-7928,-31794,-7928,-31794,-7928,-31794,-7928,
-                                   -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557,
-                                   -31970,-7186,-31970,-7186,-31970,-7186,-31970,-7186,
-                                   -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813,
-                                   -32129,-6440,-32129,-6440,-32129,-6440,-32129,-6440,
-                                   -32201,-6066,-32201,-6066,-32201,-6066,-32201,-6066,
-                                   -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690,
-                                   -32334,-5315,-32334,-5315,-32334,-5315,-32334,-5315,
-                                   -32393,-4938,-32393,-4938,-32393,-4938,-32393,-4938,
-                                   -32449,-4561,-32449,-4561,-32449,-4561,-32449,-4561,
-                                   -32499,-4183,-32499,-4183,-32499,-4183,-32499,-4183,
-                                   -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805,
-                                   -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426,
-                                   -32626,-3046,-32626,-3046,-32626,-3046,-32626,-3046,
-                                   -32659,-2666,-32659,-2666,-32659,-2666,-32659,-2666,
-                                   -32688,-2286,-32688,-2286,-32688,-2286,-32688,-2286,
-                                   -32712,-1906,-32712,-1906,-32712,-1906,-32712,-1906,
-                                   -32732,-1525,-32732,-1525,-32732,-1525,-32732,-1525,
-                                   -32748,-1144,-32748,-1144,-32748,-1144,-32748,-1144,
-                                   -32759,-763,-32759,-763,-32759,-763,-32759,-763,
-                                   -32765,-382,-32765,-382,-32765,-382,-32765,-382,
-                                   -32767,-1,-32767,-1,-32767,-1,-32767,-1,
-                                   -32765,381,-32765,381,-32765,381,-32765,381,
-                                   -32759,762,-32759,762,-32759,762,-32759,762,
-                                   -32748,1143,-32748,1143,-32748,1143,-32748,1143,
-                                   -32732,1524,-32732,1524,-32732,1524,-32732,1524,
-                                   -32712,1905,-32712,1905,-32712,1905,-32712,1905,
-                                   -32688,2285,-32688,2285,-32688,2285,-32688,2285,
-                                   -32659,2665,-32659,2665,-32659,2665,-32659,2665,
-                                   -32626,3045,-32626,3045,-32626,3045,-32626,3045,
-                                   -32588,3425,-32588,3425,-32588,3425,-32588,3425,
-                                   -32546,3804,-32546,3804,-32546,3804,-32546,3804,
-                                   -32499,4182,-32499,4182,-32499,4182,-32499,4182,
-                                   -32449,4560,-32449,4560,-32449,4560,-32449,4560,
-                                   -32393,4937,-32393,4937,-32393,4937,-32393,4937,
-                                   -32334,5314,-32334,5314,-32334,5314,-32334,5314,
-                                   -32270,5689,-32270,5689,-32270,5689,-32270,5689,
-                                   -32201,6065,-32201,6065,-32201,6065,-32201,6065,
-                                   -32129,6439,-32129,6439,-32129,6439,-32129,6439,
-                                   -32051,6812,-32051,6812,-32051,6812,-32051,6812,
-                                   -31970,7185,-31970,7185,-31970,7185,-31970,7185,
-                                   -31884,7556,-31884,7556,-31884,7556,-31884,7556,
-                                   -31794,7927,-31794,7927,-31794,7927,-31794,7927,
-                                   -31700,8296,-31700,8296,-31700,8296,-31700,8296,
-                                   -31601,8664,-31601,8664,-31601,8664,-31601,8664,
-                                   -31498,9031,-31498,9031,-31498,9031,-31498,9031,
-                                   -31391,9397,-31391,9397,-31391,9397,-31391,9397,
-                                   -31279,9762,-31279,9762,-31279,9762,-31279,9762,
-                                   -31164,10125,-31164,10125,-31164,10125,-31164,10125,
-                                   -31044,10487,-31044,10487,-31044,10487,-31044,10487,
-                                   -30920,10847,-30920,10847,-30920,10847,-30920,10847,
-                                   -30791,11206,-30791,11206,-30791,11206,-30791,11206,
-                                   -30659,11564,-30659,11564,-30659,11564,-30659,11564,
-                                   -30522,11920,-30522,11920,-30522,11920,-30522,11920,
-                                   -30382,12274,-30382,12274,-30382,12274,-30382,12274,
-                                   -30237,12627,-30237,12627,-30237,12627,-30237,12627,
-                                   -30088,12978,-30088,12978,-30088,12978,-30088,12978,
-                                   -29935,13327,-29935,13327,-29935,13327,-29935,13327,
-                                   -29778,13674,-29778,13674,-29778,13674,-29778,13674,
-                                   -29616,14020,-29616,14020,-29616,14020,-29616,14020,
-                                   -29451,14364,-29451,14364,-29451,14364,-29451,14364,
-                                   -29282,14705,-29282,14705,-29282,14705,-29282,14705,
-                                   -29109,15045,-29109,15045,-29109,15045,-29109,15045,
-                                   -28932,15383,-28932,15383,-28932,15383,-28932,15383,
-                                   -28751,15718,-28751,15718,-28751,15718,-28751,15718,
-                                   -28566,16052,-28566,16052,-28566,16052,-28566,16052,
-                                   -28378,16383,-28378,16383,-28378,16383,-28378,16383,
-                                   -28185,16712,-28185,16712,-28185,16712,-28185,16712,
-                                   -27989,17039,-27989,17039,-27989,17039,-27989,17039,
-                                   -27788,17363,-27788,17363,-27788,17363,-27788,17363,
-                                   -27585,17686,-27585,17686,-27585,17686,-27585,17686,
-                                   -27377,18005,-27377,18005,-27377,18005,-27377,18005,
-                                   -27166,18323,-27166,18323,-27166,18323,-27166,18323,
-                                   -26951,18637,-26951,18637,-26951,18637,-26951,18637,
-                                   -26732,18950,-26732,18950,-26732,18950,-26732,18950,
-                                   -26510,19259,-26510,19259,-26510,19259,-26510,19259,
-                                   -26284,19567,-26284,19567,-26284,19567,-26284,19567,
-                                   -26054,19871,-26054,19871,-26054,19871,-26054,19871,
-                                   -25821,20173,-25821,20173,-25821,20173,-25821,20173,
-                                   -25585,20472,-25585,20472,-25585,20472,-25585,20472,
-                                   -25345,20768,-25345,20768,-25345,20768,-25345,20768,
-                                   -25101,21062,-25101,21062,-25101,21062,-25101,21062,
-                                   -24855,21352,-24855,21352,-24855,21352,-24855,21352,
-                                   -24605,21640,-24605,21640,-24605,21640,-24605,21640,
-                                   -24351,21925,-24351,21925,-24351,21925,-24351,21925,
-                                   -24094,22207,-24094,22207,-24094,22207,-24094,22207,
-                                   -23834,22486,-23834,22486,-23834,22486,-23834,22486,
-                                   -23571,22761,-23571,22761,-23571,22761,-23571,22761,
-                                   -23305,23034,-23305,23034,-23305,23034,-23305,23034,
-                                   -23035,23304,-23035,23304,-23035,23304,-23035,23304,
-                                   -22762,23570,-22762,23570,-22762,23570,-22762,23570,
-                                   -22487,23833,-22487,23833,-22487,23833,-22487,23833,
-                                   -22208,24093,-22208,24093,-22208,24093,-22208,24093,
-                                   -21926,24350,-21926,24350,-21926,24350,-21926,24350,
-                                   -21641,24604,-21641,24604,-21641,24604,-21641,24604,
-                                   -21353,24854,-21353,24854,-21353,24854,-21353,24854,
-                                   -21063,25100,-21063,25100,-21063,25100,-21063,25100,
-                                   -20769,25344,-20769,25344,-20769,25344,-20769,25344,
-                                   -20473,25584,-20473,25584,-20473,25584,-20473,25584,
-                                   -20174,25820,-20174,25820,-20174,25820,-20174,25820,
-                                   -19872,26053,-19872,26053,-19872,26053,-19872,26053,
-                                   -19568,26283,-19568,26283,-19568,26283,-19568,26283,
-                                   -19260,26509,-19260,26509,-19260,26509,-19260,26509,
-                                   -18951,26731,-18951,26731,-18951,26731,-18951,26731,
-                                   -18638,26950,-18638,26950,-18638,26950,-18638,26950,
-                                   -18324,27165,-18324,27165,-18324,27165,-18324,27165,
-                                   -18006,27376,-18006,27376,-18006,27376,-18006,27376,
-                                   -17687,27584,-17687,27584,-17687,27584,-17687,27584,
-                                   -17364,27787,-17364,27787,-17364,27787,-17364,27787,
-                                   -17040,27988,-17040,27988,-17040,27988,-17040,27988,
-                                   -16713,28184,-16713,28184,-16713,28184,-16713,28184
-                                  };
+static int16_t twa1080[359*2*4];
+static int16_t twb1080[359*2*4];
 
 void dft1080(int16_t *x,int16_t *y,unsigned char scale_flag)  // 360 x 3
 {
@@ -16591,906 +8382,9 @@ void dft1080(int16_t *x,int16_t *y,unsigned char scale_flag)  // 360 x 3
 
 };
 
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:287)/1152));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:287)/1152));
-twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(1:287)/1152));
-twa2 = zeros(1,2*287);
-twb2 = zeros(1,2*287);
-twc2 = zeros(1,2*287);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-twc2(1:2:end) = real(twc);
-twc2(2:2:end) = imag(twc);
-fd=fopen("twiddle_tmp.txt","w");
-fprintf(fd,"static int16_t twa1152[287*2*4] = {");
-for i=1:2:(2*286)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1));
-fprintf(fd,"\nstatic int16_t twb1152[287*2*4] = {");
-for i=1:2:(2*286)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1));
-fprintf(fd,"\nstatic int16_t twc1152[287*2*4] = {");
-for i=1:2:(2*286)
-  fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1));
-end
-i=i+2;
-fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1));
-fclose(fd);
-*/
-static int16_t twa1152[287*2*4] = {32766,-179,32766,-179,32766,-179,32766,-179,
-                                   32765,-358,32765,-358,32765,-358,32765,-358,
-                                   32762,-537,32762,-537,32762,-537,32762,-537,
-                                   32759,-715,32759,-715,32759,-715,32759,-715,
-                                   32754,-894,32754,-894,32754,-894,32754,-894,
-                                   32749,-1073,32749,-1073,32749,-1073,32749,-1073,
-                                   32743,-1251,32743,-1251,32743,-1251,32743,-1251,
-                                   32735,-1430,32735,-1430,32735,-1430,32735,-1430,
-                                   32727,-1608,32727,-1608,32727,-1608,32727,-1608,
-                                   32718,-1787,32718,-1787,32718,-1787,32718,-1787,
-                                   32708,-1965,32708,-1965,32708,-1965,32708,-1965,
-                                   32696,-2144,32696,-2144,32696,-2144,32696,-2144,
-                                   32684,-2322,32684,-2322,32684,-2322,32684,-2322,
-                                   32671,-2500,32671,-2500,32671,-2500,32671,-2500,
-                                   32657,-2678,32657,-2678,32657,-2678,32657,-2678,
-                                   32642,-2856,32642,-2856,32642,-2856,32642,-2856,
-                                   32626,-3034,32626,-3034,32626,-3034,32626,-3034,
-                                   32609,-3212,32609,-3212,32609,-3212,32609,-3212,
-                                   32591,-3390,32591,-3390,32591,-3390,32591,-3390,
-                                   32572,-3568,32572,-3568,32572,-3568,32572,-3568,
-                                   32552,-3745,32552,-3745,32552,-3745,32552,-3745,
-                                   32531,-3923,32531,-3923,32531,-3923,32531,-3923,
-                                   32509,-4100,32509,-4100,32509,-4100,32509,-4100,
-                                   32486,-4277,32486,-4277,32486,-4277,32486,-4277,
-                                   32462,-4455,32462,-4455,32462,-4455,32462,-4455,
-                                   32438,-4632,32438,-4632,32438,-4632,32438,-4632,
-                                   32412,-4808,32412,-4808,32412,-4808,32412,-4808,
-                                   32385,-4985,32385,-4985,32385,-4985,32385,-4985,
-                                   32357,-5162,32357,-5162,32357,-5162,32357,-5162,
-                                   32329,-5338,32329,-5338,32329,-5338,32329,-5338,
-                                   32299,-5514,32299,-5514,32299,-5514,32299,-5514,
-                                   32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                   32237,-5866,32237,-5866,32237,-5866,32237,-5866,
-                                   32205,-6042,32205,-6042,32205,-6042,32205,-6042,
-                                   32171,-6218,32171,-6218,32171,-6218,32171,-6218,
-                                   32137,-6393,32137,-6393,32137,-6393,32137,-6393,
-                                   32102,-6568,32102,-6568,32102,-6568,32102,-6568,
-                                   32065,-6743,32065,-6743,32065,-6743,32065,-6743,
-                                   32028,-6918,32028,-6918,32028,-6918,32028,-6918,
-                                   31990,-7093,31990,-7093,31990,-7093,31990,-7093,
-                                   31951,-7267,31951,-7267,31951,-7267,31951,-7267,
-                                   31911,-7441,31911,-7441,31911,-7441,31911,-7441,
-                                   31869,-7615,31869,-7615,31869,-7615,31869,-7615,
-                                   31827,-7789,31827,-7789,31827,-7789,31827,-7789,
-                                   31785,-7962,31785,-7962,31785,-7962,31785,-7962,
-                                   31741,-8135,31741,-8135,31741,-8135,31741,-8135,
-                                   31696,-8308,31696,-8308,31696,-8308,31696,-8308,
-                                   31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                   31603,-8654,31603,-8654,31603,-8654,31603,-8654,
-                                   31556,-8826,31556,-8826,31556,-8826,31556,-8826,
-                                   31507,-8998,31507,-8998,31507,-8998,31507,-8998,
-                                   31457,-9170,31457,-9170,31457,-9170,31457,-9170,
-                                   31407,-9341,31407,-9341,31407,-9341,31407,-9341,
-                                   31356,-9512,31356,-9512,31356,-9512,31356,-9512,
-                                   31303,-9683,31303,-9683,31303,-9683,31303,-9683,
-                                   31250,-9854,31250,-9854,31250,-9854,31250,-9854,
-                                   31196,-10024,31196,-10024,31196,-10024,31196,-10024,
-                                   31141,-10194,31141,-10194,31141,-10194,31141,-10194,
-                                   31085,-10364,31085,-10364,31085,-10364,31085,-10364,
-                                   31028,-10533,31028,-10533,31028,-10533,31028,-10533,
-                                   30970,-10702,30970,-10702,30970,-10702,30970,-10702,
-                                   30911,-10871,30911,-10871,30911,-10871,30911,-10871,
-                                   30851,-11039,30851,-11039,30851,-11039,30851,-11039,
-                                   30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                   30729,-11375,30729,-11375,30729,-11375,30729,-11375,
-                                   30666,-11543,30666,-11543,30666,-11543,30666,-11543,
-                                   30603,-11710,30603,-11710,30603,-11710,30603,-11710,
-                                   30539,-11877,30539,-11877,30539,-11877,30539,-11877,
-                                   30473,-12043,30473,-12043,30473,-12043,30473,-12043,
-                                   30407,-12209,30407,-12209,30407,-12209,30407,-12209,
-                                   30340,-12375,30340,-12375,30340,-12375,30340,-12375,
-                                   30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                   30203,-12705,30203,-12705,30203,-12705,30203,-12705,
-                                   30134,-12869,30134,-12869,30134,-12869,30134,-12869,
-                                   30063,-13034,30063,-13034,30063,-13034,30063,-13034,
-                                   29992,-13197,29992,-13197,29992,-13197,29992,-13197,
-                                   29919,-13361,29919,-13361,29919,-13361,29919,-13361,
-                                   29846,-13524,29846,-13524,29846,-13524,29846,-13524,
-                                   29772,-13686,29772,-13686,29772,-13686,29772,-13686,
-                                   29696,-13848,29696,-13848,29696,-13848,29696,-13848,
-                                   29621,-14010,29621,-14010,29621,-14010,29621,-14010,
-                                   29544,-14172,29544,-14172,29544,-14172,29544,-14172,
-                                   29466,-14332,29466,-14332,29466,-14332,29466,-14332,
-                                   29387,-14493,29387,-14493,29387,-14493,29387,-14493,
-                                   29308,-14653,29308,-14653,29308,-14653,29308,-14653,
-                                   29227,-14813,29227,-14813,29227,-14813,29227,-14813,
-                                   29146,-14972,29146,-14972,29146,-14972,29146,-14972,
-                                   29064,-15131,29064,-15131,29064,-15131,29064,-15131,
-                                   28981,-15289,28981,-15289,28981,-15289,28981,-15289,
-                                   28897,-15447,28897,-15447,28897,-15447,28897,-15447,
-                                   28813,-15604,28813,-15604,28813,-15604,28813,-15604,
-                                   28727,-15761,28727,-15761,28727,-15761,28727,-15761,
-                                   28641,-15918,28641,-15918,28641,-15918,28641,-15918,
-                                   28554,-16073,28554,-16073,28554,-16073,28554,-16073,
-                                   28465,-16229,28465,-16229,28465,-16229,28465,-16229,
-                                   28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                   28287,-16539,28287,-16539,28287,-16539,28287,-16539,
-                                   28196,-16693,28196,-16693,28196,-16693,28196,-16693,
-                                   28105,-16846,28105,-16846,28105,-16846,28105,-16846,
-                                   28012,-16999,28012,-16999,28012,-16999,28012,-16999,
-                                   27919,-17152,27919,-17152,27919,-17152,27919,-17152,
-                                   27825,-17304,27825,-17304,27825,-17304,27825,-17304,
-                                   27731,-17455,27731,-17455,27731,-17455,27731,-17455,
-                                   27635,-17606,27635,-17606,27635,-17606,27635,-17606,
-                                   27538,-17757,27538,-17757,27538,-17757,27538,-17757,
-                                   27441,-17907,27441,-17907,27441,-17907,27441,-17907,
-                                   27343,-18056,27343,-18056,27343,-18056,27343,-18056,
-                                   27244,-18205,27244,-18205,27244,-18205,27244,-18205,
-                                   27145,-18353,27145,-18353,27145,-18353,27145,-18353,
-                                   27044,-18501,27044,-18501,27044,-18501,27044,-18501,
-                                   26943,-18648,26943,-18648,26943,-18648,26943,-18648,
-                                   26841,-18795,26841,-18795,26841,-18795,26841,-18795,
-                                   26738,-18941,26738,-18941,26738,-18941,26738,-18941,
-                                   26634,-19087,26634,-19087,26634,-19087,26634,-19087,
-                                   26530,-19232,26530,-19232,26530,-19232,26530,-19232,
-                                   26424,-19376,26424,-19376,26424,-19376,26424,-19376,
-                                   26318,-19520,26318,-19520,26318,-19520,26318,-19520,
-                                   26211,-19663,26211,-19663,26211,-19663,26211,-19663,
-                                   26104,-19806,26104,-19806,26104,-19806,26104,-19806,
-                                   25995,-19948,25995,-19948,25995,-19948,25995,-19948,
-                                   25886,-20089,25886,-20089,25886,-20089,25886,-20089,
-                                   25776,-20230,25776,-20230,25776,-20230,25776,-20230,
-                                   25665,-20370,25665,-20370,25665,-20370,25665,-20370,
-                                   25554,-20510,25554,-20510,25554,-20510,25554,-20510,
-                                   25442,-20649,25442,-20649,25442,-20649,25442,-20649,
-                                   25329,-20788,25329,-20788,25329,-20788,25329,-20788,
-                                   25215,-20926,25215,-20926,25215,-20926,25215,-20926,
-                                   25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                   24985,-21199,24985,-21199,24985,-21199,24985,-21199,
-                                   24869,-21335,24869,-21335,24869,-21335,24869,-21335,
-                                   24753,-21471,24753,-21471,24753,-21471,24753,-21471,
-                                   24635,-21605,24635,-21605,24635,-21605,24635,-21605,
-                                   24517,-21739,24517,-21739,24517,-21739,24517,-21739,
-                                   24398,-21873,24398,-21873,24398,-21873,24398,-21873,
-                                   24278,-22005,24278,-22005,24278,-22005,24278,-22005,
-                                   24158,-22138,24158,-22138,24158,-22138,24158,-22138,
-                                   24037,-22269,24037,-22269,24037,-22269,24037,-22269,
-                                   23915,-22400,23915,-22400,23915,-22400,23915,-22400,
-                                   23792,-22530,23792,-22530,23792,-22530,23792,-22530,
-                                   23669,-22659,23669,-22659,23669,-22659,23669,-22659,
-                                   23545,-22788,23545,-22788,23545,-22788,23545,-22788,
-                                   23421,-22916,23421,-22916,23421,-22916,23421,-22916,
-                                   23295,-23044,23295,-23044,23295,-23044,23295,-23044,
-                                   23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                   23043,-23296,23043,-23296,23043,-23296,23043,-23296,
-                                   22915,-23422,22915,-23422,22915,-23422,22915,-23422,
-                                   22787,-23546,22787,-23546,22787,-23546,22787,-23546,
-                                   22658,-23670,22658,-23670,22658,-23670,22658,-23670,
-                                   22529,-23793,22529,-23793,22529,-23793,22529,-23793,
-                                   22399,-23916,22399,-23916,22399,-23916,22399,-23916,
-                                   22268,-24038,22268,-24038,22268,-24038,22268,-24038,
-                                   22137,-24159,22137,-24159,22137,-24159,22137,-24159,
-                                   22004,-24279,22004,-24279,22004,-24279,22004,-24279,
-                                   21872,-24399,21872,-24399,21872,-24399,21872,-24399,
-                                   21738,-24518,21738,-24518,21738,-24518,21738,-24518,
-                                   21604,-24636,21604,-24636,21604,-24636,21604,-24636,
-                                   21470,-24754,21470,-24754,21470,-24754,21470,-24754,
-                                   21334,-24870,21334,-24870,21334,-24870,21334,-24870,
-                                   21198,-24986,21198,-24986,21198,-24986,21198,-24986,
-                                   21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                   20925,-25216,20925,-25216,20925,-25216,20925,-25216,
-                                   20787,-25330,20787,-25330,20787,-25330,20787,-25330,
-                                   20648,-25443,20648,-25443,20648,-25443,20648,-25443,
-                                   20509,-25555,20509,-25555,20509,-25555,20509,-25555,
-                                   20369,-25666,20369,-25666,20369,-25666,20369,-25666,
-                                   20229,-25777,20229,-25777,20229,-25777,20229,-25777,
-                                   20088,-25887,20088,-25887,20088,-25887,20088,-25887,
-                                   19947,-25996,19947,-25996,19947,-25996,19947,-25996,
-                                   19805,-26105,19805,-26105,19805,-26105,19805,-26105,
-                                   19662,-26212,19662,-26212,19662,-26212,19662,-26212,
-                                   19519,-26319,19519,-26319,19519,-26319,19519,-26319,
-                                   19375,-26425,19375,-26425,19375,-26425,19375,-26425,
-                                   19231,-26531,19231,-26531,19231,-26531,19231,-26531,
-                                   19086,-26635,19086,-26635,19086,-26635,19086,-26635,
-                                   18940,-26739,18940,-26739,18940,-26739,18940,-26739,
-                                   18794,-26842,18794,-26842,18794,-26842,18794,-26842,
-                                   18647,-26944,18647,-26944,18647,-26944,18647,-26944,
-                                   18500,-27045,18500,-27045,18500,-27045,18500,-27045,
-                                   18352,-27146,18352,-27146,18352,-27146,18352,-27146,
-                                   18204,-27245,18204,-27245,18204,-27245,18204,-27245,
-                                   18055,-27344,18055,-27344,18055,-27344,18055,-27344,
-                                   17906,-27442,17906,-27442,17906,-27442,17906,-27442,
-                                   17756,-27539,17756,-27539,17756,-27539,17756,-27539,
-                                   17605,-27636,17605,-27636,17605,-27636,17605,-27636,
-                                   17454,-27732,17454,-27732,17454,-27732,17454,-27732,
-                                   17303,-27826,17303,-27826,17303,-27826,17303,-27826,
-                                   17151,-27920,17151,-27920,17151,-27920,17151,-27920,
-                                   16998,-28013,16998,-28013,16998,-28013,16998,-28013,
-                                   16845,-28106,16845,-28106,16845,-28106,16845,-28106,
-                                   16692,-28197,16692,-28197,16692,-28197,16692,-28197,
-                                   16538,-28288,16538,-28288,16538,-28288,16538,-28288,
-                                   16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                   16228,-28466,16228,-28466,16228,-28466,16228,-28466,
-                                   16072,-28555,16072,-28555,16072,-28555,16072,-28555,
-                                   15917,-28642,15917,-28642,15917,-28642,15917,-28642,
-                                   15760,-28728,15760,-28728,15760,-28728,15760,-28728,
-                                   15603,-28814,15603,-28814,15603,-28814,15603,-28814,
-                                   15446,-28898,15446,-28898,15446,-28898,15446,-28898,
-                                   15288,-28982,15288,-28982,15288,-28982,15288,-28982,
-                                   15130,-29065,15130,-29065,15130,-29065,15130,-29065,
-                                   14971,-29147,14971,-29147,14971,-29147,14971,-29147,
-                                   14812,-29228,14812,-29228,14812,-29228,14812,-29228,
-                                   14652,-29309,14652,-29309,14652,-29309,14652,-29309,
-                                   14492,-29388,14492,-29388,14492,-29388,14492,-29388,
-                                   14331,-29467,14331,-29467,14331,-29467,14331,-29467,
-                                   14171,-29545,14171,-29545,14171,-29545,14171,-29545,
-                                   14009,-29622,14009,-29622,14009,-29622,14009,-29622,
-                                   13847,-29697,13847,-29697,13847,-29697,13847,-29697,
-                                   13685,-29773,13685,-29773,13685,-29773,13685,-29773,
-                                   13523,-29847,13523,-29847,13523,-29847,13523,-29847,
-                                   13360,-29920,13360,-29920,13360,-29920,13360,-29920,
-                                   13196,-29993,13196,-29993,13196,-29993,13196,-29993,
-                                   13033,-30064,13033,-30064,13033,-30064,13033,-30064,
-                                   12868,-30135,12868,-30135,12868,-30135,12868,-30135,
-                                   12704,-30204,12704,-30204,12704,-30204,12704,-30204,
-                                   12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                   12374,-30341,12374,-30341,12374,-30341,12374,-30341,
-                                   12208,-30408,12208,-30408,12208,-30408,12208,-30408,
-                                   12042,-30474,12042,-30474,12042,-30474,12042,-30474,
-                                   11876,-30540,11876,-30540,11876,-30540,11876,-30540,
-                                   11709,-30604,11709,-30604,11709,-30604,11709,-30604,
-                                   11542,-30667,11542,-30667,11542,-30667,11542,-30667,
-                                   11374,-30730,11374,-30730,11374,-30730,11374,-30730,
-                                   11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                   11038,-30852,11038,-30852,11038,-30852,11038,-30852,
-                                   10870,-30912,10870,-30912,10870,-30912,10870,-30912,
-                                   10701,-30971,10701,-30971,10701,-30971,10701,-30971,
-                                   10532,-31029,10532,-31029,10532,-31029,10532,-31029,
-                                   10363,-31086,10363,-31086,10363,-31086,10363,-31086,
-                                   10193,-31142,10193,-31142,10193,-31142,10193,-31142,
-                                   10023,-31197,10023,-31197,10023,-31197,10023,-31197,
-                                   9853,-31251,9853,-31251,9853,-31251,9853,-31251,
-                                   9682,-31304,9682,-31304,9682,-31304,9682,-31304,
-                                   9511,-31357,9511,-31357,9511,-31357,9511,-31357,
-                                   9340,-31408,9340,-31408,9340,-31408,9340,-31408,
-                                   9169,-31458,9169,-31458,9169,-31458,9169,-31458,
-                                   8997,-31508,8997,-31508,8997,-31508,8997,-31508,
-                                   8825,-31557,8825,-31557,8825,-31557,8825,-31557,
-                                   8653,-31604,8653,-31604,8653,-31604,8653,-31604,
-                                   8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                   8307,-31697,8307,-31697,8307,-31697,8307,-31697,
-                                   8134,-31742,8134,-31742,8134,-31742,8134,-31742,
-                                   7961,-31786,7961,-31786,7961,-31786,7961,-31786,
-                                   7788,-31828,7788,-31828,7788,-31828,7788,-31828,
-                                   7614,-31870,7614,-31870,7614,-31870,7614,-31870,
-                                   7440,-31912,7440,-31912,7440,-31912,7440,-31912,
-                                   7266,-31952,7266,-31952,7266,-31952,7266,-31952,
-                                   7092,-31991,7092,-31991,7092,-31991,7092,-31991,
-                                   6917,-32029,6917,-32029,6917,-32029,6917,-32029,
-                                   6742,-32066,6742,-32066,6742,-32066,6742,-32066,
-                                   6567,-32103,6567,-32103,6567,-32103,6567,-32103,
-                                   6392,-32138,6392,-32138,6392,-32138,6392,-32138,
-                                   6217,-32172,6217,-32172,6217,-32172,6217,-32172,
-                                   6041,-32206,6041,-32206,6041,-32206,6041,-32206,
-                                   5865,-32238,5865,-32238,5865,-32238,5865,-32238,
-                                   5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                   5513,-32300,5513,-32300,5513,-32300,5513,-32300,
-                                   5337,-32330,5337,-32330,5337,-32330,5337,-32330,
-                                   5161,-32358,5161,-32358,5161,-32358,5161,-32358,
-                                   4984,-32386,4984,-32386,4984,-32386,4984,-32386,
-                                   4807,-32413,4807,-32413,4807,-32413,4807,-32413,
-                                   4631,-32439,4631,-32439,4631,-32439,4631,-32439,
-                                   4454,-32463,4454,-32463,4454,-32463,4454,-32463,
-                                   4276,-32487,4276,-32487,4276,-32487,4276,-32487,
-                                   4099,-32510,4099,-32510,4099,-32510,4099,-32510,
-                                   3922,-32532,3922,-32532,3922,-32532,3922,-32532,
-                                   3744,-32553,3744,-32553,3744,-32553,3744,-32553,
-                                   3567,-32573,3567,-32573,3567,-32573,3567,-32573,
-                                   3389,-32592,3389,-32592,3389,-32592,3389,-32592,
-                                   3211,-32610,3211,-32610,3211,-32610,3211,-32610,
-                                   3033,-32627,3033,-32627,3033,-32627,3033,-32627,
-                                   2855,-32643,2855,-32643,2855,-32643,2855,-32643,
-                                   2677,-32658,2677,-32658,2677,-32658,2677,-32658,
-                                   2499,-32672,2499,-32672,2499,-32672,2499,-32672,
-                                   2321,-32685,2321,-32685,2321,-32685,2321,-32685,
-                                   2143,-32697,2143,-32697,2143,-32697,2143,-32697,
-                                   1964,-32709,1964,-32709,1964,-32709,1964,-32709,
-                                   1786,-32719,1786,-32719,1786,-32719,1786,-32719,
-                                   1607,-32728,1607,-32728,1607,-32728,1607,-32728,
-                                   1429,-32736,1429,-32736,1429,-32736,1429,-32736,
-                                   1250,-32744,1250,-32744,1250,-32744,1250,-32744,
-                                   1072,-32750,1072,-32750,1072,-32750,1072,-32750,
-                                   893,-32755,893,-32755,893,-32755,893,-32755,
-                                   714,-32760,714,-32760,714,-32760,714,-32760,
-                                   536,-32763,536,-32763,536,-32763,536,-32763,
-                                   357,-32766,357,-32766,357,-32766,357,-32766,
-                                   178,-32767,178,-32767,178,-32767,178,-32767
-                                  };
-
-static int16_t twb1152[287*2*4] = {32765,-358,32765,-358,32765,-358,32765,-358,
-                                   32759,-715,32759,-715,32759,-715,32759,-715,
-                                   32749,-1073,32749,-1073,32749,-1073,32749,-1073,
-                                   32735,-1430,32735,-1430,32735,-1430,32735,-1430,
-                                   32718,-1787,32718,-1787,32718,-1787,32718,-1787,
-                                   32696,-2144,32696,-2144,32696,-2144,32696,-2144,
-                                   32671,-2500,32671,-2500,32671,-2500,32671,-2500,
-                                   32642,-2856,32642,-2856,32642,-2856,32642,-2856,
-                                   32609,-3212,32609,-3212,32609,-3212,32609,-3212,
-                                   32572,-3568,32572,-3568,32572,-3568,32572,-3568,
-                                   32531,-3923,32531,-3923,32531,-3923,32531,-3923,
-                                   32486,-4277,32486,-4277,32486,-4277,32486,-4277,
-                                   32438,-4632,32438,-4632,32438,-4632,32438,-4632,
-                                   32385,-4985,32385,-4985,32385,-4985,32385,-4985,
-                                   32329,-5338,32329,-5338,32329,-5338,32329,-5338,
-                                   32269,-5690,32269,-5690,32269,-5690,32269,-5690,
-                                   32205,-6042,32205,-6042,32205,-6042,32205,-6042,
-                                   32137,-6393,32137,-6393,32137,-6393,32137,-6393,
-                                   32065,-6743,32065,-6743,32065,-6743,32065,-6743,
-                                   31990,-7093,31990,-7093,31990,-7093,31990,-7093,
-                                   31911,-7441,31911,-7441,31911,-7441,31911,-7441,
-                                   31827,-7789,31827,-7789,31827,-7789,31827,-7789,
-                                   31741,-8135,31741,-8135,31741,-8135,31741,-8135,
-                                   31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                   31556,-8826,31556,-8826,31556,-8826,31556,-8826,
-                                   31457,-9170,31457,-9170,31457,-9170,31457,-9170,
-                                   31356,-9512,31356,-9512,31356,-9512,31356,-9512,
-                                   31250,-9854,31250,-9854,31250,-9854,31250,-9854,
-                                   31141,-10194,31141,-10194,31141,-10194,31141,-10194,
-                                   31028,-10533,31028,-10533,31028,-10533,31028,-10533,
-                                   30911,-10871,30911,-10871,30911,-10871,30911,-10871,
-                                   30790,-11207,30790,-11207,30790,-11207,30790,-11207,
-                                   30666,-11543,30666,-11543,30666,-11543,30666,-11543,
-                                   30539,-11877,30539,-11877,30539,-11877,30539,-11877,
-                                   30407,-12209,30407,-12209,30407,-12209,30407,-12209,
-                                   30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                   30134,-12869,30134,-12869,30134,-12869,30134,-12869,
-                                   29992,-13197,29992,-13197,29992,-13197,29992,-13197,
-                                   29846,-13524,29846,-13524,29846,-13524,29846,-13524,
-                                   29696,-13848,29696,-13848,29696,-13848,29696,-13848,
-                                   29544,-14172,29544,-14172,29544,-14172,29544,-14172,
-                                   29387,-14493,29387,-14493,29387,-14493,29387,-14493,
-                                   29227,-14813,29227,-14813,29227,-14813,29227,-14813,
-                                   29064,-15131,29064,-15131,29064,-15131,29064,-15131,
-                                   28897,-15447,28897,-15447,28897,-15447,28897,-15447,
-                                   28727,-15761,28727,-15761,28727,-15761,28727,-15761,
-                                   28554,-16073,28554,-16073,28554,-16073,28554,-16073,
-                                   28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                   28196,-16693,28196,-16693,28196,-16693,28196,-16693,
-                                   28012,-16999,28012,-16999,28012,-16999,28012,-16999,
-                                   27825,-17304,27825,-17304,27825,-17304,27825,-17304,
-                                   27635,-17606,27635,-17606,27635,-17606,27635,-17606,
-                                   27441,-17907,27441,-17907,27441,-17907,27441,-17907,
-                                   27244,-18205,27244,-18205,27244,-18205,27244,-18205,
-                                   27044,-18501,27044,-18501,27044,-18501,27044,-18501,
-                                   26841,-18795,26841,-18795,26841,-18795,26841,-18795,
-                                   26634,-19087,26634,-19087,26634,-19087,26634,-19087,
-                                   26424,-19376,26424,-19376,26424,-19376,26424,-19376,
-                                   26211,-19663,26211,-19663,26211,-19663,26211,-19663,
-                                   25995,-19948,25995,-19948,25995,-19948,25995,-19948,
-                                   25776,-20230,25776,-20230,25776,-20230,25776,-20230,
-                                   25554,-20510,25554,-20510,25554,-20510,25554,-20510,
-                                   25329,-20788,25329,-20788,25329,-20788,25329,-20788,
-                                   25100,-21063,25100,-21063,25100,-21063,25100,-21063,
-                                   24869,-21335,24869,-21335,24869,-21335,24869,-21335,
-                                   24635,-21605,24635,-21605,24635,-21605,24635,-21605,
-                                   24398,-21873,24398,-21873,24398,-21873,24398,-21873,
-                                   24158,-22138,24158,-22138,24158,-22138,24158,-22138,
-                                   23915,-22400,23915,-22400,23915,-22400,23915,-22400,
-                                   23669,-22659,23669,-22659,23669,-22659,23669,-22659,
-                                   23421,-22916,23421,-22916,23421,-22916,23421,-22916,
-                                   23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                   22915,-23422,22915,-23422,22915,-23422,22915,-23422,
-                                   22658,-23670,22658,-23670,22658,-23670,22658,-23670,
-                                   22399,-23916,22399,-23916,22399,-23916,22399,-23916,
-                                   22137,-24159,22137,-24159,22137,-24159,22137,-24159,
-                                   21872,-24399,21872,-24399,21872,-24399,21872,-24399,
-                                   21604,-24636,21604,-24636,21604,-24636,21604,-24636,
-                                   21334,-24870,21334,-24870,21334,-24870,21334,-24870,
-                                   21062,-25101,21062,-25101,21062,-25101,21062,-25101,
-                                   20787,-25330,20787,-25330,20787,-25330,20787,-25330,
-                                   20509,-25555,20509,-25555,20509,-25555,20509,-25555,
-                                   20229,-25777,20229,-25777,20229,-25777,20229,-25777,
-                                   19947,-25996,19947,-25996,19947,-25996,19947,-25996,
-                                   19662,-26212,19662,-26212,19662,-26212,19662,-26212,
-                                   19375,-26425,19375,-26425,19375,-26425,19375,-26425,
-                                   19086,-26635,19086,-26635,19086,-26635,19086,-26635,
-                                   18794,-26842,18794,-26842,18794,-26842,18794,-26842,
-                                   18500,-27045,18500,-27045,18500,-27045,18500,-27045,
-                                   18204,-27245,18204,-27245,18204,-27245,18204,-27245,
-                                   17906,-27442,17906,-27442,17906,-27442,17906,-27442,
-                                   17605,-27636,17605,-27636,17605,-27636,17605,-27636,
-                                   17303,-27826,17303,-27826,17303,-27826,17303,-27826,
-                                   16998,-28013,16998,-28013,16998,-28013,16998,-28013,
-                                   16692,-28197,16692,-28197,16692,-28197,16692,-28197,
-                                   16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                   16072,-28555,16072,-28555,16072,-28555,16072,-28555,
-                                   15760,-28728,15760,-28728,15760,-28728,15760,-28728,
-                                   15446,-28898,15446,-28898,15446,-28898,15446,-28898,
-                                   15130,-29065,15130,-29065,15130,-29065,15130,-29065,
-                                   14812,-29228,14812,-29228,14812,-29228,14812,-29228,
-                                   14492,-29388,14492,-29388,14492,-29388,14492,-29388,
-                                   14171,-29545,14171,-29545,14171,-29545,14171,-29545,
-                                   13847,-29697,13847,-29697,13847,-29697,13847,-29697,
-                                   13523,-29847,13523,-29847,13523,-29847,13523,-29847,
-                                   13196,-29993,13196,-29993,13196,-29993,13196,-29993,
-                                   12868,-30135,12868,-30135,12868,-30135,12868,-30135,
-                                   12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                   12208,-30408,12208,-30408,12208,-30408,12208,-30408,
-                                   11876,-30540,11876,-30540,11876,-30540,11876,-30540,
-                                   11542,-30667,11542,-30667,11542,-30667,11542,-30667,
-                                   11206,-30791,11206,-30791,11206,-30791,11206,-30791,
-                                   10870,-30912,10870,-30912,10870,-30912,10870,-30912,
-                                   10532,-31029,10532,-31029,10532,-31029,10532,-31029,
-                                   10193,-31142,10193,-31142,10193,-31142,10193,-31142,
-                                   9853,-31251,9853,-31251,9853,-31251,9853,-31251,
-                                   9511,-31357,9511,-31357,9511,-31357,9511,-31357,
-                                   9169,-31458,9169,-31458,9169,-31458,9169,-31458,
-                                   8825,-31557,8825,-31557,8825,-31557,8825,-31557,
-                                   8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                   8134,-31742,8134,-31742,8134,-31742,8134,-31742,
-                                   7788,-31828,7788,-31828,7788,-31828,7788,-31828,
-                                   7440,-31912,7440,-31912,7440,-31912,7440,-31912,
-                                   7092,-31991,7092,-31991,7092,-31991,7092,-31991,
-                                   6742,-32066,6742,-32066,6742,-32066,6742,-32066,
-                                   6392,-32138,6392,-32138,6392,-32138,6392,-32138,
-                                   6041,-32206,6041,-32206,6041,-32206,6041,-32206,
-                                   5689,-32270,5689,-32270,5689,-32270,5689,-32270,
-                                   5337,-32330,5337,-32330,5337,-32330,5337,-32330,
-                                   4984,-32386,4984,-32386,4984,-32386,4984,-32386,
-                                   4631,-32439,4631,-32439,4631,-32439,4631,-32439,
-                                   4276,-32487,4276,-32487,4276,-32487,4276,-32487,
-                                   3922,-32532,3922,-32532,3922,-32532,3922,-32532,
-                                   3567,-32573,3567,-32573,3567,-32573,3567,-32573,
-                                   3211,-32610,3211,-32610,3211,-32610,3211,-32610,
-                                   2855,-32643,2855,-32643,2855,-32643,2855,-32643,
-                                   2499,-32672,2499,-32672,2499,-32672,2499,-32672,
-                                   2143,-32697,2143,-32697,2143,-32697,2143,-32697,
-                                   1786,-32719,1786,-32719,1786,-32719,1786,-32719,
-                                   1429,-32736,1429,-32736,1429,-32736,1429,-32736,
-                                   1072,-32750,1072,-32750,1072,-32750,1072,-32750,
-                                   714,-32760,714,-32760,714,-32760,714,-32760,
-                                   357,-32766,357,-32766,357,-32766,357,-32766,
-                                   0,-32767,0,-32767,0,-32767,0,-32767,
-                                   -358,-32766,-358,-32766,-358,-32766,-358,-32766,
-                                   -715,-32760,-715,-32760,-715,-32760,-715,-32760,
-                                   -1073,-32750,-1073,-32750,-1073,-32750,-1073,-32750,
-                                   -1430,-32736,-1430,-32736,-1430,-32736,-1430,-32736,
-                                   -1787,-32719,-1787,-32719,-1787,-32719,-1787,-32719,
-                                   -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697,
-                                   -2500,-32672,-2500,-32672,-2500,-32672,-2500,-32672,
-                                   -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643,
-                                   -3212,-32610,-3212,-32610,-3212,-32610,-3212,-32610,
-                                   -3568,-32573,-3568,-32573,-3568,-32573,-3568,-32573,
-                                   -3923,-32532,-3923,-32532,-3923,-32532,-3923,-32532,
-                                   -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487,
-                                   -4632,-32439,-4632,-32439,-4632,-32439,-4632,-32439,
-                                   -4985,-32386,-4985,-32386,-4985,-32386,-4985,-32386,
-                                   -5338,-32330,-5338,-32330,-5338,-32330,-5338,-32330,
-                                   -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270,
-                                   -6042,-32206,-6042,-32206,-6042,-32206,-6042,-32206,
-                                   -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138,
-                                   -6743,-32066,-6743,-32066,-6743,-32066,-6743,-32066,
-                                   -7093,-31991,-7093,-31991,-7093,-31991,-7093,-31991,
-                                   -7441,-31912,-7441,-31912,-7441,-31912,-7441,-31912,
-                                   -7789,-31828,-7789,-31828,-7789,-31828,-7789,-31828,
-                                   -8135,-31742,-8135,-31742,-8135,-31742,-8135,-31742,
-                                   -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651,
-                                   -8826,-31557,-8826,-31557,-8826,-31557,-8826,-31557,
-                                   -9170,-31458,-9170,-31458,-9170,-31458,-9170,-31458,
-                                   -9512,-31357,-9512,-31357,-9512,-31357,-9512,-31357,
-                                   -9854,-31251,-9854,-31251,-9854,-31251,-9854,-31251,
-                                   -10194,-31142,-10194,-31142,-10194,-31142,-10194,-31142,
-                                   -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029,
-                                   -10871,-30912,-10871,-30912,-10871,-30912,-10871,-30912,
-                                   -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791,
-                                   -11543,-30667,-11543,-30667,-11543,-30667,-11543,-30667,
-                                   -11877,-30540,-11877,-30540,-11877,-30540,-11877,-30540,
-                                   -12209,-30408,-12209,-30408,-12209,-30408,-12209,-30408,
-                                   -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273,
-                                   -12869,-30135,-12869,-30135,-12869,-30135,-12869,-30135,
-                                   -13197,-29993,-13197,-29993,-13197,-29993,-13197,-29993,
-                                   -13524,-29847,-13524,-29847,-13524,-29847,-13524,-29847,
-                                   -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697,
-                                   -14172,-29545,-14172,-29545,-14172,-29545,-14172,-29545,
-                                   -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388,
-                                   -14813,-29228,-14813,-29228,-14813,-29228,-14813,-29228,
-                                   -15131,-29065,-15131,-29065,-15131,-29065,-15131,-29065,
-                                   -15447,-28898,-15447,-28898,-15447,-28898,-15447,-28898,
-                                   -15761,-28728,-15761,-28728,-15761,-28728,-15761,-28728,
-                                   -16073,-28555,-16073,-28555,-16073,-28555,-16073,-28555,
-                                   -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                                   -16693,-28197,-16693,-28197,-16693,-28197,-16693,-28197,
-                                   -16999,-28013,-16999,-28013,-16999,-28013,-16999,-28013,
-                                   -17304,-27826,-17304,-27826,-17304,-27826,-17304,-27826,
-                                   -17606,-27636,-17606,-27636,-17606,-27636,-17606,-27636,
-                                   -17907,-27442,-17907,-27442,-17907,-27442,-17907,-27442,
-                                   -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245,
-                                   -18501,-27045,-18501,-27045,-18501,-27045,-18501,-27045,
-                                   -18795,-26842,-18795,-26842,-18795,-26842,-18795,-26842,
-                                   -19087,-26635,-19087,-26635,-19087,-26635,-19087,-26635,
-                                   -19376,-26425,-19376,-26425,-19376,-26425,-19376,-26425,
-                                   -19663,-26212,-19663,-26212,-19663,-26212,-19663,-26212,
-                                   -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996,
-                                   -20230,-25777,-20230,-25777,-20230,-25777,-20230,-25777,
-                                   -20510,-25555,-20510,-25555,-20510,-25555,-20510,-25555,
-                                   -20788,-25330,-20788,-25330,-20788,-25330,-20788,-25330,
-                                   -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101,
-                                   -21335,-24870,-21335,-24870,-21335,-24870,-21335,-24870,
-                                   -21605,-24636,-21605,-24636,-21605,-24636,-21605,-24636,
-                                   -21873,-24399,-21873,-24399,-21873,-24399,-21873,-24399,
-                                   -22138,-24159,-22138,-24159,-22138,-24159,-22138,-24159,
-                                   -22400,-23916,-22400,-23916,-22400,-23916,-22400,-23916,
-                                   -22659,-23670,-22659,-23670,-22659,-23670,-22659,-23670,
-                                   -22916,-23422,-22916,-23422,-22916,-23422,-22916,-23422,
-                                   -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170,
-                                   -23422,-22916,-23422,-22916,-23422,-22916,-23422,-22916,
-                                   -23670,-22659,-23670,-22659,-23670,-22659,-23670,-22659,
-                                   -23916,-22400,-23916,-22400,-23916,-22400,-23916,-22400,
-                                   -24159,-22138,-24159,-22138,-24159,-22138,-24159,-22138,
-                                   -24399,-21873,-24399,-21873,-24399,-21873,-24399,-21873,
-                                   -24636,-21605,-24636,-21605,-24636,-21605,-24636,-21605,
-                                   -24870,-21335,-24870,-21335,-24870,-21335,-24870,-21335,
-                                   -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063,
-                                   -25330,-20788,-25330,-20788,-25330,-20788,-25330,-20788,
-                                   -25555,-20510,-25555,-20510,-25555,-20510,-25555,-20510,
-                                   -25777,-20230,-25777,-20230,-25777,-20230,-25777,-20230,
-                                   -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948,
-                                   -26212,-19663,-26212,-19663,-26212,-19663,-26212,-19663,
-                                   -26425,-19376,-26425,-19376,-26425,-19376,-26425,-19376,
-                                   -26635,-19087,-26635,-19087,-26635,-19087,-26635,-19087,
-                                   -26842,-18795,-26842,-18795,-26842,-18795,-26842,-18795,
-                                   -27045,-18501,-27045,-18501,-27045,-18501,-27045,-18501,
-                                   -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205,
-                                   -27442,-17907,-27442,-17907,-27442,-17907,-27442,-17907,
-                                   -27636,-17606,-27636,-17606,-27636,-17606,-27636,-17606,
-                                   -27826,-17304,-27826,-17304,-27826,-17304,-27826,-17304,
-                                   -28013,-16999,-28013,-16999,-28013,-16999,-28013,-16999,
-                                   -28197,-16693,-28197,-16693,-28197,-16693,-28197,-16693,
-                                   -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384,
-                                   -28555,-16073,-28555,-16073,-28555,-16073,-28555,-16073,
-                                   -28728,-15761,-28728,-15761,-28728,-15761,-28728,-15761,
-                                   -28898,-15447,-28898,-15447,-28898,-15447,-28898,-15447,
-                                   -29065,-15131,-29065,-15131,-29065,-15131,-29065,-15131,
-                                   -29228,-14813,-29228,-14813,-29228,-14813,-29228,-14813,
-                                   -29388,-14493,-29388,-14493,-29388,-14493,-29388,-14493,
-                                   -29545,-14172,-29545,-14172,-29545,-14172,-29545,-14172,
-                                   -29697,-13848,-29697,-13848,-29697,-13848,-29697,-13848,
-                                   -29847,-13524,-29847,-13524,-29847,-13524,-29847,-13524,
-                                   -29993,-13197,-29993,-13197,-29993,-13197,-29993,-13197,
-                                   -30135,-12869,-30135,-12869,-30135,-12869,-30135,-12869,
-                                   -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540,
-                                   -30408,-12209,-30408,-12209,-30408,-12209,-30408,-12209,
-                                   -30540,-11877,-30540,-11877,-30540,-11877,-30540,-11877,
-                                   -30667,-11543,-30667,-11543,-30667,-11543,-30667,-11543,
-                                   -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207,
-                                   -30912,-10871,-30912,-10871,-30912,-10871,-30912,-10871,
-                                   -31029,-10533,-31029,-10533,-31029,-10533,-31029,-10533,
-                                   -31142,-10194,-31142,-10194,-31142,-10194,-31142,-10194,
-                                   -31251,-9854,-31251,-9854,-31251,-9854,-31251,-9854,
-                                   -31357,-9512,-31357,-9512,-31357,-9512,-31357,-9512,
-                                   -31458,-9170,-31458,-9170,-31458,-9170,-31458,-9170,
-                                   -31557,-8826,-31557,-8826,-31557,-8826,-31557,-8826,
-                                   -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481,
-                                   -31742,-8135,-31742,-8135,-31742,-8135,-31742,-8135,
-                                   -31828,-7789,-31828,-7789,-31828,-7789,-31828,-7789,
-                                   -31912,-7441,-31912,-7441,-31912,-7441,-31912,-7441,
-                                   -31991,-7093,-31991,-7093,-31991,-7093,-31991,-7093,
-                                   -32066,-6743,-32066,-6743,-32066,-6743,-32066,-6743,
-                                   -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393,
-                                   -32206,-6042,-32206,-6042,-32206,-6042,-32206,-6042,
-                                   -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690,
-                                   -32330,-5338,-32330,-5338,-32330,-5338,-32330,-5338,
-                                   -32386,-4985,-32386,-4985,-32386,-4985,-32386,-4985,
-                                   -32439,-4632,-32439,-4632,-32439,-4632,-32439,-4632,
-                                   -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277,
-                                   -32532,-3923,-32532,-3923,-32532,-3923,-32532,-3923,
-                                   -32573,-3568,-32573,-3568,-32573,-3568,-32573,-3568,
-                                   -32610,-3212,-32610,-3212,-32610,-3212,-32610,-3212,
-                                   -32643,-2856,-32643,-2856,-32643,-2856,-32643,-2856,
-                                   -32672,-2500,-32672,-2500,-32672,-2500,-32672,-2500,
-                                   -32697,-2144,-32697,-2144,-32697,-2144,-32697,-2144,
-                                   -32719,-1787,-32719,-1787,-32719,-1787,-32719,-1787,
-                                   -32736,-1430,-32736,-1430,-32736,-1430,-32736,-1430,
-                                   -32750,-1073,-32750,-1073,-32750,-1073,-32750,-1073,
-                                   -32760,-715,-32760,-715,-32760,-715,-32760,-715,
-                                   -32766,-358,-32766,-358,-32766,-358,-32766,-358
-                                  };
-
-static int16_t twc1152[287*2*4] = {32762,-537,32762,-537,32762,-537,32762,-537,
-                                   32749,-1073,32749,-1073,32749,-1073,32749,-1073,
-                                   32727,-1608,32727,-1608,32727,-1608,32727,-1608,
-                                   32696,-2144,32696,-2144,32696,-2144,32696,-2144,
-                                   32657,-2678,32657,-2678,32657,-2678,32657,-2678,
-                                   32609,-3212,32609,-3212,32609,-3212,32609,-3212,
-                                   32552,-3745,32552,-3745,32552,-3745,32552,-3745,
-                                   32486,-4277,32486,-4277,32486,-4277,32486,-4277,
-                                   32412,-4808,32412,-4808,32412,-4808,32412,-4808,
-                                   32329,-5338,32329,-5338,32329,-5338,32329,-5338,
-                                   32237,-5866,32237,-5866,32237,-5866,32237,-5866,
-                                   32137,-6393,32137,-6393,32137,-6393,32137,-6393,
-                                   32028,-6918,32028,-6918,32028,-6918,32028,-6918,
-                                   31911,-7441,31911,-7441,31911,-7441,31911,-7441,
-                                   31785,-7962,31785,-7962,31785,-7962,31785,-7962,
-                                   31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                                   31507,-8998,31507,-8998,31507,-8998,31507,-8998,
-                                   31356,-9512,31356,-9512,31356,-9512,31356,-9512,
-                                   31196,-10024,31196,-10024,31196,-10024,31196,-10024,
-                                   31028,-10533,31028,-10533,31028,-10533,31028,-10533,
-                                   30851,-11039,30851,-11039,30851,-11039,30851,-11039,
-                                   30666,-11543,30666,-11543,30666,-11543,30666,-11543,
-                                   30473,-12043,30473,-12043,30473,-12043,30473,-12043,
-                                   30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                                   30063,-13034,30063,-13034,30063,-13034,30063,-13034,
-                                   29846,-13524,29846,-13524,29846,-13524,29846,-13524,
-                                   29621,-14010,29621,-14010,29621,-14010,29621,-14010,
-                                   29387,-14493,29387,-14493,29387,-14493,29387,-14493,
-                                   29146,-14972,29146,-14972,29146,-14972,29146,-14972,
-                                   28897,-15447,28897,-15447,28897,-15447,28897,-15447,
-                                   28641,-15918,28641,-15918,28641,-15918,28641,-15918,
-                                   28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                                   28105,-16846,28105,-16846,28105,-16846,28105,-16846,
-                                   27825,-17304,27825,-17304,27825,-17304,27825,-17304,
-                                   27538,-17757,27538,-17757,27538,-17757,27538,-17757,
-                                   27244,-18205,27244,-18205,27244,-18205,27244,-18205,
-                                   26943,-18648,26943,-18648,26943,-18648,26943,-18648,
-                                   26634,-19087,26634,-19087,26634,-19087,26634,-19087,
-                                   26318,-19520,26318,-19520,26318,-19520,26318,-19520,
-                                   25995,-19948,25995,-19948,25995,-19948,25995,-19948,
-                                   25665,-20370,25665,-20370,25665,-20370,25665,-20370,
-                                   25329,-20788,25329,-20788,25329,-20788,25329,-20788,
-                                   24985,-21199,24985,-21199,24985,-21199,24985,-21199,
-                                   24635,-21605,24635,-21605,24635,-21605,24635,-21605,
-                                   24278,-22005,24278,-22005,24278,-22005,24278,-22005,
-                                   23915,-22400,23915,-22400,23915,-22400,23915,-22400,
-                                   23545,-22788,23545,-22788,23545,-22788,23545,-22788,
-                                   23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                                   22787,-23546,22787,-23546,22787,-23546,22787,-23546,
-                                   22399,-23916,22399,-23916,22399,-23916,22399,-23916,
-                                   22004,-24279,22004,-24279,22004,-24279,22004,-24279,
-                                   21604,-24636,21604,-24636,21604,-24636,21604,-24636,
-                                   21198,-24986,21198,-24986,21198,-24986,21198,-24986,
-                                   20787,-25330,20787,-25330,20787,-25330,20787,-25330,
-                                   20369,-25666,20369,-25666,20369,-25666,20369,-25666,
-                                   19947,-25996,19947,-25996,19947,-25996,19947,-25996,
-                                   19519,-26319,19519,-26319,19519,-26319,19519,-26319,
-                                   19086,-26635,19086,-26635,19086,-26635,19086,-26635,
-                                   18647,-26944,18647,-26944,18647,-26944,18647,-26944,
-                                   18204,-27245,18204,-27245,18204,-27245,18204,-27245,
-                                   17756,-27539,17756,-27539,17756,-27539,17756,-27539,
-                                   17303,-27826,17303,-27826,17303,-27826,17303,-27826,
-                                   16845,-28106,16845,-28106,16845,-28106,16845,-28106,
-                                   16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                                   15917,-28642,15917,-28642,15917,-28642,15917,-28642,
-                                   15446,-28898,15446,-28898,15446,-28898,15446,-28898,
-                                   14971,-29147,14971,-29147,14971,-29147,14971,-29147,
-                                   14492,-29388,14492,-29388,14492,-29388,14492,-29388,
-                                   14009,-29622,14009,-29622,14009,-29622,14009,-29622,
-                                   13523,-29847,13523,-29847,13523,-29847,13523,-29847,
-                                   13033,-30064,13033,-30064,13033,-30064,13033,-30064,
-                                   12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                                   12042,-30474,12042,-30474,12042,-30474,12042,-30474,
-                                   11542,-30667,11542,-30667,11542,-30667,11542,-30667,
-                                   11038,-30852,11038,-30852,11038,-30852,11038,-30852,
-                                   10532,-31029,10532,-31029,10532,-31029,10532,-31029,
-                                   10023,-31197,10023,-31197,10023,-31197,10023,-31197,
-                                   9511,-31357,9511,-31357,9511,-31357,9511,-31357,
-                                   8997,-31508,8997,-31508,8997,-31508,8997,-31508,
-                                   8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                                   7961,-31786,7961,-31786,7961,-31786,7961,-31786,
-                                   7440,-31912,7440,-31912,7440,-31912,7440,-31912,
-                                   6917,-32029,6917,-32029,6917,-32029,6917,-32029,
-                                   6392,-32138,6392,-32138,6392,-32138,6392,-32138,
-                                   5865,-32238,5865,-32238,5865,-32238,5865,-32238,
-                                   5337,-32330,5337,-32330,5337,-32330,5337,-32330,
-                                   4807,-32413,4807,-32413,4807,-32413,4807,-32413,
-                                   4276,-32487,4276,-32487,4276,-32487,4276,-32487,
-                                   3744,-32553,3744,-32553,3744,-32553,3744,-32553,
-                                   3211,-32610,3211,-32610,3211,-32610,3211,-32610,
-                                   2677,-32658,2677,-32658,2677,-32658,2677,-32658,
-                                   2143,-32697,2143,-32697,2143,-32697,2143,-32697,
-                                   1607,-32728,1607,-32728,1607,-32728,1607,-32728,
-                                   1072,-32750,1072,-32750,1072,-32750,1072,-32750,
-                                   536,-32763,536,-32763,536,-32763,536,-32763,
-                                   0,-32767,0,-32767,0,-32767,0,-32767,
-                                   -537,-32763,-537,-32763,-537,-32763,-537,-32763,
-                                   -1073,-32750,-1073,-32750,-1073,-32750,-1073,-32750,
-                                   -1608,-32728,-1608,-32728,-1608,-32728,-1608,-32728,
-                                   -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697,
-                                   -2678,-32658,-2678,-32658,-2678,-32658,-2678,-32658,
-                                   -3212,-32610,-3212,-32610,-3212,-32610,-3212,-32610,
-                                   -3745,-32553,-3745,-32553,-3745,-32553,-3745,-32553,
-                                   -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487,
-                                   -4808,-32413,-4808,-32413,-4808,-32413,-4808,-32413,
-                                   -5338,-32330,-5338,-32330,-5338,-32330,-5338,-32330,
-                                   -5866,-32238,-5866,-32238,-5866,-32238,-5866,-32238,
-                                   -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138,
-                                   -6918,-32029,-6918,-32029,-6918,-32029,-6918,-32029,
-                                   -7441,-31912,-7441,-31912,-7441,-31912,-7441,-31912,
-                                   -7962,-31786,-7962,-31786,-7962,-31786,-7962,-31786,
-                                   -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651,
-                                   -8998,-31508,-8998,-31508,-8998,-31508,-8998,-31508,
-                                   -9512,-31357,-9512,-31357,-9512,-31357,-9512,-31357,
-                                   -10024,-31197,-10024,-31197,-10024,-31197,-10024,-31197,
-                                   -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029,
-                                   -11039,-30852,-11039,-30852,-11039,-30852,-11039,-30852,
-                                   -11543,-30667,-11543,-30667,-11543,-30667,-11543,-30667,
-                                   -12043,-30474,-12043,-30474,-12043,-30474,-12043,-30474,
-                                   -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273,
-                                   -13034,-30064,-13034,-30064,-13034,-30064,-13034,-30064,
-                                   -13524,-29847,-13524,-29847,-13524,-29847,-13524,-29847,
-                                   -14010,-29622,-14010,-29622,-14010,-29622,-14010,-29622,
-                                   -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388,
-                                   -14972,-29147,-14972,-29147,-14972,-29147,-14972,-29147,
-                                   -15447,-28898,-15447,-28898,-15447,-28898,-15447,-28898,
-                                   -15918,-28642,-15918,-28642,-15918,-28642,-15918,-28642,
-                                   -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                                   -16846,-28106,-16846,-28106,-16846,-28106,-16846,-28106,
-                                   -17304,-27826,-17304,-27826,-17304,-27826,-17304,-27826,
-                                   -17757,-27539,-17757,-27539,-17757,-27539,-17757,-27539,
-                                   -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245,
-                                   -18648,-26944,-18648,-26944,-18648,-26944,-18648,-26944,
-                                   -19087,-26635,-19087,-26635,-19087,-26635,-19087,-26635,
-                                   -19520,-26319,-19520,-26319,-19520,-26319,-19520,-26319,
-                                   -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996,
-                                   -20370,-25666,-20370,-25666,-20370,-25666,-20370,-25666,
-                                   -20788,-25330,-20788,-25330,-20788,-25330,-20788,-25330,
-                                   -21199,-24986,-21199,-24986,-21199,-24986,-21199,-24986,
-                                   -21605,-24636,-21605,-24636,-21605,-24636,-21605,-24636,
-                                   -22005,-24279,-22005,-24279,-22005,-24279,-22005,-24279,
-                                   -22400,-23916,-22400,-23916,-22400,-23916,-22400,-23916,
-                                   -22788,-23546,-22788,-23546,-22788,-23546,-22788,-23546,
-                                   -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170,
-                                   -23546,-22788,-23546,-22788,-23546,-22788,-23546,-22788,
-                                   -23916,-22400,-23916,-22400,-23916,-22400,-23916,-22400,
-                                   -24279,-22005,-24279,-22005,-24279,-22005,-24279,-22005,
-                                   -24636,-21605,-24636,-21605,-24636,-21605,-24636,-21605,
-                                   -24986,-21199,-24986,-21199,-24986,-21199,-24986,-21199,
-                                   -25330,-20788,-25330,-20788,-25330,-20788,-25330,-20788,
-                                   -25666,-20370,-25666,-20370,-25666,-20370,-25666,-20370,
-                                   -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948,
-                                   -26319,-19520,-26319,-19520,-26319,-19520,-26319,-19520,
-                                   -26635,-19087,-26635,-19087,-26635,-19087,-26635,-19087,
-                                   -26944,-18648,-26944,-18648,-26944,-18648,-26944,-18648,
-                                   -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205,
-                                   -27539,-17757,-27539,-17757,-27539,-17757,-27539,-17757,
-                                   -27826,-17304,-27826,-17304,-27826,-17304,-27826,-17304,
-                                   -28106,-16846,-28106,-16846,-28106,-16846,-28106,-16846,
-                                   -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384,
-                                   -28642,-15918,-28642,-15918,-28642,-15918,-28642,-15918,
-                                   -28898,-15447,-28898,-15447,-28898,-15447,-28898,-15447,
-                                   -29147,-14972,-29147,-14972,-29147,-14972,-29147,-14972,
-                                   -29388,-14493,-29388,-14493,-29388,-14493,-29388,-14493,
-                                   -29622,-14010,-29622,-14010,-29622,-14010,-29622,-14010,
-                                   -29847,-13524,-29847,-13524,-29847,-13524,-29847,-13524,
-                                   -30064,-13034,-30064,-13034,-30064,-13034,-30064,-13034,
-                                   -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540,
-                                   -30474,-12043,-30474,-12043,-30474,-12043,-30474,-12043,
-                                   -30667,-11543,-30667,-11543,-30667,-11543,-30667,-11543,
-                                   -30852,-11039,-30852,-11039,-30852,-11039,-30852,-11039,
-                                   -31029,-10533,-31029,-10533,-31029,-10533,-31029,-10533,
-                                   -31197,-10024,-31197,-10024,-31197,-10024,-31197,-10024,
-                                   -31357,-9512,-31357,-9512,-31357,-9512,-31357,-9512,
-                                   -31508,-8998,-31508,-8998,-31508,-8998,-31508,-8998,
-                                   -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481,
-                                   -31786,-7962,-31786,-7962,-31786,-7962,-31786,-7962,
-                                   -31912,-7441,-31912,-7441,-31912,-7441,-31912,-7441,
-                                   -32029,-6918,-32029,-6918,-32029,-6918,-32029,-6918,
-                                   -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393,
-                                   -32238,-5866,-32238,-5866,-32238,-5866,-32238,-5866,
-                                   -32330,-5338,-32330,-5338,-32330,-5338,-32330,-5338,
-                                   -32413,-4808,-32413,-4808,-32413,-4808,-32413,-4808,
-                                   -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277,
-                                   -32553,-3745,-32553,-3745,-32553,-3745,-32553,-3745,
-                                   -32610,-3212,-32610,-3212,-32610,-3212,-32610,-3212,
-                                   -32658,-2678,-32658,-2678,-32658,-2678,-32658,-2678,
-                                   -32697,-2144,-32697,-2144,-32697,-2144,-32697,-2144,
-                                   -32728,-1608,-32728,-1608,-32728,-1608,-32728,-1608,
-                                   -32750,-1073,-32750,-1073,-32750,-1073,-32750,-1073,
-                                   -32763,-537,-32763,-537,-32763,-537,-32763,-537,
-                                   -32767,-1,-32767,-1,-32767,-1,-32767,-1,
-                                   -32763,536,-32763,536,-32763,536,-32763,536,
-                                   -32750,1072,-32750,1072,-32750,1072,-32750,1072,
-                                   -32728,1607,-32728,1607,-32728,1607,-32728,1607,
-                                   -32697,2143,-32697,2143,-32697,2143,-32697,2143,
-                                   -32658,2677,-32658,2677,-32658,2677,-32658,2677,
-                                   -32610,3211,-32610,3211,-32610,3211,-32610,3211,
-                                   -32553,3744,-32553,3744,-32553,3744,-32553,3744,
-                                   -32487,4276,-32487,4276,-32487,4276,-32487,4276,
-                                   -32413,4807,-32413,4807,-32413,4807,-32413,4807,
-                                   -32330,5337,-32330,5337,-32330,5337,-32330,5337,
-                                   -32238,5865,-32238,5865,-32238,5865,-32238,5865,
-                                   -32138,6392,-32138,6392,-32138,6392,-32138,6392,
-                                   -32029,6917,-32029,6917,-32029,6917,-32029,6917,
-                                   -31912,7440,-31912,7440,-31912,7440,-31912,7440,
-                                   -31786,7961,-31786,7961,-31786,7961,-31786,7961,
-                                   -31651,8480,-31651,8480,-31651,8480,-31651,8480,
-                                   -31508,8997,-31508,8997,-31508,8997,-31508,8997,
-                                   -31357,9511,-31357,9511,-31357,9511,-31357,9511,
-                                   -31197,10023,-31197,10023,-31197,10023,-31197,10023,
-                                   -31029,10532,-31029,10532,-31029,10532,-31029,10532,
-                                   -30852,11038,-30852,11038,-30852,11038,-30852,11038,
-                                   -30667,11542,-30667,11542,-30667,11542,-30667,11542,
-                                   -30474,12042,-30474,12042,-30474,12042,-30474,12042,
-                                   -30273,12539,-30273,12539,-30273,12539,-30273,12539,
-                                   -30064,13033,-30064,13033,-30064,13033,-30064,13033,
-                                   -29847,13523,-29847,13523,-29847,13523,-29847,13523,
-                                   -29622,14009,-29622,14009,-29622,14009,-29622,14009,
-                                   -29388,14492,-29388,14492,-29388,14492,-29388,14492,
-                                   -29147,14971,-29147,14971,-29147,14971,-29147,14971,
-                                   -28898,15446,-28898,15446,-28898,15446,-28898,15446,
-                                   -28642,15917,-28642,15917,-28642,15917,-28642,15917,
-                                   -28378,16383,-28378,16383,-28378,16383,-28378,16383,
-                                   -28106,16845,-28106,16845,-28106,16845,-28106,16845,
-                                   -27826,17303,-27826,17303,-27826,17303,-27826,17303,
-                                   -27539,17756,-27539,17756,-27539,17756,-27539,17756,
-                                   -27245,18204,-27245,18204,-27245,18204,-27245,18204,
-                                   -26944,18647,-26944,18647,-26944,18647,-26944,18647,
-                                   -26635,19086,-26635,19086,-26635,19086,-26635,19086,
-                                   -26319,19519,-26319,19519,-26319,19519,-26319,19519,
-                                   -25996,19947,-25996,19947,-25996,19947,-25996,19947,
-                                   -25666,20369,-25666,20369,-25666,20369,-25666,20369,
-                                   -25330,20787,-25330,20787,-25330,20787,-25330,20787,
-                                   -24986,21198,-24986,21198,-24986,21198,-24986,21198,
-                                   -24636,21604,-24636,21604,-24636,21604,-24636,21604,
-                                   -24279,22004,-24279,22004,-24279,22004,-24279,22004,
-                                   -23916,22399,-23916,22399,-23916,22399,-23916,22399,
-                                   -23546,22787,-23546,22787,-23546,22787,-23546,22787,
-                                   -23170,23169,-23170,23169,-23170,23169,-23170,23169,
-                                   -22788,23545,-22788,23545,-22788,23545,-22788,23545,
-                                   -22400,23915,-22400,23915,-22400,23915,-22400,23915,
-                                   -22005,24278,-22005,24278,-22005,24278,-22005,24278,
-                                   -21605,24635,-21605,24635,-21605,24635,-21605,24635,
-                                   -21199,24985,-21199,24985,-21199,24985,-21199,24985,
-                                   -20788,25329,-20788,25329,-20788,25329,-20788,25329,
-                                   -20370,25665,-20370,25665,-20370,25665,-20370,25665,
-                                   -19948,25995,-19948,25995,-19948,25995,-19948,25995,
-                                   -19520,26318,-19520,26318,-19520,26318,-19520,26318,
-                                   -19087,26634,-19087,26634,-19087,26634,-19087,26634,
-                                   -18648,26943,-18648,26943,-18648,26943,-18648,26943,
-                                   -18205,27244,-18205,27244,-18205,27244,-18205,27244,
-                                   -17757,27538,-17757,27538,-17757,27538,-17757,27538,
-                                   -17304,27825,-17304,27825,-17304,27825,-17304,27825,
-                                   -16846,28105,-16846,28105,-16846,28105,-16846,28105,
-                                   -16384,28377,-16384,28377,-16384,28377,-16384,28377,
-                                   -15918,28641,-15918,28641,-15918,28641,-15918,28641,
-                                   -15447,28897,-15447,28897,-15447,28897,-15447,28897,
-                                   -14972,29146,-14972,29146,-14972,29146,-14972,29146,
-                                   -14493,29387,-14493,29387,-14493,29387,-14493,29387,
-                                   -14010,29621,-14010,29621,-14010,29621,-14010,29621,
-                                   -13524,29846,-13524,29846,-13524,29846,-13524,29846,
-                                   -13034,30063,-13034,30063,-13034,30063,-13034,30063,
-                                   -12540,30272,-12540,30272,-12540,30272,-12540,30272,
-                                   -12043,30473,-12043,30473,-12043,30473,-12043,30473,
-                                   -11543,30666,-11543,30666,-11543,30666,-11543,30666,
-                                   -11039,30851,-11039,30851,-11039,30851,-11039,30851,
-                                   -10533,31028,-10533,31028,-10533,31028,-10533,31028,
-                                   -10024,31196,-10024,31196,-10024,31196,-10024,31196,
-                                   -9512,31356,-9512,31356,-9512,31356,-9512,31356,
-                                   -8998,31507,-8998,31507,-8998,31507,-8998,31507,
-                                   -8481,31650,-8481,31650,-8481,31650,-8481,31650,
-                                   -7962,31785,-7962,31785,-7962,31785,-7962,31785,
-                                   -7441,31911,-7441,31911,-7441,31911,-7441,31911,
-                                   -6918,32028,-6918,32028,-6918,32028,-6918,32028,
-                                   -6393,32137,-6393,32137,-6393,32137,-6393,32137,
-                                   -5866,32237,-5866,32237,-5866,32237,-5866,32237,
-                                   -5338,32329,-5338,32329,-5338,32329,-5338,32329,
-                                   -4808,32412,-4808,32412,-4808,32412,-4808,32412,
-                                   -4277,32486,-4277,32486,-4277,32486,-4277,32486,
-                                   -3745,32552,-3745,32552,-3745,32552,-3745,32552,
-                                   -3212,32609,-3212,32609,-3212,32609,-3212,32609,
-                                   -2678,32657,-2678,32657,-2678,32657,-2678,32657,
-                                   -2144,32696,-2144,32696,-2144,32696,-2144,32696,
-                                   -1608,32727,-1608,32727,-1608,32727,-1608,32727,
-                                   -1073,32749,-1073,32749,-1073,32749,-1073,32749,
-                                   -537,32762,-537,32762,-537,32762,-537,32762
-                                  };
+static int16_t twa1152[287*2*4];
+static int16_t twb1152[287*2*4];
+static int16_t twc1152[287*2*4];
 
 void dft1152(int16_t *x,int16_t *y,unsigned char scale_flag)  // 288 x 4
 {
@@ -17546,909 +8440,9 @@ void dft1152(int16_t *x,int16_t *y,unsigned char scale_flag)  // 288 x 4
   _m_empty();
 };
 
-int16_t twa1200[4784] = { 32766,-172,32766,-172,32766,-172,32766,-172,
-                          32765,-344,32765,-344,32765,-344,32765,-344,
-                          32762,-515,32762,-515,32762,-515,32762,-515,
-                          32759,-687,32759,-687,32759,-687,32759,-687,
-                          32755,-858,32755,-858,32755,-858,32755,-858,
-                          32750,-1030,32750,-1030,32750,-1030,32750,-1030,
-                          32744,-1201,32744,-1201,32744,-1201,32744,-1201,
-                          32738,-1373,32738,-1373,32738,-1373,32738,-1373,
-                          32730,-1544,32730,-1544,32730,-1544,32730,-1544,
-                          32722,-1715,32722,-1715,32722,-1715,32722,-1715,
-                          32712,-1887,32712,-1887,32712,-1887,32712,-1887,
-                          32702,-2058,32702,-2058,32702,-2058,32702,-2058,
-                          32691,-2229,32691,-2229,32691,-2229,32691,-2229,
-                          32679,-2400,32679,-2400,32679,-2400,32679,-2400,
-                          32665,-2571,32665,-2571,32665,-2571,32665,-2571,
-                          32652,-2742,32652,-2742,32652,-2742,32652,-2742,
-                          32637,-2913,32637,-2913,32637,-2913,32637,-2913,
-                          32621,-3084,32621,-3084,32621,-3084,32621,-3084,
-                          32604,-3255,32604,-3255,32604,-3255,32604,-3255,
-                          32587,-3426,32587,-3426,32587,-3426,32587,-3426,
-                          32569,-3596,32569,-3596,32569,-3596,32569,-3596,
-                          32549,-3767,32549,-3767,32549,-3767,32549,-3767,
-                          32529,-3937,32529,-3937,32529,-3937,32529,-3937,
-                          32508,-4107,32508,-4107,32508,-4107,32508,-4107,
-                          32486,-4277,32486,-4277,32486,-4277,32486,-4277,
-                          32463,-4447,32463,-4447,32463,-4447,32463,-4447,
-                          32440,-4617,32440,-4617,32440,-4617,32440,-4617,
-                          32415,-4787,32415,-4787,32415,-4787,32415,-4787,
-                          32389,-4957,32389,-4957,32389,-4957,32389,-4957,
-                          32363,-5126,32363,-5126,32363,-5126,32363,-5126,
-                          32336,-5296,32336,-5296,32336,-5296,32336,-5296,
-                          32308,-5465,32308,-5465,32308,-5465,32308,-5465,
-                          32279,-5634,32279,-5634,32279,-5634,32279,-5634,
-                          32249,-5803,32249,-5803,32249,-5803,32249,-5803,
-                          32218,-5972,32218,-5972,32218,-5972,32218,-5972,
-                          32186,-6140,32186,-6140,32186,-6140,32186,-6140,
-                          32154,-6309,32154,-6309,32154,-6309,32154,-6309,
-                          32120,-6477,32120,-6477,32120,-6477,32120,-6477,
-                          32086,-6645,32086,-6645,32086,-6645,32086,-6645,
-                          32050,-6813,32050,-6813,32050,-6813,32050,-6813,
-                          32014,-6981,32014,-6981,32014,-6981,32014,-6981,
-                          31977,-7148,31977,-7148,31977,-7148,31977,-7148,
-                          31940,-7316,31940,-7316,31940,-7316,31940,-7316,
-                          31901,-7483,31901,-7483,31901,-7483,31901,-7483,
-                          31861,-7650,31861,-7650,31861,-7650,31861,-7650,
-                          31821,-7817,31821,-7817,31821,-7817,31821,-7817,
-                          31779,-7983,31779,-7983,31779,-7983,31779,-7983,
-                          31737,-8149,31737,-8149,31737,-8149,31737,-8149,
-                          31694,-8315,31694,-8315,31694,-8315,31694,-8315,
-                          31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                          31605,-8647,31605,-8647,31605,-8647,31605,-8647,
-                          31559,-8812,31559,-8812,31559,-8812,31559,-8812,
-                          31513,-8977,31513,-8977,31513,-8977,31513,-8977,
-                          31465,-9142,31465,-9142,31465,-9142,31465,-9142,
-                          31417,-9307,31417,-9307,31417,-9307,31417,-9307,
-                          31368,-9471,31368,-9471,31368,-9471,31368,-9471,
-                          31318,-9635,31318,-9635,31318,-9635,31318,-9635,
-                          31267,-9799,31267,-9799,31267,-9799,31267,-9799,
-                          31215,-9963,31215,-9963,31215,-9963,31215,-9963,
-                          31163,-10126,31163,-10126,31163,-10126,31163,-10126,
-                          31109,-10289,31109,-10289,31109,-10289,31109,-10289,
-                          31055,-10452,31055,-10452,31055,-10452,31055,-10452,
-                          31000,-10614,31000,-10614,31000,-10614,31000,-10614,
-                          30944,-10776,30944,-10776,30944,-10776,30944,-10776,
-                          30887,-10938,30887,-10938,30887,-10938,30887,-10938,
-                          30829,-11100,30829,-11100,30829,-11100,30829,-11100,
-                          30771,-11261,30771,-11261,30771,-11261,30771,-11261,
-                          30711,-11422,30711,-11422,30711,-11422,30711,-11422,
-                          30651,-11583,30651,-11583,30651,-11583,30651,-11583,
-                          30590,-11743,30590,-11743,30590,-11743,30590,-11743,
-                          30528,-11903,30528,-11903,30528,-11903,30528,-11903,
-                          30465,-12063,30465,-12063,30465,-12063,30465,-12063,
-                          30402,-12222,30402,-12222,30402,-12222,30402,-12222,
-                          30338,-12381,30338,-12381,30338,-12381,30338,-12381,
-                          30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                          30206,-12698,30206,-12698,30206,-12698,30206,-12698,
-                          30139,-12856,30139,-12856,30139,-12856,30139,-12856,
-                          30072,-13014,30072,-13014,30072,-13014,30072,-13014,
-                          30003,-13171,30003,-13171,30003,-13171,30003,-13171,
-                          29934,-13328,29934,-13328,29934,-13328,29934,-13328,
-                          29863,-13485,29863,-13485,29863,-13485,29863,-13485,
-                          29792,-13641,29792,-13641,29792,-13641,29792,-13641,
-                          29721,-13797,29721,-13797,29721,-13797,29721,-13797,
-                          29648,-13952,29648,-13952,29648,-13952,29648,-13952,
-                          29575,-14107,29575,-14107,29575,-14107,29575,-14107,
-                          29500,-14262,29500,-14262,29500,-14262,29500,-14262,
-                          29425,-14416,29425,-14416,29425,-14416,29425,-14416,
-                          29349,-14570,29349,-14570,29349,-14570,29349,-14570,
-                          29273,-14723,29273,-14723,29273,-14723,29273,-14723,
-                          29195,-14876,29195,-14876,29195,-14876,29195,-14876,
-                          29117,-15029,29117,-15029,29117,-15029,29117,-15029,
-                          29038,-15181,29038,-15181,29038,-15181,29038,-15181,
-                          28958,-15333,28958,-15333,28958,-15333,28958,-15333,
-                          28877,-15485,28877,-15485,28877,-15485,28877,-15485,
-                          28796,-15636,28796,-15636,28796,-15636,28796,-15636,
-                          28713,-15786,28713,-15786,28713,-15786,28713,-15786,
-                          28630,-15936,28630,-15936,28630,-15936,28630,-15936,
-                          28547,-16086,28547,-16086,28547,-16086,28547,-16086,
-                          28462,-16235,28462,-16235,28462,-16235,28462,-16235,
-                          28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                          28290,-16532,28290,-16532,28290,-16532,28290,-16532,
-                          28203,-16680,28203,-16680,28203,-16680,28203,-16680,
-                          28116,-16828,28116,-16828,28116,-16828,28116,-16828,
-                          28027,-16975,28027,-16975,28027,-16975,28027,-16975,
-                          27938,-17121,27938,-17121,27938,-17121,27938,-17121,
-                          27848,-17267,27848,-17267,27848,-17267,27848,-17267,
-                          27757,-17413,27757,-17413,27757,-17413,27757,-17413,
-                          27666,-17558,27666,-17558,27666,-17558,27666,-17558,
-                          27573,-17703,27573,-17703,27573,-17703,27573,-17703,
-                          27480,-17847,27480,-17847,27480,-17847,27480,-17847,
-                          27386,-17990,27386,-17990,27386,-17990,27386,-17990,
-                          27292,-18133,27292,-18133,27292,-18133,27292,-18133,
-                          27197,-18276,27197,-18276,27197,-18276,27197,-18276,
-                          27100,-18418,27100,-18418,27100,-18418,27100,-18418,
-                          27004,-18560,27004,-18560,27004,-18560,27004,-18560,
-                          26906,-18701,26906,-18701,26906,-18701,26906,-18701,
-                          26808,-18842,26808,-18842,26808,-18842,26808,-18842,
-                          26709,-18982,26709,-18982,26709,-18982,26709,-18982,
-                          26609,-19121,26609,-19121,26609,-19121,26609,-19121,
-                          26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                          26407,-19399,26407,-19399,26407,-19399,26407,-19399,
-                          26305,-19537,26305,-19537,26305,-19537,26305,-19537,
-                          26203,-19674,26203,-19674,26203,-19674,26203,-19674,
-                          26099,-19811,26099,-19811,26099,-19811,26099,-19811,
-                          25995,-19948,25995,-19948,25995,-19948,25995,-19948,
-                          25891,-20084,25891,-20084,25891,-20084,25891,-20084,
-                          25785,-20219,25785,-20219,25785,-20219,25785,-20219,
-                          25679,-20354,25679,-20354,25679,-20354,25679,-20354,
-                          25572,-20488,25572,-20488,25572,-20488,25572,-20488,
-                          25464,-20621,25464,-20621,25464,-20621,25464,-20621,
-                          25356,-20754,25356,-20754,25356,-20754,25356,-20754,
-                          25247,-20887,25247,-20887,25247,-20887,25247,-20887,
-                          25137,-21019,25137,-21019,25137,-21019,25137,-21019,
-                          25027,-21150,25027,-21150,25027,-21150,25027,-21150,
-                          24916,-21281,24916,-21281,24916,-21281,24916,-21281,
-                          24804,-21411,24804,-21411,24804,-21411,24804,-21411,
-                          24692,-21541,24692,-21541,24692,-21541,24692,-21541,
-                          24578,-21670,24578,-21670,24578,-21670,24578,-21670,
-                          24465,-21798,24465,-21798,24465,-21798,24465,-21798,
-                          24350,-21926,24350,-21926,24350,-21926,24350,-21926,
-                          24235,-22053,24235,-22053,24235,-22053,24235,-22053,
-                          24119,-22180,24119,-22180,24119,-22180,24119,-22180,
-                          24003,-22306,24003,-22306,24003,-22306,24003,-22306,
-                          23886,-22431,23886,-22431,23886,-22431,23886,-22431,
-                          23768,-22556,23768,-22556,23768,-22556,23768,-22556,
-                          23649,-22680,23649,-22680,23649,-22680,23649,-22680,
-                          23530,-22803,23530,-22803,23530,-22803,23530,-22803,
-                          23411,-22926,23411,-22926,23411,-22926,23411,-22926,
-                          23290,-23049,23290,-23049,23290,-23049,23290,-23049,
-                          23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                          23048,-23291,23048,-23291,23048,-23291,23048,-23291,
-                          22925,-23412,22925,-23412,22925,-23412,22925,-23412,
-                          22802,-23531,22802,-23531,22802,-23531,22802,-23531,
-                          22679,-23650,22679,-23650,22679,-23650,22679,-23650,
-                          22555,-23769,22555,-23769,22555,-23769,22555,-23769,
-                          22430,-23887,22430,-23887,22430,-23887,22430,-23887,
-                          22305,-24004,22305,-24004,22305,-24004,22305,-24004,
-                          22179,-24120,22179,-24120,22179,-24120,22179,-24120,
-                          22052,-24236,22052,-24236,22052,-24236,22052,-24236,
-                          21925,-24351,21925,-24351,21925,-24351,21925,-24351,
-                          21797,-24466,21797,-24466,21797,-24466,21797,-24466,
-                          21669,-24579,21669,-24579,21669,-24579,21669,-24579,
-                          21540,-24693,21540,-24693,21540,-24693,21540,-24693,
-                          21410,-24805,21410,-24805,21410,-24805,21410,-24805,
-                          21280,-24917,21280,-24917,21280,-24917,21280,-24917,
-                          21149,-25028,21149,-25028,21149,-25028,21149,-25028,
-                          21018,-25138,21018,-25138,21018,-25138,21018,-25138,
-                          20886,-25248,20886,-25248,20886,-25248,20886,-25248,
-                          20753,-25357,20753,-25357,20753,-25357,20753,-25357,
-                          20620,-25465,20620,-25465,20620,-25465,20620,-25465,
-                          20487,-25573,20487,-25573,20487,-25573,20487,-25573,
-                          20353,-25680,20353,-25680,20353,-25680,20353,-25680,
-                          20218,-25786,20218,-25786,20218,-25786,20218,-25786,
-                          20083,-25892,20083,-25892,20083,-25892,20083,-25892,
-                          19947,-25996,19947,-25996,19947,-25996,19947,-25996,
-                          19810,-26100,19810,-26100,19810,-26100,19810,-26100,
-                          19673,-26204,19673,-26204,19673,-26204,19673,-26204,
-                          19536,-26306,19536,-26306,19536,-26306,19536,-26306,
-                          19398,-26408,19398,-26408,19398,-26408,19398,-26408,
-                          19259,-26510,19259,-26510,19259,-26510,19259,-26510,
-                          19120,-26610,19120,-26610,19120,-26610,19120,-26610,
-                          18981,-26710,18981,-26710,18981,-26710,18981,-26710,
-                          18841,-26809,18841,-26809,18841,-26809,18841,-26809,
-                          18700,-26907,18700,-26907,18700,-26907,18700,-26907,
-                          18559,-27005,18559,-27005,18559,-27005,18559,-27005,
-                          18417,-27101,18417,-27101,18417,-27101,18417,-27101,
-                          18275,-27198,18275,-27198,18275,-27198,18275,-27198,
-                          18132,-27293,18132,-27293,18132,-27293,18132,-27293,
-                          17989,-27387,17989,-27387,17989,-27387,17989,-27387,
-                          17846,-27481,17846,-27481,17846,-27481,17846,-27481,
-                          17702,-27574,17702,-27574,17702,-27574,17702,-27574,
-                          17557,-27667,17557,-27667,17557,-27667,17557,-27667,
-                          17412,-27758,17412,-27758,17412,-27758,17412,-27758,
-                          17266,-27849,17266,-27849,17266,-27849,17266,-27849,
-                          17120,-27939,17120,-27939,17120,-27939,17120,-27939,
-                          16974,-28028,16974,-28028,16974,-28028,16974,-28028,
-                          16827,-28117,16827,-28117,16827,-28117,16827,-28117,
-                          16679,-28204,16679,-28204,16679,-28204,16679,-28204,
-                          16531,-28291,16531,-28291,16531,-28291,16531,-28291,
-                          16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                          16234,-28463,16234,-28463,16234,-28463,16234,-28463,
-                          16085,-28548,16085,-28548,16085,-28548,16085,-28548,
-                          15935,-28631,15935,-28631,15935,-28631,15935,-28631,
-                          15785,-28714,15785,-28714,15785,-28714,15785,-28714,
-                          15635,-28797,15635,-28797,15635,-28797,15635,-28797,
-                          15484,-28878,15484,-28878,15484,-28878,15484,-28878,
-                          15332,-28959,15332,-28959,15332,-28959,15332,-28959,
-                          15180,-29039,15180,-29039,15180,-29039,15180,-29039,
-                          15028,-29118,15028,-29118,15028,-29118,15028,-29118,
-                          14875,-29196,14875,-29196,14875,-29196,14875,-29196,
-                          14722,-29274,14722,-29274,14722,-29274,14722,-29274,
-                          14569,-29350,14569,-29350,14569,-29350,14569,-29350,
-                          14415,-29426,14415,-29426,14415,-29426,14415,-29426,
-                          14261,-29501,14261,-29501,14261,-29501,14261,-29501,
-                          14106,-29576,14106,-29576,14106,-29576,14106,-29576,
-                          13951,-29649,13951,-29649,13951,-29649,13951,-29649,
-                          13796,-29722,13796,-29722,13796,-29722,13796,-29722,
-                          13640,-29793,13640,-29793,13640,-29793,13640,-29793,
-                          13484,-29864,13484,-29864,13484,-29864,13484,-29864,
-                          13327,-29935,13327,-29935,13327,-29935,13327,-29935,
-                          13170,-30004,13170,-30004,13170,-30004,13170,-30004,
-                          13013,-30073,13013,-30073,13013,-30073,13013,-30073,
-                          12855,-30140,12855,-30140,12855,-30140,12855,-30140,
-                          12697,-30207,12697,-30207,12697,-30207,12697,-30207,
-                          12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                          12380,-30339,12380,-30339,12380,-30339,12380,-30339,
-                          12221,-30403,12221,-30403,12221,-30403,12221,-30403,
-                          12062,-30466,12062,-30466,12062,-30466,12062,-30466,
-                          11902,-30529,11902,-30529,11902,-30529,11902,-30529,
-                          11742,-30591,11742,-30591,11742,-30591,11742,-30591,
-                          11582,-30652,11582,-30652,11582,-30652,11582,-30652,
-                          11421,-30712,11421,-30712,11421,-30712,11421,-30712,
-                          11260,-30772,11260,-30772,11260,-30772,11260,-30772,
-                          11099,-30830,11099,-30830,11099,-30830,11099,-30830,
-                          10937,-30888,10937,-30888,10937,-30888,10937,-30888,
-                          10775,-30945,10775,-30945,10775,-30945,10775,-30945,
-                          10613,-31001,10613,-31001,10613,-31001,10613,-31001,
-                          10451,-31056,10451,-31056,10451,-31056,10451,-31056,
-                          10288,-31110,10288,-31110,10288,-31110,10288,-31110,
-                          10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                          9962,-31216,9962,-31216,9962,-31216,9962,-31216,
-                          9798,-31268,9798,-31268,9798,-31268,9798,-31268,
-                          9634,-31319,9634,-31319,9634,-31319,9634,-31319,
-                          9470,-31369,9470,-31369,9470,-31369,9470,-31369,
-                          9306,-31418,9306,-31418,9306,-31418,9306,-31418,
-                          9141,-31466,9141,-31466,9141,-31466,9141,-31466,
-                          8976,-31514,8976,-31514,8976,-31514,8976,-31514,
-                          8811,-31560,8811,-31560,8811,-31560,8811,-31560,
-                          8646,-31606,8646,-31606,8646,-31606,8646,-31606,
-                          8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                          8314,-31695,8314,-31695,8314,-31695,8314,-31695,
-                          8148,-31738,8148,-31738,8148,-31738,8148,-31738,
-                          7982,-31780,7982,-31780,7982,-31780,7982,-31780,
-                          7816,-31822,7816,-31822,7816,-31822,7816,-31822,
-                          7649,-31862,7649,-31862,7649,-31862,7649,-31862,
-                          7482,-31902,7482,-31902,7482,-31902,7482,-31902,
-                          7315,-31941,7315,-31941,7315,-31941,7315,-31941,
-                          7147,-31978,7147,-31978,7147,-31978,7147,-31978,
-                          6980,-32015,6980,-32015,6980,-32015,6980,-32015,
-                          6812,-32051,6812,-32051,6812,-32051,6812,-32051,
-                          6644,-32087,6644,-32087,6644,-32087,6644,-32087,
-                          6476,-32121,6476,-32121,6476,-32121,6476,-32121,
-                          6308,-32155,6308,-32155,6308,-32155,6308,-32155,
-                          6139,-32187,6139,-32187,6139,-32187,6139,-32187,
-                          5971,-32219,5971,-32219,5971,-32219,5971,-32219,
-                          5802,-32250,5802,-32250,5802,-32250,5802,-32250,
-                          5633,-32280,5633,-32280,5633,-32280,5633,-32280,
-                          5464,-32309,5464,-32309,5464,-32309,5464,-32309,
-                          5295,-32337,5295,-32337,5295,-32337,5295,-32337,
-                          5125,-32364,5125,-32364,5125,-32364,5125,-32364,
-                          4956,-32390,4956,-32390,4956,-32390,4956,-32390,
-                          4786,-32416,4786,-32416,4786,-32416,4786,-32416,
-                          4616,-32441,4616,-32441,4616,-32441,4616,-32441,
-                          4446,-32464,4446,-32464,4446,-32464,4446,-32464,
-                          4276,-32487,4276,-32487,4276,-32487,4276,-32487,
-                          4106,-32509,4106,-32509,4106,-32509,4106,-32509,
-                          3936,-32530,3936,-32530,3936,-32530,3936,-32530,
-                          3766,-32550,3766,-32550,3766,-32550,3766,-32550,
-                          3595,-32570,3595,-32570,3595,-32570,3595,-32570,
-                          3425,-32588,3425,-32588,3425,-32588,3425,-32588,
-                          3254,-32605,3254,-32605,3254,-32605,3254,-32605,
-                          3083,-32622,3083,-32622,3083,-32622,3083,-32622,
-                          2912,-32638,2912,-32638,2912,-32638,2912,-32638,
-                          2741,-32653,2741,-32653,2741,-32653,2741,-32653,
-                          2570,-32666,2570,-32666,2570,-32666,2570,-32666,
-                          2399,-32680,2399,-32680,2399,-32680,2399,-32680,
-                          2228,-32692,2228,-32692,2228,-32692,2228,-32692,
-                          2057,-32703,2057,-32703,2057,-32703,2057,-32703,
-                          1886,-32713,1886,-32713,1886,-32713,1886,-32713,
-                          1714,-32723,1714,-32723,1714,-32723,1714,-32723,
-                          1543,-32731,1543,-32731,1543,-32731,1543,-32731,
-                          1372,-32739,1372,-32739,1372,-32739,1372,-32739,
-                          1200,-32745,1200,-32745,1200,-32745,1200,-32745,
-                          1029,-32751,1029,-32751,1029,-32751,1029,-32751,
-                          857,-32756,857,-32756,857,-32756,857,-32756,
-                          686,-32760,686,-32760,686,-32760,686,-32760,
-                          514,-32763,514,-32763,514,-32763,514,-32763,
-                          343,-32766,343,-32766,343,-32766,343,-32766,
-                          171,-32767,171,-32767,171,-32767,171,-32767
-                        };
-
-int16_t twb1200[4784] = {32765,-344,32765,-344,32765,-344,32765,-344,
-                         32759,-687,32759,-687,32759,-687,32759,-687,
-                         32750,-1030,32750,-1030,32750,-1030,32750,-1030,
-                         32738,-1373,32738,-1373,32738,-1373,32738,-1373,
-                         32722,-1715,32722,-1715,32722,-1715,32722,-1715,
-                         32702,-2058,32702,-2058,32702,-2058,32702,-2058,
-                         32679,-2400,32679,-2400,32679,-2400,32679,-2400,
-                         32652,-2742,32652,-2742,32652,-2742,32652,-2742,
-                         32621,-3084,32621,-3084,32621,-3084,32621,-3084,
-                         32587,-3426,32587,-3426,32587,-3426,32587,-3426,
-                         32549,-3767,32549,-3767,32549,-3767,32549,-3767,
-                         32508,-4107,32508,-4107,32508,-4107,32508,-4107,
-                         32463,-4447,32463,-4447,32463,-4447,32463,-4447,
-                         32415,-4787,32415,-4787,32415,-4787,32415,-4787,
-                         32363,-5126,32363,-5126,32363,-5126,32363,-5126,
-                         32308,-5465,32308,-5465,32308,-5465,32308,-5465,
-                         32249,-5803,32249,-5803,32249,-5803,32249,-5803,
-                         32186,-6140,32186,-6140,32186,-6140,32186,-6140,
-                         32120,-6477,32120,-6477,32120,-6477,32120,-6477,
-                         32050,-6813,32050,-6813,32050,-6813,32050,-6813,
-                         31977,-7148,31977,-7148,31977,-7148,31977,-7148,
-                         31901,-7483,31901,-7483,31901,-7483,31901,-7483,
-                         31821,-7817,31821,-7817,31821,-7817,31821,-7817,
-                         31737,-8149,31737,-8149,31737,-8149,31737,-8149,
-                         31650,-8481,31650,-8481,31650,-8481,31650,-8481,
-                         31559,-8812,31559,-8812,31559,-8812,31559,-8812,
-                         31465,-9142,31465,-9142,31465,-9142,31465,-9142,
-                         31368,-9471,31368,-9471,31368,-9471,31368,-9471,
-                         31267,-9799,31267,-9799,31267,-9799,31267,-9799,
-                         31163,-10126,31163,-10126,31163,-10126,31163,-10126,
-                         31055,-10452,31055,-10452,31055,-10452,31055,-10452,
-                         30944,-10776,30944,-10776,30944,-10776,30944,-10776,
-                         30829,-11100,30829,-11100,30829,-11100,30829,-11100,
-                         30711,-11422,30711,-11422,30711,-11422,30711,-11422,
-                         30590,-11743,30590,-11743,30590,-11743,30590,-11743,
-                         30465,-12063,30465,-12063,30465,-12063,30465,-12063,
-                         30338,-12381,30338,-12381,30338,-12381,30338,-12381,
-                         30206,-12698,30206,-12698,30206,-12698,30206,-12698,
-                         30072,-13014,30072,-13014,30072,-13014,30072,-13014,
-                         29934,-13328,29934,-13328,29934,-13328,29934,-13328,
-                         29792,-13641,29792,-13641,29792,-13641,29792,-13641,
-                         29648,-13952,29648,-13952,29648,-13952,29648,-13952,
-                         29500,-14262,29500,-14262,29500,-14262,29500,-14262,
-                         29349,-14570,29349,-14570,29349,-14570,29349,-14570,
-                         29195,-14876,29195,-14876,29195,-14876,29195,-14876,
-                         29038,-15181,29038,-15181,29038,-15181,29038,-15181,
-                         28877,-15485,28877,-15485,28877,-15485,28877,-15485,
-                         28713,-15786,28713,-15786,28713,-15786,28713,-15786,
-                         28547,-16086,28547,-16086,28547,-16086,28547,-16086,
-                         28377,-16384,28377,-16384,28377,-16384,28377,-16384,
-                         28203,-16680,28203,-16680,28203,-16680,28203,-16680,
-                         28027,-16975,28027,-16975,28027,-16975,28027,-16975,
-                         27848,-17267,27848,-17267,27848,-17267,27848,-17267,
-                         27666,-17558,27666,-17558,27666,-17558,27666,-17558,
-                         27480,-17847,27480,-17847,27480,-17847,27480,-17847,
-                         27292,-18133,27292,-18133,27292,-18133,27292,-18133,
-                         27100,-18418,27100,-18418,27100,-18418,27100,-18418,
-                         26906,-18701,26906,-18701,26906,-18701,26906,-18701,
-                         26709,-18982,26709,-18982,26709,-18982,26709,-18982,
-                         26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                         26305,-19537,26305,-19537,26305,-19537,26305,-19537,
-                         26099,-19811,26099,-19811,26099,-19811,26099,-19811,
-                         25891,-20084,25891,-20084,25891,-20084,25891,-20084,
-                         25679,-20354,25679,-20354,25679,-20354,25679,-20354,
-                         25464,-20621,25464,-20621,25464,-20621,25464,-20621,
-                         25247,-20887,25247,-20887,25247,-20887,25247,-20887,
-                         25027,-21150,25027,-21150,25027,-21150,25027,-21150,
-                         24804,-21411,24804,-21411,24804,-21411,24804,-21411,
-                         24578,-21670,24578,-21670,24578,-21670,24578,-21670,
-                         24350,-21926,24350,-21926,24350,-21926,24350,-21926,
-                         24119,-22180,24119,-22180,24119,-22180,24119,-22180,
-                         23886,-22431,23886,-22431,23886,-22431,23886,-22431,
-                         23649,-22680,23649,-22680,23649,-22680,23649,-22680,
-                         23411,-22926,23411,-22926,23411,-22926,23411,-22926,
-                         23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                         22925,-23412,22925,-23412,22925,-23412,22925,-23412,
-                         22679,-23650,22679,-23650,22679,-23650,22679,-23650,
-                         22430,-23887,22430,-23887,22430,-23887,22430,-23887,
-                         22179,-24120,22179,-24120,22179,-24120,22179,-24120,
-                         21925,-24351,21925,-24351,21925,-24351,21925,-24351,
-                         21669,-24579,21669,-24579,21669,-24579,21669,-24579,
-                         21410,-24805,21410,-24805,21410,-24805,21410,-24805,
-                         21149,-25028,21149,-25028,21149,-25028,21149,-25028,
-                         20886,-25248,20886,-25248,20886,-25248,20886,-25248,
-                         20620,-25465,20620,-25465,20620,-25465,20620,-25465,
-                         20353,-25680,20353,-25680,20353,-25680,20353,-25680,
-                         20083,-25892,20083,-25892,20083,-25892,20083,-25892,
-                         19810,-26100,19810,-26100,19810,-26100,19810,-26100,
-                         19536,-26306,19536,-26306,19536,-26306,19536,-26306,
-                         19259,-26510,19259,-26510,19259,-26510,19259,-26510,
-                         18981,-26710,18981,-26710,18981,-26710,18981,-26710,
-                         18700,-26907,18700,-26907,18700,-26907,18700,-26907,
-                         18417,-27101,18417,-27101,18417,-27101,18417,-27101,
-                         18132,-27293,18132,-27293,18132,-27293,18132,-27293,
-                         17846,-27481,17846,-27481,17846,-27481,17846,-27481,
-                         17557,-27667,17557,-27667,17557,-27667,17557,-27667,
-                         17266,-27849,17266,-27849,17266,-27849,17266,-27849,
-                         16974,-28028,16974,-28028,16974,-28028,16974,-28028,
-                         16679,-28204,16679,-28204,16679,-28204,16679,-28204,
-                         16383,-28378,16383,-28378,16383,-28378,16383,-28378,
-                         16085,-28548,16085,-28548,16085,-28548,16085,-28548,
-                         15785,-28714,15785,-28714,15785,-28714,15785,-28714,
-                         15484,-28878,15484,-28878,15484,-28878,15484,-28878,
-                         15180,-29039,15180,-29039,15180,-29039,15180,-29039,
-                         14875,-29196,14875,-29196,14875,-29196,14875,-29196,
-                         14569,-29350,14569,-29350,14569,-29350,14569,-29350,
-                         14261,-29501,14261,-29501,14261,-29501,14261,-29501,
-                         13951,-29649,13951,-29649,13951,-29649,13951,-29649,
-                         13640,-29793,13640,-29793,13640,-29793,13640,-29793,
-                         13327,-29935,13327,-29935,13327,-29935,13327,-29935,
-                         13013,-30073,13013,-30073,13013,-30073,13013,-30073,
-                         12697,-30207,12697,-30207,12697,-30207,12697,-30207,
-                         12380,-30339,12380,-30339,12380,-30339,12380,-30339,
-                         12062,-30466,12062,-30466,12062,-30466,12062,-30466,
-                         11742,-30591,11742,-30591,11742,-30591,11742,-30591,
-                         11421,-30712,11421,-30712,11421,-30712,11421,-30712,
-                         11099,-30830,11099,-30830,11099,-30830,11099,-30830,
-                         10775,-30945,10775,-30945,10775,-30945,10775,-30945,
-                         10451,-31056,10451,-31056,10451,-31056,10451,-31056,
-                         10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                         9798,-31268,9798,-31268,9798,-31268,9798,-31268,
-                         9470,-31369,9470,-31369,9470,-31369,9470,-31369,
-                         9141,-31466,9141,-31466,9141,-31466,9141,-31466,
-                         8811,-31560,8811,-31560,8811,-31560,8811,-31560,
-                         8480,-31651,8480,-31651,8480,-31651,8480,-31651,
-                         8148,-31738,8148,-31738,8148,-31738,8148,-31738,
-                         7816,-31822,7816,-31822,7816,-31822,7816,-31822,
-                         7482,-31902,7482,-31902,7482,-31902,7482,-31902,
-                         7147,-31978,7147,-31978,7147,-31978,7147,-31978,
-                         6812,-32051,6812,-32051,6812,-32051,6812,-32051,
-                         6476,-32121,6476,-32121,6476,-32121,6476,-32121,
-                         6139,-32187,6139,-32187,6139,-32187,6139,-32187,
-                         5802,-32250,5802,-32250,5802,-32250,5802,-32250,
-                         5464,-32309,5464,-32309,5464,-32309,5464,-32309,
-                         5125,-32364,5125,-32364,5125,-32364,5125,-32364,
-                         4786,-32416,4786,-32416,4786,-32416,4786,-32416,
-                         4446,-32464,4446,-32464,4446,-32464,4446,-32464,
-                         4106,-32509,4106,-32509,4106,-32509,4106,-32509,
-                         3766,-32550,3766,-32550,3766,-32550,3766,-32550,
-                         3425,-32588,3425,-32588,3425,-32588,3425,-32588,
-                         3083,-32622,3083,-32622,3083,-32622,3083,-32622,
-                         2741,-32653,2741,-32653,2741,-32653,2741,-32653,
-                         2399,-32680,2399,-32680,2399,-32680,2399,-32680,
-                         2057,-32703,2057,-32703,2057,-32703,2057,-32703,
-                         1714,-32723,1714,-32723,1714,-32723,1714,-32723,
-                         1372,-32739,1372,-32739,1372,-32739,1372,-32739,
-                         1029,-32751,1029,-32751,1029,-32751,1029,-32751,
-                         686,-32760,686,-32760,686,-32760,686,-32760,
-                         343,-32766,343,-32766,343,-32766,343,-32766,
-                         0,-32767,0,-32767,0,-32767,0,-32767,
-                         -344,-32766,-344,-32766,-344,-32766,-344,-32766,
-                         -687,-32760,-687,-32760,-687,-32760,-687,-32760,
-                         -1030,-32751,-1030,-32751,-1030,-32751,-1030,-32751,
-                         -1373,-32739,-1373,-32739,-1373,-32739,-1373,-32739,
-                         -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723,
-                         -2058,-32703,-2058,-32703,-2058,-32703,-2058,-32703,
-                         -2400,-32680,-2400,-32680,-2400,-32680,-2400,-32680,
-                         -2742,-32653,-2742,-32653,-2742,-32653,-2742,-32653,
-                         -3084,-32622,-3084,-32622,-3084,-32622,-3084,-32622,
-                         -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588,
-                         -3767,-32550,-3767,-32550,-3767,-32550,-3767,-32550,
-                         -4107,-32509,-4107,-32509,-4107,-32509,-4107,-32509,
-                         -4447,-32464,-4447,-32464,-4447,-32464,-4447,-32464,
-                         -4787,-32416,-4787,-32416,-4787,-32416,-4787,-32416,
-                         -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364,
-                         -5465,-32309,-5465,-32309,-5465,-32309,-5465,-32309,
-                         -5803,-32250,-5803,-32250,-5803,-32250,-5803,-32250,
-                         -6140,-32187,-6140,-32187,-6140,-32187,-6140,-32187,
-                         -6477,-32121,-6477,-32121,-6477,-32121,-6477,-32121,
-                         -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051,
-                         -7148,-31978,-7148,-31978,-7148,-31978,-7148,-31978,
-                         -7483,-31902,-7483,-31902,-7483,-31902,-7483,-31902,
-                         -7817,-31822,-7817,-31822,-7817,-31822,-7817,-31822,
-                         -8149,-31738,-8149,-31738,-8149,-31738,-8149,-31738,
-                         -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651,
-                         -8812,-31560,-8812,-31560,-8812,-31560,-8812,-31560,
-                         -9142,-31466,-9142,-31466,-9142,-31466,-9142,-31466,
-                         -9471,-31369,-9471,-31369,-9471,-31369,-9471,-31369,
-                         -9799,-31268,-9799,-31268,-9799,-31268,-9799,-31268,
-                         -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164,
-                         -10452,-31056,-10452,-31056,-10452,-31056,-10452,-31056,
-                         -10776,-30945,-10776,-30945,-10776,-30945,-10776,-30945,
-                         -11100,-30830,-11100,-30830,-11100,-30830,-11100,-30830,
-                         -11422,-30712,-11422,-30712,-11422,-30712,-11422,-30712,
-                         -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591,
-                         -12063,-30466,-12063,-30466,-12063,-30466,-12063,-30466,
-                         -12381,-30339,-12381,-30339,-12381,-30339,-12381,-30339,
-                         -12698,-30207,-12698,-30207,-12698,-30207,-12698,-30207,
-                         -13014,-30073,-13014,-30073,-13014,-30073,-13014,-30073,
-                         -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935,
-                         -13641,-29793,-13641,-29793,-13641,-29793,-13641,-29793,
-                         -13952,-29649,-13952,-29649,-13952,-29649,-13952,-29649,
-                         -14262,-29501,-14262,-29501,-14262,-29501,-14262,-29501,
-                         -14570,-29350,-14570,-29350,-14570,-29350,-14570,-29350,
-                         -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196,
-                         -15181,-29039,-15181,-29039,-15181,-29039,-15181,-29039,
-                         -15485,-28878,-15485,-28878,-15485,-28878,-15485,-28878,
-                         -15786,-28714,-15786,-28714,-15786,-28714,-15786,-28714,
-                         -16086,-28548,-16086,-28548,-16086,-28548,-16086,-28548,
-                         -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378,
-                         -16680,-28204,-16680,-28204,-16680,-28204,-16680,-28204,
-                         -16975,-28028,-16975,-28028,-16975,-28028,-16975,-28028,
-                         -17267,-27849,-17267,-27849,-17267,-27849,-17267,-27849,
-                         -17558,-27667,-17558,-27667,-17558,-27667,-17558,-27667,
-                         -17847,-27481,-17847,-27481,-17847,-27481,-17847,-27481,
-                         -18133,-27293,-18133,-27293,-18133,-27293,-18133,-27293,
-                         -18418,-27101,-18418,-27101,-18418,-27101,-18418,-27101,
-                         -18701,-26907,-18701,-26907,-18701,-26907,-18701,-26907,
-                         -18982,-26710,-18982,-26710,-18982,-26710,-18982,-26710,
-                         -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510,
-                         -19537,-26306,-19537,-26306,-19537,-26306,-19537,-26306,
-                         -19811,-26100,-19811,-26100,-19811,-26100,-19811,-26100,
-                         -20084,-25892,-20084,-25892,-20084,-25892,-20084,-25892,
-                         -20354,-25680,-20354,-25680,-20354,-25680,-20354,-25680,
-                         -20621,-25465,-20621,-25465,-20621,-25465,-20621,-25465,
-                         -20887,-25248,-20887,-25248,-20887,-25248,-20887,-25248,
-                         -21150,-25028,-21150,-25028,-21150,-25028,-21150,-25028,
-                         -21411,-24805,-21411,-24805,-21411,-24805,-21411,-24805,
-                         -21670,-24579,-21670,-24579,-21670,-24579,-21670,-24579,
-                         -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351,
-                         -22180,-24120,-22180,-24120,-22180,-24120,-22180,-24120,
-                         -22431,-23887,-22431,-23887,-22431,-23887,-22431,-23887,
-                         -22680,-23650,-22680,-23650,-22680,-23650,-22680,-23650,
-                         -22926,-23412,-22926,-23412,-22926,-23412,-22926,-23412,
-                         -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170,
-                         -23412,-22926,-23412,-22926,-23412,-22926,-23412,-22926,
-                         -23650,-22680,-23650,-22680,-23650,-22680,-23650,-22680,
-                         -23887,-22431,-23887,-22431,-23887,-22431,-23887,-22431,
-                         -24120,-22180,-24120,-22180,-24120,-22180,-24120,-22180,
-                         -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926,
-                         -24579,-21670,-24579,-21670,-24579,-21670,-24579,-21670,
-                         -24805,-21411,-24805,-21411,-24805,-21411,-24805,-21411,
-                         -25028,-21150,-25028,-21150,-25028,-21150,-25028,-21150,
-                         -25248,-20887,-25248,-20887,-25248,-20887,-25248,-20887,
-                         -25465,-20621,-25465,-20621,-25465,-20621,-25465,-20621,
-                         -25680,-20354,-25680,-20354,-25680,-20354,-25680,-20354,
-                         -25892,-20084,-25892,-20084,-25892,-20084,-25892,-20084,
-                         -26100,-19811,-26100,-19811,-26100,-19811,-26100,-19811,
-                         -26306,-19537,-26306,-19537,-26306,-19537,-26306,-19537,
-                         -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260,
-                         -26710,-18982,-26710,-18982,-26710,-18982,-26710,-18982,
-                         -26907,-18701,-26907,-18701,-26907,-18701,-26907,-18701,
-                         -27101,-18418,-27101,-18418,-27101,-18418,-27101,-18418,
-                         -27293,-18133,-27293,-18133,-27293,-18133,-27293,-18133,
-                         -27481,-17847,-27481,-17847,-27481,-17847,-27481,-17847,
-                         -27667,-17558,-27667,-17558,-27667,-17558,-27667,-17558,
-                         -27849,-17267,-27849,-17267,-27849,-17267,-27849,-17267,
-                         -28028,-16975,-28028,-16975,-28028,-16975,-28028,-16975,
-                         -28204,-16680,-28204,-16680,-28204,-16680,-28204,-16680,
-                         -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384,
-                         -28548,-16086,-28548,-16086,-28548,-16086,-28548,-16086,
-                         -28714,-15786,-28714,-15786,-28714,-15786,-28714,-15786,
-                         -28878,-15485,-28878,-15485,-28878,-15485,-28878,-15485,
-                         -29039,-15181,-29039,-15181,-29039,-15181,-29039,-15181,
-                         -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876,
-                         -29350,-14570,-29350,-14570,-29350,-14570,-29350,-14570,
-                         -29501,-14262,-29501,-14262,-29501,-14262,-29501,-14262,
-                         -29649,-13952,-29649,-13952,-29649,-13952,-29649,-13952,
-                         -29793,-13641,-29793,-13641,-29793,-13641,-29793,-13641,
-                         -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328,
-                         -30073,-13014,-30073,-13014,-30073,-13014,-30073,-13014,
-                         -30207,-12698,-30207,-12698,-30207,-12698,-30207,-12698,
-                         -30339,-12381,-30339,-12381,-30339,-12381,-30339,-12381,
-                         -30466,-12063,-30466,-12063,-30466,-12063,-30466,-12063,
-                         -30591,-11743,-30591,-11743,-30591,-11743,-30591,-11743,
-                         -30712,-11422,-30712,-11422,-30712,-11422,-30712,-11422,
-                         -30830,-11100,-30830,-11100,-30830,-11100,-30830,-11100,
-                         -30945,-10776,-30945,-10776,-30945,-10776,-30945,-10776,
-                         -31056,-10452,-31056,-10452,-31056,-10452,-31056,-10452,
-                         -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126,
-                         -31268,-9799,-31268,-9799,-31268,-9799,-31268,-9799,
-                         -31369,-9471,-31369,-9471,-31369,-9471,-31369,-9471,
-                         -31466,-9142,-31466,-9142,-31466,-9142,-31466,-9142,
-                         -31560,-8812,-31560,-8812,-31560,-8812,-31560,-8812,
-                         -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481,
-                         -31738,-8149,-31738,-8149,-31738,-8149,-31738,-8149,
-                         -31822,-7817,-31822,-7817,-31822,-7817,-31822,-7817,
-                         -31902,-7483,-31902,-7483,-31902,-7483,-31902,-7483,
-                         -31978,-7148,-31978,-7148,-31978,-7148,-31978,-7148,
-                         -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813,
-                         -32121,-6477,-32121,-6477,-32121,-6477,-32121,-6477,
-                         -32187,-6140,-32187,-6140,-32187,-6140,-32187,-6140,
-                         -32250,-5803,-32250,-5803,-32250,-5803,-32250,-5803,
-                         -32309,-5465,-32309,-5465,-32309,-5465,-32309,-5465,
-                         -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126,
-                         -32416,-4787,-32416,-4787,-32416,-4787,-32416,-4787,
-                         -32464,-4447,-32464,-4447,-32464,-4447,-32464,-4447,
-                         -32509,-4107,-32509,-4107,-32509,-4107,-32509,-4107,
-                         -32550,-3767,-32550,-3767,-32550,-3767,-32550,-3767,
-                         -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426,
-                         -32622,-3084,-32622,-3084,-32622,-3084,-32622,-3084,
-                         -32653,-2742,-32653,-2742,-32653,-2742,-32653,-2742,
-                         -32680,-2400,-32680,-2400,-32680,-2400,-32680,-2400,
-                         -32703,-2058,-32703,-2058,-32703,-2058,-32703,-2058,
-                         -32723,-1715,-32723,-1715,-32723,-1715,-32723,-1715,
-                         -32739,-1373,-32739,-1373,-32739,-1373,-32739,-1373,
-                         -32751,-1030,-32751,-1030,-32751,-1030,-32751,-1030,
-                         -32760,-687,-32760,-687,-32760,-687,-32760,-687,
-                         -32766,-344,-32766,-344,-32766,-344,-32766,-344
-                        };
-
-int16_t twc1200[4784] = { 32762,-515,32762,-515,32762,-515,32762,-515,
-                          32750,-1030,32750,-1030,32750,-1030,32750,-1030,
-                          32730,-1544,32730,-1544,32730,-1544,32730,-1544,
-                          32702,-2058,32702,-2058,32702,-2058,32702,-2058,
-                          32665,-2571,32665,-2571,32665,-2571,32665,-2571,
-                          32621,-3084,32621,-3084,32621,-3084,32621,-3084,
-                          32569,-3596,32569,-3596,32569,-3596,32569,-3596,
-                          32508,-4107,32508,-4107,32508,-4107,32508,-4107,
-                          32440,-4617,32440,-4617,32440,-4617,32440,-4617,
-                          32363,-5126,32363,-5126,32363,-5126,32363,-5126,
-                          32279,-5634,32279,-5634,32279,-5634,32279,-5634,
-                          32186,-6140,32186,-6140,32186,-6140,32186,-6140,
-                          32086,-6645,32086,-6645,32086,-6645,32086,-6645,
-                          31977,-7148,31977,-7148,31977,-7148,31977,-7148,
-                          31861,-7650,31861,-7650,31861,-7650,31861,-7650,
-                          31737,-8149,31737,-8149,31737,-8149,31737,-8149,
-                          31605,-8647,31605,-8647,31605,-8647,31605,-8647,
-                          31465,-9142,31465,-9142,31465,-9142,31465,-9142,
-                          31318,-9635,31318,-9635,31318,-9635,31318,-9635,
-                          31163,-10126,31163,-10126,31163,-10126,31163,-10126,
-                          31000,-10614,31000,-10614,31000,-10614,31000,-10614,
-                          30829,-11100,30829,-11100,30829,-11100,30829,-11100,
-                          30651,-11583,30651,-11583,30651,-11583,30651,-11583,
-                          30465,-12063,30465,-12063,30465,-12063,30465,-12063,
-                          30272,-12540,30272,-12540,30272,-12540,30272,-12540,
-                          30072,-13014,30072,-13014,30072,-13014,30072,-13014,
-                          29863,-13485,29863,-13485,29863,-13485,29863,-13485,
-                          29648,-13952,29648,-13952,29648,-13952,29648,-13952,
-                          29425,-14416,29425,-14416,29425,-14416,29425,-14416,
-                          29195,-14876,29195,-14876,29195,-14876,29195,-14876,
-                          28958,-15333,28958,-15333,28958,-15333,28958,-15333,
-                          28713,-15786,28713,-15786,28713,-15786,28713,-15786,
-                          28462,-16235,28462,-16235,28462,-16235,28462,-16235,
-                          28203,-16680,28203,-16680,28203,-16680,28203,-16680,
-                          27938,-17121,27938,-17121,27938,-17121,27938,-17121,
-                          27666,-17558,27666,-17558,27666,-17558,27666,-17558,
-                          27386,-17990,27386,-17990,27386,-17990,27386,-17990,
-                          27100,-18418,27100,-18418,27100,-18418,27100,-18418,
-                          26808,-18842,26808,-18842,26808,-18842,26808,-18842,
-                          26509,-19260,26509,-19260,26509,-19260,26509,-19260,
-                          26203,-19674,26203,-19674,26203,-19674,26203,-19674,
-                          25891,-20084,25891,-20084,25891,-20084,25891,-20084,
-                          25572,-20488,25572,-20488,25572,-20488,25572,-20488,
-                          25247,-20887,25247,-20887,25247,-20887,25247,-20887,
-                          24916,-21281,24916,-21281,24916,-21281,24916,-21281,
-                          24578,-21670,24578,-21670,24578,-21670,24578,-21670,
-                          24235,-22053,24235,-22053,24235,-22053,24235,-22053,
-                          23886,-22431,23886,-22431,23886,-22431,23886,-22431,
-                          23530,-22803,23530,-22803,23530,-22803,23530,-22803,
-                          23169,-23170,23169,-23170,23169,-23170,23169,-23170,
-                          22802,-23531,22802,-23531,22802,-23531,22802,-23531,
-                          22430,-23887,22430,-23887,22430,-23887,22430,-23887,
-                          22052,-24236,22052,-24236,22052,-24236,22052,-24236,
-                          21669,-24579,21669,-24579,21669,-24579,21669,-24579,
-                          21280,-24917,21280,-24917,21280,-24917,21280,-24917,
-                          20886,-25248,20886,-25248,20886,-25248,20886,-25248,
-                          20487,-25573,20487,-25573,20487,-25573,20487,-25573,
-                          20083,-25892,20083,-25892,20083,-25892,20083,-25892,
-                          19673,-26204,19673,-26204,19673,-26204,19673,-26204,
-                          19259,-26510,19259,-26510,19259,-26510,19259,-26510,
-                          18841,-26809,18841,-26809,18841,-26809,18841,-26809,
-                          18417,-27101,18417,-27101,18417,-27101,18417,-27101,
-                          17989,-27387,17989,-27387,17989,-27387,17989,-27387,
-                          17557,-27667,17557,-27667,17557,-27667,17557,-27667,
-                          17120,-27939,17120,-27939,17120,-27939,17120,-27939,
-                          16679,-28204,16679,-28204,16679,-28204,16679,-28204,
-                          16234,-28463,16234,-28463,16234,-28463,16234,-28463,
-                          15785,-28714,15785,-28714,15785,-28714,15785,-28714,
-                          15332,-28959,15332,-28959,15332,-28959,15332,-28959,
-                          14875,-29196,14875,-29196,14875,-29196,14875,-29196,
-                          14415,-29426,14415,-29426,14415,-29426,14415,-29426,
-                          13951,-29649,13951,-29649,13951,-29649,13951,-29649,
-                          13484,-29864,13484,-29864,13484,-29864,13484,-29864,
-                          13013,-30073,13013,-30073,13013,-30073,13013,-30073,
-                          12539,-30273,12539,-30273,12539,-30273,12539,-30273,
-                          12062,-30466,12062,-30466,12062,-30466,12062,-30466,
-                          11582,-30652,11582,-30652,11582,-30652,11582,-30652,
-                          11099,-30830,11099,-30830,11099,-30830,11099,-30830,
-                          10613,-31001,10613,-31001,10613,-31001,10613,-31001,
-                          10125,-31164,10125,-31164,10125,-31164,10125,-31164,
-                          9634,-31319,9634,-31319,9634,-31319,9634,-31319,
-                          9141,-31466,9141,-31466,9141,-31466,9141,-31466,
-                          8646,-31606,8646,-31606,8646,-31606,8646,-31606,
-                          8148,-31738,8148,-31738,8148,-31738,8148,-31738,
-                          7649,-31862,7649,-31862,7649,-31862,7649,-31862,
-                          7147,-31978,7147,-31978,7147,-31978,7147,-31978,
-                          6644,-32087,6644,-32087,6644,-32087,6644,-32087,
-                          6139,-32187,6139,-32187,6139,-32187,6139,-32187,
-                          5633,-32280,5633,-32280,5633,-32280,5633,-32280,
-                          5125,-32364,5125,-32364,5125,-32364,5125,-32364,
-                          4616,-32441,4616,-32441,4616,-32441,4616,-32441,
-                          4106,-32509,4106,-32509,4106,-32509,4106,-32509,
-                          3595,-32570,3595,-32570,3595,-32570,3595,-32570,
-                          3083,-32622,3083,-32622,3083,-32622,3083,-32622,
-                          2570,-32666,2570,-32666,2570,-32666,2570,-32666,
-                          2057,-32703,2057,-32703,2057,-32703,2057,-32703,
-                          1543,-32731,1543,-32731,1543,-32731,1543,-32731,
-                          1029,-32751,1029,-32751,1029,-32751,1029,-32751,
-                          514,-32763,514,-32763,514,-32763,514,-32763,
-                          0,-32767,0,-32767,0,-32767,0,-32767,
-                          -515,-32763,-515,-32763,-515,-32763,-515,-32763,
-                          -1030,-32751,-1030,-32751,-1030,-32751,-1030,-32751,
-                          -1544,-32731,-1544,-32731,-1544,-32731,-1544,-32731,
-                          -2058,-32703,-2058,-32703,-2058,-32703,-2058,-32703,
-                          -2571,-32666,-2571,-32666,-2571,-32666,-2571,-32666,
-                          -3084,-32622,-3084,-32622,-3084,-32622,-3084,-32622,
-                          -3596,-32570,-3596,-32570,-3596,-32570,-3596,-32570,
-                          -4107,-32509,-4107,-32509,-4107,-32509,-4107,-32509,
-                          -4617,-32441,-4617,-32441,-4617,-32441,-4617,-32441,
-                          -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364,
-                          -5634,-32280,-5634,-32280,-5634,-32280,-5634,-32280,
-                          -6140,-32187,-6140,-32187,-6140,-32187,-6140,-32187,
-                          -6645,-32087,-6645,-32087,-6645,-32087,-6645,-32087,
-                          -7148,-31978,-7148,-31978,-7148,-31978,-7148,-31978,
-                          -7650,-31862,-7650,-31862,-7650,-31862,-7650,-31862,
-                          -8149,-31738,-8149,-31738,-8149,-31738,-8149,-31738,
-                          -8647,-31606,-8647,-31606,-8647,-31606,-8647,-31606,
-                          -9142,-31466,-9142,-31466,-9142,-31466,-9142,-31466,
-                          -9635,-31319,-9635,-31319,-9635,-31319,-9635,-31319,
-                          -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164,
-                          -10614,-31001,-10614,-31001,-10614,-31001,-10614,-31001,
-                          -11100,-30830,-11100,-30830,-11100,-30830,-11100,-30830,
-                          -11583,-30652,-11583,-30652,-11583,-30652,-11583,-30652,
-                          -12063,-30466,-12063,-30466,-12063,-30466,-12063,-30466,
-                          -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273,
-                          -13014,-30073,-13014,-30073,-13014,-30073,-13014,-30073,
-                          -13485,-29864,-13485,-29864,-13485,-29864,-13485,-29864,
-                          -13952,-29649,-13952,-29649,-13952,-29649,-13952,-29649,
-                          -14416,-29426,-14416,-29426,-14416,-29426,-14416,-29426,
-                          -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196,
-                          -15333,-28959,-15333,-28959,-15333,-28959,-15333,-28959,
-                          -15786,-28714,-15786,-28714,-15786,-28714,-15786,-28714,
-                          -16235,-28463,-16235,-28463,-16235,-28463,-16235,-28463,
-                          -16680,-28204,-16680,-28204,-16680,-28204,-16680,-28204,
-                          -17121,-27939,-17121,-27939,-17121,-27939,-17121,-27939,
-                          -17558,-27667,-17558,-27667,-17558,-27667,-17558,-27667,
-                          -17990,-27387,-17990,-27387,-17990,-27387,-17990,-27387,
-                          -18418,-27101,-18418,-27101,-18418,-27101,-18418,-27101,
-                          -18842,-26809,-18842,-26809,-18842,-26809,-18842,-26809,
-                          -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510,
-                          -19674,-26204,-19674,-26204,-19674,-26204,-19674,-26204,
-                          -20084,-25892,-20084,-25892,-20084,-25892,-20084,-25892,
-                          -20488,-25573,-20488,-25573,-20488,-25573,-20488,-25573,
-                          -20887,-25248,-20887,-25248,-20887,-25248,-20887,-25248,
-                          -21281,-24917,-21281,-24917,-21281,-24917,-21281,-24917,
-                          -21670,-24579,-21670,-24579,-21670,-24579,-21670,-24579,
-                          -22053,-24236,-22053,-24236,-22053,-24236,-22053,-24236,
-                          -22431,-23887,-22431,-23887,-22431,-23887,-22431,-23887,
-                          -22803,-23531,-22803,-23531,-22803,-23531,-22803,-23531,
-                          -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170,
-                          -23531,-22803,-23531,-22803,-23531,-22803,-23531,-22803,
-                          -23887,-22431,-23887,-22431,-23887,-22431,-23887,-22431,
-                          -24236,-22053,-24236,-22053,-24236,-22053,-24236,-22053,
-                          -24579,-21670,-24579,-21670,-24579,-21670,-24579,-21670,
-                          -24917,-21281,-24917,-21281,-24917,-21281,-24917,-21281,
-                          -25248,-20887,-25248,-20887,-25248,-20887,-25248,-20887,
-                          -25573,-20488,-25573,-20488,-25573,-20488,-25573,-20488,
-                          -25892,-20084,-25892,-20084,-25892,-20084,-25892,-20084,
-                          -26204,-19674,-26204,-19674,-26204,-19674,-26204,-19674,
-                          -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260,
-                          -26809,-18842,-26809,-18842,-26809,-18842,-26809,-18842,
-                          -27101,-18418,-27101,-18418,-27101,-18418,-27101,-18418,
-                          -27387,-17990,-27387,-17990,-27387,-17990,-27387,-17990,
-                          -27667,-17558,-27667,-17558,-27667,-17558,-27667,-17558,
-                          -27939,-17121,-27939,-17121,-27939,-17121,-27939,-17121,
-                          -28204,-16680,-28204,-16680,-28204,-16680,-28204,-16680,
-                          -28463,-16235,-28463,-16235,-28463,-16235,-28463,-16235,
-                          -28714,-15786,-28714,-15786,-28714,-15786,-28714,-15786,
-                          -28959,-15333,-28959,-15333,-28959,-15333,-28959,-15333,
-                          -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876,
-                          -29426,-14416,-29426,-14416,-29426,-14416,-29426,-14416,
-                          -29649,-13952,-29649,-13952,-29649,-13952,-29649,-13952,
-                          -29864,-13485,-29864,-13485,-29864,-13485,-29864,-13485,
-                          -30073,-13014,-30073,-13014,-30073,-13014,-30073,-13014,
-                          -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540,
-                          -30466,-12063,-30466,-12063,-30466,-12063,-30466,-12063,
-                          -30652,-11583,-30652,-11583,-30652,-11583,-30652,-11583,
-                          -30830,-11100,-30830,-11100,-30830,-11100,-30830,-11100,
-                          -31001,-10614,-31001,-10614,-31001,-10614,-31001,-10614,
-                          -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126,
-                          -31319,-9635,-31319,-9635,-31319,-9635,-31319,-9635,
-                          -31466,-9142,-31466,-9142,-31466,-9142,-31466,-9142,
-                          -31606,-8647,-31606,-8647,-31606,-8647,-31606,-8647,
-                          -31738,-8149,-31738,-8149,-31738,-8149,-31738,-8149,
-                          -31862,-7650,-31862,-7650,-31862,-7650,-31862,-7650,
-                          -31978,-7148,-31978,-7148,-31978,-7148,-31978,-7148,
-                          -32087,-6645,-32087,-6645,-32087,-6645,-32087,-6645,
-                          -32187,-6140,-32187,-6140,-32187,-6140,-32187,-6140,
-                          -32280,-5634,-32280,-5634,-32280,-5634,-32280,-5634,
-                          -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126,
-                          -32441,-4617,-32441,-4617,-32441,-4617,-32441,-4617,
-                          -32509,-4107,-32509,-4107,-32509,-4107,-32509,-4107,
-                          -32570,-3596,-32570,-3596,-32570,-3596,-32570,-3596,
-                          -32622,-3084,-32622,-3084,-32622,-3084,-32622,-3084,
-                          -32666,-2571,-32666,-2571,-32666,-2571,-32666,-2571,
-                          -32703,-2058,-32703,-2058,-32703,-2058,-32703,-2058,
-                          -32731,-1544,-32731,-1544,-32731,-1544,-32731,-1544,
-                          -32751,-1030,-32751,-1030,-32751,-1030,-32751,-1030,
-                          -32763,-515,-32763,-515,-32763,-515,-32763,-515,
-                          -32767,-1,-32767,-1,-32767,-1,-32767,-1,
-                          -32763,514,-32763,514,-32763,514,-32763,514,
-                          -32751,1029,-32751,1029,-32751,1029,-32751,1029,
-                          -32731,1543,-32731,1543,-32731,1543,-32731,1543,
-                          -32703,2057,-32703,2057,-32703,2057,-32703,2057,
-                          -32666,2570,-32666,2570,-32666,2570,-32666,2570,
-                          -32622,3083,-32622,3083,-32622,3083,-32622,3083,
-                          -32570,3595,-32570,3595,-32570,3595,-32570,3595,
-                          -32509,4106,-32509,4106,-32509,4106,-32509,4106,
-                          -32441,4616,-32441,4616,-32441,4616,-32441,4616,
-                          -32364,5125,-32364,5125,-32364,5125,-32364,5125,
-                          -32280,5633,-32280,5633,-32280,5633,-32280,5633,
-                          -32187,6139,-32187,6139,-32187,6139,-32187,6139,
-                          -32087,6644,-32087,6644,-32087,6644,-32087,6644,
-                          -31978,7147,-31978,7147,-31978,7147,-31978,7147,
-                          -31862,7649,-31862,7649,-31862,7649,-31862,7649,
-                          -31738,8148,-31738,8148,-31738,8148,-31738,8148,
-                          -31606,8646,-31606,8646,-31606,8646,-31606,8646,
-                          -31466,9141,-31466,9141,-31466,9141,-31466,9141,
-                          -31319,9634,-31319,9634,-31319,9634,-31319,9634,
-                          -31164,10125,-31164,10125,-31164,10125,-31164,10125,
-                          -31001,10613,-31001,10613,-31001,10613,-31001,10613,
-                          -30830,11099,-30830,11099,-30830,11099,-30830,11099,
-                          -30652,11582,-30652,11582,-30652,11582,-30652,11582,
-                          -30466,12062,-30466,12062,-30466,12062,-30466,12062,
-                          -30273,12539,-30273,12539,-30273,12539,-30273,12539,
-                          -30073,13013,-30073,13013,-30073,13013,-30073,13013,
-                          -29864,13484,-29864,13484,-29864,13484,-29864,13484,
-                          -29649,13951,-29649,13951,-29649,13951,-29649,13951,
-                          -29426,14415,-29426,14415,-29426,14415,-29426,14415,
-                          -29196,14875,-29196,14875,-29196,14875,-29196,14875,
-                          -28959,15332,-28959,15332,-28959,15332,-28959,15332,
-                          -28714,15785,-28714,15785,-28714,15785,-28714,15785,
-                          -28463,16234,-28463,16234,-28463,16234,-28463,16234,
-                          -28204,16679,-28204,16679,-28204,16679,-28204,16679,
-                          -27939,17120,-27939,17120,-27939,17120,-27939,17120,
-                          -27667,17557,-27667,17557,-27667,17557,-27667,17557,
-                          -27387,17989,-27387,17989,-27387,17989,-27387,17989,
-                          -27101,18417,-27101,18417,-27101,18417,-27101,18417,
-                          -26809,18841,-26809,18841,-26809,18841,-26809,18841,
-                          -26510,19259,-26510,19259,-26510,19259,-26510,19259,
-                          -26204,19673,-26204,19673,-26204,19673,-26204,19673,
-                          -25892,20083,-25892,20083,-25892,20083,-25892,20083,
-                          -25573,20487,-25573,20487,-25573,20487,-25573,20487,
-                          -25248,20886,-25248,20886,-25248,20886,-25248,20886,
-                          -24917,21280,-24917,21280,-24917,21280,-24917,21280,
-                          -24579,21669,-24579,21669,-24579,21669,-24579,21669,
-                          -24236,22052,-24236,22052,-24236,22052,-24236,22052,
-                          -23887,22430,-23887,22430,-23887,22430,-23887,22430,
-                          -23531,22802,-23531,22802,-23531,22802,-23531,22802,
-                          -23170,23169,-23170,23169,-23170,23169,-23170,23169,
-                          -22803,23530,-22803,23530,-22803,23530,-22803,23530,
-                          -22431,23886,-22431,23886,-22431,23886,-22431,23886,
-                          -22053,24235,-22053,24235,-22053,24235,-22053,24235,
-                          -21670,24578,-21670,24578,-21670,24578,-21670,24578,
-                          -21281,24916,-21281,24916,-21281,24916,-21281,24916,
-                          -20887,25247,-20887,25247,-20887,25247,-20887,25247,
-                          -20488,25572,-20488,25572,-20488,25572,-20488,25572,
-                          -20084,25891,-20084,25891,-20084,25891,-20084,25891,
-                          -19674,26203,-19674,26203,-19674,26203,-19674,26203,
-                          -19260,26509,-19260,26509,-19260,26509,-19260,26509,
-                          -18842,26808,-18842,26808,-18842,26808,-18842,26808,
-                          -18418,27100,-18418,27100,-18418,27100,-18418,27100,
-                          -17990,27386,-17990,27386,-17990,27386,-17990,27386,
-                          -17558,27666,-17558,27666,-17558,27666,-17558,27666,
-                          -17121,27938,-17121,27938,-17121,27938,-17121,27938,
-                          -16680,28203,-16680,28203,-16680,28203,-16680,28203,
-                          -16235,28462,-16235,28462,-16235,28462,-16235,28462,
-                          -15786,28713,-15786,28713,-15786,28713,-15786,28713,
-                          -15333,28958,-15333,28958,-15333,28958,-15333,28958,
-                          -14876,29195,-14876,29195,-14876,29195,-14876,29195,
-                          -14416,29425,-14416,29425,-14416,29425,-14416,29425,
-                          -13952,29648,-13952,29648,-13952,29648,-13952,29648,
-                          -13485,29863,-13485,29863,-13485,29863,-13485,29863,
-                          -13014,30072,-13014,30072,-13014,30072,-13014,30072,
-                          -12540,30272,-12540,30272,-12540,30272,-12540,30272,
-                          -12063,30465,-12063,30465,-12063,30465,-12063,30465,
-                          -11583,30651,-11583,30651,-11583,30651,-11583,30651,
-                          -11100,30829,-11100,30829,-11100,30829,-11100,30829,
-                          -10614,31000,-10614,31000,-10614,31000,-10614,31000,
-                          -10126,31163,-10126,31163,-10126,31163,-10126,31163,
-                          -9635,31318,-9635,31318,-9635,31318,-9635,31318,
-                          -9142,31465,-9142,31465,-9142,31465,-9142,31465,
-                          -8647,31605,-8647,31605,-8647,31605,-8647,31605,
-                          -8149,31737,-8149,31737,-8149,31737,-8149,31737,
-                          -7650,31861,-7650,31861,-7650,31861,-7650,31861,
-                          -7148,31977,-7148,31977,-7148,31977,-7148,31977,
-                          -6645,32086,-6645,32086,-6645,32086,-6645,32086,
-                          -6140,32186,-6140,32186,-6140,32186,-6140,32186,
-                          -5634,32279,-5634,32279,-5634,32279,-5634,32279,
-                          -5126,32363,-5126,32363,-5126,32363,-5126,32363,
-                          -4617,32440,-4617,32440,-4617,32440,-4617,32440,
-                          -4107,32508,-4107,32508,-4107,32508,-4107,32508,
-                          -3596,32569,-3596,32569,-3596,32569,-3596,32569,
-                          -3084,32621,-3084,32621,-3084,32621,-3084,32621,
-                          -2571,32665,-2571,32665,-2571,32665,-2571,32665,
-                          -2058,32702,-2058,32702,-2058,32702,-2058,32702,
-                          -1544,32730,-1544,32730,-1544,32730,-1544,32730,
-                          -1030,32750,-1030,32750,-1030,32750,-1030,32750,
-                          -515,32762,-515,32762,-515,32762,-515,32762
-                        };
-
+int16_t twa1200[4784];
+int16_t twb1200[4784];
+int16_t twc1200[4784];
 
 void dft1200(int16_t *x,int16_t *y,unsigned char scale_flag)
 {
@@ -18504,11 +8498,335 @@ void dft1200(int16_t *x,int16_t *y,unsigned char scale_flag)
 
 }
 
+void init_rad4(int N,int16_t *tw) {
+
+  int16_t *twa = tw;
+  int16_t *twb = twa+(N/2);
+  int16_t *twc = twb+(N/2);
+  int i;
+
+  for (i=0;i<(N/4);i++) {
+    *twa = (int16_t)round(32767.0*cos(2*M_PI*i/N)); twa++;
+    *twa = -(int16_t)round(32767.0*sin(2*M_PI*i/N)); twa++;
+    *twb = (int16_t)round(32767.0*cos(2*M_PI*2*i/N)); twb++;
+    *twb = -(int16_t)round(32767.0*sin(2*M_PI*2*i/N)); twb++;
+    *twc = (int16_t)round(32767.0*cos(2*M_PI*3*i/N)); twc++;
+    *twc = -(int16_t)round(32767.0*sin(2*M_PI*3*i/N)); twc++;
+  }
+}
+void init_rad4_rep(int N,int16_t *twa,int16_t *twb,int16_t *twc) {
+
+  int i,j;
+
+  for (i=1;i<(N/4);i++) {
+    twa[0] = (int16_t)round(32767.0*cos(2*M_PI*i/N)); 
+    twa[1] = -(int16_t)round(32767.0*sin(2*M_PI*i/N));
+    twb[0] = (int16_t)round(32767.0*cos(2*M_PI*2*i/N));
+    twb[1] = -(int16_t)round(32767.0*sin(2*M_PI*2*i/N));
+    twc[0] = (int16_t)round(32767.0*cos(2*M_PI*3*i/N));
+    twc[1] = -(int16_t)round(32767.0*sin(2*M_PI*3*i/N));
+    for (j=1;j<4;j++) {
+      ((int32_t*)twa)[j]=((int32_t*)twa)[0];
+      ((int32_t*)twb)[j]=((int32_t*)twb)[0];
+      ((int32_t*)twc)[j]=((int32_t*)twc)[0];
+    }
+    twa+=8;
+    twb+=8;
+    twc+=8;
+  }
+}
+
+void init_rad2(int N,int16_t *tw) {
+
+  int16_t *twa = tw;
+  int i;
+
+  for (i=0;i<(N>>1);i++) {
+    *twa = (int16_t)round(32767.0*cos(2*M_PI*i/N)); twa++;
+    *twa = -(int16_t)round(32767.0*sin(2*M_PI*i/N)); twa++;
+  }
+}
+
+void init_rad2_rep(int N,int16_t *twa) {
+
+  int i,j;
+
+  for (i=1;i<(N/2);i++) {
+    twa[0] = (int16_t)round(32767.0*cos(2*M_PI*i/N)); 
+    twa[1] = -(int16_t)round(32767.0*sin(2*M_PI*i/N));
+    for (j=1;j<4;j++) {
+      ((int32_t*)twa)[j]=((int32_t*)twa)[0];
+    }
+    twa+=8;
+  }
+}
+
+void init_rad3(int N,int16_t *twa,int16_t *twb) {
+
+  int i;
+
+  for (i=0;i<(N/3);i++) {
+    *twa = (int16_t)round(32767.0*cos(2*M_PI*i/N)); twa++;
+    *twa = -(int16_t)round(32767.0*sin(2*M_PI*i/N)); twa++;
+    *twb = (int16_t)round(32767.0*cos(2*M_PI*2*i/N)); twb++;
+    *twb = -(int16_t)round(32767.0*sin(2*M_PI*2*i/N)); twb++;
+  }
+}
+
+void init_rad3_rep(int N,int16_t *twa,int16_t *twb) {
+
+  int i,j;
+
+  for (i=1;i<(N/3);i++) {
+    twa[0] = (int16_t)round(32767.0*cos(2*M_PI*i/N)); 
+    twa[1] = -(int16_t)round(32767.0*sin(2*M_PI*i/N));
+    twb[0] = (int16_t)round(32767.0*cos(2*M_PI*2*i/N));
+    twb[1] = -(int16_t)round(32767.0*sin(2*M_PI*2*i/N));
+    for (j=1;j<4;j++) {
+      ((int32_t*)twa)[j]=((int32_t*)twa)[0];
+      ((int32_t*)twb)[j]=((int32_t*)twb)[0];
+    }
+    twa+=8;
+    twb+=8;
+  }
+}
+
+void init_rad5_rep(int N,int16_t *twa,int16_t *twb,int16_t *twc,int16_t *twd) {
+
+  int i,j;
+
+  for (i=1;i<(N/5);i++) {
+    twa[0] = (int16_t)round(32767.0*cos(2*M_PI*i/N)); 
+    twa[1] = -(int16_t)round(32767.0*sin(2*M_PI*i/N));
+    twb[0] = (int16_t)round(32767.0*cos(2*M_PI*2*i/N));
+    twb[1] = -(int16_t)round(32767.0*sin(2*M_PI*2*i/N));
+    twc[0] = (int16_t)round(32767.0*cos(2*M_PI*3*i/N));
+    twc[1] = -(int16_t)round(32767.0*sin(2*M_PI*3*i/N));
+    twd[0] = (int16_t)round(32767.0*cos(2*M_PI*4*i/N));
+    twd[1] = -(int16_t)round(32767.0*sin(2*M_PI*4*i/N));
+    for (j=1;j<4;j++) {
+      ((int32_t*)twa)[j]=((int32_t*)twa)[0];
+      ((int32_t*)twb)[j]=((int32_t*)twb)[0];
+      ((int32_t*)twc)[j]=((int32_t*)twc)[0];
+      ((int32_t*)twd)[j]=((int32_t*)twd)[0];
+    }
+    twa+=8;
+    twb+=8;
+    twc+=8;
+    twd+=8;
+  }
+}
+
+
+void init_dfts(void)
+{
+  init_rad4(1024,tw1024);
+  init_rad2(2048,tw2048);
+  init_rad4(4096,tw4096);
+  init_rad2(8192,tw8192);
+  
+  init_rad3(1536,twa1536,twb1536);
+  init_rad3(3072,twa3072,twb3072);
+  init_rad3(6144,twa6144,twb6144);
+  init_rad3(12288,twa12288,twb12288);
+  init_rad3(18432,twa18432,twb18432);
+  init_rad3(24576,twa24576,twb24576);
+
+  init_rad2_rep(24,tw24);
+  init_rad3_rep(36,twa36,twb36);
+  init_rad4_rep(48,twa48,twb48,twc48);
+  init_rad5_rep(60,twa60,twb60,twc60,twd60);
+  init_rad2_rep(72,tw72);
+  init_rad2_rep(96,tw96);
+  init_rad3_rep(108,twa108,twb108);
+  init_rad2_rep(120,tw120);
+  init_rad3_rep(144,twa144,twb144);
+  init_rad3_rep(180,twa180,twb180);
+  init_rad4_rep(192,twa192,twb192,twc192);
+  init_rad3_rep(216,twa216,twb216);
+  init_rad4_rep(240,twa240,twb240,twc240);
+  init_rad3_rep(288,twa288,twb288);
+  init_rad5_rep(300,twa300,twb300,twc300,twd300);
+  init_rad3_rep(324,twa324,twb324);
+  init_rad3_rep(360,twa360,twb360);
+  init_rad4_rep(384,twa384,twb384,twc384);
+  init_rad4_rep(432,twa432,twb432,twc432);
+  init_rad4_rep(480,twa480,twb480,twc480);
+  init_rad3_rep(540,twa540,twb540);
+  init_rad3_rep(576,twa576,twb576);
+  init_rad2_rep(600,twa600);
+  init_rad3_rep(648,twa648,twb648);
+  init_rad4_rep(720,twa720,twb720,twc720);
+  init_rad4_rep(768,twa768,twb768,twc768);
+  init_rad3_rep(864,twa864,twb864);
+  init_rad3_rep(900,twa900,twb900);
+  init_rad4_rep(960,twa960,twb960,twc960);
+  init_rad3_rep(972,twa972,twb972);
+  init_rad3_rep(1080,twa1080,twb1080);
+  init_rad4_rep(1152,twa1152,twb1152,twc1152);
+  init_rad4_rep(1200,twa1200,twb1200,twc1200);
+}
 
 #ifdef MR_MAIN
 #include <string.h>
 #include <stdio.h>
 
+#define LOG_M write_output
+int write_output(const char *fname,const char *vname,void *data,int length,int dec,char format)
+{
+
+  FILE *fp=NULL;
+  int i;
+
+
+  printf("Writing %d elements of type %d to %s\n",length,format,fname);
+
+
+  if (format == 10 || format ==11 || format == 12 || format == 13 || format == 14) {
+    fp = fopen(fname,"a+");
+  } else if (format != 10 && format !=11  && format != 12 && format != 13 && format != 14) {
+    fp = fopen(fname,"w+");
+  }
+
+
+
+  if (fp== NULL) {
+    printf("[OPENAIR][FILE OUTPUT] Cannot open file %s\n",fname);
+    return(-1);
+  }
+
+  if (format != 10 && format !=11  && format != 12 && format != 13 && format != 14)
+    fprintf(fp,"%s = [",vname);
+
+
+  switch (format) {
+  case 0:   // real 16-bit
+
+    for (i=0; i<length; i+=dec) {
+      fprintf(fp,"%d\n",((short *)data)[i]);
+    }
+
+    break;
+
+  case 1:  // complex 16-bit
+  case 13:
+  case 14:
+  case 15:
+
+    for (i=0; i<length<<1; i+=(2*dec)) {
+      fprintf(fp,"%d + j*(%d)\n",((short *)data)[i],((short *)data)[i+1]);
+
+    }
+
+
+    break;
+
+  case 2:  // real 32-bit
+    for (i=0; i<length; i+=dec) {
+      fprintf(fp,"%d\n",((int *)data)[i]);
+    }
+
+    break;
+
+  case 3: // complex 32-bit
+    for (i=0; i<length<<1; i+=(2*dec)) {
+      fprintf(fp,"%d + j*(%d)\n",((int *)data)[i],((int *)data)[i+1]);
+    }
+
+    break;
+
+  case 4: // real 8-bit
+    for (i=0; i<length; i+=dec) {
+      fprintf(fp,"%d\n",((char *)data)[i]);
+    }
+
+    break;
+
+  case 5: // complex 8-bit
+    for (i=0; i<length<<1; i+=(2*dec)) {
+      fprintf(fp,"%d + j*(%d)\n",((char *)data)[i],((char *)data)[i+1]);
+    }
+
+    break;
+
+  case 6:  // real 64-bit
+    for (i=0; i<length; i+=dec) {
+      fprintf(fp,"%lld\n",((long long*)data)[i]);
+    }
+
+    break;
+
+  case 7: // real double
+    for (i=0; i<length; i+=dec) {
+      fprintf(fp,"%g\n",((double *)data)[i]);
+    }
+
+    break;
+
+  case 8: // complex double
+    for (i=0; i<length<<1; i+=2*dec) {
+      fprintf(fp,"%g + j*(%g)\n",((double *)data)[i], ((double *)data)[i+1]);
+    }
+
+    break;
+
+  case 9: // real unsigned 8-bit
+    for (i=0; i<length; i+=dec) {
+      fprintf(fp,"%d\n",((unsigned char *)data)[i]);
+    }
+
+    break;
+
+
+  case 10 : // case eren 16 bit complex :
+
+    for (i=0; i<length<<1; i+=(2*dec)) {
+
+      if((i < 2*(length-1)) && (i > 0))
+        fprintf(fp,"%d + j*(%d),",((short *)data)[i],((short *)data)[i+1]);
+      else if (i == 2*(length-1))
+        fprintf(fp,"%d + j*(%d);",((short *)data)[i],((short *)data)[i+1]);
+      else if (i == 0)
+        fprintf(fp,"\n%d + j*(%d),",((short *)data)[i],((short *)data)[i+1]);
+
+
+
+    }
+
+    break;
+
+  case 11 : //case eren 16 bit real for channel magnitudes:
+    for (i=0; i<length; i+=dec) {
+
+      if((i <(length-1))&& (i > 0))
+        fprintf(fp,"%d,",((short *)data)[i]);
+      else if (i == (length-1))
+        fprintf(fp,"%d;",((short *)data)[i]);
+      else if (i == 0)
+        fprintf(fp,"\n%d,",((short *)data)[i]);
+    }
+
+    printf("\n erennnnnnnnnnnnnnn: length :%d",length);
+    break;
+
+  case 12 : // case eren for log2_maxh real unsigned 8 bit
+    fprintf(fp,"%d \n",((unsigned char *)&data)[0]);
+    break;
+
+  }
+
+  if (format != 10 && format !=11 && format !=12 && format != 13 && format != 15) {
+    fprintf(fp,"];\n");
+    fclose(fp);
+    return(0);
+  } else if (format == 10 || format ==11 || format == 12 || format == 13 || format == 15) {
+    fclose(fp);
+    return(0);
+  }
+
+  return 0;
+}
+
 
 int main(int argc, char**argv)
 {
@@ -18516,12 +8834,14 @@ int main(int argc, char**argv)
 
   time_stats_t ts;
 #ifdef __AVX2__
-  simd256_q15_t x[2048],y[2048],tw0,tw1,tw2,tw3;
+  simd256_q15_t x[4096],y[4096],tw0,tw1,tw2,tw3;
 #else
-  simd_q15_t x[4096],y[4096],tw0,tw1,tw2,tw3;
+  simd_q15_t x[8192],y[8192],tw0,tw1,tw2,tw3;
 #endif
   int i;
-  simd_q15_t *x128=x,*y128=y;
+  simd_q15_t *x128=(simd_q15_t*)x,*y128=(simd_q15_t*)y;
+
+  init_dfts();
 
   set_taus_seed(0);
   opp_enabled = 1;
@@ -18688,155 +9008,7 @@ int main(int argc, char**argv)
       printf("%d,%d,",((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]);
     printf("\n");
 
-    dft24((int16_t *)x,(int16_t *)y,1);
-    printf("\n\n24-point\n");
-    printf("X: ");
-    for (i=0;i<24;i++)
-      printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]);
-    printf("\nY:");
-    for (i=0;i<24;i++)
-      printf("%d,%d,",((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]);
-    printf("\n");
-
-    dft36((int16_t *)x,(int16_t *)y,1);
-    printf("\n\n36-point\n");
-    printf("X: ");
-    for (i=0;i<36;i++)
-      printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]);
-    printf("\nY:");
-    for (i=0;i<36;i++)
-      printf("%d,%d,",((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]);
-    printf("\n");
-
-    dft48((int16_t *)x,(int16_t *)y,1);
-    printf("\n\n48-point\n");
-    printf("X: ");
-    for (i=0;i<48;i++)
-      printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]);
-    printf("\nY:");
-    for (i=0;i<48;i++)
-      printf("%d,%d,",((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]);
-    printf("\n");
  */
-    dft60((int16_t *)x,(int16_t *)y,1);
-    printf("\n\n60-point\n");
-    printf("X: ");
-    for (i=0;i<60;i++)
-      printf("%d,%d,",((int16_t*)(&x128[i]))[0],((int16_t *)(&x128[i]))[1]);
-    printf("\nY:");
-    for (i=0;i<60;i++)
-      printf("%d,%d,",((int16_t*)(&y128[i]))[0],((int16_t *)(&y128[i]))[1]);
-    printf("\n");
-    
-    dft72((int16_t *)x,(int16_t *)y,1);
-    printf("\n\n72-point\n");
-    printf("X: ");
-    for (i=0;i<72;i++)
-      printf("%d,%d,",((int16_t*)(&x128[i]))[0],((int16_t *)(&x128[i]))[1]);
-    printf("\nY:");
-    for (i=0;i<72;i++)
-      printf("%d: %d,%d\n",i,((int16_t*)(&y128[i]))[0],((int16_t *)(&y128[i]))[1]);
-    printf("\n");
-    /*
-    dft96((int16_t *)x,(int16_t *)y,1);
-    printf("\n\n96-point\n");
-    printf("X: ");
-    for (i=0;i<96;i++)
-      printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]);
-    printf("\nY:");
-    for (i=0;i<96;i++)
-      printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]);
-    printf("\n");
-
-    dft108((int16_t *)x,(int16_t *)y,1);
-    printf("\n\n108-point\n");
-    printf("X: ");
-    for (i=0;i<108;i++)
-      printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]);
-    printf("\nY:");
-    for (i=0;i<108;i++)
-      printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]);
-    printf("\n");
-    */
-    dft120((int16_t *)x,(int16_t *)y,1);
-    printf("\n\n120-point\n");
-    printf("X: ");
-    for (i=0;i<120;i++)
-      printf("%d,%d,",((int16_t*)(&x128[i]))[0],((int16_t *)(&x128[i]))[1]);
-    printf("\nY:");
-    for (i=0;i<120;i++)
-      printf("%d: %d,%d\n",i,((int16_t*)(&y128[i]))[0],((int16_t *)(&y128[i]))[1]);
-    printf("\n");
-    /*
-    dft144((int16_t *)x,(int16_t *)y,1);
-    printf("\n\n144-point\n");
-    printf("X: ");
-    for (i=0;i<144;i++)
-      printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]);
-    printf("\nY:");
-    for (i=0;i<144;i++)
-      printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]);
-    printf("\n");
-
-    dft180((int16_t *)x,(int16_t *)y,1);
-    printf("\n\n180-point\n");
-    printf("X: ");
-    for (i=0;i<180;i++)
-      printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]);
-    printf("\nY:");
-    for (i=0;i<180;i++)
-      printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]);
-    printf("\n");
-
-    dft192((int16_t *)x,(int16_t *)y,1);
-    printf("\n\n192-point\n");
-    printf("X: ");
-    for (i=0;i<192;i++)
-      printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]);
-    printf("\nY:");
-    for (i=0;i<192;i++)
-      printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]);
-    printf("\n");
-
-    dft216((int16_t *)x,(int16_t *)y,1);
-    printf("\n\n216-point\n");
-    printf("X: ");
-    for (i=0;i<216;i++)
-      printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]);
-    printf("\nY:");
-    for (i=0;i<216;i++)
-      printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]);
-    printf("\n");
-
-    dft240((int16_t *)x,(int16_t *)y,1);
-    printf("\n\n240-point\n");
-    printf("X: ");
-    for (i=0;i<240;i++)
-      printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]);
-    printf("\nY:");
-    for (i=0;i<240;i++)
-      printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]);
-    printf("\n");
-
-    dft288((int16_t *)x,(int16_t *)y,1);
-    printf("\n\n288-point\n");
-    printf("X: ");
-    for (i=0;i<288;i++)
-      printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]);
-    printf("\nY:");
-    for (i=0;i<288;i++)
-      printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]);
-    printf("\n");
-
-    dft300((int16_t *)x,(int16_t *)y,1);
-    printf("\n\n300-point\n");
-    printf("X: ");
-    for (i=0;i<300;i++)
-      printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]);
-    printf("\nY:");
-    for (i=0;i<300;i++)
-      printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]);
-    printf("\n");
 
     for (i=0;i<32;i++) {
       ((int16_t*)x)[i] = (int16_t)((taus()&0xffff))>>5;
@@ -18852,7 +9024,7 @@ int main(int argc, char**argv)
     for (i=0;i<4;i++)
       printf("%d,%d,%d,%d,%d,%d,%d,%d,",((int16_t*)&y[i])[0],((int16_t *)&y[i])[1],((int16_t*)&y[i])[2],((int16_t *)&y[i])[3],((int16_t*)&y[i])[4],((int16_t *)&y[i])[5],((int16_t*)&y[i])[6],((int16_t *)&y[i])[7]);
     printf("\n");
- */
+ 
   memset((void*)&x[0],0,2048*4);
       
   for (i=0; i<2048; i+=4) {
@@ -18918,12 +9090,12 @@ int main(int argc, char**argv)
     stop_meas(&ts);
 
   }
-
+  /*
   printf("\n\n64-point (%f cycles, #trials %d)\n",(double)ts.diff/(double)ts.trials,ts.trials);
   //  LOG_M("x64.m","x64",x,64,1,1);
   LOG_M("y64.m","y64",y,64,1,1);
   LOG_M("x64.m","x64",x,64,1,1);
-
+  */
 /*
   printf("X: ");
   for (i=0;i<16;i++)
@@ -19128,7 +9300,7 @@ int main(int argc, char**argv)
     else
       ((int16_t*)x)[i] = -364;
   }
-  for (i=2*(4096-1200);i<8192;i++) {
+  for (i=2*(8192-2400);i<16384;i++) {
     if ((taus() & 1)==0)
       ((int16_t*)x)[i] = 364;
     else
@@ -19141,10 +9313,192 @@ int main(int argc, char**argv)
     stop_meas(&ts);
   }
 
-  printf("\n\n8192-point(%f cycles)\n",(double)ts.diff/(double)ts.trials);
+  printf("\n\n1536-point(%f cycles)\n",(double)ts.diff/(double)ts.trials);
   LOG_M("y8192.m","y8192",y,8192,1,1);
   LOG_M("x8192.m","x8192",x,8192,1,1);
 
+  memset((void*)x,0,1536*sizeof(int32_t));
+  for (i=2;i<1202;i++) {
+    if ((taus() & 1)==0)
+      ((int16_t*)x)[i] = 364;
+    else
+      ((int16_t*)x)[i] = -364;
+  }
+  for (i=2*(1536-600);i<3072;i++) {
+    if ((taus() & 1)==0)
+      ((int16_t*)x)[i] = 364;
+    else
+      ((int16_t*)x)[i] = -364;
+  }
+  reset_meas(&ts);
+  for (i=0; i<10000; i++) {
+    start_meas(&ts);
+    idft1536((int16_t *)x,(int16_t *)y,1);
+    stop_meas(&ts);
+  }
+
+  printf("\n\n1536-point(%f cycles)\n",(double)ts.diff/(double)ts.trials);
+  LOG_M("y1536.m","y1536",y,1536,1,1);
+  LOG_M("x1536.m","x1536",x,1536,1,1);
+
+  printf("\n\n1536-point(%f cycles)\n",(double)ts.diff/(double)ts.trials);
+  LOG_M("y8192.m","y8192",y,8192,1,1);
+  LOG_M("x8192.m","x8192",x,8192,1,1);
+
+  memset((void*)x,0,3072*sizeof(int32_t));
+  for (i=2;i<1202;i++) {
+    if ((taus() & 1)==0)
+      ((int16_t*)x)[i] = 364;
+    else
+      ((int16_t*)x)[i] = -364;
+  }
+  for (i=2*(3072-600);i<3072;i++) {
+    if ((taus() & 1)==0)
+      ((int16_t*)x)[i] = 364;
+    else
+      ((int16_t*)x)[i] = -364;
+  }
+  reset_meas(&ts);
+  for (i=0; i<10000; i++) {
+    start_meas(&ts);
+    idft3072((int16_t *)x,(int16_t *)y,1);
+    stop_meas(&ts);
+  }
+
+  printf("\n\n3072-point(%f cycles)\n",(double)ts.diff/(double)ts.trials);
+  LOG_M("y3072.m","y3072",y,3072,1,1);
+  LOG_M("x3072.m","x3072",x,3072,1,1);
+
+  memset((void*)x,0,6144*sizeof(int32_t));
+  for (i=2;i<4802;i++) {
+    if ((taus() & 1)==0)
+      ((int16_t*)x)[i] = 364;
+    else
+      ((int16_t*)x)[i] = -364;
+  }
+  for (i=2*(6144-2400);i<12288;i++) {
+    if ((taus() & 1)==0)
+      ((int16_t*)x)[i] = 364;
+    else
+      ((int16_t*)x)[i] = -364;
+  }
+  reset_meas(&ts);
+  for (i=0; i<10000; i++) {
+    start_meas(&ts);
+    idft6144((int16_t *)x,(int16_t *)y,1);
+    stop_meas(&ts);
+  }
+
+  printf("\n\n6144-point(%f cycles)\n",(double)ts.diff/(double)ts.trials);
+  LOG_M("y6144.m","y6144",y,6144,1,1);
+  LOG_M("x6144.m","x6144",x,6144,1,1);
+
+  memset((void*)x,0,12288*sizeof(int32_t));
+  for (i=2;i<9602;i++) {
+    if ((taus() & 1)==0)
+      ((int16_t*)x)[i] = 364;
+    else
+      ((int16_t*)x)[i] = -364;
+  }
+  for (i=2*(12288-4800);i<24576;i++) {
+    if ((taus() & 1)==0)
+      ((int16_t*)x)[i] = 364;
+    else
+      ((int16_t*)x)[i] = -364;
+  }
+  reset_meas(&ts);
+  for (i=0; i<10000; i++) {
+    start_meas(&ts);
+    idft12288((int16_t *)x,(int16_t *)y,1);
+    stop_meas(&ts);
+  }
+
+  printf("\n\n12288-point(%f cycles)\n",(double)ts.diff/(double)ts.trials);
+  LOG_M("y12288.m","y12288",y,12288,1,1);
+  LOG_M("x12288.m","x12288",x,12288,1,1);
+
+  memset((void*)x,0,18432*sizeof(int32_t));
+  for (i=2;i<14402;i++) {
+    if ((taus() & 1)==0)
+      ((int16_t*)x)[i] = 364;
+    else
+      ((int16_t*)x)[i] = -364;
+  }
+  for (i=2*(18432-7200);i<36864;i++) {
+    if ((taus() & 1)==0)
+      ((int16_t*)x)[i] = 364;
+    else
+      ((int16_t*)x)[i] = -364;
+  }
+  reset_meas(&ts);
+  for (i=0; i<10000; i++) {
+    start_meas(&ts);
+    idft18432((int16_t *)x,(int16_t *)y,1);
+    stop_meas(&ts);
+  }
+
+  printf("\n\n18432-point(%f cycles)\n",(double)ts.diff/(double)ts.trials);
+  LOG_M("y18432.m","y18432",y,18432,1,1);
+  LOG_M("x18432.m","x18432",x,18432,1,1);
+
+  memset((void*)x,0,24576*sizeof(int32_t));
+  for (i=2;i<19202;i++) {
+    if ((taus() & 1)==0)
+      ((int16_t*)x)[i] = 364;
+    else
+      ((int16_t*)x)[i] = -364;
+  }
+  for (i=2*(24576-19200);i<49152;i++) {
+    if ((taus() & 1)==0)
+      ((int16_t*)x)[i] = 364;
+    else
+      ((int16_t*)x)[i] = -364;
+  }
+  reset_meas(&ts);
+  for (i=0; i<10000; i++) {
+    start_meas(&ts);
+    idft24576((int16_t *)x,(int16_t *)y,1);
+    stop_meas(&ts);
+  }
+
+  printf("\n\n24576-point(%f cycles)\n",(double)ts.diff/(double)ts.trials);
+  LOG_M("y24576.m","y24576",y,24576,1,1);
+  LOG_M("x24576.m","x24576",x,24576,1,1);
+
+  int dftsizes[33]={24,36,48,60,72,96,108,120,144,180,192,216,240,288,300,324,360,384,432,480,540,576,600,648,720,768,864,900,960,972,1080,1152,1200};
+  void (*dft[33])(int16_t *x,int16_t *y,uint8_t scale) = {dft24,dft36,dft48,dft60,dft72,dft96,dft108,dft120,dft144,dft180,dft192,dft216,dft240,dft288,dft300,dft324,dft360,dft384,dft432,dft480,dft540,dft576,dft600,dft648,dft720,dft768,dft864,dft900,dft960,dft972,dft1080,dft1152,dft1200};
+  for (int n=0;n<33;n++) {
+    // 4xN-point DFT
+    memset((void*)x,0,dftsizes[n]*8*sizeof(int16_t));
+    for (i=0;i<dftsizes[n]*8;i+=8) {
+      if ((taus() & 1)==0)
+	((int16_t*)x)[i]   = 364;
+      else
+	((int16_t*)x)[i]   = -364;
+      if ((taus() & 1)==0)
+	((int16_t*)x)[i+1] = 364;
+      else
+	((int16_t*)x)[i+1] = -364;
+    }
+    
+    reset_meas(&ts);
+    for (i=0; i<10000; i++) {
+      start_meas(&ts);
+      (dft[n])((int16_t *)x,(int16_t *)y,1);
+      stop_meas(&ts);
+    }
+    
+    printf("\n\n4x%d-point(%f cycles)\n",dftsizes[n],(double)ts.diff/(double)ts.trials);
+    char ystr[5],xstr[5],ystr2[5],xstr2[5];
+    sprintf(ystr,"y%d.m",dftsizes[n]);
+    sprintf(xstr,"x%d.m",dftsizes[n]);
+    sprintf(ystr2,"y%d",dftsizes[n]);
+    sprintf(xstr2,"x%d",dftsizes[n]);
+    LOG_M(ystr,ystr2,y,dftsizes[n]*4,1,1);
+    LOG_M(xstr,xstr2,x,dftsizes[n]*4,1,1);
+  }
+
+
   return(0);
 }
 
diff --git a/openair1/PHY/TOOLS/tools_defs.h b/openair1/PHY/TOOLS/tools_defs.h
index e09cfb5ed84ee65a272f9ceb0f1b3bef2cb72215..a5e8d49eb7d95eeeca4120fe5705eeb80fc3df61 100644
--- a/openair1/PHY/TOOLS/tools_defs.h
+++ b/openair1/PHY/TOOLS/tools_defs.h
@@ -174,27 +174,27 @@ This function performs optimized fixed-point radix-2 FFT/IFFT.
 
 void idft1536(int16_t *sigF,int16_t *sig,int scale);
 
-void idft6144(int16_t *sigF,int16_t *sig);
+void idft6144(int16_t *sigF,int16_t *sig,int scale);
 
-void idft12288(int16_t *sigF,int16_t *sig);
+void idft12288(int16_t *sigF,int16_t *sig,int scale);
 
-void idft18432(int16_t *sigF,int16_t *sig);
+void idft18432(int16_t *sigF,int16_t *sig,int scale);
 
-void idft3072(int16_t *sigF,int16_t *sig);
+void idft3072(int16_t *sigF,int16_t *sig,int scale);
 
-void idft24576(int16_t *sigF,int16_t *sig);
+void idft24576(int16_t *sigF,int16_t *sig,int scale);
 
 void dft1536(int16_t *sigF,int16_t *sig,int scale);
 
-void dft6144(int16_t *sigF,int16_t *sig);
+void dft6144(int16_t *sigF,int16_t *sig,int scale);
 
-void dft12288(int16_t *sigF,int16_t *sig);
+void dft12288(int16_t *sigF,int16_t *sig,int scale);
 
-void dft18432(int16_t *sigF,int16_t *sig);
+void dft18432(int16_t *sigF,int16_t *sig,int scale);
 
-void dft3072(int16_t *sigF,int16_t *sig);
+void dft3072(int16_t *sigF,int16_t *sig,int scale);
 
-void dft24576(int16_t *sigF,int16_t *sig);
+void dft24576(int16_t *sigF,int16_t *sig,int scale);
 
 
 /*!\fn int32_t rotate_cpx_vector(int16_t *x,int16_t *alpha,int16_t *y,uint32_t N,uint16_t output_shift)
diff --git a/openair1/PHY/TOOLS/twiddle12288.h b/openair1/PHY/TOOLS/twiddle12288.h
deleted file mode 100644
index 17fa92f4e9b341ccb0dd05cc44e83817ed6a2475..0000000000000000000000000000000000000000
--- a/openair1/PHY/TOOLS/twiddle12288.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The OpenAirInterface Software Alliance licenses this file to You under
- * the OAI Public License, Version 1.1  (the "License"); you may not use this file
- * except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.openairinterface.org/?page_id=698
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *-------------------------------------------------------------------------------
- * For more information about the OpenAirInterface (OAI) Software Alliance:
- *      contact@openairinterface.org
- */
-
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:4095)/12288));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*(0:2:8190)/12288));
-twa2 = zeros(1,8192);
-twb2 = zeros(1,8192);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-
-
- */
-
-int16_t twa12288[8192] __attribute__((aligned(32))) = {32767,0,32766,-17,32766,-34,32766,-51,32766,-68,32766,-84,32766,-101,32766,-118,32766,-135,32766,-151,32766,-168,32766,-185,32766,-202,32766,-218,32766,-235,32766,-252,32765,-269,32765,-285,32765,-302,32765,-319,32765,-336,32765,-352,32764,-369,32764,-386,32764,-403,32764,-419,32764,-436,32763,-453,32763,-470,32763,-486,32763,-503,32762,-520,32762,-537,32762,-553,32762,-570,32761,-587,32761,-604,32761,-620,32760,-637,32760,-654,32760,-671,32759,-687,32759,-704,32759,-721,32758,-738,32758,-754,32757,-771,32757,-788,32757,-805,32756,-821,32756,-838,32755,-855,32755,-872,32754,-888,32754,-905,32754,-922,32753,-939,32753,-955,32752,-972,32752,-989,32751,-1006,32751,-1022,32750,-1039,32750,-1056,32749,-1073,32748,-1089,32748,-1106,32747,-1123,32747,-1140,32746,-1156,32746,-1173,32745,-1190,32744,-1207,32744,-1223,32743,-1240,32742,-1257,32742,-1274,32741,-1290,32740,-1307,32740,-1324,32739,-1340,32738,-1357,32738,-1374,32737,-1391,32736,-1407,32736,-1424,32735,-1441,32734,-1458,32733,-1474,32733,-1491,32732,-1508,32731,-1525,32730,-1541,32729,-1558,32729,-1575,32728,-1592,32727,-1608,32726,-1625,32725,-1642,32725,-1659,32724,-1675,32723,-1692,32722,-1709,32721,-1725,32720,-1742,32719,-1759,32718,-1776,32717,-1792,32717,-1809,32716,-1826,32715,-1843,32714,-1859,32713,-1876,32712,-1893,32711,-1909,32710,-1926,32709,-1943,32708,-1960,32707,-1976,32706,-1993,32705,-2010,32704,-2027,32703,-2043,32702,-2060,32701,-2077,32700,-2093,32699,-2110,32697,-2127,32696,-2144,32695,-2160,32694,-2177,32693,-2194,32692,-2210,32691,-2227,32690,-2244,32688,-2261,32687,-2277,32686,-2294,32685,-2311,32684,-2327,32683,-2344,32681,-2361,32680,-2378,32679,-2394,32678,-2411,32676,-2428,32675,-2444,32674,-2461,32673,-2478,32671,-2495,32670,-2511,32669,-2528,32668,-2545,32666,-2561,32665,-2578,32664,-2595,32662,-2611,32661,-2628,32660,-2645,32658,-2662,32657,-2678,32656,-2695,32654,-2712,32653,-2728,32651,-2745,32650,-2762,32649,-2778,32647,-2795,32646,-2812,32644,-2829,32643,-2845,32641,-2862,32640,-2879,32638,-2895,32637,-2912,32635,-2929,32634,-2945,32632,-2962,32631,-2979,32629,-2995,32628,-3012,32626,-3029,32625,-3045,32623,-3062,32622,-3079,32620,-3095,32618,-3112,32617,-3129,32615,-3146,32614,-3162,32612,-3179,32610,-3196,32609,-3212,32607,-3229,32605,-3246,32604,-3262,32602,-3279,32600,-3296,32599,-3312,32597,-3329,32595,-3346,32594,-3362,32592,-3379,32590,-3396,32588,-3412,32587,-3429,32585,-3446,32583,-3462,32581,-3479,32580,-3496,32578,-3512,32576,-3529,32574,-3546,32572,-3562,32571,-3579,32569,-3595,32567,-3612,32565,-3629,32563,-3645,32561,-3662,32559,-3679,32558,-3695,32556,-3712,32554,-3729,32552,-3745,32550,-3762,32548,-3779,32546,-3795,32544,-3812,32542,-3829,32540,-3845,32538,-3862,32536,-3878,32534,-3895,32532,-3912,32530,-3928,32528,-3945,32526,-3962,32524,-3978,32522,-3995,32520,-4012,32518,-4028,32516,-4045,32514,-4061,32512,-4078,32510,-4095,32508,-4111,32506,-4128,32503,-4145,32501,-4161,32499,-4178,32497,-4194,32495,-4211,32493,-4228,32491,-4244,32488,-4261,32486,-4277,32484,-4294,32482,-4311,32480,-4327,32477,-4344,32475,-4360,32473,-4377,32471,-4394,32468,-4410,32466,-4427,32464,-4444,32462,-4460,32459,-4477,32457,-4493,32455,-4510,32452,-4526,32450,-4543,32448,-4560,32445,-4576,32443,-4593,32441,-4609,32438,-4626,32436,-4643,32434,-4659,32431,-4676,32429,-4692,32426,-4709,32424,-4726,32422,-4742,32419,-4759,32417,-4775,32414,-4792,32412,-4808,32409,-4825,32407,-4842,32404,-4858,32402,-4875,32399,-4891,32397,-4908,32394,-4924,32392,-4941,32389,-4958,32387,-4974,32384,-4991,32382,-5007,32379,-5024,32377,-5040,32374,-5057,32371,-5073,32369,-5090,32366,-5107,32364,-5123,32361,-5140,32358,-5156,32356,-5173,32353,-5189,32350,-5206,32348,-5222,32345,-5239,32342,-5255,32340,-5272,32337,-5288,32334,-5305,32332,-5322,32329,-5338,32326,-5355,32323,-5371,32321,-5388,32318,-5404,32315,-5421,32312,-5437,32310,-5454,32307,-5470,32304,-5487,32301,-5503,32298,-5520,32295,-5536,32293,-5553,32290,-5569,32287,-5586,32284,-5602,32281,-5619,32278,-5635,32275,-5652,32273,-5668,32270,-5685,32267,-5701,32264,-5718,32261,-5734,32258,-5751,32255,-5767,32252,-5784,32249,-5800,32246,-5817,32243,-5833,32240,-5850,32237,-5866,32234,-5883,32231,-5899,32228,-5916,32225,-5932,32222,-5949,32219,-5965,32216,-5982,32213,-5998,32210,-6015,32207,-6031,32204,-6048,32201,-6064,32197,-6081,32194,-6097,32191,-6113,32188,-6130,32185,-6146,32182,-6163,32179,-6179,32176,-6196,32172,-6212,32169,-6229,32166,-6245,32163,-6262,32160,-6278,32156,-6294,32153,-6311,32150,-6327,32147,-6344,32143,-6360,32140,-6377,32137,-6393,32134,-6409,32130,-6426,32127,-6442,32124,-6459,32120,-6475,32117,-6492,32114,-6508,32110,-6524,32107,-6541,32104,-6557,32100,-6574,32097,-6590,32094,-6607,32090,-6623,32087,-6639,32084,-6656,32080,-6672,32077,-6689,32073,-6705,32070,-6721,32066,-6738,32063,-6754,32059,-6771,32056,-6787,32053,-6803,32049,-6820,32046,-6836,32042,-6852,32039,-6869,32035,-6885,32032,-6902,32028,-6918,32024,-6934,32021,-6951,32017,-6967,32014,-6983,32010,-7000,32007,-7016,32003,-7033,31999,-7049,31996,-7065,31992,-7082,31989,-7098,31985,-7114,31981,-7131,31978,-7147,31974,-7163,31970,-7180,31967,-7196,31963,-7212,31959,-7229,31956,-7245,31952,-7262,31948,-7278,31944,-7294,31941,-7311,31937,-7327,31933,-7343,31929,-7359,31926,-7376,31922,-7392,31918,-7408,31914,-7425,31911,-7441,31907,-7457,31903,-7474,31899,-7490,31895,-7506,31891,-7523,31888,-7539,31884,-7555,31880,-7572,31876,-7588,31872,-7604,31868,-7620,31864,-7637,31860,-7653,31856,-7669,31853,-7686,31849,-7702,31845,-7718,31841,-7734,31837,-7751,31833,-7767,31829,-7783,31825,-7800,31821,-7816,31817,-7832,31813,-7848,31809,-7865,31805,-7881,31801,-7897,31797,-7913,31793,-7930,31789,-7946,31785,-7962,31780,-7978,31776,-7995,31772,-8011,31768,-8027,31764,-8043,31760,-8060,31756,-8076,31752,-8092,31748,-8108,31743,-8125,31739,-8141,31735,-8157,31731,-8173,31727,-8190,31723,-8206,31718,-8222,31714,-8238,31710,-8254,31706,-8271,31701,-8287,31697,-8303,31693,-8319,31689,-8335,31684,-8352,31680,-8368,31676,-8384,31672,-8400,31667,-8416,31663,-8433,31659,-8449,31654,-8465,31650,-8481,31646,-8497,31641,-8514,31637,-8530,31633,-8546,31628,-8562,31624,-8578,31619,-8594,31615,-8611,31611,-8627,31606,-8643,31602,-8659,31597,-8675,31593,-8691,31588,-8708,31584,-8724,31580,-8740,31575,-8756,31571,-8772,31566,-8788,31562,-8804,31557,-8821,31553,-8837,31548,-8853,31544,-8869,31539,-8885,31534,-8901,31530,-8917,31525,-8933,31521,-8950,31516,-8966,31512,-8982,31507,-8998,31502,-9014,31498,-9030,31493,-9046,31489,-9062,31484,-9078,31479,-9095,31475,-9111,31470,-9127,31465,-9143,31461,-9159,31456,-9175,31451,-9191,31446,-9207,31442,-9223,31437,-9239,31432,-9255,31428,-9271,31423,-9288,31418,-9304,31413,-9320,31409,-9336,31404,-9352,31399,-9368,31394,-9384,31389,-9400,31385,-9416,31380,-9432,31375,-9448,31370,-9464,31365,-9480,31360,-9496,31356,-9512,31351,-9528,31346,-9544,31341,-9560,31336,-9576,31331,-9592,31326,-9608,31321,-9624,31316,-9640,31311,-9656,31307,-9672,31302,-9688,31297,-9704,31292,-9720,31287,-9736,31282,-9752,31277,-9768,31272,-9784,31267,-9800,31262,-9816,31257,-9832,31252,-9848,31247,-9864,31242,-9880,31236,-9896,31231,-9912,31226,-9928,31221,-9944,31216,-9960,31211,-9976,31206,-9992,31201,-10008,31196,-10024,31191,-10040,31185,-10056,31180,-10072,31175,-10088,31170,-10104,31165,-10120,31160,-10136,31154,-10152,31149,-10167,31144,-10183,31139,-10199,31134,-10215,31128,-10231,31123,-10247,31118,-10263,31113,-10279,31107,-10295,31102,-10311,31097,-10327,31092,-10343,31086,-10358,31081,-10374,31076,-10390,31070,-10406,31065,-10422,31060,-10438,31054,-10454,31049,-10470,31044,-10485,31038,-10501,31033,-10517,31028,-10533,31022,-10549,31017,-10565,31011,-10581,31006,-10597,31001,-10612,30995,-10628,30990,-10644,30984,-10660,30979,-10676,30973,-10692,30968,-10707,30962,-10723,30957,-10739,30951,-10755,30946,-10771,30940,-10787,30935,-10802,30929,-10818,30924,-10834,30918,-10850,30913,-10866,30907,-10881,30902,-10897,30896,-10913,30890,-10929,30885,-10945,30879,-10960,30874,-10976,30868,-10992,30862,-11008,30857,-11024,30851,-11039,30845,-11055,30840,-11071,30834,-11087,30828,-11102,30823,-11118,30817,-11134,30811,-11150,30806,-11165,30800,-11181,30794,-11197,30788,-11213,30783,-11228,30777,-11244,30771,-11260,30766,-11276,30760,-11291,30754,-11307,30748,-11323,30742,-11339,30737,-11354,30731,-11370,30725,-11386,30719,-11401,30713,-11417,30707,-11433,30702,-11449,30696,-11464,30690,-11480,30684,-11496,30678,-11511,30672,-11527,30666,-11543,30660,-11558,30655,-11574,30649,-11590,30643,-11605,30637,-11621,30631,-11637,30625,-11652,30619,-11668,30613,-11684,30607,-11699,30601,-11715,30595,-11731,30589,-11746,30583,-11762,30577,-11778,30571,-11793,30565,-11809,30559,-11824,30553,-11840,30547,-11856,30541,-11871,30535,-11887,30528,-11903,30522,-11918,30516,-11934,30510,-11949,30504,-11965,30498,-11981,30492,-11996,30486,-12012,30480,-12027,30473,-12043,30467,-12058,30461,-12074,30455,-12090,30449,-12105,30442,-12121,30436,-12136,30430,-12152,30424,-12167,30418,-12183,30411,-12199,30405,-12214,30399,-12230,30393,-12245,30386,-12261,30380,-12276,30374,-12292,30368,-12307,30361,-12323,30355,-12338,30349,-12354,30342,-12369,30336,-12385,30330,-12400,30323,-12416,30317,-12431,30311,-12447,30304,-12462,30298,-12478,30291,-12493,30285,-12509,30279,-12524,30272,-12540,30266,-12555,30259,-12571,30253,-12586,30247,-12602,30240,-12617,30234,-12633,30227,-12648,30221,-12664,30214,-12679,30208,-12695,30201,-12710,30195,-12725,30188,-12741,30182,-12756,30175,-12772,30169,-12787,30162,-12803,30156,-12818,30149,-12833,30142,-12849,30136,-12864,30129,-12880,30123,-12895,30116,-12910,30109,-12926,30103,-12941,30096,-12957,30090,-12972,30083,-12987,30076,-13003,30070,-13018,30063,-13034,30056,-13049,30050,-13064,30043,-13080,30036,-13095,30030,-13110,30023,-13126,30016,-13141,30009,-13156,30003,-13172,29996,-13187,29989,-13202,29983,-13218,29976,-13233,29969,-13248,29962,-13264,29955,-13279,29949,-13294,29942,-13310,29935,-13325,29928,-13340,29921,-13356,29915,-13371,29908,-13386,29901,-13401,29894,-13417,29887,-13432,29880,-13447,29873,-13463,29866,-13478,29860,-13493,29853,-13508,29846,-13524,29839,-13539,29832,-13554,29825,-13569,29818,-13585,29811,-13600,29804,-13615,29797,-13630,29790,-13646,29783,-13661,29776,-13676,29769,-13691,29762,-13707,29755,-13722,29748,-13737,29741,-13752,29734,-13767,29727,-13783,29720,-13798,29713,-13813,29706,-13828,29699,-13843,29692,-13859,29685,-13874,29678,-13889,29670,-13904,29663,-13919,29656,-13934,29649,-13950,29642,-13965,29635,-13980,29628,-13995,29621,-14010,29613,-14025,29606,-14040,29599,-14056,29592,-14071,29585,-14086,29577,-14101,29570,-14116,29563,-14131,29556,-14146,29548,-14161,29541,-14177,29534,-14192,29527,-14207,29519,-14222,29512,-14237,29505,-14252,29498,-14267,29490,-14282,29483,-14297,29476,-14312,29468,-14327,29461,-14343,29454,-14358,29446,-14373,29439,-14388,29432,-14403,29424,-14418,29417,-14433,29410,-14448,29402,-14463,29395,-14478,29387,-14493,29380,-14508,29372,-14523,29365,-14538,29358,-14553,29350,-14568,29343,-14583,29335,-14598,29328,-14613,29320,-14628,29313,-14643,29305,-14658,29298,-14673,29290,-14688,29283,-14703,29275,-14718,29268,-14733,29260,-14748,29253,-14763,29245,-14778,29238,-14793,29230,-14808,29222,-14823,29215,-14838,29207,-14853,29200,-14867,29192,-14882,29184,-14897,29177,-14912,29169,-14927,29162,-14942,29154,-14957,29146,-14972,29139,-14987,29131,-15002,29123,-15017,29116,-15031,29108,-15046,29100,-15061,29092,-15076,29085,-15091,29077,-15106,29069,-15121,29062,-15136,29054,-15150,29046,-15165,29038,-15180,29031,-15195,29023,-15210,29015,-15225,29007,-15239,28999,-15254,28992,-15269,28984,-15284,28976,-15299,28968,-15314,28960,-15328,28953,-15343,28945,-15358,28937,-15373,28929,-15388,28921,-15402,28913,-15417,28905,-15432,28897,-15447,28890,-15462,28882,-15476,28874,-15491,28866,-15506,28858,-15521,28850,-15535,28842,-15550,28834,-15565,28826,-15580,28818,-15594,28810,-15609,28802,-15624,28794,-15639,28786,-15653,28778,-15668,28770,-15683,28762,-15697,28754,-15712,28746,-15727,28738,-15741,28730,-15756,28722,-15771,28714,-15786,28706,-15800,28698,-15815,28690,-15830,28681,-15844,28673,-15859,28665,-15874,28657,-15888,28649,-15903,28641,-15918,28633,-15932,28625,-15947,28616,-15961,28608,-15976,28600,-15991,28592,-16005,28584,-16020,28575,-16035,28567,-16049,28559,-16064,28551,-16078,28543,-16093,28534,-16108,28526,-16122,28518,-16137,28510,-16151,28501,-16166,28493,-16180,28485,-16195,28477,-16210,28468,-16224,28460,-16239,28452,-16253,28443,-16268,28435,-16282,28427,-16297,28418,-16311,28410,-16326,28402,-16340,28393,-16355,28385,-16369,28377,-16384,28368,-16399,28360,-16413,28351,-16428,28343,-16442,28335,-16456,28326,-16471,28318,-16485,28309,-16500,28301,-16514,28292,-16529,28284,-16543,28275,-16558,28267,-16572,28259,-16587,28250,-16601,28242,-16616,28233,-16630,28225,-16644,28216,-16659,28208,-16673,28199,-16688,28190,-16702,28182,-16717,28173,-16731,28165,-16745,28156,-16760,28148,-16774,28139,-16789,28131,-16803,28122,-16817,28113,-16832,28105,-16846,28096,-16860,28087,-16875,28079,-16889,28070,-16904,28062,-16918,28053,-16932,28044,-16947,28036,-16961,28027,-16975,28018,-16990,28009,-17004,28001,-17018,27992,-17033,27983,-17047,27975,-17061,27966,-17075,27957,-17090,27948,-17104,27940,-17118,27931,-17133,27922,-17147,27913,-17161,27905,-17175,27896,-17190,27887,-17204,27878,-17218,27869,-17233,27861,-17247,27852,-17261,27843,-17275,27834,-17289,27825,-17304,27816,-17318,27808,-17332,27799,-17346,27790,-17361,27781,-17375,27772,-17389,27763,-17403,27754,-17417,27745,-17432,27736,-17446,27728,-17460,27719,-17474,27710,-17488,27701,-17502,27692,-17517,27683,-17531,27674,-17545,27665,-17559,27656,-17573,27647,-17587,27638,-17601,27629,-17616,27620,-17630,27611,-17644,27602,-17658,27593,-17672,27584,-17686,27575,-17700,27566,-17714,27557,-17728,27548,-17743,27538,-17757,27529,-17771,27520,-17785,27511,-17799,27502,-17813,27493,-17827,27484,-17841,27475,-17855,27466,-17869,27456,-17883,27447,-17897,27438,-17911,27429,-17925,27420,-17939,27411,-17953,27401,-17967,27392,-17981,27383,-17995,27374,-18009,27365,-18023,27355,-18037,27346,-18051,27337,-18065,27328,-18079,27319,-18093,27309,-18107,27300,-18121,27291,-18135,27281,-18149,27272,-18163,27263,-18177,27254,-18191,27244,-18205,27235,-18219,27226,-18233,27216,-18247,27207,-18261,27198,-18274,27188,-18288,27179,-18302,27170,-18316,27160,-18330,27151,-18344,27141,-18358,27132,-18372,27123,-18386,27113,-18399,27104,-18413,27094,-18427,27085,-18441,27076,-18455,27066,-18469,27057,-18483,27047,-18496,27038,-18510,27028,-18524,27019,-18538,27009,-18552,27000,-18565,26990,-18579,26981,-18593,26971,-18607,26962,-18621,26952,-18634,26943,-18648,26933,-18662,26924,-18676,26914,-18690,26905,-18703,26895,-18717,26885,-18731,26876,-18745,26866,-18758,26857,-18772,26847,-18786,26837,-18799,26828,-18813,26818,-18827,26809,-18841,26799,-18854,26789,-18868,26780,-18882,26770,-18895,26760,-18909,26751,-18923,26741,-18936,26731,-18950,26722,-18964,26712,-18977,26702,-18991,26692,-19005,26683,-19018,26673,-19032,26663,-19046,26654,-19059,26644,-19073,26634,-19087,26624,-19100,26615,-19114,26605,-19127,26595,-19141,26585,-19155,26575,-19168,26566,-19182,26556,-19195,26546,-19209,26536,-19222,26526,-19236,26516,-19250,26507,-19263,26497,-19277,26487,-19290,26477,-19304,26467,-19317,26457,-19331,26447,-19344,26437,-19358,26428,-19371,26418,-19385,26408,-19398,26398,-19412,26388,-19425,26378,-19439,26368,-19452,26358,-19466,26348,-19479,26338,-19493,26328,-19506,26318,-19520,26308,-19533,26298,-19547,26288,-19560,26278,-19574,26268,-19587,26258,-19600,26248,-19614,26238,-19627,26228,-19641,26218,-19654,26208,-19668,26198,-19681,26188,-19694,26178,-19708,26168,-19721,26158,-19734,26148,-19748,26137,-19761,26127,-19775,26117,-19788,26107,-19801,26097,-19815,26087,-19828,26077,-19841,26067,-19855,26056,-19868,26046,-19881,26036,-19895,26026,-19908,26016,-19921,26006,-19934,25995,-19948,25985,-19961,25975,-19974,25965,-19988,25954,-20001,25944,-20014,25934,-20027,25924,-20041,25913,-20054,25903,-20067,25893,-20080,25883,-20094,25872,-20107,25862,-20120,25852,-20133,25842,-20147,25831,-20160,25821,-20173,25811,-20186,25800,-20199,25790,-20213,25780,-20226,25769,-20239,25759,-20252,25749,-20265,25738,-20278,25728,-20292,25717,-20305,25707,-20318,25697,-20331,25686,-20344,25676,-20357,25665,-20370,25655,-20384,25645,-20397,25634,-20410,25624,-20423,25613,-20436,25603,-20449,25592,-20462,25582,-20475,25571,-20488,25561,-20501,25550,-20514,25540,-20528,25529,-20541,25519,-20554,25508,-20567,25498,-20580,25487,-20593,25477,-20606,25466,-20619,25456,-20632,25445,-20645,25435,-20658,25424,-20671,25414,-20684,25403,-20697,25392,-20710,25382,-20723,25371,-20736,25361,-20749,25350,-20762,25339,-20775,25329,-20788,25318,-20801,25307,-20814,25297,-20826,25286,-20839,25276,-20852,25265,-20865,25254,-20878,25243,-20891,25233,-20904,25222,-20917,25211,-20930,25201,-20943,25190,-20956,25179,-20968,25169,-20981,25158,-20994,25147,-21007,25136,-21020,25126,-21033,25115,-21046,25104,-21058,25093,-21071,25083,-21084,25072,-21097,25061,-21110,25050,-21123,25039,-21135,25029,-21148,25018,-21161,25007,-21174,24996,-21187,24985,-21199,24974,-21212,24964,-21225,24953,-21238,24942,-21250,24931,-21263,24920,-21276,24909,-21289,24898,-21301,24887,-21314,24877,-21327,24866,-21340,24855,-21352,24844,-21365,24833,-21378,24822,-21390,24811,-21403,24800,-21416,24789,-21428,24778,-21441,24767,-21454,24756,-21466,24745,-21479,24734,-21492,24723,-21504,24712,-21517,24701,-21530,24690,-21542,24679,-21555,24668,-21567,24657,-21580,24646,-21593,24635,-21605,24624,-21618,24613,-21630,24602,-21643,24591,-21656,24580,-21668,24569,-21681,24558,-21693,24546,-21706,24535,-21718,24524,-21731,24513,-21744,24502,-21756,24491,-21769,24480,-21781,24469,-21794,24457,-21806,24446,-21819,24435,-21831,24424,-21844,24413,-21856,24402,-21869,24390,-21881,24379,-21894,24368,-21906,24357,-21918,24346,-21931,24334,-21943,24323,-21956,24312,-21968,24301,-21981,24289,-21993,24278,-22005,24267,-22018,24256,-22030,24244,-22043,24233,-22055,24222,-22067,24211,-22080,24199,-22092,24188,-22105,24177,-22117,24165,-22129,24154,-22142,24143,-22154,24131,-22166,24120,-22179,24109,-22191,24097,-22203,24086,-22216,24075,-22228,24063,-22240,24052,-22253,24041,-22265,24029,-22277,24018,-22289,24006,-22302,23995,-22314,23984,-22326,23972,-22339,23961,-22351,23949,-22363,23938,-22375,23926,-22388,23915,-22400,23903,-22412,23892,-22424,23881,-22436,23869,-22449,23858,-22461,23846,-22473,23835,-22485,23823,-22497,23812,-22510,23800,-22522,23789,-22534,23777,-22546,23766,-22558,23754,-22570,23742,-22583,23731,-22595,23719,-22607,23708,-22619,23696,-22631,23685,-22643,23673,-22655,23661,-22667,23650,-22679,23638,-22692,23627,-22704,23615,-22716,23603,-22728,23592,-22740,23580,-22752,23569,-22764,23557,-22776,23545,-22788,23534,-22800,23522,-22812,23510,-22824,23499,-22836,23487,-22848,23475,-22860,23464,-22872,23452,-22884,23440,-22896,23428,-22908,23417,-22920,23405,-22932,23393,-22944,23382,-22956,23370,-22968,23358,-22980,23346,-22992,23335,-23004,23323,-23016,23311,-23028,23299,-23040,23287,-23051,23276,-23063,23264,-23075,23252,-23087,23240,-23099,23228,-23111,23217,-23123,23205,-23135,23193,-23147,23181,-23158,23169,-23170,23157,-23182,23146,-23194,23134,-23206,23122,-23218,23110,-23229,23098,-23241,23086,-23253,23074,-23265,23062,-23277,23050,-23288,23039,-23300,23027,-23312,23015,-23324,23003,-23336,22991,-23347,22979,-23359,22967,-23371,22955,-23383,22943,-23394,22931,-23406,22919,-23418,22907,-23429,22895,-23441,22883,-23453,22871,-23465,22859,-23476,22847,-23488,22835,-23500,22823,-23511,22811,-23523,22799,-23535,22787,-23546,22775,-23558,22763,-23570,22751,-23581,22739,-23593,22727,-23604,22715,-23616,22703,-23628,22691,-23639,22678,-23651,22666,-23662,22654,-23674,22642,-23686,22630,-23697,22618,-23709,22606,-23720,22594,-23732,22582,-23743,22569,-23755,22557,-23767,22545,-23778,22533,-23790,22521,-23801,22509,-23813,22496,-23824,22484,-23836,22472,-23847,22460,-23859,22448,-23870,22435,-23882,22423,-23893,22411,-23904,22399,-23916,22387,-23927,22374,-23939,22362,-23950,22350,-23962,22338,-23973,22325,-23985,22313,-23996,22301,-24007,22288,-24019,22276,-24030,22264,-24042,22252,-24053,22239,-24064,22227,-24076,22215,-24087,22202,-24098,22190,-24110,22178,-24121,22165,-24132,22153,-24144,22141,-24155,22128,-24166,22116,-24178,22104,-24189,22091,-24200,22079,-24212,22066,-24223,22054,-24234,22042,-24245,22029,-24257,22017,-24268,22004,-24279,21992,-24290,21980,-24302,21967,-24313,21955,-24324,21942,-24335,21930,-24347,21917,-24358,21905,-24369,21893,-24380,21880,-24391,21868,-24403,21855,-24414,21843,-24425,21830,-24436,21818,-24447,21805,-24458,21793,-24470,21780,-24481,21768,-24492,21755,-24503,21743,-24514,21730,-24525,21717,-24536,21705,-24547,21692,-24559,21680,-24570,21667,-24581,21655,-24592,21642,-24603,21629,-24614,21617,-24625,21604,-24636,21592,-24647,21579,-24658,21566,-24669,21554,-24680,21541,-24691,21529,-24702,21516,-24713,21503,-24724,21491,-24735,21478,-24746,21465,-24757,21453,-24768,21440,-24779,21427,-24790,21415,-24801,21402,-24812,21389,-24823,21377,-24834,21364,-24845,21351,-24856,21339,-24867,21326,-24878,21313,-24888,21300,-24899,21288,-24910,21275,-24921,21262,-24932,21249,-24943,21237,-24954,21224,-24965,21211,-24975,21198,-24986,21186,-24997,21173,-25008,21160,-25019,21147,-25030,21134,-25040,21122,-25051,21109,-25062,21096,-25073,21083,-25084,21070,-25094,21057,-25105,21045,-25116,21032,-25127,21019,-25137,21006,-25148,20993,-25159,20980,-25170,20967,-25180,20955,-25191,20942,-25202,20929,-25212,20916,-25223,20903,-25234,20890,-25244,20877,-25255,20864,-25266,20851,-25277,20838,-25287,20825,-25298,20813,-25308,20800,-25319,20787,-25330,20774,-25340,20761,-25351,20748,-25362,20735,-25372,20722,-25383,20709,-25393,20696,-25404,20683,-25415,20670,-25425,20657,-25436,20644,-25446,20631,-25457,20618,-25467,20605,-25478,20592,-25488,20579,-25499,20566,-25509,20553,-25520,20540,-25530,20527,-25541,20513,-25551,20500,-25562,20487,-25572,20474,-25583,20461,-25593,20448,-25604,20435,-25614,20422,-25625,20409,-25635,20396,-25646,20383,-25656,20369,-25666,20356,-25677,20343,-25687,20330,-25698,20317,-25708,20304,-25718,20291,-25729,20277,-25739,20264,-25750,20251,-25760,20238,-25770,20225,-25781,20212,-25791,20198,-25801,20185,-25812,20172,-25822,20159,-25832,20146,-25843,20132,-25853,20119,-25863,20106,-25873,20093,-25884,20079,-25894,20066,-25904,20053,-25914,20040,-25925,20026,-25935,20013,-25945,20000,-25955,19987,-25966,19973,-25976,19960,-25986,19947,-25996,19933,-26007,19920,-26017,19907,-26027,19894,-26037,19880,-26047,19867,-26057,19854,-26068,19840,-26078,19827,-26088,19814,-26098,19800,-26108,19787,-26118,19774,-26128,19760,-26138,19747,-26149,19733,-26159,19720,-26169,19707,-26179,19693,-26189,19680,-26199,19667,-26209,19653,-26219,19640,-26229,19626,-26239,19613,-26249,19599,-26259,19586,-26269,19573,-26279,19559,-26289,19546,-26299,19532,-26309,19519,-26319,19505,-26329,19492,-26339,19478,-26349,19465,-26359,19451,-26369,19438,-26379,19424,-26389,19411,-26399,19397,-26409,19384,-26419,19370,-26429,19357,-26438,19343,-26448,19330,-26458,19316,-26468,19303,-26478,19289,-26488,19276,-26498,19262,-26508,19249,-26517,19235,-26527,19221,-26537,19208,-26547,19194,-26557,19181,-26567,19167,-26576,19154,-26586,19140,-26596,19126,-26606,19113,-26616,19099,-26625,19086,-26635,19072,-26645,19058,-26655,19045,-26664,19031,-26674,19017,-26684,19004,-26693,18990,-26703,18976,-26713,18963,-26723,18949,-26732,18935,-26742,18922,-26752,18908,-26761,18894,-26771,18881,-26781,18867,-26790,18853,-26800,18840,-26810,18826,-26819,18812,-26829,18798,-26838,18785,-26848,18771,-26858,18757,-26867,18744,-26877,18730,-26886,18716,-26896,18702,-26906,18689,-26915,18675,-26925,18661,-26934,18647,-26944,18633,-26953,18620,-26963,18606,-26972,18592,-26982,18578,-26991,18564,-27001,18551,-27010,18537,-27020,18523,-27029,18509,-27039,18495,-27048,18482,-27058,18468,-27067,18454,-27077,18440,-27086,18426,-27095,18412,-27105,18398,-27114,18385,-27124,18371,-27133,18357,-27142,18343,-27152,18329,-27161,18315,-27171,18301,-27180,18287,-27189,18273,-27199,18260,-27208,18246,-27217,18232,-27227,18218,-27236,18204,-27245,18190,-27255,18176,-27264,18162,-27273,18148,-27282,18134,-27292,18120,-27301,18106,-27310,18092,-27320,18078,-27329,18064,-27338,18050,-27347,18036,-27356,18022,-27366,18008,-27375,17994,-27384,17980,-27393,17966,-27402,17952,-27412,17938,-27421,17924,-27430,17910,-27439,17896,-27448,17882,-27457,17868,-27467,17854,-27476,17840,-27485,17826,-27494,17812,-27503,17798,-27512,17784,-27521,17770,-27530,17756,-27539,17742,-27549,17727,-27558,17713,-27567,17699,-27576,17685,-27585,17671,-27594,17657,-27603,17643,-27612,17629,-27621,17615,-27630,17600,-27639,17586,-27648,17572,-27657,17558,-27666,17544,-27675,17530,-27684,17516,-27693,17501,-27702,17487,-27711,17473,-27720,17459,-27729,17445,-27737,17431,-27746,17416,-27755,17402,-27764,17388,-27773,17374,-27782,17360,-27791,17345,-27800,17331,-27809,17317,-27817,17303,-27826,17288,-27835,17274,-27844,17260,-27853,17246,-27862,17232,-27870,17217,-27879,17203,-27888,17189,-27897,17174,-27906,17160,-27914,17146,-27923,17132,-27932,17117,-27941,17103,-27949,17089,-27958,17074,-27967,17060,-27976,17046,-27984,17032,-27993,17017,-28002,17003,-28010,16989,-28019,16974,-28028,16960,-28037,16946,-28045,16931,-28054,16917,-28063,16903,-28071,16888,-28080,16874,-28088,16859,-28097,16845,-28106,16831,-28114,16816,-28123,16802,-28132,16788,-28140,16773,-28149,16759,-28157,16744,-28166,16730,-28174,16716,-28183,16701,-28191,16687,-28200,16672,-28209,16658,-28217,16643,-28226,16629,-28234,16615,-28243,16600,-28251,16586,-28260,16571,-28268,16557,-28276,16542,-28285,16528,-28293,16513,-28302,16499,-28310,16484,-28319,16470,-28327,16455,-28336,16441,-28344,16427,-28352,16412,-28361,16398,-28369,16383,-28378,16368,-28386,16354,-28394,16339,-28403,16325,-28411,16310,-28419,16296,-28428,16281,-28436,16267,-28444,16252,-28453,16238,-28461,16223,-28469,16209,-28478,16194,-28486,16179,-28494,16165,-28502,16150,-28511,16136,-28519,16121,-28527,16107,-28535,16092,-28544,16077,-28552,16063,-28560,16048,-28568,16034,-28576,16019,-28585,16004,-28593,15990,-28601,15975,-28609,15960,-28617,15946,-28626,15931,-28634,15917,-28642,15902,-28650,15887,-28658,15873,-28666,15858,-28674,15843,-28682,15829,-28691,15814,-28699,15799,-28707,15785,-28715,15770,-28723,15755,-28731,15740,-28739,15726,-28747,15711,-28755,15696,-28763,15682,-28771,15667,-28779,15652,-28787,15638,-28795,15623,-28803,15608,-28811,15593,-28819,15579,-28827,15564,-28835,15549,-28843,15534,-28851,15520,-28859,15505,-28867,15490,-28875,15475,-28883,15461,-28891,15446,-28898,15431,-28906,15416,-28914,15401,-28922,15387,-28930,15372,-28938,15357,-28946,15342,-28954,15327,-28961,15313,-28969,15298,-28977,15283,-28985,15268,-28993,15253,-29000,15238,-29008,15224,-29016,15209,-29024,15194,-29032,15179,-29039,15164,-29047,15149,-29055,15135,-29063,15120,-29070,15105,-29078,15090,-29086,15075,-29093,15060,-29101,15045,-29109,15030,-29117,15016,-29124,15001,-29132,14986,-29140,14971,-29147,14956,-29155,14941,-29163,14926,-29170,14911,-29178,14896,-29185,14881,-29193,14866,-29201,14852,-29208,14837,-29216,14822,-29223,14807,-29231,14792,-29239,14777,-29246,14762,-29254,14747,-29261,14732,-29269,14717,-29276,14702,-29284,14687,-29291,14672,-29299,14657,-29306,14642,-29314,14627,-29321,14612,-29329,14597,-29336,14582,-29344,14567,-29351,14552,-29359,14537,-29366,14522,-29373,14507,-29381,14492,-29388,14477,-29396,14462,-29403,14447,-29411,14432,-29418,14417,-29425,14402,-29433,14387,-29440,14372,-29447,14357,-29455,14342,-29462,14326,-29469,14311,-29477,14296,-29484,14281,-29491,14266,-29499,14251,-29506,14236,-29513,14221,-29520,14206,-29528,14191,-29535,14176,-29542,14160,-29549,14145,-29557,14130,-29564,14115,-29571,14100,-29578,14085,-29586,14070,-29593,14055,-29600,14039,-29607,14024,-29614,14009,-29622,13994,-29629,13979,-29636,13964,-29643,13949,-29650,13933,-29657,13918,-29664,13903,-29671,13888,-29679,13873,-29686,13858,-29693,13842,-29700,13827,-29707,13812,-29714,13797,-29721,13782,-29728,13766,-29735,13751,-29742,13736,-29749,13721,-29756,13706,-29763,13690,-29770,13675,-29777,13660,-29784,13645,-29791,13629,-29798,13614,-29805,13599,-29812,13584,-29819,13568,-29826,13553,-29833,13538,-29840,13523,-29847,13507,-29854,13492,-29861,13477,-29867,13462,-29874,13446,-29881,13431,-29888,13416,-29895,13400,-29902,13385,-29909,13370,-29916,13355,-29922,13339,-29929,13324,-29936,13309,-29943,13293,-29950,13278,-29956,13263,-29963,13247,-29970,13232,-29977,13217,-29984,13201,-29990,13186,-29997,13171,-30004,13155,-30010,13140,-30017,13125,-30024,13109,-30031,13094,-30037,13079,-30044,13063,-30051,13048,-30057,13033,-30064,13017,-30071,13002,-30077,12986,-30084,12971,-30091,12956,-30097,12940,-30104,12925,-30110,12909,-30117,12894,-30124,12879,-30130,12863,-30137,12848,-30143,12832,-30150,12817,-30157,12802,-30163,12786,-30170,12771,-30176,12755,-30183,12740,-30189,12724,-30196,12709,-30202,12694,-30209,12678,-30215,12663,-30222,12647,-30228,12632,-30235,12616,-30241,12601,-30248,12585,-30254,12570,-30260,12554,-30267,12539,-30273,12523,-30280,12508,-30286,12492,-30292,12477,-30299,12461,-30305,12446,-30312,12430,-30318,12415,-30324,12399,-30331,12384,-30337,12368,-30343,12353,-30350,12337,-30356,12322,-30362,12306,-30369,12291,-30375,12275,-30381,12260,-30387,12244,-30394,12229,-30400,12213,-30406,12198,-30412,12182,-30419,12166,-30425,12151,-30431,12135,-30437,12120,-30443,12104,-30450,12089,-30456,12073,-30462,12057,-30468,12042,-30474,12026,-30481,12011,-30487,11995,-30493,11980,-30499,11964,-30505,11948,-30511,11933,-30517,11917,-30523,11902,-30529,11886,-30536,11870,-30542,11855,-30548,11839,-30554,11823,-30560,11808,-30566,11792,-30572,11777,-30578,11761,-30584,11745,-30590,11730,-30596,11714,-30602,11698,-30608,11683,-30614,11667,-30620,11651,-30626,11636,-30632,11620,-30638,11604,-30644,11589,-30650,11573,-30656,11557,-30661,11542,-30667,11526,-30673,11510,-30679,11495,-30685,11479,-30691,11463,-30697,11448,-30703,11432,-30708,11416,-30714,11400,-30720,11385,-30726,11369,-30732,11353,-30738,11338,-30743,11322,-30749,11306,-30755,11290,-30761,11275,-30767,11259,-30772,11243,-30778,11227,-30784,11212,-30789,11196,-30795,11180,-30801,11164,-30807,11149,-30812,11133,-30818,11117,-30824,11101,-30829,11086,-30835,11070,-30841,11054,-30846,11038,-30852,11023,-30858,11007,-30863,10991,-30869,10975,-30875,10959,-30880,10944,-30886,10928,-30891,10912,-30897,10896,-30903,10880,-30908,10865,-30914,10849,-30919,10833,-30925,10817,-30930,10801,-30936,10786,-30941,10770,-30947,10754,-30952,10738,-30958,10722,-30963,10706,-30969,10691,-30974,10675,-30980,10659,-30985,10643,-30991,10627,-30996,10611,-31002,10596,-31007,10580,-31012,10564,-31018,10548,-31023,10532,-31029,10516,-31034,10500,-31039,10484,-31045,10469,-31050,10453,-31055,10437,-31061,10421,-31066,10405,-31071,10389,-31077,10373,-31082,10357,-31087,10342,-31093,10326,-31098,10310,-31103,10294,-31108,10278,-31114,10262,-31119,10246,-31124,10230,-31129,10214,-31135,10198,-31140,10182,-31145,10166,-31150,10151,-31155,10135,-31161,10119,-31166,10103,-31171,10087,-31176,10071,-31181,10055,-31186,10039,-31192,10023,-31197,10007,-31202,9991,-31207,9975,-31212,9959,-31217,9943,-31222,9927,-31227,9911,-31232,9895,-31237,9879,-31243,9863,-31248,9847,-31253,9831,-31258,9815,-31263,9799,-31268,9783,-31273,9767,-31278,9751,-31283,9735,-31288,9719,-31293,9703,-31298,9687,-31303,9671,-31308,9655,-31312,9639,-31317,9623,-31322,9607,-31327,9591,-31332,9575,-31337,9559,-31342,9543,-31347,9527,-31352,9511,-31357,9495,-31361,9479,-31366,9463,-31371,9447,-31376,9431,-31381,9415,-31386,9399,-31390,9383,-31395,9367,-31400,9351,-31405,9335,-31410,9319,-31414,9303,-31419,9287,-31424,9270,-31429,9254,-31433,9238,-31438,9222,-31443,9206,-31447,9190,-31452,9174,-31457,9158,-31462,9142,-31466,9126,-31471,9110,-31476,9094,-31480,9077,-31485,9061,-31490,9045,-31494,9029,-31499,9013,-31503,8997,-31508,8981,-31513,8965,-31517,8949,-31522,8932,-31526,8916,-31531,8900,-31535,8884,-31540,8868,-31545,8852,-31549,8836,-31554,8820,-31558,8803,-31563,8787,-31567,8771,-31572,8755,-31576,8739,-31581,8723,-31585,8707,-31589,8690,-31594,8674,-31598,8658,-31603,8642,-31607,8626,-31612,8610,-31616,8593,-31620,8577,-31625,8561,-31629,8545,-31634,8529,-31638,8513,-31642,8496,-31647,8480,-31651,8464,-31655,8448,-31660,8432,-31664,8415,-31668,8399,-31673,8383,-31677,8367,-31681,8351,-31685,8334,-31690,8318,-31694,8302,-31698,8286,-31702,8270,-31707,8253,-31711,8237,-31715,8221,-31719,8205,-31724,8189,-31728,8172,-31732,8156,-31736,8140,-31740,8124,-31744,8107,-31749,8091,-31753,8075,-31757,8059,-31761,8042,-31765,8026,-31769,8010,-31773,7994,-31777,7977,-31781,7961,-31786,7945,-31790,7929,-31794,7912,-31798,7896,-31802,7880,-31806,7864,-31810,7847,-31814,7831,-31818,7815,-31822,7799,-31826,7782,-31830,7766,-31834,7750,-31838,7733,-31842,7717,-31846,7701,-31850,7685,-31854,7668,-31857,7652,-31861,7636,-31865,7619,-31869,7603,-31873,7587,-31877,7571,-31881,7554,-31885,7538,-31889,7522,-31892,7505,-31896,7489,-31900,7473,-31904,7456,-31908,7440,-31912,7424,-31915,7407,-31919,7391,-31923,7375,-31927,7358,-31930,7342,-31934,7326,-31938,7310,-31942,7293,-31945,7277,-31949,7261,-31953,7244,-31957,7228,-31960,7211,-31964,7195,-31968,7179,-31971,7162,-31975,7146,-31979,7130,-31982,7113,-31986,7097,-31990,7081,-31993,7064,-31997,7048,-32000,7032,-32004,7015,-32008,6999,-32011,6982,-32015,6966,-32018,6950,-32022,6933,-32025,6917,-32029,6901,-32033,6884,-32036,6868,-32040,6851,-32043,6835,-32047,6819,-32050,6802,-32054,6786,-32057,6770,-32060,6753,-32064,6737,-32067,6720,-32071,6704,-32074,6688,-32078,6671,-32081,6655,-32085,6638,-32088,6622,-32091,6606,-32095,6589,-32098,6573,-32101,6556,-32105,6540,-32108,6523,-32111,6507,-32115,6491,-32118,6474,-32121,6458,-32125,6441,-32128,6425,-32131,6408,-32135,6392,-32138,6376,-32141,6359,-32144,6343,-32148,6326,-32151,6310,-32154,6293,-32157,6277,-32161,6261,-32164,6244,-32167,6228,-32170,6211,-32173,6195,-32177,6178,-32180,6162,-32183,6145,-32186,6129,-32189,6112,-32192,6096,-32195,6080,-32198,6063,-32202,6047,-32205,6030,-32208,6014,-32211,5997,-32214,5981,-32217,5964,-32220,5948,-32223,5931,-32226,5915,-32229,5898,-32232,5882,-32235,5865,-32238,5849,-32241,5832,-32244,5816,-32247,5799,-32250,5783,-32253,5766,-32256,5750,-32259,5733,-32262,5717,-32265,5700,-32268,5684,-32271,5667,-32274,5651,-32276,5634,-32279,5618,-32282,5601,-32285,5585,-32288,5568,-32291,5552,-32294,5535,-32296,5519,-32299,5502,-32302,5486,-32305,5469,-32308,5453,-32311,5436,-32313,5420,-32316,5403,-32319,5387,-32322,5370,-32324,5354,-32327,5337,-32330,5321,-32333,5304,-32335,5287,-32338,5271,-32341,5254,-32343,5238,-32346,5221,-32349,5205,-32351,5188,-32354,5172,-32357,5155,-32359,5139,-32362,5122,-32365,5106,-32367,5089,-32370,5072,-32372,5056,-32375,5039,-32378,5023,-32380,5006,-32383,4990,-32385,4973,-32388,4957,-32390,4940,-32393,4923,-32395,4907,-32398,4890,-32400,4874,-32403,4857,-32405,4841,-32408,4824,-32410,4807,-32413,4791,-32415,4774,-32418,4758,-32420,4741,-32423,4725,-32425,4708,-32427,4691,-32430,4675,-32432,4658,-32435,4642,-32437,4625,-32439,4608,-32442,4592,-32444,4575,-32446,4559,-32449,4542,-32451,4525,-32453,4509,-32456,4492,-32458,4476,-32460,4459,-32463,4443,-32465,4426,-32467,4409,-32469,4393,-32472,4376,-32474,4359,-32476,4343,-32478,4326,-32481,4310,-32483,4293,-32485,4276,-32487,4260,-32489,4243,-32492,4227,-32494,4210,-32496,4193,-32498,4177,-32500,4160,-32502,4144,-32504,4127,-32507,4110,-32509,4094,-32511,4077,-32513,4060,-32515,4044,-32517,4027,-32519,4011,-32521,3994,-32523,3977,-32525,3961,-32527,3944,-32529,3927,-32531,3911,-32533,3894,-32535,3877,-32537,3861,-32539,3844,-32541,3828,-32543,3811,-32545,3794,-32547,3778,-32549,3761,-32551,3744,-32553,3728,-32555,3711,-32557,3694,-32559,3678,-32560,3661,-32562,3644,-32564,3628,-32566,3611,-32568,3594,-32570,3578,-32572,3561,-32573,3545,-32575,3528,-32577,3511,-32579,3495,-32581,3478,-32582,3461,-32584,3445,-32586,3428,-32588,3411,-32589,3395,-32591,3378,-32593,3361,-32595,3345,-32596,3328,-32598,3311,-32600,3295,-32601,3278,-32603,3261,-32605,3245,-32606,3228,-32608,3211,-32610,3195,-32611,3178,-32613,3161,-32615,3145,-32616,3128,-32618,3111,-32619,3094,-32621,3078,-32623,3061,-32624,3044,-32626,3028,-32627,3011,-32629,2994,-32630,2978,-32632,2961,-32633,2944,-32635,2928,-32636,2911,-32638,2894,-32639,2878,-32641,2861,-32642,2844,-32644,2828,-32645,2811,-32647,2794,-32648,2777,-32650,2761,-32651,2744,-32652,2727,-32654,2711,-32655,2694,-32657,2677,-32658,2661,-32659,2644,-32661,2627,-32662,2610,-32663,2594,-32665,2577,-32666,2560,-32667,2544,-32669,2527,-32670,2510,-32671,2494,-32672,2477,-32674,2460,-32675,2443,-32676,2427,-32677,2410,-32679,2393,-32680,2377,-32681,2360,-32682,2343,-32684,2326,-32685,2310,-32686,2293,-32687,2276,-32688,2260,-32689,2243,-32691,2226,-32692,2209,-32693,2193,-32694,2176,-32695,2159,-32696,2143,-32697,2126,-32698,2109,-32700,2092,-32701,2076,-32702,2059,-32703,2042,-32704,2026,-32705,2009,-32706,1992,-32707,1975,-32708,1959,-32709,1942,-32710,1925,-32711,1908,-32712,1892,-32713,1875,-32714,1858,-32715,1842,-32716,1825,-32717,1808,-32718,1791,-32718,1775,-32719,1758,-32720,1741,-32721,1724,-32722,1708,-32723,1691,-32724,1674,-32725,1658,-32726,1641,-32726,1624,-32727,1607,-32728,1591,-32729,1574,-32730,1557,-32730,1540,-32731,1524,-32732,1507,-32733,1490,-32734,1473,-32734,1457,-32735,1440,-32736,1423,-32737,1406,-32737,1390,-32738,1373,-32739,1356,-32739,1339,-32740,1323,-32741,1306,-32741,1289,-32742,1273,-32743,1256,-32743,1239,-32744,1222,-32745,1206,-32745,1189,-32746,1172,-32747,1155,-32747,1139,-32748,1122,-32748,1105,-32749,1088,-32749,1072,-32750,1055,-32751,1038,-32751,1021,-32752,1005,-32752,988,-32753,971,-32753,954,-32754,938,-32754,921,-32755,904,-32755,887,-32755,871,-32756,854,-32756,837,-32757,820,-32757,804,-32758,787,-32758,770,-32758,753,-32759,737,-32759,720,-32760,703,-32760,686,-32760,670,-32761,653,-32761,636,-32761,619,-32762,603,-32762,586,-32762,569,-32763,552,-32763,536,-32763,519,-32763,502,-32764,485,-32764,469,-32764,452,-32764,435,-32765,418,-32765,402,-32765,385,-32765,368,-32765,351,-32766,335,-32766,318,-32766,301,-32766,284,-32766,268,-32766,251,-32767,234,-32767,217,-32767,201,-32767,184,-32767,167,-32767,150,-32767,134,-32767,117,-32767,100,-32767,83,-32767,67,-32767,50,-32767,33,-32767,16,-32767,0,-32767,-17,-32767,-34,-32767,-51,-32767,-68,-32767,-84,-32767,-101,-32767,-118,-32767,-135,-32767,-151,-32767,-168,-32767,-185,-32767,-202,-32767,-218,-32767,-235,-32767,-252,-32767,-269,-32766,-285,-32766,-302,-32766,-319,-32766,-336,-32766,-352,-32766,-369,-32765,-386,-32765,-403,-32765,-419,-32765,-436,-32765,-453,-32764,-470,-32764,-486,-32764,-503,-32764,-520,-32763,-537,-32763,-553,-32763,-570,-32763,-587,-32762,-604,-32762,-620,-32762,-637,-32761,-654,-32761,-671,-32761,-687,-32760,-704,-32760,-721,-32760,-738,-32759,-754,-32759,-771,-32758,-788,-32758,-805,-32758,-821,-32757,-838,-32757,-855,-32756,-872,-32756,-888,-32755,-905,-32755,-922,-32755,-939,-32754,-955,-32754,-972,-32753,-989,-32753,-1006,-32752,-1022,-32752,-1039,-32751,-1056,-32751,-1073,-32750,-1089,-32749,-1106,-32749,-1123,-32748,-1140,-32748,-1156,-32747,-1173,-32747,-1190,-32746,-1207,-32745,-1223,-32745,-1240,-32744,-1257,-32743,-1274,-32743,-1290,-32742,-1307,-32741,-1324,-32741,-1340,-32740,-1357,-32739,-1374,-32739,-1391,-32738,-1407,-32737,-1424,-32737,-1441,-32736,-1458,-32735,-1474,-32734,-1491,-32734,-1508,-32733,-1525,-32732,-1541,-32731,-1558,-32730,-1575,-32730,-1592,-32729,-1608,-32728,-1625,-32727,-1642,-32726,-1659,-32726,-1675,-32725,-1692,-32724,-1709,-32723,-1725,-32722,-1742,-32721,-1759,-32720,-1776,-32719,-1792,-32718,-1809,-32718,-1826,-32717,-1843,-32716,-1859,-32715,-1876,-32714,-1893,-32713,-1909,-32712,-1926,-32711,-1943,-32710,-1960,-32709,-1976,-32708,-1993,-32707,-2010,-32706,-2027,-32705,-2043,-32704,-2060,-32703,-2077,-32702,-2093,-32701,-2110,-32700,-2127,-32698,-2144,-32697,-2160,-32696,-2177,-32695,-2194,-32694,-2210,-32693,-2227,-32692,-2244,-32691,-2261,-32689,-2277,-32688,-2294,-32687,-2311,-32686,-2327,-32685,-2344,-32684,-2361,-32682,-2378,-32681,-2394,-32680,-2411,-32679,-2428,-32677,-2444,-32676,-2461,-32675,-2478,-32674,-2495,-32672,-2511,-32671,-2528,-32670,-2545,-32669,-2561,-32667,-2578,-32666,-2595,-32665,-2611,-32663,-2628,-32662,-2645,-32661,-2662,-32659,-2678,-32658,-2695,-32657,-2712,-32655,-2728,-32654,-2745,-32652,-2762,-32651,-2778,-32650,-2795,-32648,-2812,-32647,-2829,-32645,-2845,-32644,-2862,-32642,-2879,-32641,-2895,-32639,-2912,-32638,-2929,-32636,-2945,-32635,-2962,-32633,-2979,-32632,-2995,-32630,-3012,-32629,-3029,-32627,-3045,-32626,-3062,-32624,-3079,-32623,-3095,-32621,-3112,-32619,-3129,-32618,-3146,-32616,-3162,-32615,-3179,-32613,-3196,-32611,-3212,-32610,-3229,-32608,-3246,-32606,-3262,-32605,-3279,-32603,-3296,-32601,-3312,-32600,-3329,-32598,-3346,-32596,-3362,-32595,-3379,-32593,-3396,-32591,-3412,-32589,-3429,-32588,-3446,-32586,-3462,-32584,-3479,-32582,-3496,-32581,-3512,-32579,-3529,-32577,-3546,-32575,-3562,-32573,-3579,-32572,-3595,-32570,-3612,-32568,-3629,-32566,-3645,-32564,-3662,-32562,-3679,-32560,-3695,-32559,-3712,-32557,-3729,-32555,-3745,-32553,-3762,-32551,-3779,-32549,-3795,-32547,-3812,-32545,-3829,-32543,-3845,-32541,-3862,-32539,-3878,-32537,-3895,-32535,-3912,-32533,-3928,-32531,-3945,-32529,-3962,-32527,-3978,-32525,-3995,-32523,-4012,-32521,-4028,-32519,-4045,-32517,-4061,-32515,-4078,-32513,-4095,-32511,-4111,-32509,-4128,-32507,-4145,-32504,-4161,-32502,-4178,-32500,-4194,-32498,-4211,-32496,-4228,-32494,-4244,-32492,-4261,-32489,-4277,-32487,-4294,-32485,-4311,-32483,-4327,-32481,-4344,-32478,-4360,-32476,-4377,-32474,-4394,-32472,-4410,-32469,-4427,-32467,-4444,-32465,-4460,-32463,-4477,-32460,-4493,-32458,-4510,-32456,-4526,-32453,-4543,-32451,-4560,-32449,-4576,-32446,-4593,-32444,-4609,-32442,-4626,-32439,-4643,-32437,-4659,-32435,-4676,-32432,-4692,-32430,-4709,-32427,-4726,-32425,-4742,-32423,-4759,-32420,-4775,-32418,-4792,-32415,-4808,-32413,-4825,-32410,-4842,-32408,-4858,-32405,-4875,-32403,-4891,-32400,-4908,-32398,-4924,-32395,-4941,-32393,-4958,-32390,-4974,-32388,-4991,-32385,-5007,-32383,-5024,-32380,-5040,-32378,-5057,-32375,-5073,-32372,-5090,-32370,-5107,-32367,-5123,-32365,-5140,-32362,-5156,-32359,-5173,-32357,-5189,-32354,-5206,-32351,-5222,-32349,-5239,-32346,-5255,-32343,-5272,-32341,-5288,-32338,-5305,-32335,-5322,-32333,-5338,-32330,-5355,-32327,-5371,-32324,-5388,-32322,-5404,-32319,-5421,-32316,-5437,-32313,-5454,-32311,-5470,-32308,-5487,-32305,-5503,-32302,-5520,-32299,-5536,-32296,-5553,-32294,-5569,-32291,-5586,-32288,-5602,-32285,-5619,-32282,-5635,-32279,-5652,-32276,-5668,-32274,-5685,-32271,-5701,-32268,-5718,-32265,-5734,-32262,-5751,-32259,-5767,-32256,-5784,-32253,-5800,-32250,-5817,-32247,-5833,-32244,-5850,-32241,-5866,-32238,-5883,-32235,-5899,-32232,-5916,-32229,-5932,-32226,-5949,-32223,-5965,-32220,-5982,-32217,-5998,-32214,-6015,-32211,-6031,-32208,-6048,-32205,-6064,-32202,-6081,-32198,-6097,-32195,-6113,-32192,-6130,-32189,-6146,-32186,-6163,-32183,-6179,-32180,-6196,-32177,-6212,-32173,-6229,-32170,-6245,-32167,-6262,-32164,-6278,-32161,-6294,-32157,-6311,-32154,-6327,-32151,-6344,-32148,-6360,-32144,-6377,-32141,-6393,-32138,-6409,-32135,-6426,-32131,-6442,-32128,-6459,-32125,-6475,-32121,-6492,-32118,-6508,-32115,-6524,-32111,-6541,-32108,-6557,-32105,-6574,-32101,-6590,-32098,-6607,-32095,-6623,-32091,-6639,-32088,-6656,-32085,-6672,-32081,-6689,-32078,-6705,-32074,-6721,-32071,-6738,-32067,-6754,-32064,-6771,-32060,-6787,-32057,-6803,-32054,-6820,-32050,-6836,-32047,-6852,-32043,-6869,-32040,-6885,-32036,-6902,-32033,-6918,-32029,-6934,-32025,-6951,-32022,-6967,-32018,-6983,-32015,-7000,-32011,-7016,-32008,-7033,-32004,-7049,-32000,-7065,-31997,-7082,-31993,-7098,-31990,-7114,-31986,-7131,-31982,-7147,-31979,-7163,-31975,-7180,-31971,-7196,-31968,-7212,-31964,-7229,-31960,-7245,-31957,-7262,-31953,-7278,-31949,-7294,-31945,-7311,-31942,-7327,-31938,-7343,-31934,-7359,-31930,-7376,-31927,-7392,-31923,-7408,-31919,-7425,-31915,-7441,-31912,-7457,-31908,-7474,-31904,-7490,-31900,-7506,-31896,-7523,-31892,-7539,-31889,-7555,-31885,-7572,-31881,-7588,-31877,-7604,-31873,-7620,-31869,-7637,-31865,-7653,-31861,-7669,-31857,-7686,-31854,-7702,-31850,-7718,-31846,-7734,-31842,-7751,-31838,-7767,-31834,-7783,-31830,-7800,-31826,-7816,-31822,-7832,-31818,-7848,-31814,-7865,-31810,-7881,-31806,-7897,-31802,-7913,-31798,-7930,-31794,-7946,-31790,-7962,-31786,-7978,-31781,-7995,-31777,-8011,-31773,-8027,-31769,-8043,-31765,-8060,-31761,-8076,-31757,-8092,-31753,-8108,-31749,-8125,-31744,-8141,-31740,-8157,-31736,-8173,-31732,-8190,-31728,-8206,-31724,-8222,-31719,-8238,-31715,-8254,-31711,-8271,-31707,-8287,-31702,-8303,-31698,-8319,-31694,-8335,-31690,-8352,-31685,-8368,-31681,-8384,-31677,-8400,-31673,-8416,-31668,-8433,-31664,-8449,-31660,-8465,-31655,-8481,-31651,-8497,-31647,-8514,-31642,-8530,-31638,-8546,-31634,-8562,-31629,-8578,-31625,-8594,-31620,-8611,-31616,-8627,-31612,-8643,-31607,-8659,-31603,-8675,-31598,-8691,-31594,-8708,-31589,-8724,-31585,-8740,-31581,-8756,-31576,-8772,-31572,-8788,-31567,-8804,-31563,-8821,-31558,-8837,-31554,-8853,-31549,-8869,-31545,-8885,-31540,-8901,-31535,-8917,-31531,-8933,-31526,-8950,-31522,-8966,-31517,-8982,-31513,-8998,-31508,-9014,-31503,-9030,-31499,-9046,-31494,-9062,-31490,-9078,-31485,-9095,-31480,-9111,-31476,-9127,-31471,-9143,-31466,-9159,-31462,-9175,-31457,-9191,-31452,-9207,-31447,-9223,-31443,-9239,-31438,-9255,-31433,-9271,-31429,-9288,-31424,-9304,-31419,-9320,-31414,-9336,-31410,-9352,-31405,-9368,-31400,-9384,-31395,-9400,-31390,-9416,-31386,-9432,-31381,-9448,-31376,-9464,-31371,-9480,-31366,-9496,-31361,-9512,-31357,-9528,-31352,-9544,-31347,-9560,-31342,-9576,-31337,-9592,-31332,-9608,-31327,-9624,-31322,-9640,-31317,-9656,-31312,-9672,-31308,-9688,-31303,-9704,-31298,-9720,-31293,-9736,-31288,-9752,-31283,-9768,-31278,-9784,-31273,-9800,-31268,-9816,-31263,-9832,-31258,-9848,-31253,-9864,-31248,-9880,-31243,-9896,-31237,-9912,-31232,-9928,-31227,-9944,-31222,-9960,-31217,-9976,-31212,-9992,-31207,-10008,-31202,-10024,-31197,-10040,-31192,-10056,-31186,-10072,-31181,-10088,-31176,-10104,-31171,-10120,-31166,-10136,-31161,-10152,-31155,-10167,-31150,-10183,-31145,-10199,-31140,-10215,-31135,-10231,-31129,-10247,-31124,-10263,-31119,-10279,-31114,-10295,-31108,-10311,-31103,-10327,-31098,-10343,-31093,-10358,-31087,-10374,-31082,-10390,-31077,-10406,-31071,-10422,-31066,-10438,-31061,-10454,-31055,-10470,-31050,-10485,-31045,-10501,-31039,-10517,-31034,-10533,-31029,-10549,-31023,-10565,-31018,-10581,-31012,-10597,-31007,-10612,-31002,-10628,-30996,-10644,-30991,-10660,-30985,-10676,-30980,-10692,-30974,-10707,-30969,-10723,-30963,-10739,-30958,-10755,-30952,-10771,-30947,-10787,-30941,-10802,-30936,-10818,-30930,-10834,-30925,-10850,-30919,-10866,-30914,-10881,-30908,-10897,-30903,-10913,-30897,-10929,-30891,-10945,-30886,-10960,-30880,-10976,-30875,-10992,-30869,-11008,-30863,-11024,-30858,-11039,-30852,-11055,-30846,-11071,-30841,-11087,-30835,-11102,-30829,-11118,-30824,-11134,-30818,-11150,-30812,-11165,-30807,-11181,-30801,-11197,-30795,-11213,-30789,-11228,-30784,-11244,-30778,-11260,-30772,-11276,-30767,-11291,-30761,-11307,-30755,-11323,-30749,-11339,-30743,-11354,-30738,-11370,-30732,-11386,-30726,-11401,-30720,-11417,-30714,-11433,-30708,-11449,-30703,-11464,-30697,-11480,-30691,-11496,-30685,-11511,-30679,-11527,-30673,-11543,-30667,-11558,-30661,-11574,-30656,-11590,-30650,-11605,-30644,-11621,-30638,-11637,-30632,-11652,-30626,-11668,-30620,-11684,-30614,-11699,-30608,-11715,-30602,-11731,-30596,-11746,-30590,-11762,-30584,-11778,-30578,-11793,-30572,-11809,-30566,-11824,-30560,-11840,-30554,-11856,-30548,-11871,-30542,-11887,-30536,-11903,-30529,-11918,-30523,-11934,-30517,-11949,-30511,-11965,-30505,-11981,-30499,-11996,-30493,-12012,-30487,-12027,-30481,-12043,-30474,-12058,-30468,-12074,-30462,-12090,-30456,-12105,-30450,-12121,-30443,-12136,-30437,-12152,-30431,-12167,-30425,-12183,-30419,-12199,-30412,-12214,-30406,-12230,-30400,-12245,-30394,-12261,-30387,-12276,-30381,-12292,-30375,-12307,-30369,-12323,-30362,-12338,-30356,-12354,-30350,-12369,-30343,-12385,-30337,-12400,-30331,-12416,-30324,-12431,-30318,-12447,-30312,-12462,-30305,-12478,-30299,-12493,-30292,-12509,-30286,-12524,-30280,-12540,-30273,-12555,-30267,-12571,-30260,-12586,-30254,-12602,-30248,-12617,-30241,-12633,-30235,-12648,-30228,-12664,-30222,-12679,-30215,-12695,-30209,-12710,-30202,-12725,-30196,-12741,-30189,-12756,-30183,-12772,-30176,-12787,-30170,-12803,-30163,-12818,-30157,-12833,-30150,-12849,-30143,-12864,-30137,-12880,-30130,-12895,-30124,-12910,-30117,-12926,-30110,-12941,-30104,-12957,-30097,-12972,-30091,-12987,-30084,-13003,-30077,-13018,-30071,-13034,-30064,-13049,-30057,-13064,-30051,-13080,-30044,-13095,-30037,-13110,-30031,-13126,-30024,-13141,-30017,-13156,-30010,-13172,-30004,-13187,-29997,-13202,-29990,-13218,-29984,-13233,-29977,-13248,-29970,-13264,-29963,-13279,-29956,-13294,-29950,-13310,-29943,-13325,-29936,-13340,-29929,-13356,-29922,-13371,-29916,-13386,-29909,-13401,-29902,-13417,-29895,-13432,-29888,-13447,-29881,-13463,-29874,-13478,-29867,-13493,-29861,-13508,-29854,-13524,-29847,-13539,-29840,-13554,-29833,-13569,-29826,-13585,-29819,-13600,-29812,-13615,-29805,-13630,-29798,-13646,-29791,-13661,-29784,-13676,-29777,-13691,-29770,-13707,-29763,-13722,-29756,-13737,-29749,-13752,-29742,-13767,-29735,-13783,-29728,-13798,-29721,-13813,-29714,-13828,-29707,-13843,-29700,-13859,-29693,-13874,-29686,-13889,-29679,-13904,-29671,-13919,-29664,-13934,-29657,-13950,-29650,-13965,-29643,-13980,-29636,-13995,-29629,-14010,-29622,-14025,-29614,-14040,-29607,-14056,-29600,-14071,-29593,-14086,-29586,-14101,-29578,-14116,-29571,-14131,-29564,-14146,-29557,-14161,-29549,-14177,-29542,-14192,-29535,-14207,-29528,-14222,-29520,-14237,-29513,-14252,-29506,-14267,-29499,-14282,-29491,-14297,-29484,-14312,-29477,-14327,-29469,-14343,-29462,-14358,-29455,-14373,-29447,-14388,-29440,-14403,-29433,-14418,-29425,-14433,-29418,-14448,-29411,-14463,-29403,-14478,-29396,-14493,-29388,-14508,-29381,-14523,-29373,-14538,-29366,-14553,-29359,-14568,-29351,-14583,-29344,-14598,-29336,-14613,-29329,-14628,-29321,-14643,-29314,-14658,-29306,-14673,-29299,-14688,-29291,-14703,-29284,-14718,-29276,-14733,-29269,-14748,-29261,-14763,-29254,-14778,-29246,-14793,-29239,-14808,-29231,-14823,-29223,-14838,-29216,-14853,-29208,-14867,-29201,-14882,-29193,-14897,-29185,-14912,-29178,-14927,-29170,-14942,-29163,-14957,-29155,-14972,-29147,-14987,-29140,-15002,-29132,-15017,-29124,-15031,-29117,-15046,-29109,-15061,-29101,-15076,-29093,-15091,-29086,-15106,-29078,-15121,-29070,-15136,-29063,-15150,-29055,-15165,-29047,-15180,-29039,-15195,-29032,-15210,-29024,-15225,-29016,-15239,-29008,-15254,-29000,-15269,-28993,-15284,-28985,-15299,-28977,-15314,-28969,-15328,-28961,-15343,-28954,-15358,-28946,-15373,-28938,-15388,-28930,-15402,-28922,-15417,-28914,-15432,-28906,-15447,-28898,-15462,-28891,-15476,-28883,-15491,-28875,-15506,-28867,-15521,-28859,-15535,-28851,-15550,-28843,-15565,-28835,-15580,-28827,-15594,-28819,-15609,-28811,-15624,-28803,-15639,-28795,-15653,-28787,-15668,-28779,-15683,-28771,-15697,-28763,-15712,-28755,-15727,-28747,-15741,-28739,-15756,-28731,-15771,-28723,-15786,-28715,-15800,-28707,-15815,-28699,-15830,-28691,-15844,-28682,-15859,-28674,-15874,-28666,-15888,-28658,-15903,-28650,-15918,-28642,-15932,-28634,-15947,-28626,-15961,-28617,-15976,-28609,-15991,-28601,-16005,-28593,-16020,-28585,-16035,-28576,-16049,-28568,-16064,-28560,-16078,-28552,-16093,-28544,-16108,-28535,-16122,-28527,-16137,-28519,-16151,-28511,-16166,-28502,-16180,-28494,-16195,-28486,-16210,-28478,-16224,-28469,-16239,-28461,-16253,-28453,-16268,-28444,-16282,-28436,-16297,-28428,-16311,-28419,-16326,-28411,-16340,-28403,-16355,-28394,-16369,-28386};
-
-int16_t twb12288[8192] __attribute__((aligned(32))) = {32767,0,32766,-34,32766,-68,32766,-101,32766,-135,32766,-168,32766,-202,32766,-235,32765,-269,32765,-302,32765,-336,32764,-369,32764,-403,32764,-436,32763,-470,32763,-503,32762,-537,32762,-570,32761,-604,32760,-637,32760,-671,32759,-704,32758,-738,32757,-771,32757,-805,32756,-838,32755,-872,32754,-905,32753,-939,32752,-972,32751,-1006,32750,-1039,32749,-1073,32748,-1106,32747,-1140,32746,-1173,32744,-1207,32743,-1240,32742,-1274,32740,-1307,32739,-1340,32738,-1374,32736,-1407,32735,-1441,32733,-1474,32732,-1508,32730,-1541,32729,-1575,32727,-1608,32725,-1642,32724,-1675,32722,-1709,32720,-1742,32718,-1776,32717,-1809,32715,-1843,32713,-1876,32711,-1909,32709,-1943,32707,-1976,32705,-2010,32703,-2043,32701,-2077,32699,-2110,32696,-2144,32694,-2177,32692,-2210,32690,-2244,32687,-2277,32685,-2311,32683,-2344,32680,-2378,32678,-2411,32675,-2444,32673,-2478,32670,-2511,32668,-2545,32665,-2578,32662,-2611,32660,-2645,32657,-2678,32654,-2712,32651,-2745,32649,-2778,32646,-2812,32643,-2845,32640,-2879,32637,-2912,32634,-2945,32631,-2979,32628,-3012,32625,-3045,32622,-3079,32618,-3112,32615,-3146,32612,-3179,32609,-3212,32605,-3246,32602,-3279,32599,-3312,32595,-3346,32592,-3379,32588,-3412,32585,-3446,32581,-3479,32578,-3512,32574,-3546,32571,-3579,32567,-3612,32563,-3645,32559,-3679,32556,-3712,32552,-3745,32548,-3779,32544,-3812,32540,-3845,32536,-3878,32532,-3912,32528,-3945,32524,-3978,32520,-4012,32516,-4045,32512,-4078,32508,-4111,32503,-4145,32499,-4178,32495,-4211,32491,-4244,32486,-4277,32482,-4311,32477,-4344,32473,-4377,32468,-4410,32464,-4444,32459,-4477,32455,-4510,32450,-4543,32445,-4576,32441,-4609,32436,-4643,32431,-4676,32426,-4709,32422,-4742,32417,-4775,32412,-4808,32407,-4842,32402,-4875,32397,-4908,32392,-4941,32387,-4974,32382,-5007,32377,-5040,32371,-5073,32366,-5107,32361,-5140,32356,-5173,32350,-5206,32345,-5239,32340,-5272,32334,-5305,32329,-5338,32323,-5371,32318,-5404,32312,-5437,32307,-5470,32301,-5503,32295,-5536,32290,-5569,32284,-5602,32278,-5635,32273,-5668,32267,-5701,32261,-5734,32255,-5767,32249,-5800,32243,-5833,32237,-5866,32231,-5899,32225,-5932,32219,-5965,32213,-5998,32207,-6031,32201,-6064,32194,-6097,32188,-6130,32182,-6163,32176,-6196,32169,-6229,32163,-6262,32156,-6294,32150,-6327,32143,-6360,32137,-6393,32130,-6426,32124,-6459,32117,-6492,32110,-6524,32104,-6557,32097,-6590,32090,-6623,32084,-6656,32077,-6689,32070,-6721,32063,-6754,32056,-6787,32049,-6820,32042,-6852,32035,-6885,32028,-6918,32021,-6951,32014,-6983,32007,-7016,31999,-7049,31992,-7082,31985,-7114,31978,-7147,31970,-7180,31963,-7212,31956,-7245,31948,-7278,31941,-7311,31933,-7343,31926,-7376,31918,-7408,31911,-7441,31903,-7474,31895,-7506,31888,-7539,31880,-7572,31872,-7604,31864,-7637,31856,-7669,31849,-7702,31841,-7734,31833,-7767,31825,-7800,31817,-7832,31809,-7865,31801,-7897,31793,-7930,31785,-7962,31776,-7995,31768,-8027,31760,-8060,31752,-8092,31743,-8125,31735,-8157,31727,-8190,31718,-8222,31710,-8254,31701,-8287,31693,-8319,31684,-8352,31676,-8384,31667,-8416,31659,-8449,31650,-8481,31641,-8514,31633,-8546,31624,-8578,31615,-8611,31606,-8643,31597,-8675,31588,-8708,31580,-8740,31571,-8772,31562,-8804,31553,-8837,31544,-8869,31534,-8901,31525,-8933,31516,-8966,31507,-8998,31498,-9030,31489,-9062,31479,-9095,31470,-9127,31461,-9159,31451,-9191,31442,-9223,31432,-9255,31423,-9288,31413,-9320,31404,-9352,31394,-9384,31385,-9416,31375,-9448,31365,-9480,31356,-9512,31346,-9544,31336,-9576,31326,-9608,31316,-9640,31307,-9672,31297,-9704,31287,-9736,31277,-9768,31267,-9800,31257,-9832,31247,-9864,31236,-9896,31226,-9928,31216,-9960,31206,-9992,31196,-10024,31185,-10056,31175,-10088,31165,-10120,31154,-10152,31144,-10183,31134,-10215,31123,-10247,31113,-10279,31102,-10311,31092,-10343,31081,-10374,31070,-10406,31060,-10438,31049,-10470,31038,-10501,31028,-10533,31017,-10565,31006,-10597,30995,-10628,30984,-10660,30973,-10692,30962,-10723,30951,-10755,30940,-10787,30929,-10818,30918,-10850,30907,-10881,30896,-10913,30885,-10945,30874,-10976,30862,-11008,30851,-11039,30840,-11071,30828,-11102,30817,-11134,30806,-11165,30794,-11197,30783,-11228,30771,-11260,30760,-11291,30748,-11323,30737,-11354,30725,-11386,30713,-11417,30702,-11449,30690,-11480,30678,-11511,30666,-11543,30655,-11574,30643,-11605,30631,-11637,30619,-11668,30607,-11699,30595,-11731,30583,-11762,30571,-11793,30559,-11824,30547,-11856,30535,-11887,30522,-11918,30510,-11949,30498,-11981,30486,-12012,30473,-12043,30461,-12074,30449,-12105,30436,-12136,30424,-12167,30411,-12199,30399,-12230,30386,-12261,30374,-12292,30361,-12323,30349,-12354,30336,-12385,30323,-12416,30311,-12447,30298,-12478,30285,-12509,30272,-12540,30259,-12571,30247,-12602,30234,-12633,30221,-12664,30208,-12695,30195,-12725,30182,-12756,30169,-12787,30156,-12818,30142,-12849,30129,-12880,30116,-12910,30103,-12941,30090,-12972,30076,-13003,30063,-13034,30050,-13064,30036,-13095,30023,-13126,30009,-13156,29996,-13187,29983,-13218,29969,-13248,29955,-13279,29942,-13310,29928,-13340,29915,-13371,29901,-13401,29887,-13432,29873,-13463,29860,-13493,29846,-13524,29832,-13554,29818,-13585,29804,-13615,29790,-13646,29776,-13676,29762,-13707,29748,-13737,29734,-13767,29720,-13798,29706,-13828,29692,-13859,29678,-13889,29663,-13919,29649,-13950,29635,-13980,29621,-14010,29606,-14040,29592,-14071,29577,-14101,29563,-14131,29548,-14161,29534,-14192,29519,-14222,29505,-14252,29490,-14282,29476,-14312,29461,-14343,29446,-14373,29432,-14403,29417,-14433,29402,-14463,29387,-14493,29372,-14523,29358,-14553,29343,-14583,29328,-14613,29313,-14643,29298,-14673,29283,-14703,29268,-14733,29253,-14763,29238,-14793,29222,-14823,29207,-14853,29192,-14882,29177,-14912,29162,-14942,29146,-14972,29131,-15002,29116,-15031,29100,-15061,29085,-15091,29069,-15121,29054,-15150,29038,-15180,29023,-15210,29007,-15239,28992,-15269,28976,-15299,28960,-15328,28945,-15358,28929,-15388,28913,-15417,28897,-15447,28882,-15476,28866,-15506,28850,-15535,28834,-15565,28818,-15594,28802,-15624,28786,-15653,28770,-15683,28754,-15712,28738,-15741,28722,-15771,28706,-15800,28690,-15830,28673,-15859,28657,-15888,28641,-15918,28625,-15947,28608,-15976,28592,-16005,28575,-16035,28559,-16064,28543,-16093,28526,-16122,28510,-16151,28493,-16180,28477,-16210,28460,-16239,28443,-16268,28427,-16297,28410,-16326,28393,-16355,28377,-16384,28360,-16413,28343,-16442,28326,-16471,28309,-16500,28292,-16529,28275,-16558,28259,-16587,28242,-16616,28225,-16644,28208,-16673,28190,-16702,28173,-16731,28156,-16760,28139,-16789,28122,-16817,28105,-16846,28087,-16875,28070,-16904,28053,-16932,28036,-16961,28018,-16990,28001,-17018,27983,-17047,27966,-17075,27948,-17104,27931,-17133,27913,-17161,27896,-17190,27878,-17218,27861,-17247,27843,-17275,27825,-17304,27808,-17332,27790,-17361,27772,-17389,27754,-17417,27736,-17446,27719,-17474,27701,-17502,27683,-17531,27665,-17559,27647,-17587,27629,-17616,27611,-17644,27593,-17672,27575,-17700,27557,-17728,27538,-17757,27520,-17785,27502,-17813,27484,-17841,27466,-17869,27447,-17897,27429,-17925,27411,-17953,27392,-17981,27374,-18009,27355,-18037,27337,-18065,27319,-18093,27300,-18121,27281,-18149,27263,-18177,27244,-18205,27226,-18233,27207,-18261,27188,-18288,27170,-18316,27151,-18344,27132,-18372,27113,-18399,27094,-18427,27076,-18455,27057,-18483,27038,-18510,27019,-18538,27000,-18565,26981,-18593,26962,-18621,26943,-18648,26924,-18676,26905,-18703,26885,-18731,26866,-18758,26847,-18786,26828,-18813,26809,-18841,26789,-18868,26770,-18895,26751,-18923,26731,-18950,26712,-18977,26692,-19005,26673,-19032,26654,-19059,26634,-19087,26615,-19114,26595,-19141,26575,-19168,26556,-19195,26536,-19222,26516,-19250,26497,-19277,26477,-19304,26457,-19331,26437,-19358,26418,-19385,26398,-19412,26378,-19439,26358,-19466,26338,-19493,26318,-19520,26298,-19547,26278,-19574,26258,-19600,26238,-19627,26218,-19654,26198,-19681,26178,-19708,26158,-19734,26137,-19761,26117,-19788,26097,-19815,26077,-19841,26056,-19868,26036,-19895,26016,-19921,25995,-19948,25975,-19974,25954,-20001,25934,-20027,25913,-20054,25893,-20080,25872,-20107,25852,-20133,25831,-20160,25811,-20186,25790,-20213,25769,-20239,25749,-20265,25728,-20292,25707,-20318,25686,-20344,25665,-20370,25645,-20397,25624,-20423,25603,-20449,25582,-20475,25561,-20501,25540,-20528,25519,-20554,25498,-20580,25477,-20606,25456,-20632,25435,-20658,25414,-20684,25392,-20710,25371,-20736,25350,-20762,25329,-20788,25307,-20814,25286,-20839,25265,-20865,25243,-20891,25222,-20917,25201,-20943,25179,-20968,25158,-20994,25136,-21020,25115,-21046,25093,-21071,25072,-21097,25050,-21123,25029,-21148,25007,-21174,24985,-21199,24964,-21225,24942,-21250,24920,-21276,24898,-21301,24877,-21327,24855,-21352,24833,-21378,24811,-21403,24789,-21428,24767,-21454,24745,-21479,24723,-21504,24701,-21530,24679,-21555,24657,-21580,24635,-21605,24613,-21630,24591,-21656,24569,-21681,24546,-21706,24524,-21731,24502,-21756,24480,-21781,24457,-21806,24435,-21831,24413,-21856,24390,-21881,24368,-21906,24346,-21931,24323,-21956,24301,-21981,24278,-22005,24256,-22030,24233,-22055,24211,-22080,24188,-22105,24165,-22129,24143,-22154,24120,-22179,24097,-22203,24075,-22228,24052,-22253,24029,-22277,24006,-22302,23984,-22326,23961,-22351,23938,-22375,23915,-22400,23892,-22424,23869,-22449,23846,-22473,23823,-22497,23800,-22522,23777,-22546,23754,-22570,23731,-22595,23708,-22619,23685,-22643,23661,-22667,23638,-22692,23615,-22716,23592,-22740,23569,-22764,23545,-22788,23522,-22812,23499,-22836,23475,-22860,23452,-22884,23428,-22908,23405,-22932,23382,-22956,23358,-22980,23335,-23004,23311,-23028,23287,-23051,23264,-23075,23240,-23099,23217,-23123,23193,-23147,23169,-23170,23146,-23194,23122,-23218,23098,-23241,23074,-23265,23050,-23288,23027,-23312,23003,-23336,22979,-23359,22955,-23383,22931,-23406,22907,-23429,22883,-23453,22859,-23476,22835,-23500,22811,-23523,22787,-23546,22763,-23570,22739,-23593,22715,-23616,22691,-23639,22666,-23662,22642,-23686,22618,-23709,22594,-23732,22569,-23755,22545,-23778,22521,-23801,22496,-23824,22472,-23847,22448,-23870,22423,-23893,22399,-23916,22374,-23939,22350,-23962,22325,-23985,22301,-24007,22276,-24030,22252,-24053,22227,-24076,22202,-24098,22178,-24121,22153,-24144,22128,-24166,22104,-24189,22079,-24212,22054,-24234,22029,-24257,22004,-24279,21980,-24302,21955,-24324,21930,-24347,21905,-24369,21880,-24391,21855,-24414,21830,-24436,21805,-24458,21780,-24481,21755,-24503,21730,-24525,21705,-24547,21680,-24570,21655,-24592,21629,-24614,21604,-24636,21579,-24658,21554,-24680,21529,-24702,21503,-24724,21478,-24746,21453,-24768,21427,-24790,21402,-24812,21377,-24834,21351,-24856,21326,-24878,21300,-24899,21275,-24921,21249,-24943,21224,-24965,21198,-24986,21173,-25008,21147,-25030,21122,-25051,21096,-25073,21070,-25094,21045,-25116,21019,-25137,20993,-25159,20967,-25180,20942,-25202,20916,-25223,20890,-25244,20864,-25266,20838,-25287,20813,-25308,20787,-25330,20761,-25351,20735,-25372,20709,-25393,20683,-25415,20657,-25436,20631,-25457,20605,-25478,20579,-25499,20553,-25520,20527,-25541,20500,-25562,20474,-25583,20448,-25604,20422,-25625,20396,-25646,20369,-25666,20343,-25687,20317,-25708,20291,-25729,20264,-25750,20238,-25770,20212,-25791,20185,-25812,20159,-25832,20132,-25853,20106,-25873,20079,-25894,20053,-25914,20026,-25935,20000,-25955,19973,-25976,19947,-25996,19920,-26017,19894,-26037,19867,-26057,19840,-26078,19814,-26098,19787,-26118,19760,-26138,19733,-26159,19707,-26179,19680,-26199,19653,-26219,19626,-26239,19599,-26259,19573,-26279,19546,-26299,19519,-26319,19492,-26339,19465,-26359,19438,-26379,19411,-26399,19384,-26419,19357,-26438,19330,-26458,19303,-26478,19276,-26498,19249,-26517,19221,-26537,19194,-26557,19167,-26576,19140,-26596,19113,-26616,19086,-26635,19058,-26655,19031,-26674,19004,-26693,18976,-26713,18949,-26732,18922,-26752,18894,-26771,18867,-26790,18840,-26810,18812,-26829,18785,-26848,18757,-26867,18730,-26886,18702,-26906,18675,-26925,18647,-26944,18620,-26963,18592,-26982,18564,-27001,18537,-27020,18509,-27039,18482,-27058,18454,-27077,18426,-27095,18398,-27114,18371,-27133,18343,-27152,18315,-27171,18287,-27189,18260,-27208,18232,-27227,18204,-27245,18176,-27264,18148,-27282,18120,-27301,18092,-27320,18064,-27338,18036,-27356,18008,-27375,17980,-27393,17952,-27412,17924,-27430,17896,-27448,17868,-27467,17840,-27485,17812,-27503,17784,-27521,17756,-27539,17727,-27558,17699,-27576,17671,-27594,17643,-27612,17615,-27630,17586,-27648,17558,-27666,17530,-27684,17501,-27702,17473,-27720,17445,-27737,17416,-27755,17388,-27773,17360,-27791,17331,-27809,17303,-27826,17274,-27844,17246,-27862,17217,-27879,17189,-27897,17160,-27914,17132,-27932,17103,-27949,17074,-27967,17046,-27984,17017,-28002,16989,-28019,16960,-28037,16931,-28054,16903,-28071,16874,-28088,16845,-28106,16816,-28123,16788,-28140,16759,-28157,16730,-28174,16701,-28191,16672,-28209,16643,-28226,16615,-28243,16586,-28260,16557,-28276,16528,-28293,16499,-28310,16470,-28327,16441,-28344,16412,-28361,16383,-28378,16354,-28394,16325,-28411,16296,-28428,16267,-28444,16238,-28461,16209,-28478,16179,-28494,16150,-28511,16121,-28527,16092,-28544,16063,-28560,16034,-28576,16004,-28593,15975,-28609,15946,-28626,15917,-28642,15887,-28658,15858,-28674,15829,-28691,15799,-28707,15770,-28723,15740,-28739,15711,-28755,15682,-28771,15652,-28787,15623,-28803,15593,-28819,15564,-28835,15534,-28851,15505,-28867,15475,-28883,15446,-28898,15416,-28914,15387,-28930,15357,-28946,15327,-28961,15298,-28977,15268,-28993,15238,-29008,15209,-29024,15179,-29039,15149,-29055,15120,-29070,15090,-29086,15060,-29101,15030,-29117,15001,-29132,14971,-29147,14941,-29163,14911,-29178,14881,-29193,14852,-29208,14822,-29223,14792,-29239,14762,-29254,14732,-29269,14702,-29284,14672,-29299,14642,-29314,14612,-29329,14582,-29344,14552,-29359,14522,-29373,14492,-29388,14462,-29403,14432,-29418,14402,-29433,14372,-29447,14342,-29462,14311,-29477,14281,-29491,14251,-29506,14221,-29520,14191,-29535,14160,-29549,14130,-29564,14100,-29578,14070,-29593,14039,-29607,14009,-29622,13979,-29636,13949,-29650,13918,-29664,13888,-29679,13858,-29693,13827,-29707,13797,-29721,13766,-29735,13736,-29749,13706,-29763,13675,-29777,13645,-29791,13614,-29805,13584,-29819,13553,-29833,13523,-29847,13492,-29861,13462,-29874,13431,-29888,13400,-29902,13370,-29916,13339,-29929,13309,-29943,13278,-29956,13247,-29970,13217,-29984,13186,-29997,13155,-30010,13125,-30024,13094,-30037,13063,-30051,13033,-30064,13002,-30077,12971,-30091,12940,-30104,12909,-30117,12879,-30130,12848,-30143,12817,-30157,12786,-30170,12755,-30183,12724,-30196,12694,-30209,12663,-30222,12632,-30235,12601,-30248,12570,-30260,12539,-30273,12508,-30286,12477,-30299,12446,-30312,12415,-30324,12384,-30337,12353,-30350,12322,-30362,12291,-30375,12260,-30387,12229,-30400,12198,-30412,12166,-30425,12135,-30437,12104,-30450,12073,-30462,12042,-30474,12011,-30487,11980,-30499,11948,-30511,11917,-30523,11886,-30536,11855,-30548,11823,-30560,11792,-30572,11761,-30584,11730,-30596,11698,-30608,11667,-30620,11636,-30632,11604,-30644,11573,-30656,11542,-30667,11510,-30679,11479,-30691,11448,-30703,11416,-30714,11385,-30726,11353,-30738,11322,-30749,11290,-30761,11259,-30772,11227,-30784,11196,-30795,11164,-30807,11133,-30818,11101,-30829,11070,-30841,11038,-30852,11007,-30863,10975,-30875,10944,-30886,10912,-30897,10880,-30908,10849,-30919,10817,-30930,10786,-30941,10754,-30952,10722,-30963,10691,-30974,10659,-30985,10627,-30996,10596,-31007,10564,-31018,10532,-31029,10500,-31039,10469,-31050,10437,-31061,10405,-31071,10373,-31082,10342,-31093,10310,-31103,10278,-31114,10246,-31124,10214,-31135,10182,-31145,10151,-31155,10119,-31166,10087,-31176,10055,-31186,10023,-31197,9991,-31207,9959,-31217,9927,-31227,9895,-31237,9863,-31248,9831,-31258,9799,-31268,9767,-31278,9735,-31288,9703,-31298,9671,-31308,9639,-31317,9607,-31327,9575,-31337,9543,-31347,9511,-31357,9479,-31366,9447,-31376,9415,-31386,9383,-31395,9351,-31405,9319,-31414,9287,-31424,9254,-31433,9222,-31443,9190,-31452,9158,-31462,9126,-31471,9094,-31480,9061,-31490,9029,-31499,8997,-31508,8965,-31517,8932,-31526,8900,-31535,8868,-31545,8836,-31554,8803,-31563,8771,-31572,8739,-31581,8707,-31589,8674,-31598,8642,-31607,8610,-31616,8577,-31625,8545,-31634,8513,-31642,8480,-31651,8448,-31660,8415,-31668,8383,-31677,8351,-31685,8318,-31694,8286,-31702,8253,-31711,8221,-31719,8189,-31728,8156,-31736,8124,-31744,8091,-31753,8059,-31761,8026,-31769,7994,-31777,7961,-31786,7929,-31794,7896,-31802,7864,-31810,7831,-31818,7799,-31826,7766,-31834,7733,-31842,7701,-31850,7668,-31857,7636,-31865,7603,-31873,7571,-31881,7538,-31889,7505,-31896,7473,-31904,7440,-31912,7407,-31919,7375,-31927,7342,-31934,7310,-31942,7277,-31949,7244,-31957,7211,-31964,7179,-31971,7146,-31979,7113,-31986,7081,-31993,7048,-32000,7015,-32008,6982,-32015,6950,-32022,6917,-32029,6884,-32036,6851,-32043,6819,-32050,6786,-32057,6753,-32064,6720,-32071,6688,-32078,6655,-32085,6622,-32091,6589,-32098,6556,-32105,6523,-32111,6491,-32118,6458,-32125,6425,-32131,6392,-32138,6359,-32144,6326,-32151,6293,-32157,6261,-32164,6228,-32170,6195,-32177,6162,-32183,6129,-32189,6096,-32195,6063,-32202,6030,-32208,5997,-32214,5964,-32220,5931,-32226,5898,-32232,5865,-32238,5832,-32244,5799,-32250,5766,-32256,5733,-32262,5700,-32268,5667,-32274,5634,-32279,5601,-32285,5568,-32291,5535,-32296,5502,-32302,5469,-32308,5436,-32313,5403,-32319,5370,-32324,5337,-32330,5304,-32335,5271,-32341,5238,-32346,5205,-32351,5172,-32357,5139,-32362,5106,-32367,5072,-32372,5039,-32378,5006,-32383,4973,-32388,4940,-32393,4907,-32398,4874,-32403,4841,-32408,4807,-32413,4774,-32418,4741,-32423,4708,-32427,4675,-32432,4642,-32437,4608,-32442,4575,-32446,4542,-32451,4509,-32456,4476,-32460,4443,-32465,4409,-32469,4376,-32474,4343,-32478,4310,-32483,4276,-32487,4243,-32492,4210,-32496,4177,-32500,4144,-32504,4110,-32509,4077,-32513,4044,-32517,4011,-32521,3977,-32525,3944,-32529,3911,-32533,3877,-32537,3844,-32541,3811,-32545,3778,-32549,3744,-32553,3711,-32557,3678,-32560,3644,-32564,3611,-32568,3578,-32572,3545,-32575,3511,-32579,3478,-32582,3445,-32586,3411,-32589,3378,-32593,3345,-32596,3311,-32600,3278,-32603,3245,-32606,3211,-32610,3178,-32613,3145,-32616,3111,-32619,3078,-32623,3044,-32626,3011,-32629,2978,-32632,2944,-32635,2911,-32638,2878,-32641,2844,-32644,2811,-32647,2777,-32650,2744,-32652,2711,-32655,2677,-32658,2644,-32661,2610,-32663,2577,-32666,2544,-32669,2510,-32671,2477,-32674,2443,-32676,2410,-32679,2377,-32681,2343,-32684,2310,-32686,2276,-32688,2243,-32691,2209,-32693,2176,-32695,2143,-32697,2109,-32700,2076,-32702,2042,-32704,2009,-32706,1975,-32708,1942,-32710,1908,-32712,1875,-32714,1842,-32716,1808,-32718,1775,-32719,1741,-32721,1708,-32723,1674,-32725,1641,-32726,1607,-32728,1574,-32730,1540,-32731,1507,-32733,1473,-32734,1440,-32736,1406,-32737,1373,-32739,1339,-32740,1306,-32741,1273,-32743,1239,-32744,1206,-32745,1172,-32747,1139,-32748,1105,-32749,1072,-32750,1038,-32751,1005,-32752,971,-32753,938,-32754,904,-32755,871,-32756,837,-32757,804,-32758,770,-32758,737,-32759,703,-32760,670,-32761,636,-32761,603,-32762,569,-32763,536,-32763,502,-32764,469,-32764,435,-32765,402,-32765,368,-32765,335,-32766,301,-32766,268,-32766,234,-32767,201,-32767,167,-32767,134,-32767,100,-32767,67,-32767,33,-32767,0,-32767,-34,-32767,-68,-32767,-101,-32767,-135,-32767,-168,-32767,-202,-32767,-235,-32767,-269,-32766,-302,-32766,-336,-32766,-369,-32765,-403,-32765,-436,-32765,-470,-32764,-503,-32764,-537,-32763,-570,-32763,-604,-32762,-637,-32761,-671,-32761,-704,-32760,-738,-32759,-771,-32758,-805,-32758,-838,-32757,-872,-32756,-905,-32755,-939,-32754,-972,-32753,-1006,-32752,-1039,-32751,-1073,-32750,-1106,-32749,-1140,-32748,-1173,-32747,-1207,-32745,-1240,-32744,-1274,-32743,-1307,-32741,-1340,-32740,-1374,-32739,-1407,-32737,-1441,-32736,-1474,-32734,-1508,-32733,-1541,-32731,-1575,-32730,-1608,-32728,-1642,-32726,-1675,-32725,-1709,-32723,-1742,-32721,-1776,-32719,-1809,-32718,-1843,-32716,-1876,-32714,-1909,-32712,-1943,-32710,-1976,-32708,-2010,-32706,-2043,-32704,-2077,-32702,-2110,-32700,-2144,-32697,-2177,-32695,-2210,-32693,-2244,-32691,-2277,-32688,-2311,-32686,-2344,-32684,-2378,-32681,-2411,-32679,-2444,-32676,-2478,-32674,-2511,-32671,-2545,-32669,-2578,-32666,-2611,-32663,-2645,-32661,-2678,-32658,-2712,-32655,-2745,-32652,-2778,-32650,-2812,-32647,-2845,-32644,-2879,-32641,-2912,-32638,-2945,-32635,-2979,-32632,-3012,-32629,-3045,-32626,-3079,-32623,-3112,-32619,-3146,-32616,-3179,-32613,-3212,-32610,-3246,-32606,-3279,-32603,-3312,-32600,-3346,-32596,-3379,-32593,-3412,-32589,-3446,-32586,-3479,-32582,-3512,-32579,-3546,-32575,-3579,-32572,-3612,-32568,-3645,-32564,-3679,-32560,-3712,-32557,-3745,-32553,-3779,-32549,-3812,-32545,-3845,-32541,-3878,-32537,-3912,-32533,-3945,-32529,-3978,-32525,-4012,-32521,-4045,-32517,-4078,-32513,-4111,-32509,-4145,-32504,-4178,-32500,-4211,-32496,-4244,-32492,-4277,-32487,-4311,-32483,-4344,-32478,-4377,-32474,-4410,-32469,-4444,-32465,-4477,-32460,-4510,-32456,-4543,-32451,-4576,-32446,-4609,-32442,-4643,-32437,-4676,-32432,-4709,-32427,-4742,-32423,-4775,-32418,-4808,-32413,-4842,-32408,-4875,-32403,-4908,-32398,-4941,-32393,-4974,-32388,-5007,-32383,-5040,-32378,-5073,-32372,-5107,-32367,-5140,-32362,-5173,-32357,-5206,-32351,-5239,-32346,-5272,-32341,-5305,-32335,-5338,-32330,-5371,-32324,-5404,-32319,-5437,-32313,-5470,-32308,-5503,-32302,-5536,-32296,-5569,-32291,-5602,-32285,-5635,-32279,-5668,-32274,-5701,-32268,-5734,-32262,-5767,-32256,-5800,-32250,-5833,-32244,-5866,-32238,-5899,-32232,-5932,-32226,-5965,-32220,-5998,-32214,-6031,-32208,-6064,-32202,-6097,-32195,-6130,-32189,-6163,-32183,-6196,-32177,-6229,-32170,-6262,-32164,-6294,-32157,-6327,-32151,-6360,-32144,-6393,-32138,-6426,-32131,-6459,-32125,-6492,-32118,-6524,-32111,-6557,-32105,-6590,-32098,-6623,-32091,-6656,-32085,-6689,-32078,-6721,-32071,-6754,-32064,-6787,-32057,-6820,-32050,-6852,-32043,-6885,-32036,-6918,-32029,-6951,-32022,-6983,-32015,-7016,-32008,-7049,-32000,-7082,-31993,-7114,-31986,-7147,-31979,-7180,-31971,-7212,-31964,-7245,-31957,-7278,-31949,-7311,-31942,-7343,-31934,-7376,-31927,-7408,-31919,-7441,-31912,-7474,-31904,-7506,-31896,-7539,-31889,-7572,-31881,-7604,-31873,-7637,-31865,-7669,-31857,-7702,-31850,-7734,-31842,-7767,-31834,-7800,-31826,-7832,-31818,-7865,-31810,-7897,-31802,-7930,-31794,-7962,-31786,-7995,-31777,-8027,-31769,-8060,-31761,-8092,-31753,-8125,-31744,-8157,-31736,-8190,-31728,-8222,-31719,-8254,-31711,-8287,-31702,-8319,-31694,-8352,-31685,-8384,-31677,-8416,-31668,-8449,-31660,-8481,-31651,-8514,-31642,-8546,-31634,-8578,-31625,-8611,-31616,-8643,-31607,-8675,-31598,-8708,-31589,-8740,-31581,-8772,-31572,-8804,-31563,-8837,-31554,-8869,-31545,-8901,-31535,-8933,-31526,-8966,-31517,-8998,-31508,-9030,-31499,-9062,-31490,-9095,-31480,-9127,-31471,-9159,-31462,-9191,-31452,-9223,-31443,-9255,-31433,-9288,-31424,-9320,-31414,-9352,-31405,-9384,-31395,-9416,-31386,-9448,-31376,-9480,-31366,-9512,-31357,-9544,-31347,-9576,-31337,-9608,-31327,-9640,-31317,-9672,-31308,-9704,-31298,-9736,-31288,-9768,-31278,-9800,-31268,-9832,-31258,-9864,-31248,-9896,-31237,-9928,-31227,-9960,-31217,-9992,-31207,-10024,-31197,-10056,-31186,-10088,-31176,-10120,-31166,-10152,-31155,-10183,-31145,-10215,-31135,-10247,-31124,-10279,-31114,-10311,-31103,-10343,-31093,-10374,-31082,-10406,-31071,-10438,-31061,-10470,-31050,-10501,-31039,-10533,-31029,-10565,-31018,-10597,-31007,-10628,-30996,-10660,-30985,-10692,-30974,-10723,-30963,-10755,-30952,-10787,-30941,-10818,-30930,-10850,-30919,-10881,-30908,-10913,-30897,-10945,-30886,-10976,-30875,-11008,-30863,-11039,-30852,-11071,-30841,-11102,-30829,-11134,-30818,-11165,-30807,-11197,-30795,-11228,-30784,-11260,-30772,-11291,-30761,-11323,-30749,-11354,-30738,-11386,-30726,-11417,-30714,-11449,-30703,-11480,-30691,-11511,-30679,-11543,-30667,-11574,-30656,-11605,-30644,-11637,-30632,-11668,-30620,-11699,-30608,-11731,-30596,-11762,-30584,-11793,-30572,-11824,-30560,-11856,-30548,-11887,-30536,-11918,-30523,-11949,-30511,-11981,-30499,-12012,-30487,-12043,-30474,-12074,-30462,-12105,-30450,-12136,-30437,-12167,-30425,-12199,-30412,-12230,-30400,-12261,-30387,-12292,-30375,-12323,-30362,-12354,-30350,-12385,-30337,-12416,-30324,-12447,-30312,-12478,-30299,-12509,-30286,-12540,-30273,-12571,-30260,-12602,-30248,-12633,-30235,-12664,-30222,-12695,-30209,-12725,-30196,-12756,-30183,-12787,-30170,-12818,-30157,-12849,-30143,-12880,-30130,-12910,-30117,-12941,-30104,-12972,-30091,-13003,-30077,-13034,-30064,-13064,-30051,-13095,-30037,-13126,-30024,-13156,-30010,-13187,-29997,-13218,-29984,-13248,-29970,-13279,-29956,-13310,-29943,-13340,-29929,-13371,-29916,-13401,-29902,-13432,-29888,-13463,-29874,-13493,-29861,-13524,-29847,-13554,-29833,-13585,-29819,-13615,-29805,-13646,-29791,-13676,-29777,-13707,-29763,-13737,-29749,-13767,-29735,-13798,-29721,-13828,-29707,-13859,-29693,-13889,-29679,-13919,-29664,-13950,-29650,-13980,-29636,-14010,-29622,-14040,-29607,-14071,-29593,-14101,-29578,-14131,-29564,-14161,-29549,-14192,-29535,-14222,-29520,-14252,-29506,-14282,-29491,-14312,-29477,-14343,-29462,-14373,-29447,-14403,-29433,-14433,-29418,-14463,-29403,-14493,-29388,-14523,-29373,-14553,-29359,-14583,-29344,-14613,-29329,-14643,-29314,-14673,-29299,-14703,-29284,-14733,-29269,-14763,-29254,-14793,-29239,-14823,-29223,-14853,-29208,-14882,-29193,-14912,-29178,-14942,-29163,-14972,-29147,-15002,-29132,-15031,-29117,-15061,-29101,-15091,-29086,-15121,-29070,-15150,-29055,-15180,-29039,-15210,-29024,-15239,-29008,-15269,-28993,-15299,-28977,-15328,-28961,-15358,-28946,-15388,-28930,-15417,-28914,-15447,-28898,-15476,-28883,-15506,-28867,-15535,-28851,-15565,-28835,-15594,-28819,-15624,-28803,-15653,-28787,-15683,-28771,-15712,-28755,-15741,-28739,-15771,-28723,-15800,-28707,-15830,-28691,-15859,-28674,-15888,-28658,-15918,-28642,-15947,-28626,-15976,-28609,-16005,-28593,-16035,-28576,-16064,-28560,-16093,-28544,-16122,-28527,-16151,-28511,-16180,-28494,-16210,-28478,-16239,-28461,-16268,-28444,-16297,-28428,-16326,-28411,-16355,-28394,-16384,-28378,-16413,-28361,-16442,-28344,-16471,-28327,-16500,-28310,-16529,-28293,-16558,-28276,-16587,-28260,-16616,-28243,-16644,-28226,-16673,-28209,-16702,-28191,-16731,-28174,-16760,-28157,-16789,-28140,-16817,-28123,-16846,-28106,-16875,-28088,-16904,-28071,-16932,-28054,-16961,-28037,-16990,-28019,-17018,-28002,-17047,-27984,-17075,-27967,-17104,-27949,-17133,-27932,-17161,-27914,-17190,-27897,-17218,-27879,-17247,-27862,-17275,-27844,-17304,-27826,-17332,-27809,-17361,-27791,-17389,-27773,-17417,-27755,-17446,-27737,-17474,-27720,-17502,-27702,-17531,-27684,-17559,-27666,-17587,-27648,-17616,-27630,-17644,-27612,-17672,-27594,-17700,-27576,-17728,-27558,-17757,-27539,-17785,-27521,-17813,-27503,-17841,-27485,-17869,-27467,-17897,-27448,-17925,-27430,-17953,-27412,-17981,-27393,-18009,-27375,-18037,-27356,-18065,-27338,-18093,-27320,-18121,-27301,-18149,-27282,-18177,-27264,-18205,-27245,-18233,-27227,-18261,-27208,-18288,-27189,-18316,-27171,-18344,-27152,-18372,-27133,-18399,-27114,-18427,-27095,-18455,-27077,-18483,-27058,-18510,-27039,-18538,-27020,-18565,-27001,-18593,-26982,-18621,-26963,-18648,-26944,-18676,-26925,-18703,-26906,-18731,-26886,-18758,-26867,-18786,-26848,-18813,-26829,-18841,-26810,-18868,-26790,-18895,-26771,-18923,-26752,-18950,-26732,-18977,-26713,-19005,-26693,-19032,-26674,-19059,-26655,-19087,-26635,-19114,-26616,-19141,-26596,-19168,-26576,-19195,-26557,-19222,-26537,-19250,-26517,-19277,-26498,-19304,-26478,-19331,-26458,-19358,-26438,-19385,-26419,-19412,-26399,-19439,-26379,-19466,-26359,-19493,-26339,-19520,-26319,-19547,-26299,-19574,-26279,-19600,-26259,-19627,-26239,-19654,-26219,-19681,-26199,-19708,-26179,-19734,-26159,-19761,-26138,-19788,-26118,-19815,-26098,-19841,-26078,-19868,-26057,-19895,-26037,-19921,-26017,-19948,-25996,-19974,-25976,-20001,-25955,-20027,-25935,-20054,-25914,-20080,-25894,-20107,-25873,-20133,-25853,-20160,-25832,-20186,-25812,-20213,-25791,-20239,-25770,-20265,-25750,-20292,-25729,-20318,-25708,-20344,-25687,-20370,-25666,-20397,-25646,-20423,-25625,-20449,-25604,-20475,-25583,-20501,-25562,-20528,-25541,-20554,-25520,-20580,-25499,-20606,-25478,-20632,-25457,-20658,-25436,-20684,-25415,-20710,-25393,-20736,-25372,-20762,-25351,-20788,-25330,-20814,-25308,-20839,-25287,-20865,-25266,-20891,-25244,-20917,-25223,-20943,-25202,-20968,-25180,-20994,-25159,-21020,-25137,-21046,-25116,-21071,-25094,-21097,-25073,-21123,-25051,-21148,-25030,-21174,-25008,-21199,-24986,-21225,-24965,-21250,-24943,-21276,-24921,-21301,-24899,-21327,-24878,-21352,-24856,-21378,-24834,-21403,-24812,-21428,-24790,-21454,-24768,-21479,-24746,-21504,-24724,-21530,-24702,-21555,-24680,-21580,-24658,-21605,-24636,-21630,-24614,-21656,-24592,-21681,-24570,-21706,-24547,-21731,-24525,-21756,-24503,-21781,-24481,-21806,-24458,-21831,-24436,-21856,-24414,-21881,-24391,-21906,-24369,-21931,-24347,-21956,-24324,-21981,-24302,-22005,-24279,-22030,-24257,-22055,-24234,-22080,-24212,-22105,-24189,-22129,-24166,-22154,-24144,-22179,-24121,-22203,-24098,-22228,-24076,-22253,-24053,-22277,-24030,-22302,-24007,-22326,-23985,-22351,-23962,-22375,-23939,-22400,-23916,-22424,-23893,-22449,-23870,-22473,-23847,-22497,-23824,-22522,-23801,-22546,-23778,-22570,-23755,-22595,-23732,-22619,-23709,-22643,-23686,-22667,-23662,-22692,-23639,-22716,-23616,-22740,-23593,-22764,-23570,-22788,-23546,-22812,-23523,-22836,-23500,-22860,-23476,-22884,-23453,-22908,-23429,-22932,-23406,-22956,-23383,-22980,-23359,-23004,-23336,-23028,-23312,-23051,-23288,-23075,-23265,-23099,-23241,-23123,-23218,-23147,-23194,-23170,-23170,-23194,-23147,-23218,-23123,-23241,-23099,-23265,-23075,-23288,-23051,-23312,-23028,-23336,-23004,-23359,-22980,-23383,-22956,-23406,-22932,-23429,-22908,-23453,-22884,-23476,-22860,-23500,-22836,-23523,-22812,-23546,-22788,-23570,-22764,-23593,-22740,-23616,-22716,-23639,-22692,-23662,-22667,-23686,-22643,-23709,-22619,-23732,-22595,-23755,-22570,-23778,-22546,-23801,-22522,-23824,-22497,-23847,-22473,-23870,-22449,-23893,-22424,-23916,-22400,-23939,-22375,-23962,-22351,-23985,-22326,-24007,-22302,-24030,-22277,-24053,-22253,-24076,-22228,-24098,-22203,-24121,-22179,-24144,-22154,-24166,-22129,-24189,-22105,-24212,-22080,-24234,-22055,-24257,-22030,-24279,-22005,-24302,-21981,-24324,-21956,-24347,-21931,-24369,-21906,-24391,-21881,-24414,-21856,-24436,-21831,-24458,-21806,-24481,-21781,-24503,-21756,-24525,-21731,-24547,-21706,-24570,-21681,-24592,-21656,-24614,-21630,-24636,-21605,-24658,-21580,-24680,-21555,-24702,-21530,-24724,-21504,-24746,-21479,-24768,-21454,-24790,-21428,-24812,-21403,-24834,-21378,-24856,-21352,-24878,-21327,-24899,-21301,-24921,-21276,-24943,-21250,-24965,-21225,-24986,-21199,-25008,-21174,-25030,-21148,-25051,-21123,-25073,-21097,-25094,-21071,-25116,-21046,-25137,-21020,-25159,-20994,-25180,-20968,-25202,-20943,-25223,-20917,-25244,-20891,-25266,-20865,-25287,-20839,-25308,-20814,-25330,-20788,-25351,-20762,-25372,-20736,-25393,-20710,-25415,-20684,-25436,-20658,-25457,-20632,-25478,-20606,-25499,-20580,-25520,-20554,-25541,-20528,-25562,-20501,-25583,-20475,-25604,-20449,-25625,-20423,-25646,-20397,-25666,-20370,-25687,-20344,-25708,-20318,-25729,-20292,-25750,-20265,-25770,-20239,-25791,-20213,-25812,-20186,-25832,-20160,-25853,-20133,-25873,-20107,-25894,-20080,-25914,-20054,-25935,-20027,-25955,-20001,-25976,-19974,-25996,-19948,-26017,-19921,-26037,-19895,-26057,-19868,-26078,-19841,-26098,-19815,-26118,-19788,-26138,-19761,-26159,-19734,-26179,-19708,-26199,-19681,-26219,-19654,-26239,-19627,-26259,-19600,-26279,-19574,-26299,-19547,-26319,-19520,-26339,-19493,-26359,-19466,-26379,-19439,-26399,-19412,-26419,-19385,-26438,-19358,-26458,-19331,-26478,-19304,-26498,-19277,-26517,-19250,-26537,-19222,-26557,-19195,-26576,-19168,-26596,-19141,-26616,-19114,-26635,-19087,-26655,-19059,-26674,-19032,-26693,-19005,-26713,-18977,-26732,-18950,-26752,-18923,-26771,-18895,-26790,-18868,-26810,-18841,-26829,-18813,-26848,-18786,-26867,-18758,-26886,-18731,-26906,-18703,-26925,-18676,-26944,-18648,-26963,-18621,-26982,-18593,-27001,-18565,-27020,-18538,-27039,-18510,-27058,-18483,-27077,-18455,-27095,-18427,-27114,-18399,-27133,-18372,-27152,-18344,-27171,-18316,-27189,-18288,-27208,-18261,-27227,-18233,-27245,-18205,-27264,-18177,-27282,-18149,-27301,-18121,-27320,-18093,-27338,-18065,-27356,-18037,-27375,-18009,-27393,-17981,-27412,-17953,-27430,-17925,-27448,-17897,-27467,-17869,-27485,-17841,-27503,-17813,-27521,-17785,-27539,-17757,-27558,-17728,-27576,-17700,-27594,-17672,-27612,-17644,-27630,-17616,-27648,-17587,-27666,-17559,-27684,-17531,-27702,-17502,-27720,-17474,-27737,-17446,-27755,-17417,-27773,-17389,-27791,-17361,-27809,-17332,-27826,-17304,-27844,-17275,-27862,-17247,-27879,-17218,-27897,-17190,-27914,-17161,-27932,-17133,-27949,-17104,-27967,-17075,-27984,-17047,-28002,-17018,-28019,-16990,-28037,-16961,-28054,-16932,-28071,-16904,-28088,-16875,-28106,-16846,-28123,-16817,-28140,-16789,-28157,-16760,-28174,-16731,-28191,-16702,-28209,-16673,-28226,-16644,-28243,-16616,-28260,-16587,-28276,-16558,-28293,-16529,-28310,-16500,-28327,-16471,-28344,-16442,-28361,-16413,-28378,-16384,-28394,-16355,-28411,-16326,-28428,-16297,-28444,-16268,-28461,-16239,-28478,-16210,-28494,-16180,-28511,-16151,-28527,-16122,-28544,-16093,-28560,-16064,-28576,-16035,-28593,-16005,-28609,-15976,-28626,-15947,-28642,-15918,-28658,-15888,-28674,-15859,-28691,-15830,-28707,-15800,-28723,-15771,-28739,-15741,-28755,-15712,-28771,-15683,-28787,-15653,-28803,-15624,-28819,-15594,-28835,-15565,-28851,-15535,-28867,-15506,-28883,-15476,-28898,-15447,-28914,-15417,-28930,-15388,-28946,-15358,-28961,-15328,-28977,-15299,-28993,-15269,-29008,-15239,-29024,-15210,-29039,-15180,-29055,-15150,-29070,-15121,-29086,-15091,-29101,-15061,-29117,-15031,-29132,-15002,-29147,-14972,-29163,-14942,-29178,-14912,-29193,-14882,-29208,-14853,-29223,-14823,-29239,-14793,-29254,-14763,-29269,-14733,-29284,-14703,-29299,-14673,-29314,-14643,-29329,-14613,-29344,-14583,-29359,-14553,-29373,-14523,-29388,-14493,-29403,-14463,-29418,-14433,-29433,-14403,-29447,-14373,-29462,-14343,-29477,-14312,-29491,-14282,-29506,-14252,-29520,-14222,-29535,-14192,-29549,-14161,-29564,-14131,-29578,-14101,-29593,-14071,-29607,-14040,-29622,-14010,-29636,-13980,-29650,-13950,-29664,-13919,-29679,-13889,-29693,-13859,-29707,-13828,-29721,-13798,-29735,-13767,-29749,-13737,-29763,-13707,-29777,-13676,-29791,-13646,-29805,-13615,-29819,-13585,-29833,-13554,-29847,-13524,-29861,-13493,-29874,-13463,-29888,-13432,-29902,-13401,-29916,-13371,-29929,-13340,-29943,-13310,-29956,-13279,-29970,-13248,-29984,-13218,-29997,-13187,-30010,-13156,-30024,-13126,-30037,-13095,-30051,-13064,-30064,-13034,-30077,-13003,-30091,-12972,-30104,-12941,-30117,-12910,-30130,-12880,-30143,-12849,-30157,-12818,-30170,-12787,-30183,-12756,-30196,-12725,-30209,-12695,-30222,-12664,-30235,-12633,-30248,-12602,-30260,-12571,-30273,-12540,-30286,-12509,-30299,-12478,-30312,-12447,-30324,-12416,-30337,-12385,-30350,-12354,-30362,-12323,-30375,-12292,-30387,-12261,-30400,-12230,-30412,-12199,-30425,-12167,-30437,-12136,-30450,-12105,-30462,-12074,-30474,-12043,-30487,-12012,-30499,-11981,-30511,-11949,-30523,-11918,-30536,-11887,-30548,-11856,-30560,-11824,-30572,-11793,-30584,-11762,-30596,-11731,-30608,-11699,-30620,-11668,-30632,-11637,-30644,-11605,-30656,-11574,-30667,-11543,-30679,-11511,-30691,-11480,-30703,-11449,-30714,-11417,-30726,-11386,-30738,-11354,-30749,-11323,-30761,-11291,-30772,-11260,-30784,-11228,-30795,-11197,-30807,-11165,-30818,-11134,-30829,-11102,-30841,-11071,-30852,-11039,-30863,-11008,-30875,-10976,-30886,-10945,-30897,-10913,-30908,-10881,-30919,-10850,-30930,-10818,-30941,-10787,-30952,-10755,-30963,-10723,-30974,-10692,-30985,-10660,-30996,-10628,-31007,-10597,-31018,-10565,-31029,-10533,-31039,-10501,-31050,-10470,-31061,-10438,-31071,-10406,-31082,-10374,-31093,-10343,-31103,-10311,-31114,-10279,-31124,-10247,-31135,-10215,-31145,-10183,-31155,-10152,-31166,-10120,-31176,-10088,-31186,-10056,-31197,-10024,-31207,-9992,-31217,-9960,-31227,-9928,-31237,-9896,-31248,-9864,-31258,-9832,-31268,-9800,-31278,-9768,-31288,-9736,-31298,-9704,-31308,-9672,-31317,-9640,-31327,-9608,-31337,-9576,-31347,-9544,-31357,-9512,-31366,-9480,-31376,-9448,-31386,-9416,-31395,-9384,-31405,-9352,-31414,-9320,-31424,-9288,-31433,-9255,-31443,-9223,-31452,-9191,-31462,-9159,-31471,-9127,-31480,-9095,-31490,-9062,-31499,-9030,-31508,-8998,-31517,-8966,-31526,-8933,-31535,-8901,-31545,-8869,-31554,-8837,-31563,-8804,-31572,-8772,-31581,-8740,-31589,-8708,-31598,-8675,-31607,-8643,-31616,-8611,-31625,-8578,-31634,-8546,-31642,-8514,-31651,-8481,-31660,-8449,-31668,-8416,-31677,-8384,-31685,-8352,-31694,-8319,-31702,-8287,-31711,-8254,-31719,-8222,-31728,-8190,-31736,-8157,-31744,-8125,-31753,-8092,-31761,-8060,-31769,-8027,-31777,-7995,-31786,-7962,-31794,-7930,-31802,-7897,-31810,-7865,-31818,-7832,-31826,-7800,-31834,-7767,-31842,-7734,-31850,-7702,-31857,-7669,-31865,-7637,-31873,-7604,-31881,-7572,-31889,-7539,-31896,-7506,-31904,-7474,-31912,-7441,-31919,-7408,-31927,-7376,-31934,-7343,-31942,-7311,-31949,-7278,-31957,-7245,-31964,-7212,-31971,-7180,-31979,-7147,-31986,-7114,-31993,-7082,-32000,-7049,-32008,-7016,-32015,-6983,-32022,-6951,-32029,-6918,-32036,-6885,-32043,-6852,-32050,-6820,-32057,-6787,-32064,-6754,-32071,-6721,-32078,-6689,-32085,-6656,-32091,-6623,-32098,-6590,-32105,-6557,-32111,-6524,-32118,-6492,-32125,-6459,-32131,-6426,-32138,-6393,-32144,-6360,-32151,-6327,-32157,-6294,-32164,-6262,-32170,-6229,-32177,-6196,-32183,-6163,-32189,-6130,-32195,-6097,-32202,-6064,-32208,-6031,-32214,-5998,-32220,-5965,-32226,-5932,-32232,-5899,-32238,-5866,-32244,-5833,-32250,-5800,-32256,-5767,-32262,-5734,-32268,-5701,-32274,-5668,-32279,-5635,-32285,-5602,-32291,-5569,-32296,-5536,-32302,-5503,-32308,-5470,-32313,-5437,-32319,-5404,-32324,-5371,-32330,-5338,-32335,-5305,-32341,-5272,-32346,-5239,-32351,-5206,-32357,-5173,-32362,-5140,-32367,-5107,-32372,-5073,-32378,-5040,-32383,-5007,-32388,-4974,-32393,-4941,-32398,-4908,-32403,-4875,-32408,-4842,-32413,-4808,-32418,-4775,-32423,-4742,-32427,-4709,-32432,-4676,-32437,-4643,-32442,-4609,-32446,-4576,-32451,-4543,-32456,-4510,-32460,-4477,-32465,-4444,-32469,-4410,-32474,-4377,-32478,-4344,-32483,-4311,-32487,-4277,-32492,-4244,-32496,-4211,-32500,-4178,-32504,-4145,-32509,-4111,-32513,-4078,-32517,-4045,-32521,-4012,-32525,-3978,-32529,-3945,-32533,-3912,-32537,-3878,-32541,-3845,-32545,-3812,-32549,-3779,-32553,-3745,-32557,-3712,-32560,-3679,-32564,-3645,-32568,-3612,-32572,-3579,-32575,-3546,-32579,-3512,-32582,-3479,-32586,-3446,-32589,-3412,-32593,-3379,-32596,-3346,-32600,-3312,-32603,-3279,-32606,-3246,-32610,-3212,-32613,-3179,-32616,-3146,-32619,-3112,-32623,-3079,-32626,-3045,-32629,-3012,-32632,-2979,-32635,-2945,-32638,-2912,-32641,-2879,-32644,-2845,-32647,-2812,-32650,-2778,-32652,-2745,-32655,-2712,-32658,-2678,-32661,-2645,-32663,-2611,-32666,-2578,-32669,-2545,-32671,-2511,-32674,-2478,-32676,-2444,-32679,-2411,-32681,-2378,-32684,-2344,-32686,-2311,-32688,-2277,-32691,-2244,-32693,-2210,-32695,-2177,-32697,-2144,-32700,-2110,-32702,-2077,-32704,-2043,-32706,-2010,-32708,-1976,-32710,-1943,-32712,-1909,-32714,-1876,-32716,-1843,-32718,-1809,-32719,-1776,-32721,-1742,-32723,-1709,-32725,-1675,-32726,-1642,-32728,-1608,-32730,-1575,-32731,-1541,-32733,-1508,-32734,-1474,-32736,-1441,-32737,-1407,-32739,-1374,-32740,-1340,-32741,-1307,-32743,-1274,-32744,-1240,-32745,-1207,-32747,-1173,-32748,-1140,-32749,-1106,-32750,-1073,-32751,-1039,-32752,-1006,-32753,-972,-32754,-939,-32755,-905,-32756,-872,-32757,-838,-32758,-805,-32758,-771,-32759,-738,-32760,-704,-32761,-671,-32761,-637,-32762,-604,-32763,-570,-32763,-537,-32764,-503,-32764,-470,-32765,-436,-32765,-403,-32765,-369,-32766,-336,-32766,-302,-32766,-269,-32767,-235,-32767,-202,-32767,-168,-32767,-135,-32767,-101,-32767,-68,-32767,-34,-32767,-1,-32767,33,-32767,67,-32767,100,-32767,134,-32767,167,-32767,201,-32767,234,-32766,268,-32766,301,-32766,335,-32765,368,-32765,402,-32765,435,-32764,469,-32764,502,-32763,536,-32763,569,-32762,603,-32761,636,-32761,670,-32760,703,-32759,737,-32758,770,-32758,804,-32757,837,-32756,871,-32755,904,-32754,938,-32753,971,-32752,1005,-32751,1038,-32750,1072,-32749,1105,-32748,1139,-32747,1172,-32745,1206,-32744,1239,-32743,1273,-32741,1306,-32740,1339,-32739,1373,-32737,1406,-32736,1440,-32734,1473,-32733,1507,-32731,1540,-32730,1574,-32728,1607,-32726,1641,-32725,1674,-32723,1708,-32721,1741,-32719,1775,-32718,1808,-32716,1842,-32714,1875,-32712,1908,-32710,1942,-32708,1975,-32706,2009,-32704,2042,-32702,2076,-32700,2109,-32697,2143,-32695,2176,-32693,2209,-32691,2243,-32688,2276,-32686,2310,-32684,2343,-32681,2377,-32679,2410,-32676,2443,-32674,2477,-32671,2510,-32669,2544,-32666,2577,-32663,2610,-32661,2644,-32658,2677,-32655,2711,-32652,2744,-32650,2777,-32647,2811,-32644,2844,-32641,2878,-32638,2911,-32635,2944,-32632,2978,-32629,3011,-32626,3044,-32623,3078,-32619,3111,-32616,3145,-32613,3178,-32610,3211,-32606,3245,-32603,3278,-32600,3311,-32596,3345,-32593,3378,-32589,3411,-32586,3445,-32582,3478,-32579,3511,-32575,3545,-32572,3578,-32568,3611,-32564,3644,-32560,3678,-32557,3711,-32553,3744,-32549,3778,-32545,3811,-32541,3844,-32537,3877,-32533,3911,-32529,3944,-32525,3977,-32521,4011,-32517,4044,-32513,4077,-32509,4110,-32504,4144,-32500,4177,-32496,4210,-32492,4243,-32487,4276,-32483,4310,-32478,4343,-32474,4376,-32469,4409,-32465,4443,-32460,4476,-32456,4509,-32451,4542,-32446,4575,-32442,4608,-32437,4642,-32432,4675,-32427,4708,-32423,4741,-32418,4774,-32413,4807,-32408,4841,-32403,4874,-32398,4907,-32393,4940,-32388,4973,-32383,5006,-32378,5039,-32372,5072,-32367,5106,-32362,5139,-32357,5172,-32351,5205,-32346,5238,-32341,5271,-32335,5304,-32330,5337,-32324,5370,-32319,5403,-32313,5436,-32308,5469,-32302,5502,-32296,5535,-32291,5568,-32285,5601,-32279,5634,-32274,5667,-32268,5700,-32262,5733,-32256,5766,-32250,5799,-32244,5832,-32238,5865,-32232,5898,-32226,5931,-32220,5964,-32214,5997,-32208,6030,-32202,6063,-32195,6096,-32189,6129,-32183,6162,-32177,6195,-32170,6228,-32164,6261,-32157,6293,-32151,6326,-32144,6359,-32138,6392,-32131,6425,-32125,6458,-32118,6491,-32111,6523,-32105,6556,-32098,6589,-32091,6622,-32085,6655,-32078,6688,-32071,6720,-32064,6753,-32057,6786,-32050,6819,-32043,6851,-32036,6884,-32029,6917,-32022,6950,-32015,6982,-32008,7015,-32000,7048,-31993,7081,-31986,7113,-31979,7146,-31971,7179,-31964,7211,-31957,7244,-31949,7277,-31942,7310,-31934,7342,-31927,7375,-31919,7407,-31912,7440,-31904,7473,-31896,7505,-31889,7538,-31881,7571,-31873,7603,-31865,7636,-31857,7668,-31850,7701,-31842,7733,-31834,7766,-31826,7799,-31818,7831,-31810,7864,-31802,7896,-31794,7929,-31786,7961,-31777,7994,-31769,8026,-31761,8059,-31753,8091,-31744,8124,-31736,8156,-31728,8189,-31719,8221,-31711,8253,-31702,8286,-31694,8318,-31685,8351,-31677,8383,-31668,8415,-31660,8448,-31651,8480,-31642,8513,-31634,8545,-31625,8577,-31616,8610,-31607,8642,-31598,8674,-31589,8707,-31581,8739,-31572,8771,-31563,8803,-31554,8836,-31545,8868,-31535,8900,-31526,8932,-31517,8965,-31508,8997,-31499,9029,-31490,9061,-31480,9094,-31471,9126,-31462,9158,-31452,9190,-31443,9222,-31433,9254,-31424,9287,-31414,9319,-31405,9351,-31395,9383,-31386,9415,-31376,9447,-31366,9479,-31357,9511,-31347,9543,-31337,9575,-31327,9607,-31317,9639,-31308,9671,-31298,9703,-31288,9735,-31278,9767,-31268,9799,-31258,9831,-31248,9863,-31237,9895,-31227,9927,-31217,9959,-31207,9991,-31197,10023,-31186,10055,-31176,10087,-31166,10119,-31155,10151,-31145,10182,-31135,10214,-31124,10246,-31114,10278,-31103,10310,-31093,10342,-31082,10373,-31071,10405,-31061,10437,-31050,10469,-31039,10500,-31029,10532,-31018,10564,-31007,10596,-30996,10627,-30985,10659,-30974,10691,-30963,10722,-30952,10754,-30941,10786,-30930,10817,-30919,10849,-30908,10880,-30897,10912,-30886,10944,-30875,10975,-30863,11007,-30852,11038,-30841,11070,-30829,11101,-30818,11133,-30807,11164,-30795,11196,-30784,11227,-30772,11259,-30761,11290,-30749,11322,-30738,11353,-30726,11385,-30714,11416,-30703,11448,-30691,11479,-30679,11510,-30667,11542,-30656,11573,-30644,11604,-30632,11636,-30620,11667,-30608,11698,-30596,11730,-30584,11761,-30572,11792,-30560,11823,-30548,11855,-30536,11886,-30523,11917,-30511,11948,-30499,11980,-30487,12011,-30474,12042,-30462,12073,-30450,12104,-30437,12135,-30425,12166,-30412,12198,-30400,12229,-30387,12260,-30375,12291,-30362,12322,-30350,12353,-30337,12384,-30324,12415,-30312,12446,-30299,12477,-30286,12508,-30273,12539,-30260,12570,-30248,12601,-30235,12632,-30222,12663,-30209,12694,-30196,12724,-30183,12755,-30170,12786,-30157,12817,-30143,12848,-30130,12879,-30117,12909,-30104,12940,-30091,12971,-30077,13002,-30064,13033,-30051,13063,-30037,13094,-30024,13125,-30010,13155,-29997,13186,-29984,13217,-29970,13247,-29956,13278,-29943,13309,-29929,13339,-29916,13370,-29902,13400,-29888,13431,-29874,13462,-29861,13492,-29847,13523,-29833,13553,-29819,13584,-29805,13614,-29791,13645,-29777,13675,-29763,13706,-29749,13736,-29735,13766,-29721,13797,-29707,13827,-29693,13858,-29679,13888,-29664,13918,-29650,13949,-29636,13979,-29622,14009,-29607,14039,-29593,14070,-29578,14100,-29564,14130,-29549,14160,-29535,14191,-29520,14221,-29506,14251,-29491,14281,-29477,14311,-29462,14342,-29447,14372,-29433,14402,-29418,14432,-29403,14462,-29388,14492,-29373,14522,-29359,14552,-29344,14582,-29329,14612,-29314,14642,-29299,14672,-29284,14702,-29269,14732,-29254,14762,-29239,14792,-29223,14822,-29208,14852,-29193,14881,-29178,14911,-29163,14941,-29147,14971,-29132,15001,-29117,15030,-29101,15060,-29086,15090,-29070,15120,-29055,15149,-29039,15179,-29024,15209,-29008,15238,-28993,15268,-28977,15298,-28961,15327,-28946,15357,-28930,15387,-28914,15416,-28898,15446,-28883,15475,-28867,15505,-28851,15534,-28835,15564,-28819,15593,-28803,15623,-28787,15652,-28771,15682,-28755,15711,-28739,15740,-28723,15770,-28707,15799,-28691,15829,-28674,15858,-28658,15887,-28642,15917,-28626,15946,-28609,15975,-28593,16004,-28576,16034,-28560,16063,-28544,16092,-28527,16121,-28511,16150,-28494,16179,-28478,16209,-28461,16238,-28444,16267,-28428,16296,-28411,16325,-28394,16354,-28378,16383,-28361,16412,-28344,16441,-28327,16470,-28310,16499,-28293,16528,-28276,16557,-28260,16586,-28243,16615,-28226,16643,-28209,16672,-28191,16701,-28174,16730,-28157,16759,-28140,16788,-28123,16816,-28106,16845,-28088,16874,-28071,16903,-28054,16931,-28037,16960,-28019,16989,-28002,17017,-27984,17046,-27967,17074,-27949,17103,-27932,17132,-27914,17160,-27897,17189,-27879,17217,-27862,17246,-27844,17274,-27826,17303,-27809,17331,-27791,17360,-27773,17388,-27755,17416,-27737,17445,-27720,17473,-27702,17501,-27684,17530,-27666,17558,-27648,17586,-27630,17615,-27612,17643,-27594,17671,-27576,17699,-27558,17727,-27539,17756,-27521,17784,-27503,17812,-27485,17840,-27467,17868,-27448,17896,-27430,17924,-27412,17952,-27393,17980,-27375,18008,-27356,18036,-27338,18064,-27320,18092,-27301,18120,-27282,18148,-27264,18176,-27245,18204,-27227,18232,-27208,18260,-27189,18287,-27171,18315,-27152,18343,-27133,18371,-27114,18398,-27095,18426,-27077,18454,-27058,18482,-27039,18509,-27020,18537,-27001,18564,-26982,18592,-26963,18620,-26944,18647,-26925,18675,-26906,18702,-26886,18730,-26867,18757,-26848,18785,-26829,18812,-26810,18840,-26790,18867,-26771,18894,-26752,18922,-26732,18949,-26713,18976,-26693,19004,-26674,19031,-26655,19058,-26635,19086,-26616,19113,-26596,19140,-26576,19167,-26557,19194,-26537,19221,-26517,19249,-26498,19276,-26478,19303,-26458,19330,-26438,19357,-26419,19384,-26399,19411,-26379,19438,-26359,19465,-26339,19492,-26319,19519,-26299,19546,-26279,19573,-26259,19599,-26239,19626,-26219,19653,-26199,19680,-26179,19707,-26159,19733,-26138,19760,-26118,19787,-26098,19814,-26078,19840,-26057,19867,-26037,19894,-26017,19920,-25996,19947,-25976,19973,-25955,20000,-25935,20026,-25914,20053,-25894,20079,-25873,20106,-25853,20132,-25832,20159,-25812,20185,-25791,20212,-25770,20238,-25750,20264,-25729,20291,-25708,20317,-25687,20343,-25666,20369,-25646,20396,-25625,20422,-25604,20448,-25583,20474,-25562,20500,-25541,20527,-25520,20553,-25499,20579,-25478,20605,-25457,20631,-25436,20657,-25415,20683,-25393,20709,-25372,20735,-25351,20761,-25330,20787,-25308,20813,-25287,20838,-25266,20864,-25244,20890,-25223,20916,-25202,20942,-25180,20967,-25159,20993,-25137,21019,-25116,21045,-25094,21070,-25073,21096,-25051,21122,-25030,21147,-25008,21173,-24986,21198,-24965,21224,-24943,21249,-24921,21275,-24899,21300,-24878,21326,-24856,21351,-24834,21377,-24812,21402,-24790,21427,-24768,21453,-24746,21478,-24724,21503,-24702,21529,-24680,21554,-24658,21579,-24636,21604,-24614,21629,-24592,21655,-24570,21680,-24547,21705,-24525,21730,-24503,21755,-24481,21780,-24458,21805,-24436,21830,-24414,21855,-24391,21880,-24369,21905,-24347,21930,-24324,21955,-24302,21980,-24279,22004,-24257,22029,-24234,22054,-24212,22079,-24189,22104,-24166,22128,-24144,22153,-24121,22178,-24098,22202,-24076,22227,-24053,22252,-24030,22276,-24007,22301,-23985,22325,-23962,22350,-23939,22374,-23916,22399,-23893,22423,-23870,22448,-23847,22472,-23824,22496,-23801,22521,-23778,22545,-23755,22569,-23732,22594,-23709,22618,-23686,22642,-23662,22666,-23639,22691,-23616,22715,-23593,22739,-23570,22763,-23546,22787,-23523,22811,-23500,22835,-23476,22859,-23453,22883,-23429,22907,-23406,22931,-23383,22955,-23359,22979,-23336,23003,-23312,23027,-23288,23050,-23265,23074,-23241,23098,-23218,23122,-23194,23146,-23170,23169,-23147,23193,-23123,23217,-23099,23240,-23075,23264,-23051,23287,-23028,23311,-23004,23335,-22980,23358,-22956,23382,-22932,23405,-22908,23428,-22884,23452,-22860,23475,-22836,23499,-22812,23522,-22788,23545,-22764,23569,-22740,23592,-22716,23615,-22692,23638,-22667,23661,-22643,23685,-22619,23708,-22595,23731,-22570,23754,-22546,23777,-22522,23800,-22497,23823,-22473,23846,-22449,23869,-22424,23892,-22400,23915,-22375,23938,-22351,23961,-22326,23984,-22302,24006,-22277,24029,-22253,24052,-22228,24075,-22203,24097,-22179,24120,-22154,24143,-22129,24165,-22105,24188,-22080,24211,-22055,24233,-22030,24256,-22005,24278,-21981,24301,-21956,24323,-21931,24346,-21906,24368,-21881,24390,-21856,24413,-21831,24435,-21806,24457,-21781,24480,-21756,24502,-21731,24524,-21706,24546,-21681,24569,-21656,24591,-21630,24613,-21605,24635,-21580,24657,-21555,24679,-21530,24701,-21504,24723,-21479,24745,-21454,24767,-21428,24789,-21403,24811,-21378,24833,-21352,24855,-21327,24877,-21301,24898,-21276,24920,-21250,24942,-21225,24964,-21199,24985,-21174,25007,-21148,25029,-21123,25050,-21097,25072,-21071,25093,-21046,25115,-21020,25136,-20994,25158,-20968,25179,-20943,25201,-20917,25222,-20891,25243,-20865,25265,-20839,25286,-20814,25307,-20788,25329,-20762,25350,-20736,25371,-20710,25392,-20684,25414,-20658,25435,-20632,25456,-20606,25477,-20580,25498,-20554,25519,-20528,25540,-20501,25561,-20475,25582,-20449,25603,-20423,25624,-20397,25645,-20370,25665,-20344,25686,-20318,25707,-20292,25728,-20265,25749,-20239,25769,-20213,25790,-20186,25811,-20160,25831,-20133,25852,-20107,25872,-20080,25893,-20054,25913,-20027,25934,-20001,25954,-19974,25975,-19948,25995,-19921,26016,-19895,26036,-19868,26056,-19841,26077,-19815,26097,-19788,26117,-19761,26137,-19734,26158,-19708,26178,-19681,26198,-19654,26218,-19627,26238,-19600,26258,-19574,26278,-19547,26298,-19520,26318,-19493,26338,-19466,26358,-19439,26378,-19412,26398,-19385,26418,-19358,26437,-19331,26457,-19304,26477,-19277,26497,-19250,26516,-19222,26536,-19195,26556,-19168,26575,-19141,26595,-19114,26615,-19087,26634,-19059,26654,-19032,26673,-19005,26692,-18977,26712,-18950,26731,-18923,26751,-18895,26770,-18868,26789,-18841,26809,-18813,26828,-18786,26847,-18758,26866,-18731,26885,-18703,26905,-18676,26924,-18648,26943,-18621,26962,-18593,26981,-18565,27000,-18538,27019,-18510,27038,-18483,27057,-18455,27076,-18427,27094,-18399,27113,-18372,27132,-18344,27151,-18316,27170,-18288,27188,-18261,27207,-18233,27226,-18205,27244,-18177,27263,-18149,27281,-18121,27300,-18093,27319,-18065,27337,-18037,27355,-18009,27374,-17981,27392,-17953,27411,-17925,27429,-17897,27447,-17869,27466,-17841,27484,-17813,27502,-17785,27520,-17757,27538,-17728,27557,-17700,27575,-17672,27593,-17644,27611,-17616,27629,-17587,27647,-17559,27665,-17531,27683,-17502,27701,-17474,27719,-17446,27736,-17417,27754,-17389,27772,-17361,27790,-17332,27808,-17304,27825,-17275,27843,-17247,27861,-17218,27878,-17190,27896,-17161,27913,-17133,27931,-17104,27948,-17075,27966,-17047,27983,-17018,28001,-16990,28018,-16961,28036,-16932,28053,-16904,28070,-16875,28087,-16846,28105,-16817,28122,-16789,28139,-16760,28156,-16731,28173,-16702,28190,-16673,28208,-16644,28225,-16616,28242,-16587,28259,-16558,28275,-16529,28292,-16500,28309,-16471,28326,-16442,28343,-16413,28360};
-
diff --git a/openair1/PHY/TOOLS/twiddle1536.h b/openair1/PHY/TOOLS/twiddle1536.h
deleted file mode 100644
index 304766caaf13fc507afa08a357b82c5562f50dae..0000000000000000000000000000000000000000
--- a/openair1/PHY/TOOLS/twiddle1536.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The OpenAirInterface Software Alliance licenses this file to You under
- * the OAI Public License, Version 1.1  (the "License"); you may not use this file
- * except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.openairinterface.org/?page_id=698
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *-------------------------------------------------------------------------------
- * For more information about the OpenAirInterface (OAI) Software Alliance:
- *      contact@openairinterface.org
- */
-
-#include <stdint.h>
-
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:511)/1536));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*(0:2:1022)/1536));
-twa2 = zeros(1,1024);
-twb2 = zeros(1,1024);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-
-
- */
-
-int16_t twa1536[1024] __attribute__((aligned(16))) = {32767,0,32766,-135,32765,-269,32764,-403,32762,-537,32760,-671,32757,-805,32753,-939,32749,-1073,32744,-1207,32739,-1340,32733,-1474,32727,-1608,32720,-1742,32713,-1876,32705,-2010,32696,-2144,32687,-2277,32678,-2411,32668,-2545,32657,-2678,32646,-2812,32634,-2945,32622,-3079,32609,-3212,32595,-3346,32581,-3479,32567,-3612,32552,-3745,32536,-3878,32520,-4012,32503,-4145,32486,-4277,32468,-4410,32450,-4543,32431,-4676,32412,-4808,32392,-4941,32371,-5073,32350,-5206,32329,-5338,32307,-5470,32284,-5602,32261,-5734,32237,-5866,32213,-5998,32188,-6130,32163,-6262,32137,-6393,32110,-6524,32084,-6656,32056,-6787,32028,-6918,31999,-7049,31970,-7180,31941,-7311,31911,-7441,31880,-7572,31849,-7702,31817,-7832,31785,-7962,31752,-8092,31718,-8222,31684,-8352,31650,-8481,31615,-8611,31580,-8740,31544,-8869,31507,-8998,31470,-9127,31432,-9255,31394,-9384,31356,-9512,31316,-9640,31277,-9768,31236,-9896,31196,-10024,31154,-10152,31113,-10279,31070,-10406,31028,-10533,30984,-10660,30940,-10787,30896,-10913,30851,-11039,30806,-11165,30760,-11291,30713,-11417,30666,-11543,30619,-11668,30571,-11793,30522,-11918,30473,-12043,30424,-12167,30374,-12292,30323,-12416,30272,-12540,30221,-12664,30169,-12787,30116,-12910,30063,-13034,30009,-13156,29955,-13279,29901,-13401,29846,-13524,29790,-13646,29734,-13767,29678,-13889,29621,-14010,29563,-14131,29505,-14252,29446,-14373,29387,-14493,29328,-14613,29268,-14733,29207,-14853,29146,-14972,29085,-15091,29023,-15210,28960,-15328,28897,-15447,28834,-15565,28770,-15683,28706,-15800,28641,-15918,28575,-16035,28510,-16151,28443,-16268,28377,-16384,28309,-16500,28242,-16616,28173,-16731,28105,-16846,28036,-16961,27966,-17075,27896,-17190,27825,-17304,27754,-17417,27683,-17531,27611,-17644,27538,-17757,27466,-17869,27392,-17981,27319,-18093,27244,-18205,27170,-18316,27094,-18427,27019,-18538,26943,-18648,26866,-18758,26789,-18868,26712,-18977,26634,-19087,26556,-19195,26477,-19304,26398,-19412,26318,-19520,26238,-19627,26158,-19734,26077,-19841,25995,-19948,25913,-20054,25831,-20160,25749,-20265,25665,-20370,25582,-20475,25498,-20580,25414,-20684,25329,-20788,25243,-20891,25158,-20994,25072,-21097,24985,-21199,24898,-21301,24811,-21403,24723,-21504,24635,-21605,24546,-21706,24457,-21806,24368,-21906,24278,-22005,24188,-22105,24097,-22203,24006,-22302,23915,-22400,23823,-22497,23731,-22595,23638,-22692,23545,-22788,23452,-22884,23358,-22980,23264,-23075,23169,-23170,23074,-23265,22979,-23359,22883,-23453,22787,-23546,22691,-23639,22594,-23732,22496,-23824,22399,-23916,22301,-24007,22202,-24098,22104,-24189,22004,-24279,21905,-24369,21805,-24458,21705,-24547,21604,-24636,21503,-24724,21402,-24812,21300,-24899,21198,-24986,21096,-25073,20993,-25159,20890,-25244,20787,-25330,20683,-25415,20579,-25499,20474,-25583,20369,-25666,20264,-25750,20159,-25832,20053,-25914,19947,-25996,19840,-26078,19733,-26159,19626,-26239,19519,-26319,19411,-26399,19303,-26478,19194,-26557,19086,-26635,18976,-26713,18867,-26790,18757,-26867,18647,-26944,18537,-27020,18426,-27095,18315,-27171,18204,-27245,18092,-27320,17980,-27393,17868,-27467,17756,-27539,17643,-27612,17530,-27684,17416,-27755,17303,-27826,17189,-27897,17074,-27967,16960,-28037,16845,-28106,16730,-28174,16615,-28243,16499,-28310,16383,-28378,16267,-28444,16150,-28511,16034,-28576,15917,-28642,15799,-28707,15682,-28771,15564,-28835,15446,-28898,15327,-28961,15209,-29024,15090,-29086,14971,-29147,14852,-29208,14732,-29269,14612,-29329,14492,-29388,14372,-29447,14251,-29506,14130,-29564,14009,-29622,13888,-29679,13766,-29735,13645,-29791,13523,-29847,13400,-29902,13278,-29956,13155,-30010,13033,-30064,12909,-30117,12786,-30170,12663,-30222,12539,-30273,12415,-30324,12291,-30375,12166,-30425,12042,-30474,11917,-30523,11792,-30572,11667,-30620,11542,-30667,11416,-30714,11290,-30761,11164,-30807,11038,-30852,10912,-30897,10786,-30941,10659,-30985,10532,-31029,10405,-31071,10278,-31114,10151,-31155,10023,-31197,9895,-31237,9767,-31278,9639,-31317,9511,-31357,9383,-31395,9254,-31433,9126,-31471,8997,-31508,8868,-31545,8739,-31581,8610,-31616,8480,-31651,8351,-31685,8221,-31719,8091,-31753,7961,-31786,7831,-31818,7701,-31850,7571,-31881,7440,-31912,7310,-31942,7179,-31971,7048,-32000,6917,-32029,6786,-32057,6655,-32085,6523,-32111,6392,-32138,6261,-32164,6129,-32189,5997,-32214,5865,-32238,5733,-32262,5601,-32285,5469,-32308,5337,-32330,5205,-32351,5072,-32372,4940,-32393,4807,-32413,4675,-32432,4542,-32451,4409,-32469,4276,-32487,4144,-32504,4011,-32521,3877,-32537,3744,-32553,3611,-32568,3478,-32582,3345,-32596,3211,-32610,3078,-32623,2944,-32635,2811,-32647,2677,-32658,2544,-32669,2410,-32679,2276,-32688,2143,-32697,2009,-32706,1875,-32714,1741,-32721,1607,-32728,1473,-32734,1339,-32740,1206,-32745,1072,-32750,938,-32754,804,-32758,670,-32761,536,-32763,402,-32765,268,-32766,134,-32767,0,-32767,-135,-32767,-269,-32766,-403,-32765,-537,-32763,-671,-32761,-805,-32758,-939,-32754,-1073,-32750,-1207,-32745,-1340,-32740,-1474,-32734,-1608,-32728,-1742,-32721,-1876,-32714,-2010,-32706,-2144,-32697,-2277,-32688,-2411,-32679,-2545,-32669,-2678,-32658,-2812,-32647,-2945,-32635,-3079,-32623,-3212,-32610,-3346,-32596,-3479,-32582,-3612,-32568,-3745,-32553,-3878,-32537,-4012,-32521,-4145,-32504,-4277,-32487,-4410,-32469,-4543,-32451,-4676,-32432,-4808,-32413,-4941,-32393,-5073,-32372,-5206,-32351,-5338,-32330,-5470,-32308,-5602,-32285,-5734,-32262,-5866,-32238,-5998,-32214,-6130,-32189,-6262,-32164,-6393,-32138,-6524,-32111,-6656,-32085,-6787,-32057,-6918,-32029,-7049,-32000,-7180,-31971,-7311,-31942,-7441,-31912,-7572,-31881,-7702,-31850,-7832,-31818,-7962,-31786,-8092,-31753,-8222,-31719,-8352,-31685,-8481,-31651,-8611,-31616,-8740,-31581,-8869,-31545,-8998,-31508,-9127,-31471,-9255,-31433,-9384,-31395,-9512,-31357,-9640,-31317,-9768,-31278,-9896,-31237,-10024,-31197,-10152,-31155,-10279,-31114,-10406,-31071,-10533,-31029,-10660,-30985,-10787,-30941,-10913,-30897,-11039,-30852,-11165,-30807,-11291,-30761,-11417,-30714,-11543,-30667,-11668,-30620,-11793,-30572,-11918,-30523,-12043,-30474,-12167,-30425,-12292,-30375,-12416,-30324,-12540,-30273,-12664,-30222,-12787,-30170,-12910,-30117,-13034,-30064,-13156,-30010,-13279,-29956,-13401,-29902,-13524,-29847,-13646,-29791,-13767,-29735,-13889,-29679,-14010,-29622,-14131,-29564,-14252,-29506,-14373,-29447,-14493,-29388,-14613,-29329,-14733,-29269,-14853,-29208,-14972,-29147,-15091,-29086,-15210,-29024,-15328,-28961,-15447,-28898,-15565,-28835,-15683,-28771,-15800,-28707,-15918,-28642,-16035,-28576,-16151,-28511,-16268,-28444};
-
-int16_t twb1536[1024] __attribute__((aligned(16))) = {32767,0,32765,-269,32762,-537,32757,-805,32749,-1073,32739,-1340,32727,-1608,32713,-1876,32696,-2144,32678,-2411,32657,-2678,32634,-2945,32609,-3212,32581,-3479,32552,-3745,32520,-4012,32486,-4277,32450,-4543,32412,-4808,32371,-5073,32329,-5338,32284,-5602,32237,-5866,32188,-6130,32137,-6393,32084,-6656,32028,-6918,31970,-7180,31911,-7441,31849,-7702,31785,-7962,31718,-8222,31650,-8481,31580,-8740,31507,-8998,31432,-9255,31356,-9512,31277,-9768,31196,-10024,31113,-10279,31028,-10533,30940,-10787,30851,-11039,30760,-11291,30666,-11543,30571,-11793,30473,-12043,30374,-12292,30272,-12540,30169,-12787,30063,-13034,29955,-13279,29846,-13524,29734,-13767,29621,-14010,29505,-14252,29387,-14493,29268,-14733,29146,-14972,29023,-15210,28897,-15447,28770,-15683,28641,-15918,28510,-16151,28377,-16384,28242,-16616,28105,-16846,27966,-17075,27825,-17304,27683,-17531,27538,-17757,27392,-17981,27244,-18205,27094,-18427,26943,-18648,26789,-18868,26634,-19087,26477,-19304,26318,-19520,26158,-19734,25995,-19948,25831,-20160,25665,-20370,25498,-20580,25329,-20788,25158,-20994,24985,-21199,24811,-21403,24635,-21605,24457,-21806,24278,-22005,24097,-22203,23915,-22400,23731,-22595,23545,-22788,23358,-22980,23169,-23170,22979,-23359,22787,-23546,22594,-23732,22399,-23916,22202,-24098,22004,-24279,21805,-24458,21604,-24636,21402,-24812,21198,-24986,20993,-25159,20787,-25330,20579,-25499,20369,-25666,20159,-25832,19947,-25996,19733,-26159,19519,-26319,19303,-26478,19086,-26635,18867,-26790,18647,-26944,18426,-27095,18204,-27245,17980,-27393,17756,-27539,17530,-27684,17303,-27826,17074,-27967,16845,-28106,16615,-28243,16383,-28378,16150,-28511,15917,-28642,15682,-28771,15446,-28898,15209,-29024,14971,-29147,14732,-29269,14492,-29388,14251,-29506,14009,-29622,13766,-29735,13523,-29847,13278,-29956,13033,-30064,12786,-30170,12539,-30273,12291,-30375,12042,-30474,11792,-30572,11542,-30667,11290,-30761,11038,-30852,10786,-30941,10532,-31029,10278,-31114,10023,-31197,9767,-31278,9511,-31357,9254,-31433,8997,-31508,8739,-31581,8480,-31651,8221,-31719,7961,-31786,7701,-31850,7440,-31912,7179,-31971,6917,-32029,6655,-32085,6392,-32138,6129,-32189,5865,-32238,5601,-32285,5337,-32330,5072,-32372,4807,-32413,4542,-32451,4276,-32487,4011,-32521,3744,-32553,3478,-32582,3211,-32610,2944,-32635,2677,-32658,2410,-32679,2143,-32697,1875,-32714,1607,-32728,1339,-32740,1072,-32750,804,-32758,536,-32763,268,-32766,0,-32767,-269,-32766,-537,-32763,-805,-32758,-1073,-32750,-1340,-32740,-1608,-32728,-1876,-32714,-2144,-32697,-2411,-32679,-2678,-32658,-2945,-32635,-3212,-32610,-3479,-32582,-3745,-32553,-4012,-32521,-4277,-32487,-4543,-32451,-4808,-32413,-5073,-32372,-5338,-32330,-5602,-32285,-5866,-32238,-6130,-32189,-6393,-32138,-6656,-32085,-6918,-32029,-7180,-31971,-7441,-31912,-7702,-31850,-7962,-31786,-8222,-31719,-8481,-31651,-8740,-31581,-8998,-31508,-9255,-31433,-9512,-31357,-9768,-31278,-10024,-31197,-10279,-31114,-10533,-31029,-10787,-30941,-11039,-30852,-11291,-30761,-11543,-30667,-11793,-30572,-12043,-30474,-12292,-30375,-12540,-30273,-12787,-30170,-13034,-30064,-13279,-29956,-13524,-29847,-13767,-29735,-14010,-29622,-14252,-29506,-14493,-29388,-14733,-29269,-14972,-29147,-15210,-29024,-15447,-28898,-15683,-28771,-15918,-28642,-16151,-28511,-16384,-28378,-16616,-28243,-16846,-28106,-17075,-27967,-17304,-27826,-17531,-27684,-17757,-27539,-17981,-27393,-18205,-27245,-18427,-27095,-18648,-26944,-18868,-26790,-19087,-26635,-19304,-26478,-19520,-26319,-19734,-26159,-19948,-25996,-20160,-25832,-20370,-25666,-20580,-25499,-20788,-25330,-20994,-25159,-21199,-24986,-21403,-24812,-21605,-24636,-21806,-24458,-22005,-24279,-22203,-24098,-22400,-23916,-22595,-23732,-22788,-23546,-22980,-23359,-23170,-23170,-23359,-22980,-23546,-22788,-23732,-22595,-23916,-22400,-24098,-22203,-24279,-22005,-24458,-21806,-24636,-21605,-24812,-21403,-24986,-21199,-25159,-20994,-25330,-20788,-25499,-20580,-25666,-20370,-25832,-20160,-25996,-19948,-26159,-19734,-26319,-19520,-26478,-19304,-26635,-19087,-26790,-18868,-26944,-18648,-27095,-18427,-27245,-18205,-27393,-17981,-27539,-17757,-27684,-17531,-27826,-17304,-27967,-17075,-28106,-16846,-28243,-16616,-28378,-16384,-28511,-16151,-28642,-15918,-28771,-15683,-28898,-15447,-29024,-15210,-29147,-14972,-29269,-14733,-29388,-14493,-29506,-14252,-29622,-14010,-29735,-13767,-29847,-13524,-29956,-13279,-30064,-13034,-30170,-12787,-30273,-12540,-30375,-12292,-30474,-12043,-30572,-11793,-30667,-11543,-30761,-11291,-30852,-11039,-30941,-10787,-31029,-10533,-31114,-10279,-31197,-10024,-31278,-9768,-31357,-9512,-31433,-9255,-31508,-8998,-31581,-8740,-31651,-8481,-31719,-8222,-31786,-7962,-31850,-7702,-31912,-7441,-31971,-7180,-32029,-6918,-32085,-6656,-32138,-6393,-32189,-6130,-32238,-5866,-32285,-5602,-32330,-5338,-32372,-5073,-32413,-4808,-32451,-4543,-32487,-4277,-32521,-4012,-32553,-3745,-32582,-3479,-32610,-3212,-32635,-2945,-32658,-2678,-32679,-2411,-32697,-2144,-32714,-1876,-32728,-1608,-32740,-1340,-32750,-1073,-32758,-805,-32763,-537,-32766,-269,-32767,-1,-32766,268,-32763,536,-32758,804,-32750,1072,-32740,1339,-32728,1607,-32714,1875,-32697,2143,-32679,2410,-32658,2677,-32635,2944,-32610,3211,-32582,3478,-32553,3744,-32521,4011,-32487,4276,-32451,4542,-32413,4807,-32372,5072,-32330,5337,-32285,5601,-32238,5865,-32189,6129,-32138,6392,-32085,6655,-32029,6917,-31971,7179,-31912,7440,-31850,7701,-31786,7961,-31719,8221,-31651,8480,-31581,8739,-31508,8997,-31433,9254,-31357,9511,-31278,9767,-31197,10023,-31114,10278,-31029,10532,-30941,10786,-30852,11038,-30761,11290,-30667,11542,-30572,11792,-30474,12042,-30375,12291,-30273,12539,-30170,12786,-30064,13033,-29956,13278,-29847,13523,-29735,13766,-29622,14009,-29506,14251,-29388,14492,-29269,14732,-29147,14971,-29024,15209,-28898,15446,-28771,15682,-28642,15917,-28511,16150,-28378,16383,-28243,16615,-28106,16845,-27967,17074,-27826,17303,-27684,17530,-27539,17756,-27393,17980,-27245,18204,-27095,18426,-26944,18647,-26790,18867,-26635,19086,-26478,19303,-26319,19519,-26159,19733,-25996,19947,-25832,20159,-25666,20369,-25499,20579,-25330,20787,-25159,20993,-24986,21198,-24812,21402,-24636,21604,-24458,21805,-24279,22004,-24098,22202,-23916,22399,-23732,22594,-23546,22787,-23359,22979,-23170,23169,-22980,23358,-22788,23545,-22595,23731,-22400,23915,-22203,24097,-22005,24278,-21806,24457,-21605,24635,-21403,24811,-21199,24985,-20994,25158,-20788,25329,-20580,25498,-20370,25665,-20160,25831,-19948,25995,-19734,26158,-19520,26318,-19304,26477,-19087,26634,-18868,26789,-18648,26943,-18427,27094,-18205,27244,-17981,27392,-17757,27538,-17531,27683,-17304,27825,-17075,27966,-16846,28105,-16616,28242};
diff --git a/openair1/PHY/TOOLS/twiddle18432.h b/openair1/PHY/TOOLS/twiddle18432.h
deleted file mode 100644
index 696c7f37aeb2fe25dbc4edabc6bccaef1d53fdc7..0000000000000000000000000000000000000000
--- a/openair1/PHY/TOOLS/twiddle18432.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The OpenAirInterface Software Alliance licenses this file to You under
- * the OAI Public License, Version 1.1  (the "License"); you may not use this file
- * except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.openairinterface.org/?page_id=698
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *-------------------------------------------------------------------------------
- * For more information about the OpenAirInterface (OAI) Software Alliance:
- *      contact@openairinterface.org
- */
-
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:6143)/18432));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*(0:2:12286)/18432));
-twa2 = zeros(1,12288);
-twb2 = zeros(1,12288);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-*/
-
-int16_t twa18432[12288] = {32767,0,32766,-12,32766,-23,32766,-34,32766,-45,32766,-56,32766,-68,32766,-79,32766,-90,32766,-101,32766,-112,32766,-123,32766,-135,32766,-146,32766,-157,32766,-168,32766,-179,32766,-190,32766,-202,32766,-213,32766,-224,32766,-235,32766,-246,32765,-257,32765,-269,32765,-280,32765,-291,32765,-302,32765,-313,32765,-324,32765,-336,32765,-347,32765,-358,32764,-369,32764,-380,32764,-391,32764,-403,32764,-414,32764,-425,32764,-436,32763,-447,32763,-458,32763,-470,32763,-481,32763,-492,32763,-503,32762,-514,32762,-525,32762,-537,32762,-548,32762,-559,32762,-570,32761,-581,32761,-592,32761,-604,32761,-615,32761,-626,32760,-637,32760,-648,32760,-659,32760,-671,32759,-682,32759,-693,32759,-704,32759,-715,32758,-726,32758,-738,32758,-749,32758,-760,32757,-771,32757,-782,32757,-793,32757,-805,32756,-816,32756,-827,32756,-838,32756,-849,32755,-860,32755,-872,32755,-883,32754,-894,32754,-905,32754,-916,32753,-927,32753,-939,32753,-950,32752,-961,32752,-972,32752,-983,32751,-994,32751,-1006,32751,-1017,32750,-1028,32750,-1039,32750,-1050,32749,-1061,32749,-1073,32749,-1084,32748,-1095,32748,-1106,32747,-1117,32747,-1128,32747,-1140,32746,-1151,32746,-1162,32746,-1173,32745,-1184,32745,-1195,32744,-1207,32744,-1218,32743,-1229,32743,-1240,32743,-1251,32742,-1262,32742,-1274,32741,-1285,32741,-1296,32740,-1307,32740,-1318,32740,-1329,32739,-1340,32739,-1352,32738,-1363,32738,-1374,32737,-1385,32737,-1396,32736,-1407,32736,-1419,32735,-1430,32735,-1441,32734,-1452,32734,-1463,32733,-1474,32733,-1486,32732,-1497,32732,-1508,32731,-1519,32731,-1530,32730,-1541,32730,-1553,32729,-1564,32729,-1575,32728,-1586,32728,-1597,32727,-1608,32726,-1619,32726,-1631,32725,-1642,32725,-1653,32724,-1664,32724,-1675,32723,-1686,32723,-1698,32722,-1709,32721,-1720,32721,-1731,32720,-1742,32720,-1753,32719,-1764,32718,-1776,32718,-1787,32717,-1798,32717,-1809,32716,-1820,32715,-1831,32715,-1843,32714,-1854,32713,-1865,32713,-1876,32712,-1887,32711,-1898,32711,-1909,32710,-1921,32710,-1932,32709,-1943,32708,-1954,32708,-1965,32707,-1976,32706,-1987,32706,-1999,32705,-2010,32704,-2021,32703,-2032,32703,-2043,32702,-2054,32701,-2066,32701,-2077,32700,-2088,32699,-2099,32699,-2110,32698,-2121,32697,-2132,32696,-2144,32696,-2155,32695,-2166,32694,-2177,32693,-2188,32693,-2199,32692,-2210,32691,-2222,32690,-2233,32690,-2244,32689,-2255,32688,-2266,32687,-2277,32687,-2288,32686,-2300,32685,-2311,32684,-2322,32683,-2333,32683,-2344,32682,-2355,32681,-2366,32680,-2378,32679,-2389,32679,-2400,32678,-2411,32677,-2422,32676,-2433,32675,-2444,32674,-2456,32674,-2467,32673,-2478,32672,-2489,32671,-2500,32670,-2511,32669,-2522,32668,-2534,32668,-2545,32667,-2556,32666,-2567,32665,-2578,32664,-2589,32663,-2600,32662,-2611,32661,-2623,32661,-2634,32660,-2645,32659,-2656,32658,-2667,32657,-2678,32656,-2689,32655,-2701,32654,-2712,32653,-2723,32652,-2734,32651,-2745,32650,-2756,32649,-2767,32649,-2778,32648,-2790,32647,-2801,32646,-2812,32645,-2823,32644,-2834,32643,-2845,32642,-2856,32641,-2867,32640,-2879,32639,-2890,32638,-2901,32637,-2912,32636,-2923,32635,-2934,32634,-2945,32633,-2956,32632,-2968,32631,-2979,32630,-2990,32629,-3001,32628,-3012,32627,-3023,32626,-3034,32625,-3045,32624,-3057,32623,-3068,32622,-3079,32621,-3090,32619,-3101,32618,-3112,32617,-3123,32616,-3134,32615,-3146,32614,-3157,32613,-3168,32612,-3179,32611,-3190,32610,-3201,32609,-3212,32608,-3223,32607,-3234,32605,-3246,32604,-3257,32603,-3268,32602,-3279,32601,-3290,32600,-3301,32599,-3312,32598,-3323,32596,-3334,32595,-3346,32594,-3357,32593,-3368,32592,-3379,32591,-3390,32590,-3401,32588,-3412,32587,-3423,32586,-3434,32585,-3446,32584,-3457,32583,-3468,32581,-3479,32580,-3490,32579,-3501,32578,-3512,32577,-3523,32575,-3534,32574,-3546,32573,-3557,32572,-3568,32571,-3579,32569,-3590,32568,-3601,32567,-3612,32566,-3623,32564,-3634,32563,-3645,32562,-3657,32561,-3668,32559,-3679,32558,-3690,32557,-3701,32556,-3712,32554,-3723,32553,-3734,32552,-3745,32551,-3756,32549,-3768,32548,-3779,32547,-3790,32545,-3801,32544,-3812,32543,-3823,32541,-3834,32540,-3845,32539,-3856,32538,-3867,32536,-3878,32535,-3890,32534,-3901,32532,-3912,32531,-3923,32530,-3934,32528,-3945,32527,-3956,32526,-3967,32524,-3978,32523,-3989,32521,-4000,32520,-4012,32519,-4023,32517,-4034,32516,-4045,32515,-4056,32513,-4067,32512,-4078,32510,-4089,32509,-4100,32508,-4111,32506,-4122,32505,-4133,32503,-4145,32502,-4156,32501,-4167,32499,-4178,32498,-4189,32496,-4200,32495,-4211,32493,-4222,32492,-4233,32491,-4244,32489,-4255,32488,-4266,32486,-4277,32485,-4289,32483,-4300,32482,-4311,32480,-4322,32479,-4333,32477,-4344,32476,-4355,32474,-4366,32473,-4377,32471,-4388,32470,-4399,32468,-4410,32467,-4421,32465,-4432,32464,-4444,32462,-4455,32461,-4466,32459,-4477,32458,-4488,32456,-4499,32455,-4510,32453,-4521,32452,-4532,32450,-4543,32449,-4554,32447,-4565,32445,-4576,32444,-4587,32442,-4598,32441,-4609,32439,-4621,32438,-4632,32436,-4643,32434,-4654,32433,-4665,32431,-4676,32430,-4687,32428,-4698,32426,-4709,32425,-4720,32423,-4731,32422,-4742,32420,-4753,32418,-4764,32417,-4775,32415,-4786,32413,-4797,32412,-4808,32410,-4819,32409,-4831,32407,-4842,32405,-4853,32404,-4864,32402,-4875,32400,-4886,32399,-4897,32397,-4908,32395,-4919,32394,-4930,32392,-4941,32390,-4952,32389,-4963,32387,-4974,32385,-4985,32383,-4996,32382,-5007,32380,-5018,32378,-5029,32377,-5040,32375,-5051,32373,-5062,32371,-5073,32370,-5084,32368,-5095,32366,-5107,32364,-5118,32363,-5129,32361,-5140,32359,-5151,32357,-5162,32356,-5173,32354,-5184,32352,-5195,32350,-5206,32349,-5217,32347,-5228,32345,-5239,32343,-5250,32341,-5261,32340,-5272,32338,-5283,32336,-5294,32334,-5305,32332,-5316,32331,-5327,32329,-5338,32327,-5349,32325,-5360,32323,-5371,32322,-5382,32320,-5393,32318,-5404,32316,-5415,32314,-5426,32312,-5437,32310,-5448,32309,-5459,32307,-5470,32305,-5481,32303,-5492,32301,-5503,32299,-5514,32297,-5525,32295,-5536,32294,-5547,32292,-5558,32290,-5569,32288,-5580,32286,-5591,32284,-5602,32282,-5613,32280,-5624,32278,-5635,32276,-5646,32274,-5657,32273,-5668,32271,-5679,32269,-5690,32267,-5701,32265,-5712,32263,-5723,32261,-5734,32259,-5745,32257,-5756,32255,-5767,32253,-5778,32251,-5789,32249,-5800,32247,-5811,32245,-5822,32243,-5833,32241,-5844,32239,-5855,32237,-5866,32235,-5877,32233,-5888,32231,-5899,32229,-5910,32227,-5921,32225,-5932,32223,-5943,32221,-5954,32219,-5965,32217,-5976,32215,-5987,32213,-5998,32211,-6009,32209,-6020,32207,-6031,32205,-6042,32203,-6053,32201,-6064,32199,-6075,32196,-6086,32194,-6097,32192,-6108,32190,-6119,32188,-6130,32186,-6141,32184,-6152,32182,-6163,32180,-6174,32178,-6185,32176,-6196,32173,-6207,32171,-6218,32169,-6229,32167,-6240,32165,-6251,32163,-6262,32161,-6272,32158,-6283,32156,-6294,32154,-6305,32152,-6316,32150,-6327,32148,-6338,32146,-6349,32143,-6360,32141,-6371,32139,-6382,32137,-6393,32135,-6404,32133,-6415,32130,-6426,32128,-6437,32126,-6448,32124,-6459,32122,-6470,32119,-6481,32117,-6492,32115,-6503,32113,-6513,32110,-6524,32108,-6535,32106,-6546,32104,-6557,32102,-6568,32099,-6579,32097,-6590,32095,-6601,32093,-6612,32090,-6623,32088,-6634,32086,-6645,32084,-6656,32081,-6667,32079,-6678,32077,-6689,32074,-6699,32072,-6710,32070,-6721,32068,-6732,32065,-6743,32063,-6754,32061,-6765,32058,-6776,32056,-6787,32054,-6798,32051,-6809,32049,-6820,32047,-6831,32044,-6842,32042,-6852,32040,-6863,32037,-6874,32035,-6885,32033,-6896,32030,-6907,32028,-6918,32026,-6929,32023,-6940,32021,-6951,32019,-6962,32016,-6973,32014,-6983,32011,-6994,32009,-7005,32007,-7016,32004,-7027,32002,-7038,31999,-7049,31997,-7060,31995,-7071,31992,-7082,31990,-7093,31987,-7103,31985,-7114,31983,-7125,31980,-7136,31978,-7147,31975,-7158,31973,-7169,31970,-7180,31968,-7191,31965,-7202,31963,-7212,31961,-7223,31958,-7234,31956,-7245,31953,-7256,31951,-7267,31948,-7278,31946,-7289,31943,-7300,31941,-7311,31938,-7321,31936,-7332,31933,-7343,31931,-7354,31928,-7365,31926,-7376,31923,-7387,31921,-7398,31918,-7408,31916,-7419,31913,-7430,31911,-7441,31908,-7452,31905,-7463,31903,-7474,31900,-7485,31898,-7495,31895,-7506,31893,-7517,31890,-7528,31888,-7539,31885,-7550,31882,-7561,31880,-7572,31877,-7582,31875,-7593,31872,-7604,31869,-7615,31867,-7626,31864,-7637,31862,-7648,31859,-7658,31856,-7669,31854,-7680,31851,-7691,31849,-7702,31846,-7713,31843,-7724,31841,-7734,31838,-7745,31835,-7756,31833,-7767,31830,-7778,31827,-7789,31825,-7800,31822,-7810,31819,-7821,31817,-7832,31814,-7843,31811,-7854,31809,-7865,31806,-7876,31803,-7886,31801,-7897,31798,-7908,31795,-7919,31793,-7930,31790,-7941,31787,-7951,31785,-7962,31782,-7973,31779,-7984,31776,-7995,31774,-8006,31771,-8016,31768,-8027,31765,-8038,31763,-8049,31760,-8060,31757,-8071,31754,-8081,31752,-8092,31749,-8103,31746,-8114,31743,-8125,31741,-8135,31738,-8146,31735,-8157,31732,-8168,31729,-8179,31727,-8190,31724,-8200,31721,-8211,31718,-8222,31716,-8233,31713,-8244,31710,-8254,31707,-8265,31704,-8276,31701,-8287,31699,-8298,31696,-8308,31693,-8319,31690,-8330,31687,-8341,31684,-8352,31682,-8362,31679,-8373,31676,-8384,31673,-8395,31670,-8406,31667,-8416,31664,-8427,31662,-8438,31659,-8449,31656,-8460,31653,-8470,31650,-8481,31647,-8492,31644,-8503,31641,-8514,31638,-8524,31635,-8535,31633,-8546,31630,-8557,31627,-8568,31624,-8578,31621,-8589,31618,-8600,31615,-8611,31612,-8621,31609,-8632,31606,-8643,31603,-8654,31600,-8664,31597,-8675,31594,-8686,31591,-8697,31588,-8708,31586,-8718,31583,-8729,31580,-8740,31577,-8751,31574,-8761,31571,-8772,31568,-8783,31565,-8794,31562,-8804,31559,-8815,31556,-8826,31553,-8837,31550,-8847,31547,-8858,31544,-8869,31541,-8880,31537,-8890,31534,-8901,31531,-8912,31528,-8923,31525,-8933,31522,-8944,31519,-8955,31516,-8966,31513,-8976,31510,-8987,31507,-8998,31504,-9009,31501,-9019,31498,-9030,31495,-9041,31492,-9052,31489,-9062,31485,-9073,31482,-9084,31479,-9095,31476,-9105,31473,-9116,31470,-9127,31467,-9137,31464,-9148,31461,-9159,31457,-9170,31454,-9180,31451,-9191,31448,-9202,31445,-9213,31442,-9223,31439,-9234,31435,-9245,31432,-9255,31429,-9266,31426,-9277,31423,-9288,31420,-9298,31417,-9309,31413,-9320,31410,-9330,31407,-9341,31404,-9352,31401,-9363,31397,-9373,31394,-9384,31391,-9395,31388,-9405,31385,-9416,31381,-9427,31378,-9437,31375,-9448,31372,-9459,31369,-9469,31365,-9480,31362,-9491,31359,-9502,31356,-9512,31352,-9523,31349,-9534,31346,-9544,31343,-9555,31339,-9566,31336,-9576,31333,-9587,31330,-9598,31326,-9608,31323,-9619,31320,-9630,31316,-9640,31313,-9651,31310,-9662,31307,-9672,31303,-9683,31300,-9694,31297,-9704,31293,-9715,31290,-9726,31287,-9736,31283,-9747,31280,-9758,31277,-9768,31273,-9779,31270,-9790,31267,-9800,31263,-9811,31260,-9822,31257,-9832,31253,-9843,31250,-9854,31247,-9864,31243,-9875,31240,-9886,31236,-9896,31233,-9907,31230,-9918,31226,-9928,31223,-9939,31220,-9950,31216,-9960,31213,-9971,31209,-9981,31206,-9992,31203,-10003,31199,-10013,31196,-10024,31192,-10035,31189,-10045,31185,-10056,31182,-10067,31179,-10077,31175,-10088,31172,-10098,31168,-10109,31165,-10120,31161,-10130,31158,-10141,31154,-10152,31151,-10162,31148,-10173,31144,-10183,31141,-10194,31137,-10205,31134,-10215,31130,-10226,31127,-10236,31123,-10247,31120,-10258,31116,-10268,31113,-10279,31109,-10290,31106,-10300,31102,-10311,31099,-10321,31095,-10332,31092,-10343,31088,-10353,31085,-10364,31081,-10374,31077,-10385,31074,-10396,31070,-10406,31067,-10417,31063,-10427,31060,-10438,31056,-10448,31053,-10459,31049,-10470,31045,-10480,31042,-10491,31038,-10501,31035,-10512,31031,-10523,31028,-10533,31024,-10544,31020,-10554,31017,-10565,31013,-10575,31010,-10586,31006,-10597,31002,-10607,30999,-10618,30995,-10628,30991,-10639,30988,-10649,30984,-10660,30981,-10671,30977,-10681,30973,-10692,30970,-10702,30966,-10713,30962,-10723,30959,-10734,30955,-10744,30951,-10755,30948,-10766,30944,-10776,30940,-10787,30937,-10797,30933,-10808,30929,-10818,30926,-10829,30922,-10839,30918,-10850,30915,-10860,30911,-10871,30907,-10881,30903,-10892,30900,-10903,30896,-10913,30892,-10924,30889,-10934,30885,-10945,30881,-10955,30877,-10966,30874,-10976,30870,-10987,30866,-10997,30862,-11008,30859,-11018,30855,-11029,30851,-11039,30847,-11050,30844,-11060,30840,-11071,30836,-11081,30832,-11092,30828,-11102,30825,-11113,30821,-11123,30817,-11134,30813,-11144,30809,-11155,30806,-11165,30802,-11176,30798,-11186,30794,-11197,30790,-11207,30787,-11218,30783,-11228,30779,-11239,30775,-11249,30771,-11260,30767,-11270,30764,-11281,30760,-11291,30756,-11302,30752,-11312,30748,-11323,30744,-11333,30740,-11344,30737,-11354,30733,-11365,30729,-11375,30725,-11386,30721,-11396,30717,-11407,30713,-11417,30709,-11428,30705,-11438,30702,-11449,30698,-11459,30694,-11469,30690,-11480,30686,-11490,30682,-11501,30678,-11511,30674,-11522,30670,-11532,30666,-11543,30662,-11553,30658,-11564,30655,-11574,30651,-11584,30647,-11595,30643,-11605,30639,-11616,30635,-11626,30631,-11637,30627,-11647,30623,-11658,30619,-11668,30615,-11678,30611,-11689,30607,-11699,30603,-11710,30599,-11720,30595,-11731,30591,-11741,30587,-11751,30583,-11762,30579,-11772,30575,-11783,30571,-11793,30567,-11804,30563,-11814,30559,-11824,30555,-11835,30551,-11845,30547,-11856,30543,-11866,30539,-11877,30535,-11887,30530,-11897,30526,-11908,30522,-11918,30518,-11929,30514,-11939,30510,-11949,30506,-11960,30502,-11970,30498,-11981,30494,-11991,30490,-12001,30486,-12012,30482,-12022,30477,-12033,30473,-12043,30469,-12053,30465,-12064,30461,-12074,30457,-12084,30453,-12095,30449,-12105,30445,-12116,30440,-12126,30436,-12136,30432,-12147,30428,-12157,30424,-12167,30420,-12178,30416,-12188,30411,-12199,30407,-12209,30403,-12219,30399,-12230,30395,-12240,30391,-12250,30386,-12261,30382,-12271,30378,-12281,30374,-12292,30370,-12302,30365,-12313,30361,-12323,30357,-12333,30353,-12344,30349,-12354,30344,-12364,30340,-12375,30336,-12385,30332,-12395,30328,-12406,30323,-12416,30319,-12426,30315,-12437,30311,-12447,30306,-12457,30302,-12468,30298,-12478,30294,-12488,30289,-12499,30285,-12509,30281,-12519,30277,-12530,30272,-12540,30268,-12550,30264,-12561,30259,-12571,30255,-12581,30251,-12591,30247,-12602,30242,-12612,30238,-12622,30234,-12633,30229,-12643,30225,-12653,30221,-12664,30216,-12674,30212,-12684,30208,-12695,30203,-12705,30199,-12715,30195,-12725,30190,-12736,30186,-12746,30182,-12756,30177,-12767,30173,-12777,30169,-12787,30164,-12797,30160,-12808,30156,-12818,30151,-12828,30147,-12839,30142,-12849,30138,-12859,30134,-12869,30129,-12880,30125,-12890,30121,-12900,30116,-12910,30112,-12921,30107,-12931,30103,-12941,30098,-12951,30094,-12962,30090,-12972,30085,-12982,30081,-12993,30076,-13003,30072,-13013,30067,-13023,30063,-13034,30059,-13044,30054,-13054,30050,-13064,30045,-13075,30041,-13085,30036,-13095,30032,-13105,30027,-13115,30023,-13126,30018,-13136,30014,-13146,30009,-13156,30005,-13167,30001,-13177,29996,-13187,29992,-13197,29987,-13208,29983,-13218,29978,-13228,29973,-13238,29969,-13248,29964,-13259,29960,-13269,29955,-13279,29951,-13289,29946,-13299,29942,-13310,29937,-13320,29933,-13330,29928,-13340,29924,-13350,29919,-13361,29915,-13371,29910,-13381,29905,-13391,29901,-13401,29896,-13412,29892,-13422,29887,-13432,29883,-13442,29878,-13452,29873,-13463,29869,-13473,29864,-13483,29860,-13493,29855,-13503,29850,-13513,29846,-13524,29841,-13534,29837,-13544,29832,-13554,29827,-13564,29823,-13575,29818,-13585,29813,-13595,29809,-13605,29804,-13615,29800,-13625,29795,-13635,29790,-13646,29786,-13656,29781,-13666,29776,-13676,29772,-13686,29767,-13696,29762,-13707,29758,-13717,29753,-13727,29748,-13737,29744,-13747,29739,-13757,29734,-13767,29729,-13778,29725,-13788,29720,-13798,29715,-13808,29711,-13818,29706,-13828,29701,-13838,29696,-13848,29692,-13859,29687,-13869,29682,-13879,29678,-13889,29673,-13899,29668,-13909,29663,-13919,29659,-13929,29654,-13939,29649,-13950,29644,-13960,29640,-13970,29635,-13980,29630,-13990,29625,-14000,29621,-14010,29616,-14020,29611,-14030,29606,-14040,29601,-14051,29597,-14061,29592,-14071,29587,-14081,29582,-14091,29577,-14101,29573,-14111,29568,-14121,29563,-14131,29558,-14141,29553,-14151,29548,-14161,29544,-14172,29539,-14182,29534,-14192,29529,-14202,29524,-14212,29519,-14222,29515,-14232,29510,-14242,29505,-14252,29500,-14262,29495,-14272,29490,-14282,29485,-14292,29481,-14302,29476,-14312,29471,-14322,29466,-14332,29461,-14343,29456,-14353,29451,-14363,29446,-14373,29441,-14383,29437,-14393,29432,-14403,29427,-14413,29422,-14423,29417,-14433,29412,-14443,29407,-14453,29402,-14463,29397,-14473,29392,-14483,29387,-14493,29382,-14503,29377,-14513,29372,-14523,29368,-14533,29363,-14543,29358,-14553,29353,-14563,29348,-14573,29343,-14583,29338,-14593,29333,-14603,29328,-14613,29323,-14623,29318,-14633,29313,-14643,29308,-14653,29303,-14663,29298,-14673,29293,-14683,29288,-14693,29283,-14703,29278,-14713,29273,-14723,29268,-14733,29263,-14743,29258,-14753,29253,-14763,29248,-14773,29243,-14783,29238,-14793,29233,-14803,29227,-14813,29222,-14823,29217,-14833,29212,-14843,29207,-14853,29202,-14862,29197,-14872,29192,-14882,29187,-14892,29182,-14902,29177,-14912,29172,-14922,29167,-14932,29162,-14942,29156,-14952,29151,-14962,29146,-14972,29141,-14982,29136,-14992,29131,-15002,29126,-15012,29121,-15022,29116,-15031,29110,-15041,29105,-15051,29100,-15061,29095,-15071,29090,-15081,29085,-15091,29080,-15101,29074,-15111,29069,-15121,29064,-15131,29059,-15141,29054,-15150,29049,-15160,29044,-15170,29038,-15180,29033,-15190,29028,-15200,29023,-15210,29018,-15220,29012,-15230,29007,-15239,29002,-15249,28997,-15259,28992,-15269,28986,-15279,28981,-15289,28976,-15299,28971,-15309,28966,-15319,28960,-15328,28955,-15338,28950,-15348,28945,-15358,28939,-15368,28934,-15378,28929,-15388,28924,-15397,28918,-15407,28913,-15417,28908,-15427,28903,-15437,28897,-15447,28892,-15457,28887,-15466,28882,-15476,28876,-15486,28871,-15496,28866,-15506,28860,-15516,28855,-15526,28850,-15535,28845,-15545,28839,-15555,28834,-15565,28829,-15575,28823,-15584,28818,-15594,28813,-15604,28807,-15614,28802,-15624,28797,-15634,28791,-15643,28786,-15653,28781,-15663,28775,-15673,28770,-15683,28765,-15692,28759,-15702,28754,-15712,28749,-15722,28743,-15732,28738,-15741,28733,-15751,28727,-15761,28722,-15771,28716,-15781,28711,-15790,28706,-15800,28700,-15810,28695,-15820,28690,-15830,28684,-15839,28679,-15849,28673,-15859,28668,-15869,28662,-15878,28657,-15888,28652,-15898,28646,-15908,28641,-15918,28635,-15927,28630,-15937,28625,-15947,28619,-15957,28614,-15966,28608,-15976,28603,-15986,28597,-15996,28592,-16005,28586,-16015,28581,-16025,28575,-16035,28570,-16044,28565,-16054,28559,-16064,28554,-16073,28548,-16083,28543,-16093,28537,-16103,28532,-16112,28526,-16122,28521,-16132,28515,-16142,28510,-16151,28504,-16161,28499,-16171,28493,-16180,28488,-16190,28482,-16200,28477,-16210,28471,-16219,28465,-16229,28460,-16239,28454,-16248,28449,-16258,28443,-16268,28438,-16277,28432,-16287,28427,-16297,28421,-16307,28416,-16316,28410,-16326,28404,-16336,28399,-16345,28393,-16355,28388,-16365,28382,-16374,28377,-16384,28371,-16394,28365,-16403,28360,-16413,28354,-16423,28349,-16432,28343,-16442,28337,-16452,28332,-16461,28326,-16471,28321,-16481,28315,-16490,28309,-16500,28304,-16510,28298,-16519,28292,-16529,28287,-16539,28281,-16548,28275,-16558,28270,-16567,28264,-16577,28259,-16587,28253,-16596,28247,-16606,28242,-16616,28236,-16625,28230,-16635,28225,-16644,28219,-16654,28213,-16664,28208,-16673,28202,-16683,28196,-16693,28190,-16702,28185,-16712,28179,-16721,28173,-16731,28168,-16741,28162,-16750,28156,-16760,28151,-16769,28145,-16779,28139,-16789,28133,-16798,28128,-16808,28122,-16817,28116,-16827,28110,-16837,28105,-16846,28099,-16856,28093,-16865,28087,-16875,28082,-16884,28076,-16894,28070,-16904,28064,-16913,28059,-16923,28053,-16932,28047,-16942,28041,-16951,28036,-16961,28030,-16970,28024,-16980,28018,-16990,28012,-16999,28007,-17009,28001,-17018,27995,-17028,27989,-17037,27983,-17047,27978,-17056,27972,-17066,27966,-17075,27960,-17085,27954,-17095,27948,-17104,27943,-17114,27937,-17123,27931,-17133,27925,-17142,27919,-17152,27913,-17161,27908,-17171,27902,-17180,27896,-17190,27890,-17199,27884,-17209,27878,-17218,27872,-17228,27867,-17237,27861,-17247,27855,-17256,27849,-17266,27843,-17275,27837,-17285,27831,-17294,27825,-17304,27819,-17313,27814,-17323,27808,-17332,27802,-17342,27796,-17351,27790,-17361,27784,-17370,27778,-17380,27772,-17389,27766,-17398,27760,-17408,27754,-17417,27748,-17427,27742,-17436,27736,-17446,27731,-17455,27725,-17465,27719,-17474,27713,-17484,27707,-17493,27701,-17502,27695,-17512,27689,-17521,27683,-17531,27677,-17540,27671,-17550,27665,-17559,27659,-17568,27653,-17578,27647,-17587,27641,-17597,27635,-17606,27629,-17616,27623,-17625,27617,-17634,27611,-17644,27605,-17653,27599,-17663,27593,-17672,27587,-17681,27581,-17691,27575,-17700,27569,-17710,27563,-17719,27557,-17728,27551,-17738,27545,-17747,27538,-17757,27532,-17766,27526,-17775,27520,-17785,27514,-17794,27508,-17804,27502,-17813,27496,-17822,27490,-17832,27484,-17841,27478,-17850,27472,-17860,27466,-17869,27460,-17879,27453,-17888,27447,-17897,27441,-17907,27435,-17916,27429,-17925,27423,-17935,27417,-17944,27411,-17953,27405,-17963,27398,-17972,27392,-17981,27386,-17991,27380,-18000,27374,-18009,27368,-18019,27362,-18028,27355,-18037,27349,-18047,27343,-18056,27337,-18065,27331,-18075,27325,-18084,27319,-18093,27312,-18103,27306,-18112,27300,-18121,27294,-18131,27288,-18140,27281,-18149,27275,-18158,27269,-18168,27263,-18177,27257,-18186,27250,-18196,27244,-18205,27238,-18214,27232,-18223,27226,-18233,27219,-18242,27213,-18251,27207,-18261,27201,-18270,27195,-18279,27188,-18288,27182,-18298,27176,-18307,27170,-18316,27163,-18325,27157,-18335,27151,-18344,27145,-18353,27138,-18362,27132,-18372,27126,-18381,27120,-18390,27113,-18399,27107,-18409,27101,-18418,27094,-18427,27088,-18436,27082,-18446,27076,-18455,27069,-18464,27063,-18473,27057,-18483,27050,-18492,27044,-18501,27038,-18510,27031,-18519,27025,-18529,27019,-18538,27012,-18547,27006,-18556,27000,-18565,26994,-18575,26987,-18584,26981,-18593,26975,-18602,26968,-18611,26962,-18621,26955,-18630,26949,-18639,26943,-18648,26936,-18657,26930,-18667,26924,-18676,26917,-18685,26911,-18694,26905,-18703,26898,-18712,26892,-18722,26885,-18731,26879,-18740,26873,-18749,26866,-18758,26860,-18767,26853,-18777,26847,-18786,26841,-18795,26834,-18804,26828,-18813,26821,-18822,26815,-18831,26809,-18841,26802,-18850,26796,-18859,26789,-18868,26783,-18877,26776,-18886,26770,-18895,26764,-18905,26757,-18914,26751,-18923,26744,-18932,26738,-18941,26731,-18950,26725,-18959,26718,-18968,26712,-18977,26705,-18987,26699,-18996,26692,-19005,26686,-19014,26680,-19023,26673,-19032,26667,-19041,26660,-19050,26654,-19059,26647,-19068,26641,-19077,26634,-19087,26628,-19096,26621,-19105,26615,-19114,26608,-19123,26601,-19132,26595,-19141,26588,-19150,26582,-19159,26575,-19168,26569,-19177,26562,-19186,26556,-19195,26549,-19204,26543,-19213,26536,-19222,26530,-19232,26523,-19241,26516,-19250,26510,-19259,26503,-19268,26497,-19277,26490,-19286,26484,-19295,26477,-19304,26470,-19313,26464,-19322,26457,-19331,26451,-19340,26444,-19349,26437,-19358,26431,-19367,26424,-19376,26418,-19385,26411,-19394,26404,-19403,26398,-19412,26391,-19421,26385,-19430,26378,-19439,26371,-19448,26365,-19457,26358,-19466,26351,-19475,26345,-19484,26338,-19493,26332,-19502,26325,-19511,26318,-19520,26312,-19529,26305,-19538,26298,-19547,26292,-19556,26285,-19565,26278,-19574,26272,-19583,26265,-19591,26258,-19600,26252,-19609,26245,-19618,26238,-19627,26231,-19636,26225,-19645,26218,-19654,26211,-19663,26205,-19672,26198,-19681,26191,-19690,26185,-19699,26178,-19708,26171,-19717,26164,-19726,26158,-19734,26151,-19743,26144,-19752,26137,-19761,26131,-19770,26124,-19779,26117,-19788,26110,-19797,26104,-19806,26097,-19815,26090,-19823,26083,-19832,26077,-19841,26070,-19850,26063,-19859,26056,-19868,26050,-19877,26043,-19886,26036,-19895,26029,-19903,26022,-19912,26016,-19921,26009,-19930,26002,-19939,25995,-19948,25989,-19957,25982,-19966,25975,-19974,25968,-19983,25961,-19992,25954,-20001,25948,-20010,25941,-20019,25934,-20027,25927,-20036,25920,-20045,25913,-20054,25907,-20063,25900,-20072,25893,-20080,25886,-20089,25879,-20098,25872,-20107,25866,-20116,25859,-20125,25852,-20133,25845,-20142,25838,-20151,25831,-20160,25824,-20169,25817,-20177,25811,-20186,25804,-20195,25797,-20204,25790,-20213,25783,-20221,25776,-20230,25769,-20239,25762,-20248,25755,-20257,25749,-20265,25742,-20274,25735,-20283,25728,-20292,25721,-20300,25714,-20309,25707,-20318,25700,-20327,25693,-20335,25686,-20344,25679,-20353,25672,-20362,25665,-20370,25659,-20379,25652,-20388,25645,-20397,25638,-20405,25631,-20414,25624,-20423,25617,-20432,25610,-20440,25603,-20449,25596,-20458,25589,-20467,25582,-20475,25575,-20484,25568,-20493,25561,-20501,25554,-20510,25547,-20519,25540,-20528,25533,-20536,25526,-20545,25519,-20554,25512,-20562,25505,-20571,25498,-20580,25491,-20588,25484,-20597,25477,-20606,25470,-20614,25463,-20623,25456,-20632,25449,-20641,25442,-20649,25435,-20658,25428,-20667,25421,-20675,25414,-20684,25407,-20693,25399,-20701,25392,-20710,25385,-20719,25378,-20727,25371,-20736,25364,-20744,25357,-20753,25350,-20762,25343,-20770,25336,-20779,25329,-20788,25322,-20796,25315,-20805,25307,-20814,25300,-20822,25293,-20831,25286,-20839,25279,-20848,25272,-20857,25265,-20865,25258,-20874,25251,-20882,25243,-20891,25236,-20900,25229,-20908,25222,-20917,25215,-20926,25208,-20934,25201,-20943,25194,-20951,25186,-20960,25179,-20968,25172,-20977,25165,-20986,25158,-20994,25151,-21003,25144,-21011,25136,-21020,25129,-21028,25122,-21037,25115,-21046,25108,-21054,25100,-21063,25093,-21071,25086,-21080,25079,-21088,25072,-21097,25065,-21105,25057,-21114,25050,-21123,25043,-21131,25036,-21140,25029,-21148,25021,-21157,25014,-21165,25007,-21174,25000,-21182,24992,-21191,24985,-21199,24978,-21208,24971,-21216,24964,-21225,24956,-21233,24949,-21242,24942,-21250,24935,-21259,24927,-21267,24920,-21276,24913,-21284,24906,-21293,24898,-21301,24891,-21310,24884,-21318,24877,-21327,24869,-21335,24862,-21344,24855,-21352,24847,-21361,24840,-21369,24833,-21378,24826,-21386,24818,-21395,24811,-21403,24804,-21411,24796,-21420,24789,-21428,24782,-21437,24774,-21445,24767,-21454,24760,-21462,24753,-21471,24745,-21479,24738,-21487,24731,-21496,24723,-21504,24716,-21513,24709,-21521,24701,-21530,24694,-21538,24687,-21546,24679,-21555,24672,-21563,24664,-21572,24657,-21580,24650,-21588,24642,-21597,24635,-21605,24628,-21614,24620,-21622,24613,-21630,24606,-21639,24598,-21647,24591,-21656,24583,-21664,24576,-21672,24569,-21681,24561,-21689,24554,-21698,24546,-21706,24539,-21714,24532,-21723,24524,-21731,24517,-21739,24509,-21748,24502,-21756,24495,-21764,24487,-21773,24480,-21781,24472,-21789,24465,-21798,24457,-21806,24450,-21814,24443,-21823,24435,-21831,24428,-21839,24420,-21848,24413,-21856,24405,-21864,24398,-21873,24390,-21881,24383,-21889,24376,-21898,24368,-21906,24361,-21914,24353,-21923,24346,-21931,24338,-21939,24331,-21947,24323,-21956,24316,-21964,24308,-21972,24301,-21981,24293,-21989,24286,-21997,24278,-22005,24271,-22014,24263,-22022,24256,-22030,24248,-22039,24241,-22047,24233,-22055,24226,-22063,24218,-22072,24211,-22080,24203,-22088,24196,-22096,24188,-22105,24180,-22113,24173,-22121,24165,-22129,24158,-22138,24150,-22146,24143,-22154,24135,-22162,24128,-22170,24120,-22179,24113,-22187,24105,-22195,24097,-22203,24090,-22212,24082,-22220,24075,-22228,24067,-22236,24060,-22244,24052,-22253,24044,-22261,24037,-22269,24029,-22277,24022,-22285,24014,-22294,24006,-22302,23999,-22310,23991,-22318,23984,-22326,23976,-22334,23968,-22343,23961,-22351,23953,-22359,23945,-22367,23938,-22375,23930,-22383,23923,-22392,23915,-22400,23907,-22408,23900,-22416,23892,-22424,23884,-22432,23877,-22440,23869,-22449,23861,-22457,23854,-22465,23846,-22473,23838,-22481,23831,-22489,23823,-22497,23815,-22506,23808,-22514,23800,-22522,23792,-22530,23785,-22538,23777,-22546,23769,-22554,23762,-22562,23754,-22570,23746,-22578,23739,-22587,23731,-22595,23723,-22603,23715,-22611,23708,-22619,23700,-22627,23692,-22635,23685,-22643,23677,-22651,23669,-22659,23661,-22667,23654,-22675,23646,-22684,23638,-22692,23631,-22700,23623,-22708,23615,-22716,23607,-22724,23600,-22732,23592,-22740,23584,-22748,23576,-22756,23569,-22764,23561,-22772,23553,-22780,23545,-22788,23537,-22796,23530,-22804,23522,-22812,23514,-22820,23506,-22828,23499,-22836,23491,-22844,23483,-22852,23475,-22860,23467,-22868,23460,-22876,23452,-22884,23444,-22892,23436,-22900,23428,-22908,23421,-22916,23413,-22924,23405,-22932,23397,-22940,23389,-22948,23382,-22956,23374,-22964,23366,-22972,23358,-22980,23350,-22988,23342,-22996,23335,-23004,23327,-23012,23319,-23020,23311,-23028,23303,-23036,23295,-23044,23287,-23051,23280,-23059,23272,-23067,23264,-23075,23256,-23083,23248,-23091,23240,-23099,23232,-23107,23224,-23115,23217,-23123,23209,-23131,23201,-23139,23193,-23147,23185,-23154,23177,-23162,23169,-23170,23161,-23178,23153,-23186,23146,-23194,23138,-23202,23130,-23210,23122,-23218,23114,-23225,23106,-23233,23098,-23241,23090,-23249,23082,-23257,23074,-23265,23066,-23273,23058,-23281,23050,-23288,23043,-23296,23035,-23304,23027,-23312,23019,-23320,23011,-23328,23003,-23336,22995,-23343,22987,-23351,22979,-23359,22971,-23367,22963,-23375,22955,-23383,22947,-23390,22939,-23398,22931,-23406,22923,-23414,22915,-23422,22907,-23429,22899,-23437,22891,-23445,22883,-23453,22875,-23461,22867,-23468,22859,-23476,22851,-23484,22843,-23492,22835,-23500,22827,-23507,22819,-23515,22811,-23523,22803,-23531,22795,-23538,22787,-23546,22779,-23554,22771,-23562,22763,-23570,22755,-23577,22747,-23585,22739,-23593,22731,-23601,22723,-23608,22715,-23616,22707,-23624,22699,-23632,22691,-23639,22683,-23647,22674,-23655,22666,-23662,22658,-23670,22650,-23678,22642,-23686,22634,-23693,22626,-23701,22618,-23709,22610,-23716,22602,-23724,22594,-23732,22586,-23740,22577,-23747,22569,-23755,22561,-23763,22553,-23770,22545,-23778,22537,-23786,22529,-23793,22521,-23801,22513,-23809,22505,-23816,22496,-23824,22488,-23832,22480,-23839,22472,-23847,22464,-23855,22456,-23862,22448,-23870,22439,-23878,22431,-23885,22423,-23893,22415,-23901,22407,-23908,22399,-23916,22391,-23924,22382,-23931,22374,-23939,22366,-23946,22358,-23954,22350,-23962,22342,-23969,22333,-23977,22325,-23985,22317,-23992,22309,-24000,22301,-24007,22293,-24015,22284,-24023,22276,-24030,22268,-24038,22260,-24045,22252,-24053,22243,-24061,22235,-24068,22227,-24076,22219,-24083,22211,-24091,22202,-24098,22194,-24106,22186,-24114,22178,-24121,22169,-24129,22161,-24136,22153,-24144,22145,-24151,22137,-24159,22128,-24166,22120,-24174,22112,-24181,22104,-24189,22095,-24197,22087,-24204,22079,-24212,22071,-24219,22062,-24227,22054,-24234,22046,-24242,22038,-24249,22029,-24257,22021,-24264,22013,-24272,22004,-24279,21996,-24287,21988,-24294,21980,-24302,21971,-24309,21963,-24317,21955,-24324,21946,-24332,21938,-24339,21930,-24347,21922,-24354,21913,-24362,21905,-24369,21897,-24377,21888,-24384,21880,-24391,21872,-24399,21863,-24406,21855,-24414,21847,-24421,21838,-24429,21830,-24436,21822,-24444,21813,-24451,21805,-24458,21797,-24466,21788,-24473,21780,-24481,21772,-24488,21763,-24496,21755,-24503,21747,-24510,21738,-24518,21730,-24525,21722,-24533,21713,-24540,21705,-24547,21697,-24555,21688,-24562,21680,-24570,21671,-24577,21663,-24584,21655,-24592,21646,-24599,21638,-24607,21629,-24614,21621,-24621,21613,-24629,21604,-24636,21596,-24643,21587,-24651,21579,-24658,21571,-24665,21562,-24673,21554,-24680,21545,-24688,21537,-24695,21529,-24702,21520,-24710,21512,-24717,21503,-24724,21495,-24732,21486,-24739,21478,-24746,21470,-24754,21461,-24761,21453,-24768,21444,-24775,21436,-24783,21427,-24790,21419,-24797,21410,-24805,21402,-24812,21394,-24819,21385,-24827,21377,-24834,21368,-24841,21360,-24848,21351,-24856,21343,-24863,21334,-24870,21326,-24878,21317,-24885,21309,-24892,21300,-24899,21292,-24907,21283,-24914,21275,-24921,21266,-24928,21258,-24936,21249,-24943,21241,-24950,21232,-24957,21224,-24965,21215,-24972,21207,-24979,21198,-24986,21190,-24993,21181,-25001,21173,-25008,21164,-25015,21156,-25022,21147,-25030,21139,-25037,21130,-25044,21122,-25051,21113,-25058,21104,-25066,21096,-25073,21087,-25080,21079,-25087,21070,-25094,21062,-25101,21053,-25109,21045,-25116,21036,-25123,21027,-25130,21019,-25137,21010,-25145,21002,-25152,20993,-25159,20985,-25166,20976,-25173,20967,-25180,20959,-25187,20950,-25195,20942,-25202,20933,-25209,20925,-25216,20916,-25223,20907,-25230,20899,-25237,20890,-25244,20881,-25252,20873,-25259,20864,-25266,20856,-25273,20847,-25280,20838,-25287,20830,-25294,20821,-25301,20813,-25308,20804,-25316,20795,-25323,20787,-25330,20778,-25337,20769,-25344,20761,-25351,20752,-25358,20743,-25365,20735,-25372,20726,-25379,20718,-25386,20709,-25393,20700,-25400,20692,-25408,20683,-25415,20674,-25422,20666,-25429,20657,-25436,20648,-25443,20640,-25450,20631,-25457,20622,-25464,20613,-25471,20605,-25478,20596,-25485,20587,-25492,20579,-25499,20570,-25506,20561,-25513,20553,-25520,20544,-25527,20535,-25534,20527,-25541,20518,-25548,20509,-25555,20500,-25562,20492,-25569,20483,-25576,20474,-25583,20466,-25590,20457,-25597,20448,-25604,20439,-25611,20431,-25618,20422,-25625,20413,-25632,20404,-25639,20396,-25646,20387,-25653,20378,-25660,20369,-25666,20361,-25673,20352,-25680,20343,-25687,20334,-25694,20326,-25701,20317,-25708,20308,-25715,20299,-25722,20291,-25729,20282,-25736,20273,-25743,20264,-25750,20256,-25756,20247,-25763,20238,-25770,20229,-25777,20220,-25784,20212,-25791,20203,-25798,20194,-25805,20185,-25812,20176,-25818,20168,-25825,20159,-25832,20150,-25839,20141,-25846,20132,-25853,20124,-25860,20115,-25867,20106,-25873,20097,-25880,20088,-25887,20079,-25894,20071,-25901,20062,-25908,20053,-25914,20044,-25921,20035,-25928,20026,-25935,20018,-25942,20009,-25949,20000,-25955,19991,-25962,19982,-25969,19973,-25976,19965,-25983,19956,-25990,19947,-25996,19938,-26003,19929,-26010,19920,-26017,19911,-26023,19902,-26030,19894,-26037,19885,-26044,19876,-26051,19867,-26057,19858,-26064,19849,-26071,19840,-26078,19831,-26084,19822,-26091,19814,-26098,19805,-26105,19796,-26111,19787,-26118,19778,-26125,19769,-26132,19760,-26138,19751,-26145,19742,-26152,19733,-26159,19725,-26165,19716,-26172,19707,-26179,19698,-26186,19689,-26192,19680,-26199,19671,-26206,19662,-26212,19653,-26219,19644,-26226,19635,-26232,19626,-26239,19617,-26246,19608,-26253,19599,-26259,19590,-26266,19582,-26273,19573,-26279,19564,-26286,19555,-26293,19546,-26299,19537,-26306,19528,-26313,19519,-26319,19510,-26326,19501,-26333,19492,-26339,19483,-26346,19474,-26352,19465,-26359,19456,-26366,19447,-26372,19438,-26379,19429,-26386,19420,-26392,19411,-26399,19402,-26405,19393,-26412,19384,-26419,19375,-26425,19366,-26432,19357,-26438,19348,-26445,19339,-26452,19330,-26458,19321,-26465,19312,-26471,19303,-26478,19294,-26485,19285,-26491,19276,-26498,19267,-26504,19258,-26511,19249,-26517,19240,-26524,19231,-26531,19221,-26537,19212,-26544,19203,-26550,19194,-26557,19185,-26563,19176,-26570,19167,-26576,19158,-26583,19149,-26589,19140,-26596,19131,-26602,19122,-26609,19113,-26616,19104,-26622,19095,-26629,19086,-26635,19076,-26642,19067,-26648,19058,-26655,19049,-26661,19040,-26668,19031,-26674,19022,-26681,19013,-26687,19004,-26693,18995,-26700,18986,-26706,18976,-26713,18967,-26719,18958,-26726,18949,-26732,18940,-26739,18931,-26745,18922,-26752,18913,-26758,18904,-26765,18894,-26771,18885,-26777,18876,-26784,18867,-26790,18858,-26797,18849,-26803,18840,-26810,18830,-26816,18821,-26822,18812,-26829,18803,-26835,18794,-26842,18785,-26848,18776,-26854,18766,-26861,18757,-26867,18748,-26874,18739,-26880,18730,-26886,18721,-26893,18711,-26899,18702,-26906,18693,-26912,18684,-26918,18675,-26925,18666,-26931,18656,-26937,18647,-26944,18638,-26950,18629,-26956,18620,-26963,18610,-26969,18601,-26976,18592,-26982,18583,-26988,18574,-26995,18564,-27001,18555,-27007,18546,-27013,18537,-27020,18528,-27026,18518,-27032,18509,-27039,18500,-27045,18491,-27051,18482,-27058,18472,-27064,18463,-27070,18454,-27077,18445,-27083,18435,-27089,18426,-27095,18417,-27102,18408,-27108,18398,-27114,18389,-27121,18380,-27127,18371,-27133,18361,-27139,18352,-27146,18343,-27152,18334,-27158,18324,-27164,18315,-27171,18306,-27177,18297,-27183,18287,-27189,18278,-27196,18269,-27202,18260,-27208,18250,-27214,18241,-27220,18232,-27227,18222,-27233,18213,-27239,18204,-27245,18195,-27251,18185,-27258,18176,-27264,18167,-27270,18157,-27276,18148,-27282,18139,-27289,18130,-27295,18120,-27301,18111,-27307,18102,-27313,18092,-27320,18083,-27326,18074,-27332,18064,-27338,18055,-27344,18046,-27350,18036,-27356,18027,-27363,18018,-27369,18008,-27375,17999,-27381,17990,-27387,17980,-27393,17971,-27399,17962,-27406,17952,-27412,17943,-27418,17934,-27424,17924,-27430,17915,-27436,17906,-27442,17896,-27448,17887,-27454,17878,-27461,17868,-27467,17859,-27473,17849,-27479,17840,-27485,17831,-27491,17821,-27497,17812,-27503,17803,-27509,17793,-27515,17784,-27521,17774,-27527,17765,-27533,17756,-27539,17746,-27546,17737,-27552,17727,-27558,17718,-27564,17709,-27570,17699,-27576,17690,-27582,17680,-27588,17671,-27594,17662,-27600,17652,-27606,17643,-27612,17633,-27618,17624,-27624,17615,-27630,17605,-27636,17596,-27642,17586,-27648,17577,-27654,17567,-27660,17558,-27666,17549,-27672,17539,-27678,17530,-27684,17520,-27690,17511,-27696,17501,-27702,17492,-27708,17483,-27714,17473,-27720,17464,-27726,17454,-27732,17445,-27737,17435,-27743,17426,-27749,17416,-27755,17407,-27761,17397,-27767,17388,-27773,17379,-27779,17369,-27785,17360,-27791,17350,-27797,17341,-27803,17331,-27809,17322,-27815,17312,-27820,17303,-27826,17293,-27832,17284,-27838,17274,-27844,17265,-27850,17255,-27856,17246,-27862,17236,-27868,17227,-27873,17217,-27879,17208,-27885,17198,-27891,17189,-27897,17179,-27903,17170,-27909,17160,-27914,17151,-27920,17141,-27926,17132,-27932,17122,-27938,17113,-27944,17103,-27949,17094,-27955,17084,-27961,17074,-27967,17065,-27973,17055,-27979,17046,-27984,17036,-27990,17027,-27996,17017,-28002,17008,-28008,16998,-28013,16989,-28019,16979,-28025,16969,-28031,16960,-28037,16950,-28042,16941,-28048,16931,-28054,16922,-28060,16912,-28065,16903,-28071,16893,-28077,16883,-28083,16874,-28088,16864,-28094,16855,-28100,16845,-28106,16836,-28111,16826,-28117,16816,-28123,16807,-28129,16797,-28134,16788,-28140,16778,-28146,16768,-28152,16759,-28157,16749,-28163,16740,-28169,16730,-28174,16720,-28180,16711,-28186,16701,-28191,16692,-28197,16682,-28203,16672,-28209,16663,-28214,16653,-28220,16643,-28226,16634,-28231,16624,-28237,16615,-28243,16605,-28248,16595,-28254,16586,-28260,16576,-28265,16566,-28271,16557,-28276,16547,-28282,16538,-28288,16528,-28293,16518,-28299,16509,-28305,16499,-28310,16489,-28316,16480,-28322,16470,-28327,16460,-28333,16451,-28338,16441,-28344,16431,-28350,16422,-28355,16412,-28361,16402,-28366,16393,-28372,16383,-28378,16373,-28383,16364,-28389,16354,-28394,16344,-28400,16335,-28405,16325,-28411,16315,-28417,16306,-28422,16296,-28428,16286,-28433,16276,-28439,16267,-28444,16257,-28450,16247,-28455,16238,-28461,16228,-28466,16218,-28472,16209,-28478,16199,-28483,16189,-28489,16179,-28494,16170,-28500,16160,-28505,16150,-28511,16141,-28516,16131,-28522,16121,-28527,16111,-28533,16102,-28538,16092,-28544,16082,-28549,16072,-28555,16063,-28560,16053,-28566,16043,-28571,16034,-28576,16024,-28582,16014,-28587,16004,-28593,15995,-28598,15985,-28604,15975,-28609,15965,-28615,15956,-28620,15946,-28626,15936,-28631,15926,-28636,15917,-28642,15907,-28647,15897,-28653,15887,-28658,15877,-28663,15868,-28669,15858,-28674,15848,-28680,15838,-28685,15829,-28691,15819,-28696,15809,-28701,15799,-28707,15789,-28712,15780,-28717,15770,-28723,15760,-28728,15750,-28734,15740,-28739,15731,-28744,15721,-28750,15711,-28755,15701,-28760,15691,-28766,15682,-28771,15672,-28776,15662,-28782,15652,-28787,15642,-28792,15633,-28798,15623,-28803,15613,-28808,15603,-28814,15593,-28819,15583,-28824,15574,-28830,15564,-28835,15554,-28840,15544,-28846,15534,-28851,15525,-28856,15515,-28861,15505,-28867,15495,-28872,15485,-28877,15475,-28883,15465,-28888,15456,-28893,15446,-28898,15436,-28904,15426,-28909,15416,-28914,15406,-28919,15396,-28925,15387,-28930,15377,-28935,15367,-28940,15357,-28946,15347,-28951,15337,-28956,15327,-28961,15318,-28967,15308,-28972,15298,-28977,15288,-28982,15278,-28987,15268,-28993,15258,-28998,15248,-29003,15238,-29008,15229,-29013,15219,-29019,15209,-29024,15199,-29029,15189,-29034,15179,-29039,15169,-29045,15159,-29050,15149,-29055,15140,-29060,15130,-29065,15120,-29070,15110,-29075,15100,-29081,15090,-29086,15080,-29091,15070,-29096,15060,-29101,15050,-29106,15040,-29111,15030,-29117,15021,-29122,15011,-29127,15001,-29132,14991,-29137,14981,-29142,14971,-29147,14961,-29152,14951,-29157,14941,-29163,14931,-29168,14921,-29173,14911,-29178,14901,-29183,14891,-29188,14881,-29193,14871,-29198,14861,-29203,14852,-29208,14842,-29213,14832,-29218,14822,-29223,14812,-29228,14802,-29234,14792,-29239,14782,-29244,14772,-29249,14762,-29254,14752,-29259,14742,-29264,14732,-29269,14722,-29274,14712,-29279,14702,-29284,14692,-29289,14682,-29294,14672,-29299,14662,-29304,14652,-29309,14642,-29314,14632,-29319,14622,-29324,14612,-29329,14602,-29334,14592,-29339,14582,-29344,14572,-29349,14562,-29354,14552,-29359,14542,-29364,14532,-29369,14522,-29373,14512,-29378,14502,-29383,14492,-29388,14482,-29393,14472,-29398,14462,-29403,14452,-29408,14442,-29413,14432,-29418,14422,-29423,14412,-29428,14402,-29433,14392,-29438,14382,-29442,14372,-29447,14362,-29452,14352,-29457,14342,-29462,14331,-29467,14321,-29472,14311,-29477,14301,-29482,14291,-29486,14281,-29491,14271,-29496,14261,-29501,14251,-29506,14241,-29511,14231,-29516,14221,-29520,14211,-29525,14201,-29530,14191,-29535,14181,-29540,14171,-29545,14160,-29549,14150,-29554,14140,-29559,14130,-29564,14120,-29569,14110,-29574,14100,-29578,14090,-29583,14080,-29588,14070,-29593,14060,-29598,14050,-29602,14039,-29607,14029,-29612,14019,-29617,14009,-29622,13999,-29626,13989,-29631,13979,-29636,13969,-29641,13959,-29645,13949,-29650,13938,-29655,13928,-29660,13918,-29664,13908,-29669,13898,-29674,13888,-29679,13878,-29683,13868,-29688,13858,-29693,13847,-29697,13837,-29702,13827,-29707,13817,-29712,13807,-29716,13797,-29721,13787,-29726,13777,-29730,13766,-29735,13756,-29740,13746,-29745,13736,-29749,13726,-29754,13716,-29759,13706,-29763,13695,-29768,13685,-29773,13675,-29777,13665,-29782,13655,-29787,13645,-29791,13634,-29796,13624,-29801,13614,-29805,13604,-29810,13594,-29814,13584,-29819,13574,-29824,13563,-29828,13553,-29833,13543,-29838,13533,-29842,13523,-29847,13512,-29851,13502,-29856,13492,-29861,13482,-29865,13472,-29870,13462,-29874,13451,-29879,13441,-29884,13431,-29888,13421,-29893,13411,-29897,13400,-29902,13390,-29906,13380,-29911,13370,-29916,13360,-29920,13349,-29925,13339,-29929,13329,-29934,13319,-29938,13309,-29943,13298,-29947,13288,-29952,13278,-29956,13268,-29961,13258,-29965,13247,-29970,13237,-29974,13227,-29979,13217,-29984,13207,-29988,13196,-29993,13186,-29997,13176,-30002,13166,-30006,13155,-30010,13145,-30015,13135,-30019,13125,-30024,13114,-30028,13104,-30033,13094,-30037,13084,-30042,13074,-30046,13063,-30051,13053,-30055,13043,-30060,13033,-30064,13022,-30068,13012,-30073,13002,-30077,12992,-30082,12981,-30086,12971,-30091,12961,-30095,12950,-30099,12940,-30104,12930,-30108,12920,-30113,12909,-30117,12899,-30122,12889,-30126,12879,-30130,12868,-30135,12858,-30139,12848,-30143,12838,-30148,12827,-30152,12817,-30157,12807,-30161,12796,-30165,12786,-30170,12776,-30174,12766,-30178,12755,-30183,12745,-30187,12735,-30191,12724,-30196,12714,-30200,12704,-30204,12694,-30209,12683,-30213,12673,-30217,12663,-30222,12652,-30226,12642,-30230,12632,-30235,12621,-30239,12611,-30243,12601,-30248,12590,-30252,12580,-30256,12570,-30260,12560,-30265,12549,-30269,12539,-30273,12529,-30278,12518,-30282,12508,-30286,12498,-30290,12487,-30295,12477,-30299,12467,-30303,12456,-30307,12446,-30312,12436,-30316,12425,-30320,12415,-30324,12405,-30329,12394,-30333,12384,-30337,12374,-30341,12363,-30345,12353,-30350,12343,-30354,12332,-30358,12322,-30362,12312,-30366,12301,-30371,12291,-30375,12280,-30379,12270,-30383,12260,-30387,12249,-30392,12239,-30396,12229,-30400,12218,-30404,12208,-30408,12198,-30412,12187,-30417,12177,-30421,12166,-30425,12156,-30429,12146,-30433,12135,-30437,12125,-30441,12115,-30446,12104,-30450,12094,-30454,12083,-30458,12073,-30462,12063,-30466,12052,-30470,12042,-30474,12032,-30478,12021,-30483,12011,-30487,12000,-30491,11990,-30495,11980,-30499,11969,-30503,11959,-30507,11948,-30511,11938,-30515,11928,-30519,11917,-30523,11907,-30527,11896,-30531,11886,-30536,11876,-30540,11865,-30544,11855,-30548,11844,-30552,11834,-30556,11823,-30560,11813,-30564,11803,-30568,11792,-30572,11782,-30576,11771,-30580,11761,-30584,11750,-30588,11740,-30592,11730,-30596,11719,-30600,11709,-30604,11698,-30608,11688,-30612,11677,-30616,11667,-30620,11657,-30624,11646,-30628,11636,-30632,11625,-30636,11615,-30640,11604,-30644,11594,-30648,11583,-30652,11573,-30656,11563,-30659,11552,-30663,11542,-30667,11531,-30671,11521,-30675,11510,-30679,11500,-30683,11489,-30687,11479,-30691,11468,-30695,11458,-30699,11448,-30703,11437,-30706,11427,-30710,11416,-30714,11406,-30718,11395,-30722,11385,-30726,11374,-30730,11364,-30734,11353,-30738,11343,-30741,11332,-30745,11322,-30749,11311,-30753,11301,-30757,11290,-30761,11280,-30765,11269,-30768,11259,-30772,11248,-30776,11238,-30780,11227,-30784,11217,-30788,11206,-30791,11196,-30795,11185,-30799,11175,-30803,11164,-30807,11154,-30810,11143,-30814,11133,-30818,11122,-30822,11112,-30826,11101,-30829,11091,-30833,11080,-30837,11070,-30841,11059,-30845,11049,-30848,11038,-30852,11028,-30856,11017,-30860,11007,-30863,10996,-30867,10986,-30871,10975,-30875,10965,-30878,10954,-30882,10944,-30886,10933,-30890,10923,-30893,10912,-30897,10902,-30901,10891,-30904,10880,-30908,10870,-30912,10859,-30916,10849,-30919,10838,-30923,10828,-30927,10817,-30930,10807,-30934,10796,-30938,10786,-30941,10775,-30945,10765,-30949,10754,-30952,10743,-30956,10733,-30960,10722,-30963,10712,-30967,10701,-30971,10691,-30974,10680,-30978,10670,-30982,10659,-30985,10648,-30989,10638,-30992,10627,-30996,10617,-31000,10606,-31003,10596,-31007,10585,-31011,10574,-31014,10564,-31018,10553,-31021,10543,-31025,10532,-31029,10522,-31032,10511,-31036,10500,-31039,10490,-31043,10479,-31046,10469,-31050,10458,-31054,10447,-31057,10437,-31061,10426,-31064,10416,-31068,10405,-31071,10395,-31075,10384,-31078,10373,-31082,10363,-31086,10352,-31089,10342,-31093,10331,-31096,10320,-31100,10310,-31103,10299,-31107,10289,-31110,10278,-31114,10267,-31117,10257,-31121,10246,-31124,10235,-31128,10225,-31131,10214,-31135,10204,-31138,10193,-31142,10182,-31145,10172,-31149,10161,-31152,10151,-31155,10140,-31159,10129,-31162,10119,-31166,10108,-31169,10097,-31173,10087,-31176,10076,-31180,10066,-31183,10055,-31186,10044,-31190,10034,-31193,10023,-31197,10012,-31200,10002,-31204,9991,-31207,9980,-31210,9970,-31214,9959,-31217,9949,-31221,9938,-31224,9927,-31227,9917,-31231,9906,-31234,9895,-31237,9885,-31241,9874,-31244,9863,-31248,9853,-31251,9842,-31254,9831,-31258,9821,-31261,9810,-31264,9799,-31268,9789,-31271,9778,-31274,9767,-31278,9757,-31281,9746,-31284,9735,-31288,9725,-31291,9714,-31294,9703,-31298,9693,-31301,9682,-31304,9671,-31308,9661,-31311,9650,-31314,9639,-31317,9629,-31321,9618,-31324,9607,-31327,9597,-31331,9586,-31334,9575,-31337,9565,-31340,9554,-31344,9543,-31347,9533,-31350,9522,-31353,9511,-31357,9501,-31360,9490,-31363,9479,-31366,9468,-31370,9458,-31373,9447,-31376,9436,-31379,9426,-31382,9415,-31386,9404,-31389,9394,-31392,9383,-31395,9372,-31398,9362,-31402,9351,-31405,9340,-31408,9329,-31411,9319,-31414,9308,-31418,9297,-31421,9287,-31424,9276,-31427,9265,-31430,9254,-31433,9244,-31436,9233,-31440,9222,-31443,9212,-31446,9201,-31449,9190,-31452,9179,-31455,9169,-31458,9158,-31462,9147,-31465,9136,-31468,9126,-31471,9115,-31474,9104,-31477,9094,-31480,9083,-31483,9072,-31486,9061,-31490,9051,-31493,9040,-31496,9029,-31499,9018,-31502,9008,-31505,8997,-31508,8986,-31511,8975,-31514,8965,-31517,8954,-31520,8943,-31523,8932,-31526,8922,-31529,8911,-31532,8900,-31535,8889,-31538,8879,-31542,8868,-31545,8857,-31548,8846,-31551,8836,-31554,8825,-31557,8814,-31560,8803,-31563,8793,-31566,8782,-31569,8771,-31572,8760,-31575,8750,-31578,8739,-31581,8728,-31584,8717,-31587,8707,-31589,8696,-31592,8685,-31595,8674,-31598,8663,-31601,8653,-31604,8642,-31607,8631,-31610,8620,-31613,8610,-31616,8599,-31619,8588,-31622,8577,-31625,8567,-31628,8556,-31631,8545,-31634,8534,-31636,8523,-31639,8513,-31642,8502,-31645,8491,-31648,8480,-31651,8469,-31654,8459,-31657,8448,-31660,8437,-31663,8426,-31665,8415,-31668,8405,-31671,8394,-31674,8383,-31677,8372,-31680,8361,-31683,8351,-31685,8340,-31688,8329,-31691,8318,-31694,8307,-31697,8297,-31700,8286,-31702,8275,-31705,8264,-31708,8253,-31711,8243,-31714,8232,-31717,8221,-31719,8210,-31722,8199,-31725,8189,-31728,8178,-31730,8167,-31733,8156,-31736,8145,-31739,8134,-31742,8124,-31744,8113,-31747,8102,-31750,8091,-31753,8080,-31755,8070,-31758,8059,-31761,8048,-31764,8037,-31766,8026,-31769,8015,-31772,8005,-31775,7994,-31777,7983,-31780,7972,-31783,7961,-31786,7950,-31788,7940,-31791,7929,-31794,7918,-31796,7907,-31799,7896,-31802,7885,-31804,7875,-31807,7864,-31810,7853,-31812,7842,-31815,7831,-31818,7820,-31820,7809,-31823,7799,-31826,7788,-31828,7777,-31831,7766,-31834,7755,-31836,7744,-31839,7733,-31842,7723,-31844,7712,-31847,7701,-31850,7690,-31852,7679,-31855,7668,-31857,7657,-31860,7647,-31863,7636,-31865,7625,-31868,7614,-31870,7603,-31873,7592,-31876,7581,-31878,7571,-31881,7560,-31883,7549,-31886,7538,-31889,7527,-31891,7516,-31894,7505,-31896,7494,-31899,7484,-31901,7473,-31904,7462,-31906,7451,-31909,7440,-31912,7429,-31914,7418,-31917,7407,-31919,7397,-31922,7386,-31924,7375,-31927,7364,-31929,7353,-31932,7342,-31934,7331,-31937,7320,-31939,7310,-31942,7299,-31944,7288,-31947,7277,-31949,7266,-31952,7255,-31954,7244,-31957,7233,-31959,7222,-31962,7211,-31964,7201,-31966,7190,-31969,7179,-31971,7168,-31974,7157,-31976,7146,-31979,7135,-31981,7124,-31984,7113,-31986,7102,-31988,7092,-31991,7081,-31993,7070,-31996,7059,-31998,7048,-32000,7037,-32003,7026,-32005,7015,-32008,7004,-32010,6993,-32012,6982,-32015,6972,-32017,6961,-32020,6950,-32022,6939,-32024,6928,-32027,6917,-32029,6906,-32031,6895,-32034,6884,-32036,6873,-32038,6862,-32041,6851,-32043,6841,-32045,6830,-32048,6819,-32050,6808,-32052,6797,-32055,6786,-32057,6775,-32059,6764,-32062,6753,-32064,6742,-32066,6731,-32069,6720,-32071,6709,-32073,6698,-32075,6688,-32078,6677,-32080,6666,-32082,6655,-32085,6644,-32087,6633,-32089,6622,-32091,6611,-32094,6600,-32096,6589,-32098,6578,-32100,6567,-32103,6556,-32105,6545,-32107,6534,-32109,6523,-32111,6512,-32114,6502,-32116,6491,-32118,6480,-32120,6469,-32123,6458,-32125,6447,-32127,6436,-32129,6425,-32131,6414,-32134,6403,-32136,6392,-32138,6381,-32140,6370,-32142,6359,-32144,6348,-32147,6337,-32149,6326,-32151,6315,-32153,6304,-32155,6293,-32157,6282,-32159,6271,-32162,6261,-32164,6250,-32166,6239,-32168,6228,-32170,6217,-32172,6206,-32174,6195,-32177,6184,-32179,6173,-32181,6162,-32183,6151,-32185,6140,-32187,6129,-32189,6118,-32191,6107,-32193,6096,-32195,6085,-32197,6074,-32200,6063,-32202,6052,-32204,6041,-32206,6030,-32208,6019,-32210,6008,-32212,5997,-32214,5986,-32216,5975,-32218,5964,-32220,5953,-32222,5942,-32224,5931,-32226,5920,-32228,5909,-32230,5898,-32232,5887,-32234,5876,-32236,5865,-32238,5854,-32240,5843,-32242,5832,-32244,5821,-32246,5810,-32248,5799,-32250,5788,-32252,5777,-32254,5766,-32256,5755,-32258,5744,-32260,5733,-32262,5722,-32264,5711,-32266,5700,-32268,5689,-32270,5678,-32272,5667,-32274,5656,-32275,5645,-32277,5634,-32279,5623,-32281,5612,-32283,5601,-32285,5590,-32287,5579,-32289,5568,-32291,5557,-32293,5546,-32295,5535,-32296,5524,-32298,5513,-32300,5502,-32302,5491,-32304,5480,-32306,5469,-32308,5458,-32310,5447,-32311,5436,-32313,5425,-32315,5414,-32317,5403,-32319,5392,-32321,5381,-32323,5370,-32324,5359,-32326,5348,-32328,5337,-32330,5326,-32332,5315,-32333,5304,-32335,5293,-32337,5282,-32339,5271,-32341,5260,-32342,5249,-32344,5238,-32346,5227,-32348,5216,-32350,5205,-32351,5194,-32353,5183,-32355,5172,-32357,5161,-32358,5150,-32360,5139,-32362,5128,-32364,5117,-32365,5106,-32367,5094,-32369,5083,-32371,5072,-32372,5061,-32374,5050,-32376,5039,-32378,5028,-32379,5017,-32381,5006,-32383,4995,-32384,4984,-32386,4973,-32388,4962,-32390,4951,-32391,4940,-32393,4929,-32395,4918,-32396,4907,-32398,4896,-32400,4885,-32401,4874,-32403,4863,-32405,4852,-32406,4841,-32408,4830,-32410,4818,-32411,4807,-32413,4796,-32414,4785,-32416,4774,-32418,4763,-32419,4752,-32421,4741,-32423,4730,-32424,4719,-32426,4708,-32427,4697,-32429,4686,-32431,4675,-32432,4664,-32434,4653,-32435,4642,-32437,4631,-32439,4620,-32440,4608,-32442,4597,-32443,4586,-32445,4575,-32446,4564,-32448,4553,-32450,4542,-32451,4531,-32453,4520,-32454,4509,-32456,4498,-32457,4487,-32459,4476,-32460,4465,-32462,4454,-32463,4443,-32465,4431,-32466,4420,-32468,4409,-32469,4398,-32471,4387,-32472,4376,-32474,4365,-32475,4354,-32477,4343,-32478,4332,-32480,4321,-32481,4310,-32483,4299,-32484,4288,-32486,4276,-32487,4265,-32489,4254,-32490,4243,-32492,4232,-32493,4221,-32494,4210,-32496,4199,-32497,4188,-32499,4177,-32500,4166,-32502,4155,-32503,4144,-32504,4132,-32506,4121,-32507,4110,-32509,4099,-32510,4088,-32511,4077,-32513,4066,-32514,4055,-32516,4044,-32517,4033,-32518,4022,-32520,4011,-32521,3999,-32522,3988,-32524,3977,-32525,3966,-32527,3955,-32528,3944,-32529,3933,-32531,3922,-32532,3911,-32533,3900,-32535,3889,-32536,3877,-32537,3866,-32539,3855,-32540,3844,-32541,3833,-32542,3822,-32544,3811,-32545,3800,-32546,3789,-32548,3778,-32549,3767,-32550,3755,-32552,3744,-32553,3733,-32554,3722,-32555,3711,-32557,3700,-32558,3689,-32559,3678,-32560,3667,-32562,3656,-32563,3644,-32564,3633,-32565,3622,-32567,3611,-32568,3600,-32569,3589,-32570,3578,-32572,3567,-32573,3556,-32574,3545,-32575,3533,-32576,3522,-32578,3511,-32579,3500,-32580,3489,-32581,3478,-32582,3467,-32584,3456,-32585,3445,-32586,3433,-32587,3422,-32588,3411,-32589,3400,-32591,3389,-32592,3378,-32593,3367,-32594,3356,-32595,3345,-32596,3333,-32597,3322,-32599,3311,-32600,3300,-32601,3289,-32602,3278,-32603,3267,-32604,3256,-32605,3245,-32606,3233,-32608,3222,-32609,3211,-32610,3200,-32611,3189,-32612,3178,-32613,3167,-32614,3156,-32615,3145,-32616,3133,-32617,3122,-32618,3111,-32619,3100,-32620,3089,-32622,3078,-32623,3067,-32624,3056,-32625,3044,-32626,3033,-32627,3022,-32628,3011,-32629,3000,-32630,2989,-32631,2978,-32632,2967,-32633,2955,-32634,2944,-32635,2933,-32636,2922,-32637,2911,-32638,2900,-32639,2889,-32640,2878,-32641,2866,-32642,2855,-32643,2844,-32644,2833,-32645,2822,-32646,2811,-32647,2800,-32648,2789,-32649,2777,-32650,2766,-32650,2755,-32651,2744,-32652,2733,-32653,2722,-32654,2711,-32655,2700,-32656,2688,-32657,2677,-32658,2666,-32659,2655,-32660,2644,-32661,2633,-32662,2622,-32662,2610,-32663,2599,-32664,2588,-32665,2577,-32666,2566,-32667,2555,-32668,2544,-32669,2533,-32669,2521,-32670,2510,-32671,2499,-32672,2488,-32673,2477,-32674,2466,-32675,2455,-32675,2443,-32676,2432,-32677,2421,-32678,2410,-32679,2399,-32680,2388,-32680,2377,-32681,2365,-32682,2354,-32683,2343,-32684,2332,-32684,2321,-32685,2310,-32686,2299,-32687,2287,-32688,2276,-32688,2265,-32689,2254,-32690,2243,-32691,2232,-32691,2221,-32692,2209,-32693,2198,-32694,2187,-32694,2176,-32695,2165,-32696,2154,-32697,2143,-32697,2131,-32698,2120,-32699,2109,-32700,2098,-32700,2087,-32701,2076,-32702,2065,-32702,2053,-32703,2042,-32704,2031,-32704,2020,-32705,2009,-32706,1998,-32707,1986,-32707,1975,-32708,1964,-32709,1953,-32709,1942,-32710,1931,-32711,1920,-32711,1908,-32712,1897,-32712,1886,-32713,1875,-32714,1864,-32714,1853,-32715,1842,-32716,1830,-32716,1819,-32717,1808,-32718,1797,-32718,1786,-32719,1775,-32719,1763,-32720,1752,-32721,1741,-32721,1730,-32722,1719,-32722,1708,-32723,1697,-32724,1685,-32724,1674,-32725,1663,-32725,1652,-32726,1641,-32726,1630,-32727,1618,-32727,1607,-32728,1596,-32729,1585,-32729,1574,-32730,1563,-32730,1552,-32731,1540,-32731,1529,-32732,1518,-32732,1507,-32733,1496,-32733,1485,-32734,1473,-32734,1462,-32735,1451,-32735,1440,-32736,1429,-32736,1418,-32737,1406,-32737,1395,-32738,1384,-32738,1373,-32739,1362,-32739,1351,-32740,1339,-32740,1328,-32741,1317,-32741,1306,-32741,1295,-32742,1284,-32742,1273,-32743,1261,-32743,1250,-32744,1239,-32744,1228,-32744,1217,-32745,1206,-32745,1194,-32746,1183,-32746,1172,-32747,1161,-32747,1150,-32747,1139,-32748,1127,-32748,1116,-32748,1105,-32749,1094,-32749,1083,-32750,1072,-32750,1060,-32750,1049,-32751,1038,-32751,1027,-32751,1016,-32752,1005,-32752,993,-32752,982,-32753,971,-32753,960,-32753,949,-32754,938,-32754,926,-32754,915,-32755,904,-32755,893,-32755,882,-32756,871,-32756,859,-32756,848,-32757,837,-32757,826,-32757,815,-32757,804,-32758,792,-32758,781,-32758,770,-32758,759,-32759,748,-32759,737,-32759,725,-32759,714,-32760,703,-32760,692,-32760,681,-32760,670,-32761,658,-32761,647,-32761,636,-32761,625,-32762,614,-32762,603,-32762,591,-32762,580,-32762,569,-32763,558,-32763,547,-32763,536,-32763,524,-32763,513,-32763,502,-32764,491,-32764,480,-32764,469,-32764,457,-32764,446,-32764,435,-32765,424,-32765,413,-32765,402,-32765,390,-32765,379,-32765,368,-32765,357,-32766,346,-32766,335,-32766,323,-32766,312,-32766,301,-32766,290,-32766,279,-32766,268,-32766,256,-32766,245,-32767,234,-32767,223,-32767,212,-32767,201,-32767,189,-32767,178,-32767,167,-32767,156,-32767,145,-32767,134,-32767,122,-32767,111,-32767,100,-32767,89,-32767,78,-32767,67,-32767,55,-32767,44,-32767,33,-32767,22,-32767,11,-32767,0,-32767,-12,-32767,-23,-32767,-34,-32767,-45,-32767,-56,-32767,-68,-32767,-79,-32767,-90,-32767,-101,-32767,-112,-32767,-123,-32767,-135,-32767,-146,-32767,-157,-32767,-168,-32767,-179,-32767,-190,-32767,-202,-32767,-213,-32767,-224,-32767,-235,-32767,-246,-32767,-257,-32766,-269,-32766,-280,-32766,-291,-32766,-302,-32766,-313,-32766,-324,-32766,-336,-32766,-347,-32766,-358,-32766,-369,-32765,-380,-32765,-391,-32765,-403,-32765,-414,-32765,-425,-32765,-436,-32765,-447,-32764,-458,-32764,-470,-32764,-481,-32764,-492,-32764,-503,-32764,-514,-32763,-525,-32763,-537,-32763,-548,-32763,-559,-32763,-570,-32763,-581,-32762,-592,-32762,-604,-32762,-615,-32762,-626,-32762,-637,-32761,-648,-32761,-659,-32761,-671,-32761,-682,-32760,-693,-32760,-704,-32760,-715,-32760,-726,-32759,-738,-32759,-749,-32759,-760,-32759,-771,-32758,-782,-32758,-793,-32758,-805,-32758,-816,-32757,-827,-32757,-838,-32757,-849,-32757,-860,-32756,-872,-32756,-883,-32756,-894,-32755,-905,-32755,-916,-32755,-927,-32754,-939,-32754,-950,-32754,-961,-32753,-972,-32753,-983,-32753,-994,-32752,-1006,-32752,-1017,-32752,-1028,-32751,-1039,-32751,-1050,-32751,-1061,-32750,-1073,-32750,-1084,-32750,-1095,-32749,-1106,-32749,-1117,-32748,-1128,-32748,-1140,-32748,-1151,-32747,-1162,-32747,-1173,-32747,-1184,-32746,-1195,-32746,-1207,-32745,-1218,-32745,-1229,-32744,-1240,-32744,-1251,-32744,-1262,-32743,-1274,-32743,-1285,-32742,-1296,-32742,-1307,-32741,-1318,-32741,-1329,-32741,-1340,-32740,-1352,-32740,-1363,-32739,-1374,-32739,-1385,-32738,-1396,-32738,-1407,-32737,-1419,-32737,-1430,-32736,-1441,-32736,-1452,-32735,-1463,-32735,-1474,-32734,-1486,-32734,-1497,-32733,-1508,-32733,-1519,-32732,-1530,-32732,-1541,-32731,-1553,-32731,-1564,-32730,-1575,-32730,-1586,-32729,-1597,-32729,-1608,-32728,-1619,-32727,-1631,-32727,-1642,-32726,-1653,-32726,-1664,-32725,-1675,-32725,-1686,-32724,-1698,-32724,-1709,-32723,-1720,-32722,-1731,-32722,-1742,-32721,-1753,-32721,-1764,-32720,-1776,-32719,-1787,-32719,-1798,-32718,-1809,-32718,-1820,-32717,-1831,-32716,-1843,-32716,-1854,-32715,-1865,-32714,-1876,-32714,-1887,-32713,-1898,-32712,-1909,-32712,-1921,-32711,-1932,-32711,-1943,-32710,-1954,-32709,-1965,-32709,-1976,-32708,-1987,-32707,-1999,-32707,-2010,-32706,-2021,-32705,-2032,-32704,-2043,-32704,-2054,-32703,-2066,-32702,-2077,-32702,-2088,-32701,-2099,-32700,-2110,-32700,-2121,-32699,-2132,-32698,-2144,-32697,-2155,-32697,-2166,-32696,-2177,-32695,-2188,-32694,-2199,-32694,-2210,-32693,-2222,-32692,-2233,-32691,-2244,-32691,-2255,-32690,-2266,-32689,-2277,-32688,-2288,-32688,-2300,-32687,-2311,-32686,-2322,-32685,-2333,-32684,-2344,-32684,-2355,-32683,-2366,-32682,-2378,-32681,-2389,-32680,-2400,-32680,-2411,-32679,-2422,-32678,-2433,-32677,-2444,-32676,-2456,-32675,-2467,-32675,-2478,-32674,-2489,-32673,-2500,-32672,-2511,-32671,-2522,-32670,-2534,-32669,-2545,-32669,-2556,-32668,-2567,-32667,-2578,-32666,-2589,-32665,-2600,-32664,-2611,-32663,-2623,-32662,-2634,-32662,-2645,-32661,-2656,-32660,-2667,-32659,-2678,-32658,-2689,-32657,-2701,-32656,-2712,-32655,-2723,-32654,-2734,-32653,-2745,-32652,-2756,-32651,-2767,-32650,-2778,-32650,-2790,-32649,-2801,-32648,-2812,-32647,-2823,-32646,-2834,-32645,-2845,-32644,-2856,-32643,-2867,-32642,-2879,-32641,-2890,-32640,-2901,-32639,-2912,-32638,-2923,-32637,-2934,-32636,-2945,-32635,-2956,-32634,-2968,-32633,-2979,-32632,-2990,-32631,-3001,-32630,-3012,-32629,-3023,-32628,-3034,-32627,-3045,-32626,-3057,-32625,-3068,-32624,-3079,-32623,-3090,-32622,-3101,-32620,-3112,-32619,-3123,-32618,-3134,-32617,-3146,-32616,-3157,-32615,-3168,-32614,-3179,-32613,-3190,-32612,-3201,-32611,-3212,-32610,-3223,-32609,-3234,-32608,-3246,-32606,-3257,-32605,-3268,-32604,-3279,-32603,-3290,-32602,-3301,-32601,-3312,-32600,-3323,-32599,-3334,-32597,-3346,-32596,-3357,-32595,-3368,-32594,-3379,-32593,-3390,-32592,-3401,-32591,-3412,-32589,-3423,-32588,-3434,-32587,-3446,-32586,-3457,-32585,-3468,-32584,-3479,-32582,-3490,-32581,-3501,-32580,-3512,-32579,-3523,-32578,-3534,-32576,-3546,-32575,-3557,-32574,-3568,-32573,-3579,-32572,-3590,-32570,-3601,-32569,-3612,-32568,-3623,-32567,-3634,-32565,-3645,-32564,-3657,-32563,-3668,-32562,-3679,-32560,-3690,-32559,-3701,-32558,-3712,-32557,-3723,-32555,-3734,-32554,-3745,-32553,-3756,-32552,-3768,-32550,-3779,-32549,-3790,-32548,-3801,-32546,-3812,-32545,-3823,-32544,-3834,-32542,-3845,-32541,-3856,-32540,-3867,-32539,-3878,-32537,-3890,-32536,-3901,-32535,-3912,-32533,-3923,-32532,-3934,-32531,-3945,-32529,-3956,-32528,-3967,-32527,-3978,-32525,-3989,-32524,-4000,-32522,-4012,-32521,-4023,-32520,-4034,-32518,-4045,-32517,-4056,-32516,-4067,-32514,-4078,-32513,-4089,-32511,-4100,-32510,-4111,-32509,-4122,-32507,-4133,-32506,-4145,-32504,-4156,-32503,-4167,-32502,-4178,-32500,-4189,-32499,-4200,-32497,-4211,-32496,-4222,-32494,-4233,-32493,-4244,-32492,-4255,-32490,-4266,-32489,-4277,-32487,-4289,-32486,-4300,-32484,-4311,-32483,-4322,-32481,-4333,-32480,-4344,-32478,-4355,-32477,-4366,-32475,-4377,-32474,-4388,-32472,-4399,-32471,-4410,-32469,-4421,-32468,-4432,-32466,-4444,-32465,-4455,-32463,-4466,-32462,-4477,-32460,-4488,-32459,-4499,-32457,-4510,-32456,-4521,-32454,-4532,-32453,-4543,-32451,-4554,-32450,-4565,-32448,-4576,-32446,-4587,-32445,-4598,-32443,-4609,-32442,-4621,-32440,-4632,-32439,-4643,-32437,-4654,-32435,-4665,-32434,-4676,-32432,-4687,-32431,-4698,-32429,-4709,-32427,-4720,-32426,-4731,-32424,-4742,-32423,-4753,-32421,-4764,-32419,-4775,-32418,-4786,-32416,-4797,-32414,-4808,-32413,-4819,-32411,-4831,-32410,-4842,-32408,-4853,-32406,-4864,-32405,-4875,-32403,-4886,-32401,-4897,-32400,-4908,-32398,-4919,-32396,-4930,-32395,-4941,-32393,-4952,-32391,-4963,-32390,-4974,-32388,-4985,-32386,-4996,-32384,-5007,-32383,-5018,-32381,-5029,-32379,-5040,-32378,-5051,-32376,-5062,-32374,-5073,-32372,-5084,-32371,-5095,-32369,-5107,-32367,-5118,-32365,-5129,-32364,-5140,-32362,-5151,-32360,-5162,-32358,-5173,-32357,-5184,-32355,-5195,-32353,-5206,-32351,-5217,-32350,-5228,-32348,-5239,-32346,-5250,-32344,-5261,-32342,-5272,-32341,-5283,-32339,-5294,-32337,-5305,-32335,-5316,-32333,-5327,-32332,-5338,-32330,-5349,-32328,-5360,-32326,-5371,-32324,-5382,-32323,-5393,-32321,-5404,-32319,-5415,-32317,-5426,-32315,-5437,-32313,-5448,-32311,-5459,-32310,-5470,-32308,-5481,-32306,-5492,-32304,-5503,-32302,-5514,-32300,-5525,-32298,-5536,-32296,-5547,-32295,-5558,-32293,-5569,-32291,-5580,-32289,-5591,-32287,-5602,-32285,-5613,-32283,-5624,-32281,-5635,-32279,-5646,-32277,-5657,-32275,-5668,-32274,-5679,-32272,-5690,-32270,-5701,-32268,-5712,-32266,-5723,-32264,-5734,-32262,-5745,-32260,-5756,-32258,-5767,-32256,-5778,-32254,-5789,-32252,-5800,-32250,-5811,-32248,-5822,-32246,-5833,-32244,-5844,-32242,-5855,-32240,-5866,-32238,-5877,-32236,-5888,-32234,-5899,-32232,-5910,-32230,-5921,-32228,-5932,-32226,-5943,-32224,-5954,-32222,-5965,-32220,-5976,-32218,-5987,-32216,-5998,-32214,-6009,-32212,-6020,-32210,-6031,-32208,-6042,-32206,-6053,-32204,-6064,-32202,-6075,-32200,-6086,-32197,-6097,-32195,-6108,-32193,-6119,-32191,-6130,-32189,-6141,-32187,-6152,-32185,-6163,-32183,-6174,-32181,-6185,-32179,-6196,-32177,-6207,-32174,-6218,-32172,-6229,-32170,-6240,-32168,-6251,-32166,-6262,-32164,-6272,-32162,-6283,-32159,-6294,-32157,-6305,-32155,-6316,-32153,-6327,-32151,-6338,-32149,-6349,-32147,-6360,-32144,-6371,-32142,-6382,-32140,-6393,-32138,-6404,-32136,-6415,-32134,-6426,-32131,-6437,-32129,-6448,-32127,-6459,-32125,-6470,-32123,-6481,-32120,-6492,-32118,-6503,-32116,-6513,-32114,-6524,-32111,-6535,-32109,-6546,-32107,-6557,-32105,-6568,-32103,-6579,-32100,-6590,-32098,-6601,-32096,-6612,-32094,-6623,-32091,-6634,-32089,-6645,-32087,-6656,-32085,-6667,-32082,-6678,-32080,-6689,-32078,-6699,-32075,-6710,-32073,-6721,-32071,-6732,-32069,-6743,-32066,-6754,-32064,-6765,-32062,-6776,-32059,-6787,-32057,-6798,-32055,-6809,-32052,-6820,-32050,-6831,-32048,-6842,-32045,-6852,-32043,-6863,-32041,-6874,-32038,-6885,-32036,-6896,-32034,-6907,-32031,-6918,-32029,-6929,-32027,-6940,-32024,-6951,-32022,-6962,-32020,-6973,-32017,-6983,-32015,-6994,-32012,-7005,-32010,-7016,-32008,-7027,-32005,-7038,-32003,-7049,-32000,-7060,-31998,-7071,-31996,-7082,-31993,-7093,-31991,-7103,-31988,-7114,-31986,-7125,-31984,-7136,-31981,-7147,-31979,-7158,-31976,-7169,-31974,-7180,-31971,-7191,-31969,-7202,-31966,-7212,-31964,-7223,-31962,-7234,-31959,-7245,-31957,-7256,-31954,-7267,-31952,-7278,-31949,-7289,-31947,-7300,-31944,-7311,-31942,-7321,-31939,-7332,-31937,-7343,-31934,-7354,-31932,-7365,-31929,-7376,-31927,-7387,-31924,-7398,-31922,-7408,-31919,-7419,-31917,-7430,-31914,-7441,-31912,-7452,-31909,-7463,-31906,-7474,-31904,-7485,-31901,-7495,-31899,-7506,-31896,-7517,-31894,-7528,-31891,-7539,-31889,-7550,-31886,-7561,-31883,-7572,-31881,-7582,-31878,-7593,-31876,-7604,-31873,-7615,-31870,-7626,-31868,-7637,-31865,-7648,-31863,-7658,-31860,-7669,-31857,-7680,-31855,-7691,-31852,-7702,-31850,-7713,-31847,-7724,-31844,-7734,-31842,-7745,-31839,-7756,-31836,-7767,-31834,-7778,-31831,-7789,-31828,-7800,-31826,-7810,-31823,-7821,-31820,-7832,-31818,-7843,-31815,-7854,-31812,-7865,-31810,-7876,-31807,-7886,-31804,-7897,-31802,-7908,-31799,-7919,-31796,-7930,-31794,-7941,-31791,-7951,-31788,-7962,-31786,-7973,-31783,-7984,-31780,-7995,-31777,-8006,-31775,-8016,-31772,-8027,-31769,-8038,-31766,-8049,-31764,-8060,-31761,-8071,-31758,-8081,-31755,-8092,-31753,-8103,-31750,-8114,-31747,-8125,-31744,-8135,-31742,-8146,-31739,-8157,-31736,-8168,-31733,-8179,-31730,-8190,-31728,-8200,-31725,-8211,-31722,-8222,-31719,-8233,-31717,-8244,-31714,-8254,-31711,-8265,-31708,-8276,-31705,-8287,-31702,-8298,-31700,-8308,-31697,-8319,-31694,-8330,-31691,-8341,-31688,-8352,-31685,-8362,-31683,-8373,-31680,-8384,-31677,-8395,-31674,-8406,-31671,-8416,-31668,-8427,-31665,-8438,-31663,-8449,-31660,-8460,-31657,-8470,-31654,-8481,-31651,-8492,-31648,-8503,-31645,-8514,-31642,-8524,-31639,-8535,-31636,-8546,-31634,-8557,-31631,-8568,-31628,-8578,-31625,-8589,-31622,-8600,-31619,-8611,-31616,-8621,-31613,-8632,-31610,-8643,-31607,-8654,-31604,-8664,-31601,-8675,-31598,-8686,-31595,-8697,-31592,-8708,-31589,-8718,-31587,-8729,-31584,-8740,-31581,-8751,-31578,-8761,-31575,-8772,-31572,-8783,-31569,-8794,-31566,-8804,-31563,-8815,-31560,-8826,-31557,-8837,-31554,-8847,-31551,-8858,-31548,-8869,-31545,-8880,-31542,-8890,-31538,-8901,-31535,-8912,-31532,-8923,-31529,-8933,-31526,-8944,-31523,-8955,-31520,-8966,-31517,-8976,-31514,-8987,-31511,-8998,-31508,-9009,-31505,-9019,-31502,-9030,-31499,-9041,-31496,-9052,-31493,-9062,-31490,-9073,-31486,-9084,-31483,-9095,-31480,-9105,-31477,-9116,-31474,-9127,-31471,-9137,-31468,-9148,-31465,-9159,-31462,-9170,-31458,-9180,-31455,-9191,-31452,-9202,-31449,-9213,-31446,-9223,-31443,-9234,-31440,-9245,-31436,-9255,-31433,-9266,-31430,-9277,-31427,-9288,-31424,-9298,-31421,-9309,-31418,-9320,-31414,-9330,-31411,-9341,-31408,-9352,-31405,-9363,-31402,-9373,-31398,-9384,-31395,-9395,-31392,-9405,-31389,-9416,-31386,-9427,-31382,-9437,-31379,-9448,-31376,-9459,-31373,-9469,-31370,-9480,-31366,-9491,-31363,-9502,-31360,-9512,-31357,-9523,-31353,-9534,-31350,-9544,-31347,-9555,-31344,-9566,-31340,-9576,-31337,-9587,-31334,-9598,-31331,-9608,-31327,-9619,-31324,-9630,-31321,-9640,-31317,-9651,-31314,-9662,-31311,-9672,-31308,-9683,-31304,-9694,-31301,-9704,-31298,-9715,-31294,-9726,-31291,-9736,-31288,-9747,-31284,-9758,-31281,-9768,-31278,-9779,-31274,-9790,-31271,-9800,-31268,-9811,-31264,-9822,-31261,-9832,-31258,-9843,-31254,-9854,-31251,-9864,-31248,-9875,-31244,-9886,-31241,-9896,-31237,-9907,-31234,-9918,-31231,-9928,-31227,-9939,-31224,-9950,-31221,-9960,-31217,-9971,-31214,-9981,-31210,-9992,-31207,-10003,-31204,-10013,-31200,-10024,-31197,-10035,-31193,-10045,-31190,-10056,-31186,-10067,-31183,-10077,-31180,-10088,-31176,-10098,-31173,-10109,-31169,-10120,-31166,-10130,-31162,-10141,-31159,-10152,-31155,-10162,-31152,-10173,-31149,-10183,-31145,-10194,-31142,-10205,-31138,-10215,-31135,-10226,-31131,-10236,-31128,-10247,-31124,-10258,-31121,-10268,-31117,-10279,-31114,-10290,-31110,-10300,-31107,-10311,-31103,-10321,-31100,-10332,-31096,-10343,-31093,-10353,-31089,-10364,-31086,-10374,-31082,-10385,-31078,-10396,-31075,-10406,-31071,-10417,-31068,-10427,-31064,-10438,-31061,-10448,-31057,-10459,-31054,-10470,-31050,-10480,-31046,-10491,-31043,-10501,-31039,-10512,-31036,-10523,-31032,-10533,-31029,-10544,-31025,-10554,-31021,-10565,-31018,-10575,-31014,-10586,-31011,-10597,-31007,-10607,-31003,-10618,-31000,-10628,-30996,-10639,-30992,-10649,-30989,-10660,-30985,-10671,-30982,-10681,-30978,-10692,-30974,-10702,-30971,-10713,-30967,-10723,-30963,-10734,-30960,-10744,-30956,-10755,-30952,-10766,-30949,-10776,-30945,-10787,-30941,-10797,-30938,-10808,-30934,-10818,-30930,-10829,-30927,-10839,-30923,-10850,-30919,-10860,-30916,-10871,-30912,-10881,-30908,-10892,-30904,-10903,-30901,-10913,-30897,-10924,-30893,-10934,-30890,-10945,-30886,-10955,-30882,-10966,-30878,-10976,-30875,-10987,-30871,-10997,-30867,-11008,-30863,-11018,-30860,-11029,-30856,-11039,-30852,-11050,-30848,-11060,-30845,-11071,-30841,-11081,-30837,-11092,-30833,-11102,-30829,-11113,-30826,-11123,-30822,-11134,-30818,-11144,-30814,-11155,-30810,-11165,-30807,-11176,-30803,-11186,-30799,-11197,-30795,-11207,-30791,-11218,-30788,-11228,-30784,-11239,-30780,-11249,-30776,-11260,-30772,-11270,-30768,-11281,-30765,-11291,-30761,-11302,-30757,-11312,-30753,-11323,-30749,-11333,-30745,-11344,-30741,-11354,-30738,-11365,-30734,-11375,-30730,-11386,-30726,-11396,-30722,-11407,-30718,-11417,-30714,-11428,-30710,-11438,-30706,-11449,-30703,-11459,-30699,-11469,-30695,-11480,-30691,-11490,-30687,-11501,-30683,-11511,-30679,-11522,-30675,-11532,-30671,-11543,-30667,-11553,-30663,-11564,-30659,-11574,-30656,-11584,-30652,-11595,-30648,-11605,-30644,-11616,-30640,-11626,-30636,-11637,-30632,-11647,-30628,-11658,-30624,-11668,-30620,-11678,-30616,-11689,-30612,-11699,-30608,-11710,-30604,-11720,-30600,-11731,-30596,-11741,-30592,-11751,-30588,-11762,-30584,-11772,-30580,-11783,-30576,-11793,-30572,-11804,-30568,-11814,-30564,-11824,-30560,-11835,-30556,-11845,-30552,-11856,-30548,-11866,-30544,-11877,-30540,-11887,-30536,-11897,-30531,-11908,-30527,-11918,-30523,-11929,-30519,-11939,-30515,-11949,-30511,-11960,-30507,-11970,-30503,-11981,-30499,-11991,-30495,-12001,-30491,-12012,-30487,-12022,-30483,-12033,-30478,-12043,-30474,-12053,-30470,-12064,-30466,-12074,-30462,-12084,-30458,-12095,-30454,-12105,-30450,-12116,-30446,-12126,-30441,-12136,-30437,-12147,-30433,-12157,-30429,-12167,-30425,-12178,-30421,-12188,-30417,-12199,-30412,-12209,-30408,-12219,-30404,-12230,-30400,-12240,-30396,-12250,-30392,-12261,-30387,-12271,-30383,-12281,-30379,-12292,-30375,-12302,-30371,-12313,-30366,-12323,-30362,-12333,-30358,-12344,-30354,-12354,-30350,-12364,-30345,-12375,-30341,-12385,-30337,-12395,-30333,-12406,-30329,-12416,-30324,-12426,-30320,-12437,-30316,-12447,-30312,-12457,-30307,-12468,-30303,-12478,-30299,-12488,-30295,-12499,-30290,-12509,-30286,-12519,-30282,-12530,-30278,-12540,-30273,-12550,-30269,-12561,-30265,-12571,-30260,-12581,-30256,-12591,-30252,-12602,-30248,-12612,-30243,-12622,-30239,-12633,-30235,-12643,-30230,-12653,-30226,-12664,-30222,-12674,-30217,-12684,-30213,-12695,-30209,-12705,-30204,-12715,-30200,-12725,-30196,-12736,-30191,-12746,-30187,-12756,-30183,-12767,-30178,-12777,-30174,-12787,-30170,-12797,-30165,-12808,-30161,-12818,-30157,-12828,-30152,-12839,-30148,-12849,-30143,-12859,-30139,-12869,-30135,-12880,-30130,-12890,-30126,-12900,-30122,-12910,-30117,-12921,-30113,-12931,-30108,-12941,-30104,-12951,-30099,-12962,-30095,-12972,-30091,-12982,-30086,-12993,-30082,-13003,-30077,-13013,-30073,-13023,-30068,-13034,-30064,-13044,-30060,-13054,-30055,-13064,-30051,-13075,-30046,-13085,-30042,-13095,-30037,-13105,-30033,-13115,-30028,-13126,-30024,-13136,-30019,-13146,-30015,-13156,-30010,-13167,-30006,-13177,-30002,-13187,-29997,-13197,-29993,-13208,-29988,-13218,-29984,-13228,-29979,-13238,-29974,-13248,-29970,-13259,-29965,-13269,-29961,-13279,-29956,-13289,-29952,-13299,-29947,-13310,-29943,-13320,-29938,-13330,-29934,-13340,-29929,-13350,-29925,-13361,-29920,-13371,-29916,-13381,-29911,-13391,-29906,-13401,-29902,-13412,-29897,-13422,-29893,-13432,-29888,-13442,-29884,-13452,-29879,-13463,-29874,-13473,-29870,-13483,-29865,-13493,-29861,-13503,-29856,-13513,-29851,-13524,-29847,-13534,-29842,-13544,-29838,-13554,-29833,-13564,-29828,-13575,-29824,-13585,-29819,-13595,-29814,-13605,-29810,-13615,-29805,-13625,-29801,-13635,-29796,-13646,-29791,-13656,-29787,-13666,-29782,-13676,-29777,-13686,-29773,-13696,-29768,-13707,-29763,-13717,-29759,-13727,-29754,-13737,-29749,-13747,-29745,-13757,-29740,-13767,-29735,-13778,-29730,-13788,-29726,-13798,-29721,-13808,-29716,-13818,-29712,-13828,-29707,-13838,-29702,-13848,-29697,-13859,-29693,-13869,-29688,-13879,-29683,-13889,-29679,-13899,-29674,-13909,-29669,-13919,-29664,-13929,-29660,-13939,-29655,-13950,-29650,-13960,-29645,-13970,-29641,-13980,-29636,-13990,-29631,-14000,-29626,-14010,-29622,-14020,-29617,-14030,-29612,-14040,-29607,-14051,-29602,-14061,-29598,-14071,-29593,-14081,-29588,-14091,-29583,-14101,-29578,-14111,-29574,-14121,-29569,-14131,-29564,-14141,-29559,-14151,-29554,-14161,-29549,-14172,-29545,-14182,-29540,-14192,-29535,-14202,-29530,-14212,-29525,-14222,-29520,-14232,-29516,-14242,-29511,-14252,-29506,-14262,-29501,-14272,-29496,-14282,-29491,-14292,-29486,-14302,-29482,-14312,-29477,-14322,-29472,-14332,-29467,-14343,-29462,-14353,-29457,-14363,-29452,-14373,-29447,-14383,-29442,-14393,-29438,-14403,-29433,-14413,-29428,-14423,-29423,-14433,-29418,-14443,-29413,-14453,-29408,-14463,-29403,-14473,-29398,-14483,-29393,-14493,-29388,-14503,-29383,-14513,-29378,-14523,-29373,-14533,-29369,-14543,-29364,-14553,-29359,-14563,-29354,-14573,-29349,-14583,-29344,-14593,-29339,-14603,-29334,-14613,-29329,-14623,-29324,-14633,-29319,-14643,-29314,-14653,-29309,-14663,-29304,-14673,-29299,-14683,-29294,-14693,-29289,-14703,-29284,-14713,-29279,-14723,-29274,-14733,-29269,-14743,-29264,-14753,-29259,-14763,-29254,-14773,-29249,-14783,-29244,-14793,-29239,-14803,-29234,-14813,-29228,-14823,-29223,-14833,-29218,-14843,-29213,-14853,-29208,-14862,-29203,-14872,-29198,-14882,-29193,-14892,-29188,-14902,-29183,-14912,-29178,-14922,-29173,-14932,-29168,-14942,-29163,-14952,-29157,-14962,-29152,-14972,-29147,-14982,-29142,-14992,-29137,-15002,-29132,-15012,-29127,-15022,-29122,-15031,-29117,-15041,-29111,-15051,-29106,-15061,-29101,-15071,-29096,-15081,-29091,-15091,-29086,-15101,-29081,-15111,-29075,-15121,-29070,-15131,-29065,-15141,-29060,-15150,-29055,-15160,-29050,-15170,-29045,-15180,-29039,-15190,-29034,-15200,-29029,-15210,-29024,-15220,-29019,-15230,-29013,-15239,-29008,-15249,-29003,-15259,-28998,-15269,-28993,-15279,-28987,-15289,-28982,-15299,-28977,-15309,-28972,-15319,-28967,-15328,-28961,-15338,-28956,-15348,-28951,-15358,-28946,-15368,-28940,-15378,-28935,-15388,-28930,-15397,-28925,-15407,-28919,-15417,-28914,-15427,-28909,-15437,-28904,-15447,-28898,-15457,-28893,-15466,-28888,-15476,-28883,-15486,-28877,-15496,-28872,-15506,-28867,-15516,-28861,-15526,-28856,-15535,-28851,-15545,-28846,-15555,-28840,-15565,-28835,-15575,-28830,-15584,-28824,-15594,-28819,-15604,-28814,-15614,-28808,-15624,-28803,-15634,-28798,-15643,-28792,-15653,-28787,-15663,-28782,-15673,-28776,-15683,-28771,-15692,-28766,-15702,-28760,-15712,-28755,-15722,-28750,-15732,-28744,-15741,-28739,-15751,-28734,-15761,-28728,-15771,-28723,-15781,-28717,-15790,-28712,-15800,-28707,-15810,-28701,-15820,-28696,-15830,-28691,-15839,-28685,-15849,-28680,-15859,-28674,-15869,-28669,-15878,-28663,-15888,-28658,-15898,-28653,-15908,-28647,-15918,-28642,-15927,-28636,-15937,-28631,-15947,-28626,-15957,-28620,-15966,-28615,-15976,-28609,-15986,-28604,-15996,-28598,-16005,-28593,-16015,-28587,-16025,-28582,-16035,-28576,-16044,-28571,-16054,-28566,-16064,-28560,-16073,-28555,-16083,-28549,-16093,-28544,-16103,-28538,-16112,-28533,-16122,-28527,-16132,-28522,-16142,-28516,-16151,-28511,-16161,-28505,-16171,-28500,-16180,-28494,-16190,-28489,-16200,-28483,-16210,-28478,-16219,-28472,-16229,-28466,-16239,-28461,-16248,-28455,-16258,-28450,-16268,-28444,-16277,-28439,-16287,-28433,-16297,-28428,-16307,-28422,-16316,-28417,-16326,-28411,-16336,-28405,-16345,-28400,-16355,-28394,-16365,-28389,-16374,-28383};
-
-int16_t twb18432[12288] = { 32767,0,32766,-23,32766,-45,32766,-68,32766,-90,32766,-112,32766,-135,32766,-157,32766,-179,32766,-202,32766,-224,32766,-246,32765,-269,32765,-291,32765,-313,32765,-336,32765,-358,32764,-380,32764,-403,32764,-425,32763,-447,32763,-470,32763,-492,32762,-514,32762,-537,32762,-559,32761,-581,32761,-604,32761,-626,32760,-648,32760,-671,32759,-693,32759,-715,32758,-738,32758,-760,32757,-782,32757,-805,32756,-827,32756,-849,32755,-872,32754,-894,32754,-916,32753,-939,32752,-961,32752,-983,32751,-1006,32750,-1028,32750,-1050,32749,-1073,32748,-1095,32747,-1117,32747,-1140,32746,-1162,32745,-1184,32744,-1207,32743,-1229,32743,-1251,32742,-1274,32741,-1296,32740,-1318,32739,-1340,32738,-1363,32737,-1385,32736,-1407,32735,-1430,32734,-1452,32733,-1474,32732,-1497,32731,-1519,32730,-1541,32729,-1564,32728,-1586,32727,-1608,32726,-1631,32725,-1653,32724,-1675,32723,-1698,32721,-1720,32720,-1742,32719,-1764,32718,-1787,32717,-1809,32715,-1831,32714,-1854,32713,-1876,32711,-1898,32710,-1921,32709,-1943,32708,-1965,32706,-1987,32705,-2010,32703,-2032,32702,-2054,32701,-2077,32699,-2099,32698,-2121,32696,-2144,32695,-2166,32693,-2188,32692,-2210,32690,-2233,32689,-2255,32687,-2277,32686,-2300,32684,-2322,32683,-2344,32681,-2366,32679,-2389,32678,-2411,32676,-2433,32674,-2456,32673,-2478,32671,-2500,32669,-2522,32668,-2545,32666,-2567,32664,-2589,32662,-2611,32661,-2634,32659,-2656,32657,-2678,32655,-2701,32653,-2723,32651,-2745,32649,-2767,32648,-2790,32646,-2812,32644,-2834,32642,-2856,32640,-2879,32638,-2901,32636,-2923,32634,-2945,32632,-2968,32630,-2990,32628,-3012,32626,-3034,32624,-3057,32622,-3079,32619,-3101,32617,-3123,32615,-3146,32613,-3168,32611,-3190,32609,-3212,32607,-3234,32604,-3257,32602,-3279,32600,-3301,32598,-3323,32595,-3346,32593,-3368,32591,-3390,32588,-3412,32586,-3434,32584,-3457,32581,-3479,32579,-3501,32577,-3523,32574,-3546,32572,-3568,32569,-3590,32567,-3612,32564,-3634,32562,-3657,32559,-3679,32557,-3701,32554,-3723,32552,-3745,32549,-3768,32547,-3790,32544,-3812,32541,-3834,32539,-3856,32536,-3878,32534,-3901,32531,-3923,32528,-3945,32526,-3967,32523,-3989,32520,-4012,32517,-4034,32515,-4056,32512,-4078,32509,-4100,32506,-4122,32503,-4145,32501,-4167,32498,-4189,32495,-4211,32492,-4233,32489,-4255,32486,-4277,32483,-4300,32480,-4322,32477,-4344,32474,-4366,32471,-4388,32468,-4410,32465,-4432,32462,-4455,32459,-4477,32456,-4499,32453,-4521,32450,-4543,32447,-4565,32444,-4587,32441,-4609,32438,-4632,32434,-4654,32431,-4676,32428,-4698,32425,-4720,32422,-4742,32418,-4764,32415,-4786,32412,-4808,32409,-4831,32405,-4853,32402,-4875,32399,-4897,32395,-4919,32392,-4941,32389,-4963,32385,-4985,32382,-5007,32378,-5029,32375,-5051,32371,-5073,32368,-5095,32364,-5118,32361,-5140,32357,-5162,32354,-5184,32350,-5206,32347,-5228,32343,-5250,32340,-5272,32336,-5294,32332,-5316,32329,-5338,32325,-5360,32322,-5382,32318,-5404,32314,-5426,32310,-5448,32307,-5470,32303,-5492,32299,-5514,32295,-5536,32292,-5558,32288,-5580,32284,-5602,32280,-5624,32276,-5646,32273,-5668,32269,-5690,32265,-5712,32261,-5734,32257,-5756,32253,-5778,32249,-5800,32245,-5822,32241,-5844,32237,-5866,32233,-5888,32229,-5910,32225,-5932,32221,-5954,32217,-5976,32213,-5998,32209,-6020,32205,-6042,32201,-6064,32196,-6086,32192,-6108,32188,-6130,32184,-6152,32180,-6174,32176,-6196,32171,-6218,32167,-6240,32163,-6262,32158,-6283,32154,-6305,32150,-6327,32146,-6349,32141,-6371,32137,-6393,32133,-6415,32128,-6437,32124,-6459,32119,-6481,32115,-6503,32110,-6524,32106,-6546,32102,-6568,32097,-6590,32093,-6612,32088,-6634,32084,-6656,32079,-6678,32074,-6699,32070,-6721,32065,-6743,32061,-6765,32056,-6787,32051,-6809,32047,-6831,32042,-6852,32037,-6874,32033,-6896,32028,-6918,32023,-6940,32019,-6962,32014,-6983,32009,-7005,32004,-7027,31999,-7049,31995,-7071,31990,-7093,31985,-7114,31980,-7136,31975,-7158,31970,-7180,31965,-7202,31961,-7223,31956,-7245,31951,-7267,31946,-7289,31941,-7311,31936,-7332,31931,-7354,31926,-7376,31921,-7398,31916,-7419,31911,-7441,31905,-7463,31900,-7485,31895,-7506,31890,-7528,31885,-7550,31880,-7572,31875,-7593,31869,-7615,31864,-7637,31859,-7658,31854,-7680,31849,-7702,31843,-7724,31838,-7745,31833,-7767,31827,-7789,31822,-7810,31817,-7832,31811,-7854,31806,-7876,31801,-7897,31795,-7919,31790,-7941,31785,-7962,31779,-7984,31774,-8006,31768,-8027,31763,-8049,31757,-8071,31752,-8092,31746,-8114,31741,-8135,31735,-8157,31729,-8179,31724,-8200,31718,-8222,31713,-8244,31707,-8265,31701,-8287,31696,-8308,31690,-8330,31684,-8352,31679,-8373,31673,-8395,31667,-8416,31662,-8438,31656,-8460,31650,-8481,31644,-8503,31638,-8524,31633,-8546,31627,-8568,31621,-8589,31615,-8611,31609,-8632,31603,-8654,31597,-8675,31591,-8697,31586,-8718,31580,-8740,31574,-8761,31568,-8783,31562,-8804,31556,-8826,31550,-8847,31544,-8869,31537,-8890,31531,-8912,31525,-8933,31519,-8955,31513,-8976,31507,-8998,31501,-9019,31495,-9041,31489,-9062,31482,-9084,31476,-9105,31470,-9127,31464,-9148,31457,-9170,31451,-9191,31445,-9213,31439,-9234,31432,-9255,31426,-9277,31420,-9298,31413,-9320,31407,-9341,31401,-9363,31394,-9384,31388,-9405,31381,-9427,31375,-9448,31369,-9469,31362,-9491,31356,-9512,31349,-9534,31343,-9555,31336,-9576,31330,-9598,31323,-9619,31316,-9640,31310,-9662,31303,-9683,31297,-9704,31290,-9726,31283,-9747,31277,-9768,31270,-9790,31263,-9811,31257,-9832,31250,-9854,31243,-9875,31236,-9896,31230,-9918,31223,-9939,31216,-9960,31209,-9981,31203,-10003,31196,-10024,31189,-10045,31182,-10067,31175,-10088,31168,-10109,31161,-10130,31154,-10152,31148,-10173,31141,-10194,31134,-10215,31127,-10236,31120,-10258,31113,-10279,31106,-10300,31099,-10321,31092,-10343,31085,-10364,31077,-10385,31070,-10406,31063,-10427,31056,-10448,31049,-10470,31042,-10491,31035,-10512,31028,-10533,31020,-10554,31013,-10575,31006,-10597,30999,-10618,30991,-10639,30984,-10660,30977,-10681,30970,-10702,30962,-10723,30955,-10744,30948,-10766,30940,-10787,30933,-10808,30926,-10829,30918,-10850,30911,-10871,30903,-10892,30896,-10913,30889,-10934,30881,-10955,30874,-10976,30866,-10997,30859,-11018,30851,-11039,30844,-11060,30836,-11081,30828,-11102,30821,-11123,30813,-11144,30806,-11165,30798,-11186,30790,-11207,30783,-11228,30775,-11249,30767,-11270,30760,-11291,30752,-11312,30744,-11333,30737,-11354,30729,-11375,30721,-11396,30713,-11417,30705,-11438,30698,-11459,30690,-11480,30682,-11501,30674,-11522,30666,-11543,30658,-11564,30651,-11584,30643,-11605,30635,-11626,30627,-11647,30619,-11668,30611,-11689,30603,-11710,30595,-11731,30587,-11751,30579,-11772,30571,-11793,30563,-11814,30555,-11835,30547,-11856,30539,-11877,30530,-11897,30522,-11918,30514,-11939,30506,-11960,30498,-11981,30490,-12001,30482,-12022,30473,-12043,30465,-12064,30457,-12084,30449,-12105,30440,-12126,30432,-12147,30424,-12167,30416,-12188,30407,-12209,30399,-12230,30391,-12250,30382,-12271,30374,-12292,30365,-12313,30357,-12333,30349,-12354,30340,-12375,30332,-12395,30323,-12416,30315,-12437,30306,-12457,30298,-12478,30289,-12499,30281,-12519,30272,-12540,30264,-12561,30255,-12581,30247,-12602,30238,-12622,30229,-12643,30221,-12664,30212,-12684,30203,-12705,30195,-12725,30186,-12746,30177,-12767,30169,-12787,30160,-12808,30151,-12828,30142,-12849,30134,-12869,30125,-12890,30116,-12910,30107,-12931,30098,-12951,30090,-12972,30081,-12993,30072,-13013,30063,-13034,30054,-13054,30045,-13075,30036,-13095,30027,-13115,30018,-13136,30009,-13156,30001,-13177,29992,-13197,29983,-13218,29973,-13238,29964,-13259,29955,-13279,29946,-13299,29937,-13320,29928,-13340,29919,-13361,29910,-13381,29901,-13401,29892,-13422,29883,-13442,29873,-13463,29864,-13483,29855,-13503,29846,-13524,29837,-13544,29827,-13564,29818,-13585,29809,-13605,29800,-13625,29790,-13646,29781,-13666,29772,-13686,29762,-13707,29753,-13727,29744,-13747,29734,-13767,29725,-13788,29715,-13808,29706,-13828,29696,-13848,29687,-13869,29678,-13889,29668,-13909,29659,-13929,29649,-13950,29640,-13970,29630,-13990,29621,-14010,29611,-14030,29601,-14051,29592,-14071,29582,-14091,29573,-14111,29563,-14131,29553,-14151,29544,-14172,29534,-14192,29524,-14212,29515,-14232,29505,-14252,29495,-14272,29485,-14292,29476,-14312,29466,-14332,29456,-14353,29446,-14373,29437,-14393,29427,-14413,29417,-14433,29407,-14453,29397,-14473,29387,-14493,29377,-14513,29368,-14533,29358,-14553,29348,-14573,29338,-14593,29328,-14613,29318,-14633,29308,-14653,29298,-14673,29288,-14693,29278,-14713,29268,-14733,29258,-14753,29248,-14773,29238,-14793,29227,-14813,29217,-14833,29207,-14853,29197,-14872,29187,-14892,29177,-14912,29167,-14932,29156,-14952,29146,-14972,29136,-14992,29126,-15012,29116,-15031,29105,-15051,29095,-15071,29085,-15091,29074,-15111,29064,-15131,29054,-15150,29044,-15170,29033,-15190,29023,-15210,29012,-15230,29002,-15249,28992,-15269,28981,-15289,28971,-15309,28960,-15328,28950,-15348,28939,-15368,28929,-15388,28918,-15407,28908,-15427,28897,-15447,28887,-15466,28876,-15486,28866,-15506,28855,-15526,28845,-15545,28834,-15565,28823,-15584,28813,-15604,28802,-15624,28791,-15643,28781,-15663,28770,-15683,28759,-15702,28749,-15722,28738,-15741,28727,-15761,28716,-15781,28706,-15800,28695,-15820,28684,-15839,28673,-15859,28662,-15878,28652,-15898,28641,-15918,28630,-15937,28619,-15957,28608,-15976,28597,-15996,28586,-16015,28575,-16035,28565,-16054,28554,-16073,28543,-16093,28532,-16112,28521,-16132,28510,-16151,28499,-16171,28488,-16190,28477,-16210,28465,-16229,28454,-16248,28443,-16268,28432,-16287,28421,-16307,28410,-16326,28399,-16345,28388,-16365,28377,-16384,28365,-16403,28354,-16423,28343,-16442,28332,-16461,28321,-16481,28309,-16500,28298,-16519,28287,-16539,28275,-16558,28264,-16577,28253,-16596,28242,-16616,28230,-16635,28219,-16654,28208,-16673,28196,-16693,28185,-16712,28173,-16731,28162,-16750,28151,-16769,28139,-16789,28128,-16808,28116,-16827,28105,-16846,28093,-16865,28082,-16884,28070,-16904,28059,-16923,28047,-16942,28036,-16961,28024,-16980,28012,-16999,28001,-17018,27989,-17037,27978,-17056,27966,-17075,27954,-17095,27943,-17114,27931,-17133,27919,-17152,27908,-17171,27896,-17190,27884,-17209,27872,-17228,27861,-17247,27849,-17266,27837,-17285,27825,-17304,27814,-17323,27802,-17342,27790,-17361,27778,-17380,27766,-17398,27754,-17417,27742,-17436,27731,-17455,27719,-17474,27707,-17493,27695,-17512,27683,-17531,27671,-17550,27659,-17568,27647,-17587,27635,-17606,27623,-17625,27611,-17644,27599,-17663,27587,-17681,27575,-17700,27563,-17719,27551,-17738,27538,-17757,27526,-17775,27514,-17794,27502,-17813,27490,-17832,27478,-17850,27466,-17869,27453,-17888,27441,-17907,27429,-17925,27417,-17944,27405,-17963,27392,-17981,27380,-18000,27368,-18019,27355,-18037,27343,-18056,27331,-18075,27319,-18093,27306,-18112,27294,-18131,27281,-18149,27269,-18168,27257,-18186,27244,-18205,27232,-18223,27219,-18242,27207,-18261,27195,-18279,27182,-18298,27170,-18316,27157,-18335,27145,-18353,27132,-18372,27120,-18390,27107,-18409,27094,-18427,27082,-18446,27069,-18464,27057,-18483,27044,-18501,27031,-18519,27019,-18538,27006,-18556,26994,-18575,26981,-18593,26968,-18611,26955,-18630,26943,-18648,26930,-18667,26917,-18685,26905,-18703,26892,-18722,26879,-18740,26866,-18758,26853,-18777,26841,-18795,26828,-18813,26815,-18831,26802,-18850,26789,-18868,26776,-18886,26764,-18905,26751,-18923,26738,-18941,26725,-18959,26712,-18977,26699,-18996,26686,-19014,26673,-19032,26660,-19050,26647,-19068,26634,-19087,26621,-19105,26608,-19123,26595,-19141,26582,-19159,26569,-19177,26556,-19195,26543,-19213,26530,-19232,26516,-19250,26503,-19268,26490,-19286,26477,-19304,26464,-19322,26451,-19340,26437,-19358,26424,-19376,26411,-19394,26398,-19412,26385,-19430,26371,-19448,26358,-19466,26345,-19484,26332,-19502,26318,-19520,26305,-19538,26292,-19556,26278,-19574,26265,-19591,26252,-19609,26238,-19627,26225,-19645,26211,-19663,26198,-19681,26185,-19699,26171,-19717,26158,-19734,26144,-19752,26131,-19770,26117,-19788,26104,-19806,26090,-19823,26077,-19841,26063,-19859,26050,-19877,26036,-19895,26022,-19912,26009,-19930,25995,-19948,25982,-19966,25968,-19983,25954,-20001,25941,-20019,25927,-20036,25913,-20054,25900,-20072,25886,-20089,25872,-20107,25859,-20125,25845,-20142,25831,-20160,25817,-20177,25804,-20195,25790,-20213,25776,-20230,25762,-20248,25749,-20265,25735,-20283,25721,-20300,25707,-20318,25693,-20335,25679,-20353,25665,-20370,25652,-20388,25638,-20405,25624,-20423,25610,-20440,25596,-20458,25582,-20475,25568,-20493,25554,-20510,25540,-20528,25526,-20545,25512,-20562,25498,-20580,25484,-20597,25470,-20614,25456,-20632,25442,-20649,25428,-20667,25414,-20684,25399,-20701,25385,-20719,25371,-20736,25357,-20753,25343,-20770,25329,-20788,25315,-20805,25300,-20822,25286,-20839,25272,-20857,25258,-20874,25243,-20891,25229,-20908,25215,-20926,25201,-20943,25186,-20960,25172,-20977,25158,-20994,25144,-21011,25129,-21028,25115,-21046,25100,-21063,25086,-21080,25072,-21097,25057,-21114,25043,-21131,25029,-21148,25014,-21165,25000,-21182,24985,-21199,24971,-21216,24956,-21233,24942,-21250,24927,-21267,24913,-21284,24898,-21301,24884,-21318,24869,-21335,24855,-21352,24840,-21369,24826,-21386,24811,-21403,24796,-21420,24782,-21437,24767,-21454,24753,-21471,24738,-21487,24723,-21504,24709,-21521,24694,-21538,24679,-21555,24664,-21572,24650,-21588,24635,-21605,24620,-21622,24606,-21639,24591,-21656,24576,-21672,24561,-21689,24546,-21706,24532,-21723,24517,-21739,24502,-21756,24487,-21773,24472,-21789,24457,-21806,24443,-21823,24428,-21839,24413,-21856,24398,-21873,24383,-21889,24368,-21906,24353,-21923,24338,-21939,24323,-21956,24308,-21972,24293,-21989,24278,-22005,24263,-22022,24248,-22039,24233,-22055,24218,-22072,24203,-22088,24188,-22105,24173,-22121,24158,-22138,24143,-22154,24128,-22170,24113,-22187,24097,-22203,24082,-22220,24067,-22236,24052,-22253,24037,-22269,24022,-22285,24006,-22302,23991,-22318,23976,-22334,23961,-22351,23945,-22367,23930,-22383,23915,-22400,23900,-22416,23884,-22432,23869,-22449,23854,-22465,23838,-22481,23823,-22497,23808,-22514,23792,-22530,23777,-22546,23762,-22562,23746,-22578,23731,-22595,23715,-22611,23700,-22627,23685,-22643,23669,-22659,23654,-22675,23638,-22692,23623,-22708,23607,-22724,23592,-22740,23576,-22756,23561,-22772,23545,-22788,23530,-22804,23514,-22820,23499,-22836,23483,-22852,23467,-22868,23452,-22884,23436,-22900,23421,-22916,23405,-22932,23389,-22948,23374,-22964,23358,-22980,23342,-22996,23327,-23012,23311,-23028,23295,-23044,23280,-23059,23264,-23075,23248,-23091,23232,-23107,23217,-23123,23201,-23139,23185,-23154,23169,-23170,23153,-23186,23138,-23202,23122,-23218,23106,-23233,23090,-23249,23074,-23265,23058,-23281,23043,-23296,23027,-23312,23011,-23328,22995,-23343,22979,-23359,22963,-23375,22947,-23390,22931,-23406,22915,-23422,22899,-23437,22883,-23453,22867,-23468,22851,-23484,22835,-23500,22819,-23515,22803,-23531,22787,-23546,22771,-23562,22755,-23577,22739,-23593,22723,-23608,22707,-23624,22691,-23639,22674,-23655,22658,-23670,22642,-23686,22626,-23701,22610,-23716,22594,-23732,22577,-23747,22561,-23763,22545,-23778,22529,-23793,22513,-23809,22496,-23824,22480,-23839,22464,-23855,22448,-23870,22431,-23885,22415,-23901,22399,-23916,22382,-23931,22366,-23946,22350,-23962,22333,-23977,22317,-23992,22301,-24007,22284,-24023,22268,-24038,22252,-24053,22235,-24068,22219,-24083,22202,-24098,22186,-24114,22169,-24129,22153,-24144,22137,-24159,22120,-24174,22104,-24189,22087,-24204,22071,-24219,22054,-24234,22038,-24249,22021,-24264,22004,-24279,21988,-24294,21971,-24309,21955,-24324,21938,-24339,21922,-24354,21905,-24369,21888,-24384,21872,-24399,21855,-24414,21838,-24429,21822,-24444,21805,-24458,21788,-24473,21772,-24488,21755,-24503,21738,-24518,21722,-24533,21705,-24547,21688,-24562,21671,-24577,21655,-24592,21638,-24607,21621,-24621,21604,-24636,21587,-24651,21571,-24665,21554,-24680,21537,-24695,21520,-24710,21503,-24724,21486,-24739,21470,-24754,21453,-24768,21436,-24783,21419,-24797,21402,-24812,21385,-24827,21368,-24841,21351,-24856,21334,-24870,21317,-24885,21300,-24899,21283,-24914,21266,-24928,21249,-24943,21232,-24957,21215,-24972,21198,-24986,21181,-25001,21164,-25015,21147,-25030,21130,-25044,21113,-25058,21096,-25073,21079,-25087,21062,-25101,21045,-25116,21027,-25130,21010,-25145,20993,-25159,20976,-25173,20959,-25187,20942,-25202,20925,-25216,20907,-25230,20890,-25244,20873,-25259,20856,-25273,20838,-25287,20821,-25301,20804,-25316,20787,-25330,20769,-25344,20752,-25358,20735,-25372,20718,-25386,20700,-25400,20683,-25415,20666,-25429,20648,-25443,20631,-25457,20613,-25471,20596,-25485,20579,-25499,20561,-25513,20544,-25527,20527,-25541,20509,-25555,20492,-25569,20474,-25583,20457,-25597,20439,-25611,20422,-25625,20404,-25639,20387,-25653,20369,-25666,20352,-25680,20334,-25694,20317,-25708,20299,-25722,20282,-25736,20264,-25750,20247,-25763,20229,-25777,20212,-25791,20194,-25805,20176,-25818,20159,-25832,20141,-25846,20124,-25860,20106,-25873,20088,-25887,20071,-25901,20053,-25914,20035,-25928,20018,-25942,20000,-25955,19982,-25969,19965,-25983,19947,-25996,19929,-26010,19911,-26023,19894,-26037,19876,-26051,19858,-26064,19840,-26078,19822,-26091,19805,-26105,19787,-26118,19769,-26132,19751,-26145,19733,-26159,19716,-26172,19698,-26186,19680,-26199,19662,-26212,19644,-26226,19626,-26239,19608,-26253,19590,-26266,19573,-26279,19555,-26293,19537,-26306,19519,-26319,19501,-26333,19483,-26346,19465,-26359,19447,-26372,19429,-26386,19411,-26399,19393,-26412,19375,-26425,19357,-26438,19339,-26452,19321,-26465,19303,-26478,19285,-26491,19267,-26504,19249,-26517,19231,-26531,19212,-26544,19194,-26557,19176,-26570,19158,-26583,19140,-26596,19122,-26609,19104,-26622,19086,-26635,19067,-26648,19049,-26661,19031,-26674,19013,-26687,18995,-26700,18976,-26713,18958,-26726,18940,-26739,18922,-26752,18904,-26765,18885,-26777,18867,-26790,18849,-26803,18830,-26816,18812,-26829,18794,-26842,18776,-26854,18757,-26867,18739,-26880,18721,-26893,18702,-26906,18684,-26918,18666,-26931,18647,-26944,18629,-26956,18610,-26969,18592,-26982,18574,-26995,18555,-27007,18537,-27020,18518,-27032,18500,-27045,18482,-27058,18463,-27070,18445,-27083,18426,-27095,18408,-27108,18389,-27121,18371,-27133,18352,-27146,18334,-27158,18315,-27171,18297,-27183,18278,-27196,18260,-27208,18241,-27220,18222,-27233,18204,-27245,18185,-27258,18167,-27270,18148,-27282,18130,-27295,18111,-27307,18092,-27320,18074,-27332,18055,-27344,18036,-27356,18018,-27369,17999,-27381,17980,-27393,17962,-27406,17943,-27418,17924,-27430,17906,-27442,17887,-27454,17868,-27467,17849,-27479,17831,-27491,17812,-27503,17793,-27515,17774,-27527,17756,-27539,17737,-27552,17718,-27564,17699,-27576,17680,-27588,17662,-27600,17643,-27612,17624,-27624,17605,-27636,17586,-27648,17567,-27660,17549,-27672,17530,-27684,17511,-27696,17492,-27708,17473,-27720,17454,-27732,17435,-27743,17416,-27755,17397,-27767,17379,-27779,17360,-27791,17341,-27803,17322,-27815,17303,-27826,17284,-27838,17265,-27850,17246,-27862,17227,-27873,17208,-27885,17189,-27897,17170,-27909,17151,-27920,17132,-27932,17113,-27944,17094,-27955,17074,-27967,17055,-27979,17036,-27990,17017,-28002,16998,-28013,16979,-28025,16960,-28037,16941,-28048,16922,-28060,16903,-28071,16883,-28083,16864,-28094,16845,-28106,16826,-28117,16807,-28129,16788,-28140,16768,-28152,16749,-28163,16730,-28174,16711,-28186,16692,-28197,16672,-28209,16653,-28220,16634,-28231,16615,-28243,16595,-28254,16576,-28265,16557,-28276,16538,-28288,16518,-28299,16499,-28310,16480,-28322,16460,-28333,16441,-28344,16422,-28355,16402,-28366,16383,-28378,16364,-28389,16344,-28400,16325,-28411,16306,-28422,16286,-28433,16267,-28444,16247,-28455,16228,-28466,16209,-28478,16189,-28489,16170,-28500,16150,-28511,16131,-28522,16111,-28533,16092,-28544,16072,-28555,16053,-28566,16034,-28576,16014,-28587,15995,-28598,15975,-28609,15956,-28620,15936,-28631,15917,-28642,15897,-28653,15877,-28663,15858,-28674,15838,-28685,15819,-28696,15799,-28707,15780,-28717,15760,-28728,15740,-28739,15721,-28750,15701,-28760,15682,-28771,15662,-28782,15642,-28792,15623,-28803,15603,-28814,15583,-28824,15564,-28835,15544,-28846,15525,-28856,15505,-28867,15485,-28877,15465,-28888,15446,-28898,15426,-28909,15406,-28919,15387,-28930,15367,-28940,15347,-28951,15327,-28961,15308,-28972,15288,-28982,15268,-28993,15248,-29003,15229,-29013,15209,-29024,15189,-29034,15169,-29045,15149,-29055,15130,-29065,15110,-29075,15090,-29086,15070,-29096,15050,-29106,15030,-29117,15011,-29127,14991,-29137,14971,-29147,14951,-29157,14931,-29168,14911,-29178,14891,-29188,14871,-29198,14852,-29208,14832,-29218,14812,-29228,14792,-29239,14772,-29249,14752,-29259,14732,-29269,14712,-29279,14692,-29289,14672,-29299,14652,-29309,14632,-29319,14612,-29329,14592,-29339,14572,-29349,14552,-29359,14532,-29369,14512,-29378,14492,-29388,14472,-29398,14452,-29408,14432,-29418,14412,-29428,14392,-29438,14372,-29447,14352,-29457,14331,-29467,14311,-29477,14291,-29486,14271,-29496,14251,-29506,14231,-29516,14211,-29525,14191,-29535,14171,-29545,14150,-29554,14130,-29564,14110,-29574,14090,-29583,14070,-29593,14050,-29602,14029,-29612,14009,-29622,13989,-29631,13969,-29641,13949,-29650,13928,-29660,13908,-29669,13888,-29679,13868,-29688,13847,-29697,13827,-29707,13807,-29716,13787,-29726,13766,-29735,13746,-29745,13726,-29754,13706,-29763,13685,-29773,13665,-29782,13645,-29791,13624,-29801,13604,-29810,13584,-29819,13563,-29828,13543,-29838,13523,-29847,13502,-29856,13482,-29865,13462,-29874,13441,-29884,13421,-29893,13400,-29902,13380,-29911,13360,-29920,13339,-29929,13319,-29938,13298,-29947,13278,-29956,13258,-29965,13237,-29974,13217,-29984,13196,-29993,13176,-30002,13155,-30010,13135,-30019,13114,-30028,13094,-30037,13074,-30046,13053,-30055,13033,-30064,13012,-30073,12992,-30082,12971,-30091,12950,-30099,12930,-30108,12909,-30117,12889,-30126,12868,-30135,12848,-30143,12827,-30152,12807,-30161,12786,-30170,12766,-30178,12745,-30187,12724,-30196,12704,-30204,12683,-30213,12663,-30222,12642,-30230,12621,-30239,12601,-30248,12580,-30256,12560,-30265,12539,-30273,12518,-30282,12498,-30290,12477,-30299,12456,-30307,12436,-30316,12415,-30324,12394,-30333,12374,-30341,12353,-30350,12332,-30358,12312,-30366,12291,-30375,12270,-30383,12249,-30392,12229,-30400,12208,-30408,12187,-30417,12166,-30425,12146,-30433,12125,-30441,12104,-30450,12083,-30458,12063,-30466,12042,-30474,12021,-30483,12000,-30491,11980,-30499,11959,-30507,11938,-30515,11917,-30523,11896,-30531,11876,-30540,11855,-30548,11834,-30556,11813,-30564,11792,-30572,11771,-30580,11750,-30588,11730,-30596,11709,-30604,11688,-30612,11667,-30620,11646,-30628,11625,-30636,11604,-30644,11583,-30652,11563,-30659,11542,-30667,11521,-30675,11500,-30683,11479,-30691,11458,-30699,11437,-30706,11416,-30714,11395,-30722,11374,-30730,11353,-30738,11332,-30745,11311,-30753,11290,-30761,11269,-30768,11248,-30776,11227,-30784,11206,-30791,11185,-30799,11164,-30807,11143,-30814,11122,-30822,11101,-30829,11080,-30837,11059,-30845,11038,-30852,11017,-30860,10996,-30867,10975,-30875,10954,-30882,10933,-30890,10912,-30897,10891,-30904,10870,-30912,10849,-30919,10828,-30927,10807,-30934,10786,-30941,10765,-30949,10743,-30956,10722,-30963,10701,-30971,10680,-30978,10659,-30985,10638,-30992,10617,-31000,10596,-31007,10574,-31014,10553,-31021,10532,-31029,10511,-31036,10490,-31043,10469,-31050,10447,-31057,10426,-31064,10405,-31071,10384,-31078,10363,-31086,10342,-31093,10320,-31100,10299,-31107,10278,-31114,10257,-31121,10235,-31128,10214,-31135,10193,-31142,10172,-31149,10151,-31155,10129,-31162,10108,-31169,10087,-31176,10066,-31183,10044,-31190,10023,-31197,10002,-31204,9980,-31210,9959,-31217,9938,-31224,9917,-31231,9895,-31237,9874,-31244,9853,-31251,9831,-31258,9810,-31264,9789,-31271,9767,-31278,9746,-31284,9725,-31291,9703,-31298,9682,-31304,9661,-31311,9639,-31317,9618,-31324,9597,-31331,9575,-31337,9554,-31344,9533,-31350,9511,-31357,9490,-31363,9468,-31370,9447,-31376,9426,-31382,9404,-31389,9383,-31395,9362,-31402,9340,-31408,9319,-31414,9297,-31421,9276,-31427,9254,-31433,9233,-31440,9212,-31446,9190,-31452,9169,-31458,9147,-31465,9126,-31471,9104,-31477,9083,-31483,9061,-31490,9040,-31496,9018,-31502,8997,-31508,8975,-31514,8954,-31520,8932,-31526,8911,-31532,8889,-31538,8868,-31545,8846,-31551,8825,-31557,8803,-31563,8782,-31569,8760,-31575,8739,-31581,8717,-31587,8696,-31592,8674,-31598,8653,-31604,8631,-31610,8610,-31616,8588,-31622,8567,-31628,8545,-31634,8523,-31639,8502,-31645,8480,-31651,8459,-31657,8437,-31663,8415,-31668,8394,-31674,8372,-31680,8351,-31685,8329,-31691,8307,-31697,8286,-31702,8264,-31708,8243,-31714,8221,-31719,8199,-31725,8178,-31730,8156,-31736,8134,-31742,8113,-31747,8091,-31753,8070,-31758,8048,-31764,8026,-31769,8005,-31775,7983,-31780,7961,-31786,7940,-31791,7918,-31796,7896,-31802,7875,-31807,7853,-31812,7831,-31818,7809,-31823,7788,-31828,7766,-31834,7744,-31839,7723,-31844,7701,-31850,7679,-31855,7657,-31860,7636,-31865,7614,-31870,7592,-31876,7571,-31881,7549,-31886,7527,-31891,7505,-31896,7484,-31901,7462,-31906,7440,-31912,7418,-31917,7397,-31922,7375,-31927,7353,-31932,7331,-31937,7310,-31942,7288,-31947,7266,-31952,7244,-31957,7222,-31962,7201,-31966,7179,-31971,7157,-31976,7135,-31981,7113,-31986,7092,-31991,7070,-31996,7048,-32000,7026,-32005,7004,-32010,6982,-32015,6961,-32020,6939,-32024,6917,-32029,6895,-32034,6873,-32038,6851,-32043,6830,-32048,6808,-32052,6786,-32057,6764,-32062,6742,-32066,6720,-32071,6698,-32075,6677,-32080,6655,-32085,6633,-32089,6611,-32094,6589,-32098,6567,-32103,6545,-32107,6523,-32111,6502,-32116,6480,-32120,6458,-32125,6436,-32129,6414,-32134,6392,-32138,6370,-32142,6348,-32147,6326,-32151,6304,-32155,6282,-32159,6261,-32164,6239,-32168,6217,-32172,6195,-32177,6173,-32181,6151,-32185,6129,-32189,6107,-32193,6085,-32197,6063,-32202,6041,-32206,6019,-32210,5997,-32214,5975,-32218,5953,-32222,5931,-32226,5909,-32230,5887,-32234,5865,-32238,5843,-32242,5821,-32246,5799,-32250,5777,-32254,5755,-32258,5733,-32262,5711,-32266,5689,-32270,5667,-32274,5645,-32277,5623,-32281,5601,-32285,5579,-32289,5557,-32293,5535,-32296,5513,-32300,5491,-32304,5469,-32308,5447,-32311,5425,-32315,5403,-32319,5381,-32323,5359,-32326,5337,-32330,5315,-32333,5293,-32337,5271,-32341,5249,-32344,5227,-32348,5205,-32351,5183,-32355,5161,-32358,5139,-32362,5117,-32365,5094,-32369,5072,-32372,5050,-32376,5028,-32379,5006,-32383,4984,-32386,4962,-32390,4940,-32393,4918,-32396,4896,-32400,4874,-32403,4852,-32406,4830,-32410,4807,-32413,4785,-32416,4763,-32419,4741,-32423,4719,-32426,4697,-32429,4675,-32432,4653,-32435,4631,-32439,4608,-32442,4586,-32445,4564,-32448,4542,-32451,4520,-32454,4498,-32457,4476,-32460,4454,-32463,4431,-32466,4409,-32469,4387,-32472,4365,-32475,4343,-32478,4321,-32481,4299,-32484,4276,-32487,4254,-32490,4232,-32493,4210,-32496,4188,-32499,4166,-32502,4144,-32504,4121,-32507,4099,-32510,4077,-32513,4055,-32516,4033,-32518,4011,-32521,3988,-32524,3966,-32527,3944,-32529,3922,-32532,3900,-32535,3877,-32537,3855,-32540,3833,-32542,3811,-32545,3789,-32548,3767,-32550,3744,-32553,3722,-32555,3700,-32558,3678,-32560,3656,-32563,3633,-32565,3611,-32568,3589,-32570,3567,-32573,3545,-32575,3522,-32578,3500,-32580,3478,-32582,3456,-32585,3433,-32587,3411,-32589,3389,-32592,3367,-32594,3345,-32596,3322,-32599,3300,-32601,3278,-32603,3256,-32605,3233,-32608,3211,-32610,3189,-32612,3167,-32614,3145,-32616,3122,-32618,3100,-32620,3078,-32623,3056,-32625,3033,-32627,3011,-32629,2989,-32631,2967,-32633,2944,-32635,2922,-32637,2900,-32639,2878,-32641,2855,-32643,2833,-32645,2811,-32647,2789,-32649,2766,-32650,2744,-32652,2722,-32654,2700,-32656,2677,-32658,2655,-32660,2633,-32662,2610,-32663,2588,-32665,2566,-32667,2544,-32669,2521,-32670,2499,-32672,2477,-32674,2455,-32675,2432,-32677,2410,-32679,2388,-32680,2365,-32682,2343,-32684,2321,-32685,2299,-32687,2276,-32688,2254,-32690,2232,-32691,2209,-32693,2187,-32694,2165,-32696,2143,-32697,2120,-32699,2098,-32700,2076,-32702,2053,-32703,2031,-32704,2009,-32706,1986,-32707,1964,-32709,1942,-32710,1920,-32711,1897,-32712,1875,-32714,1853,-32715,1830,-32716,1808,-32718,1786,-32719,1763,-32720,1741,-32721,1719,-32722,1697,-32724,1674,-32725,1652,-32726,1630,-32727,1607,-32728,1585,-32729,1563,-32730,1540,-32731,1518,-32732,1496,-32733,1473,-32734,1451,-32735,1429,-32736,1406,-32737,1384,-32738,1362,-32739,1339,-32740,1317,-32741,1295,-32742,1273,-32743,1250,-32744,1228,-32744,1206,-32745,1183,-32746,1161,-32747,1139,-32748,1116,-32748,1094,-32749,1072,-32750,1049,-32751,1027,-32751,1005,-32752,982,-32753,960,-32753,938,-32754,915,-32755,893,-32755,871,-32756,848,-32757,826,-32757,804,-32758,781,-32758,759,-32759,737,-32759,714,-32760,692,-32760,670,-32761,647,-32761,625,-32762,603,-32762,580,-32762,558,-32763,536,-32763,513,-32763,491,-32764,469,-32764,446,-32764,424,-32765,402,-32765,379,-32765,357,-32766,335,-32766,312,-32766,290,-32766,268,-32766,245,-32767,223,-32767,201,-32767,178,-32767,156,-32767,134,-32767,111,-32767,89,-32767,67,-32767,44,-32767,22,-32767,0,-32767,-23,-32767,-45,-32767,-68,-32767,-90,-32767,-112,-32767,-135,-32767,-157,-32767,-179,-32767,-202,-32767,-224,-32767,-246,-32767,-269,-32766,-291,-32766,-313,-32766,-336,-32766,-358,-32766,-380,-32765,-403,-32765,-425,-32765,-447,-32764,-470,-32764,-492,-32764,-514,-32763,-537,-32763,-559,-32763,-581,-32762,-604,-32762,-626,-32762,-648,-32761,-671,-32761,-693,-32760,-715,-32760,-738,-32759,-760,-32759,-782,-32758,-805,-32758,-827,-32757,-849,-32757,-872,-32756,-894,-32755,-916,-32755,-939,-32754,-961,-32753,-983,-32753,-1006,-32752,-1028,-32751,-1050,-32751,-1073,-32750,-1095,-32749,-1117,-32748,-1140,-32748,-1162,-32747,-1184,-32746,-1207,-32745,-1229,-32744,-1251,-32744,-1274,-32743,-1296,-32742,-1318,-32741,-1340,-32740,-1363,-32739,-1385,-32738,-1407,-32737,-1430,-32736,-1452,-32735,-1474,-32734,-1497,-32733,-1519,-32732,-1541,-32731,-1564,-32730,-1586,-32729,-1608,-32728,-1631,-32727,-1653,-32726,-1675,-32725,-1698,-32724,-1720,-32722,-1742,-32721,-1764,-32720,-1787,-32719,-1809,-32718,-1831,-32716,-1854,-32715,-1876,-32714,-1898,-32712,-1921,-32711,-1943,-32710,-1965,-32709,-1987,-32707,-2010,-32706,-2032,-32704,-2054,-32703,-2077,-32702,-2099,-32700,-2121,-32699,-2144,-32697,-2166,-32696,-2188,-32694,-2210,-32693,-2233,-32691,-2255,-32690,-2277,-32688,-2300,-32687,-2322,-32685,-2344,-32684,-2366,-32682,-2389,-32680,-2411,-32679,-2433,-32677,-2456,-32675,-2478,-32674,-2500,-32672,-2522,-32670,-2545,-32669,-2567,-32667,-2589,-32665,-2611,-32663,-2634,-32662,-2656,-32660,-2678,-32658,-2701,-32656,-2723,-32654,-2745,-32652,-2767,-32650,-2790,-32649,-2812,-32647,-2834,-32645,-2856,-32643,-2879,-32641,-2901,-32639,-2923,-32637,-2945,-32635,-2968,-32633,-2990,-32631,-3012,-32629,-3034,-32627,-3057,-32625,-3079,-32623,-3101,-32620,-3123,-32618,-3146,-32616,-3168,-32614,-3190,-32612,-3212,-32610,-3234,-32608,-3257,-32605,-3279,-32603,-3301,-32601,-3323,-32599,-3346,-32596,-3368,-32594,-3390,-32592,-3412,-32589,-3434,-32587,-3457,-32585,-3479,-32582,-3501,-32580,-3523,-32578,-3546,-32575,-3568,-32573,-3590,-32570,-3612,-32568,-3634,-32565,-3657,-32563,-3679,-32560,-3701,-32558,-3723,-32555,-3745,-32553,-3768,-32550,-3790,-32548,-3812,-32545,-3834,-32542,-3856,-32540,-3878,-32537,-3901,-32535,-3923,-32532,-3945,-32529,-3967,-32527,-3989,-32524,-4012,-32521,-4034,-32518,-4056,-32516,-4078,-32513,-4100,-32510,-4122,-32507,-4145,-32504,-4167,-32502,-4189,-32499,-4211,-32496,-4233,-32493,-4255,-32490,-4277,-32487,-4300,-32484,-4322,-32481,-4344,-32478,-4366,-32475,-4388,-32472,-4410,-32469,-4432,-32466,-4455,-32463,-4477,-32460,-4499,-32457,-4521,-32454,-4543,-32451,-4565,-32448,-4587,-32445,-4609,-32442,-4632,-32439,-4654,-32435,-4676,-32432,-4698,-32429,-4720,-32426,-4742,-32423,-4764,-32419,-4786,-32416,-4808,-32413,-4831,-32410,-4853,-32406,-4875,-32403,-4897,-32400,-4919,-32396,-4941,-32393,-4963,-32390,-4985,-32386,-5007,-32383,-5029,-32379,-5051,-32376,-5073,-32372,-5095,-32369,-5118,-32365,-5140,-32362,-5162,-32358,-5184,-32355,-5206,-32351,-5228,-32348,-5250,-32344,-5272,-32341,-5294,-32337,-5316,-32333,-5338,-32330,-5360,-32326,-5382,-32323,-5404,-32319,-5426,-32315,-5448,-32311,-5470,-32308,-5492,-32304,-5514,-32300,-5536,-32296,-5558,-32293,-5580,-32289,-5602,-32285,-5624,-32281,-5646,-32277,-5668,-32274,-5690,-32270,-5712,-32266,-5734,-32262,-5756,-32258,-5778,-32254,-5800,-32250,-5822,-32246,-5844,-32242,-5866,-32238,-5888,-32234,-5910,-32230,-5932,-32226,-5954,-32222,-5976,-32218,-5998,-32214,-6020,-32210,-6042,-32206,-6064,-32202,-6086,-32197,-6108,-32193,-6130,-32189,-6152,-32185,-6174,-32181,-6196,-32177,-6218,-32172,-6240,-32168,-6262,-32164,-6283,-32159,-6305,-32155,-6327,-32151,-6349,-32147,-6371,-32142,-6393,-32138,-6415,-32134,-6437,-32129,-6459,-32125,-6481,-32120,-6503,-32116,-6524,-32111,-6546,-32107,-6568,-32103,-6590,-32098,-6612,-32094,-6634,-32089,-6656,-32085,-6678,-32080,-6699,-32075,-6721,-32071,-6743,-32066,-6765,-32062,-6787,-32057,-6809,-32052,-6831,-32048,-6852,-32043,-6874,-32038,-6896,-32034,-6918,-32029,-6940,-32024,-6962,-32020,-6983,-32015,-7005,-32010,-7027,-32005,-7049,-32000,-7071,-31996,-7093,-31991,-7114,-31986,-7136,-31981,-7158,-31976,-7180,-31971,-7202,-31966,-7223,-31962,-7245,-31957,-7267,-31952,-7289,-31947,-7311,-31942,-7332,-31937,-7354,-31932,-7376,-31927,-7398,-31922,-7419,-31917,-7441,-31912,-7463,-31906,-7485,-31901,-7506,-31896,-7528,-31891,-7550,-31886,-7572,-31881,-7593,-31876,-7615,-31870,-7637,-31865,-7658,-31860,-7680,-31855,-7702,-31850,-7724,-31844,-7745,-31839,-7767,-31834,-7789,-31828,-7810,-31823,-7832,-31818,-7854,-31812,-7876,-31807,-7897,-31802,-7919,-31796,-7941,-31791,-7962,-31786,-7984,-31780,-8006,-31775,-8027,-31769,-8049,-31764,-8071,-31758,-8092,-31753,-8114,-31747,-8135,-31742,-8157,-31736,-8179,-31730,-8200,-31725,-8222,-31719,-8244,-31714,-8265,-31708,-8287,-31702,-8308,-31697,-8330,-31691,-8352,-31685,-8373,-31680,-8395,-31674,-8416,-31668,-8438,-31663,-8460,-31657,-8481,-31651,-8503,-31645,-8524,-31639,-8546,-31634,-8568,-31628,-8589,-31622,-8611,-31616,-8632,-31610,-8654,-31604,-8675,-31598,-8697,-31592,-8718,-31587,-8740,-31581,-8761,-31575,-8783,-31569,-8804,-31563,-8826,-31557,-8847,-31551,-8869,-31545,-8890,-31538,-8912,-31532,-8933,-31526,-8955,-31520,-8976,-31514,-8998,-31508,-9019,-31502,-9041,-31496,-9062,-31490,-9084,-31483,-9105,-31477,-9127,-31471,-9148,-31465,-9170,-31458,-9191,-31452,-9213,-31446,-9234,-31440,-9255,-31433,-9277,-31427,-9298,-31421,-9320,-31414,-9341,-31408,-9363,-31402,-9384,-31395,-9405,-31389,-9427,-31382,-9448,-31376,-9469,-31370,-9491,-31363,-9512,-31357,-9534,-31350,-9555,-31344,-9576,-31337,-9598,-31331,-9619,-31324,-9640,-31317,-9662,-31311,-9683,-31304,-9704,-31298,-9726,-31291,-9747,-31284,-9768,-31278,-9790,-31271,-9811,-31264,-9832,-31258,-9854,-31251,-9875,-31244,-9896,-31237,-9918,-31231,-9939,-31224,-9960,-31217,-9981,-31210,-10003,-31204,-10024,-31197,-10045,-31190,-10067,-31183,-10088,-31176,-10109,-31169,-10130,-31162,-10152,-31155,-10173,-31149,-10194,-31142,-10215,-31135,-10236,-31128,-10258,-31121,-10279,-31114,-10300,-31107,-10321,-31100,-10343,-31093,-10364,-31086,-10385,-31078,-10406,-31071,-10427,-31064,-10448,-31057,-10470,-31050,-10491,-31043,-10512,-31036,-10533,-31029,-10554,-31021,-10575,-31014,-10597,-31007,-10618,-31000,-10639,-30992,-10660,-30985,-10681,-30978,-10702,-30971,-10723,-30963,-10744,-30956,-10766,-30949,-10787,-30941,-10808,-30934,-10829,-30927,-10850,-30919,-10871,-30912,-10892,-30904,-10913,-30897,-10934,-30890,-10955,-30882,-10976,-30875,-10997,-30867,-11018,-30860,-11039,-30852,-11060,-30845,-11081,-30837,-11102,-30829,-11123,-30822,-11144,-30814,-11165,-30807,-11186,-30799,-11207,-30791,-11228,-30784,-11249,-30776,-11270,-30768,-11291,-30761,-11312,-30753,-11333,-30745,-11354,-30738,-11375,-30730,-11396,-30722,-11417,-30714,-11438,-30706,-11459,-30699,-11480,-30691,-11501,-30683,-11522,-30675,-11543,-30667,-11564,-30659,-11584,-30652,-11605,-30644,-11626,-30636,-11647,-30628,-11668,-30620,-11689,-30612,-11710,-30604,-11731,-30596,-11751,-30588,-11772,-30580,-11793,-30572,-11814,-30564,-11835,-30556,-11856,-30548,-11877,-30540,-11897,-30531,-11918,-30523,-11939,-30515,-11960,-30507,-11981,-30499,-12001,-30491,-12022,-30483,-12043,-30474,-12064,-30466,-12084,-30458,-12105,-30450,-12126,-30441,-12147,-30433,-12167,-30425,-12188,-30417,-12209,-30408,-12230,-30400,-12250,-30392,-12271,-30383,-12292,-30375,-12313,-30366,-12333,-30358,-12354,-30350,-12375,-30341,-12395,-30333,-12416,-30324,-12437,-30316,-12457,-30307,-12478,-30299,-12499,-30290,-12519,-30282,-12540,-30273,-12561,-30265,-12581,-30256,-12602,-30248,-12622,-30239,-12643,-30230,-12664,-30222,-12684,-30213,-12705,-30204,-12725,-30196,-12746,-30187,-12767,-30178,-12787,-30170,-12808,-30161,-12828,-30152,-12849,-30143,-12869,-30135,-12890,-30126,-12910,-30117,-12931,-30108,-12951,-30099,-12972,-30091,-12993,-30082,-13013,-30073,-13034,-30064,-13054,-30055,-13075,-30046,-13095,-30037,-13115,-30028,-13136,-30019,-13156,-30010,-13177,-30002,-13197,-29993,-13218,-29984,-13238,-29974,-13259,-29965,-13279,-29956,-13299,-29947,-13320,-29938,-13340,-29929,-13361,-29920,-13381,-29911,-13401,-29902,-13422,-29893,-13442,-29884,-13463,-29874,-13483,-29865,-13503,-29856,-13524,-29847,-13544,-29838,-13564,-29828,-13585,-29819,-13605,-29810,-13625,-29801,-13646,-29791,-13666,-29782,-13686,-29773,-13707,-29763,-13727,-29754,-13747,-29745,-13767,-29735,-13788,-29726,-13808,-29716,-13828,-29707,-13848,-29697,-13869,-29688,-13889,-29679,-13909,-29669,-13929,-29660,-13950,-29650,-13970,-29641,-13990,-29631,-14010,-29622,-14030,-29612,-14051,-29602,-14071,-29593,-14091,-29583,-14111,-29574,-14131,-29564,-14151,-29554,-14172,-29545,-14192,-29535,-14212,-29525,-14232,-29516,-14252,-29506,-14272,-29496,-14292,-29486,-14312,-29477,-14332,-29467,-14353,-29457,-14373,-29447,-14393,-29438,-14413,-29428,-14433,-29418,-14453,-29408,-14473,-29398,-14493,-29388,-14513,-29378,-14533,-29369,-14553,-29359,-14573,-29349,-14593,-29339,-14613,-29329,-14633,-29319,-14653,-29309,-14673,-29299,-14693,-29289,-14713,-29279,-14733,-29269,-14753,-29259,-14773,-29249,-14793,-29239,-14813,-29228,-14833,-29218,-14853,-29208,-14872,-29198,-14892,-29188,-14912,-29178,-14932,-29168,-14952,-29157,-14972,-29147,-14992,-29137,-15012,-29127,-15031,-29117,-15051,-29106,-15071,-29096,-15091,-29086,-15111,-29075,-15131,-29065,-15150,-29055,-15170,-29045,-15190,-29034,-15210,-29024,-15230,-29013,-15249,-29003,-15269,-28993,-15289,-28982,-15309,-28972,-15328,-28961,-15348,-28951,-15368,-28940,-15388,-28930,-15407,-28919,-15427,-28909,-15447,-28898,-15466,-28888,-15486,-28877,-15506,-28867,-15526,-28856,-15545,-28846,-15565,-28835,-15584,-28824,-15604,-28814,-15624,-28803,-15643,-28792,-15663,-28782,-15683,-28771,-15702,-28760,-15722,-28750,-15741,-28739,-15761,-28728,-15781,-28717,-15800,-28707,-15820,-28696,-15839,-28685,-15859,-28674,-15878,-28663,-15898,-28653,-15918,-28642,-15937,-28631,-15957,-28620,-15976,-28609,-15996,-28598,-16015,-28587,-16035,-28576,-16054,-28566,-16073,-28555,-16093,-28544,-16112,-28533,-16132,-28522,-16151,-28511,-16171,-28500,-16190,-28489,-16210,-28478,-16229,-28466,-16248,-28455,-16268,-28444,-16287,-28433,-16307,-28422,-16326,-28411,-16345,-28400,-16365,-28389,-16384,-28378,-16403,-28366,-16423,-28355,-16442,-28344,-16461,-28333,-16481,-28322,-16500,-28310,-16519,-28299,-16539,-28288,-16558,-28276,-16577,-28265,-16596,-28254,-16616,-28243,-16635,-28231,-16654,-28220,-16673,-28209,-16693,-28197,-16712,-28186,-16731,-28174,-16750,-28163,-16769,-28152,-16789,-28140,-16808,-28129,-16827,-28117,-16846,-28106,-16865,-28094,-16884,-28083,-16904,-28071,-16923,-28060,-16942,-28048,-16961,-28037,-16980,-28025,-16999,-28013,-17018,-28002,-17037,-27990,-17056,-27979,-17075,-27967,-17095,-27955,-17114,-27944,-17133,-27932,-17152,-27920,-17171,-27909,-17190,-27897,-17209,-27885,-17228,-27873,-17247,-27862,-17266,-27850,-17285,-27838,-17304,-27826,-17323,-27815,-17342,-27803,-17361,-27791,-17380,-27779,-17398,-27767,-17417,-27755,-17436,-27743,-17455,-27732,-17474,-27720,-17493,-27708,-17512,-27696,-17531,-27684,-17550,-27672,-17568,-27660,-17587,-27648,-17606,-27636,-17625,-27624,-17644,-27612,-17663,-27600,-17681,-27588,-17700,-27576,-17719,-27564,-17738,-27552,-17757,-27539,-17775,-27527,-17794,-27515,-17813,-27503,-17832,-27491,-17850,-27479,-17869,-27467,-17888,-27454,-17907,-27442,-17925,-27430,-17944,-27418,-17963,-27406,-17981,-27393,-18000,-27381,-18019,-27369,-18037,-27356,-18056,-27344,-18075,-27332,-18093,-27320,-18112,-27307,-18131,-27295,-18149,-27282,-18168,-27270,-18186,-27258,-18205,-27245,-18223,-27233,-18242,-27220,-18261,-27208,-18279,-27196,-18298,-27183,-18316,-27171,-18335,-27158,-18353,-27146,-18372,-27133,-18390,-27121,-18409,-27108,-18427,-27095,-18446,-27083,-18464,-27070,-18483,-27058,-18501,-27045,-18519,-27032,-18538,-27020,-18556,-27007,-18575,-26995,-18593,-26982,-18611,-26969,-18630,-26956,-18648,-26944,-18667,-26931,-18685,-26918,-18703,-26906,-18722,-26893,-18740,-26880,-18758,-26867,-18777,-26854,-18795,-26842,-18813,-26829,-18831,-26816,-18850,-26803,-18868,-26790,-18886,-26777,-18905,-26765,-18923,-26752,-18941,-26739,-18959,-26726,-18977,-26713,-18996,-26700,-19014,-26687,-19032,-26674,-19050,-26661,-19068,-26648,-19087,-26635,-19105,-26622,-19123,-26609,-19141,-26596,-19159,-26583,-19177,-26570,-19195,-26557,-19213,-26544,-19232,-26531,-19250,-26517,-19268,-26504,-19286,-26491,-19304,-26478,-19322,-26465,-19340,-26452,-19358,-26438,-19376,-26425,-19394,-26412,-19412,-26399,-19430,-26386,-19448,-26372,-19466,-26359,-19484,-26346,-19502,-26333,-19520,-26319,-19538,-26306,-19556,-26293,-19574,-26279,-19591,-26266,-19609,-26253,-19627,-26239,-19645,-26226,-19663,-26212,-19681,-26199,-19699,-26186,-19717,-26172,-19734,-26159,-19752,-26145,-19770,-26132,-19788,-26118,-19806,-26105,-19823,-26091,-19841,-26078,-19859,-26064,-19877,-26051,-19895,-26037,-19912,-26023,-19930,-26010,-19948,-25996,-19966,-25983,-19983,-25969,-20001,-25955,-20019,-25942,-20036,-25928,-20054,-25914,-20072,-25901,-20089,-25887,-20107,-25873,-20125,-25860,-20142,-25846,-20160,-25832,-20177,-25818,-20195,-25805,-20213,-25791,-20230,-25777,-20248,-25763,-20265,-25750,-20283,-25736,-20300,-25722,-20318,-25708,-20335,-25694,-20353,-25680,-20370,-25666,-20388,-25653,-20405,-25639,-20423,-25625,-20440,-25611,-20458,-25597,-20475,-25583,-20493,-25569,-20510,-25555,-20528,-25541,-20545,-25527,-20562,-25513,-20580,-25499,-20597,-25485,-20614,-25471,-20632,-25457,-20649,-25443,-20667,-25429,-20684,-25415,-20701,-25400,-20719,-25386,-20736,-25372,-20753,-25358,-20770,-25344,-20788,-25330,-20805,-25316,-20822,-25301,-20839,-25287,-20857,-25273,-20874,-25259,-20891,-25244,-20908,-25230,-20926,-25216,-20943,-25202,-20960,-25187,-20977,-25173,-20994,-25159,-21011,-25145,-21028,-25130,-21046,-25116,-21063,-25101,-21080,-25087,-21097,-25073,-21114,-25058,-21131,-25044,-21148,-25030,-21165,-25015,-21182,-25001,-21199,-24986,-21216,-24972,-21233,-24957,-21250,-24943,-21267,-24928,-21284,-24914,-21301,-24899,-21318,-24885,-21335,-24870,-21352,-24856,-21369,-24841,-21386,-24827,-21403,-24812,-21420,-24797,-21437,-24783,-21454,-24768,-21471,-24754,-21487,-24739,-21504,-24724,-21521,-24710,-21538,-24695,-21555,-24680,-21572,-24665,-21588,-24651,-21605,-24636,-21622,-24621,-21639,-24607,-21656,-24592,-21672,-24577,-21689,-24562,-21706,-24547,-21723,-24533,-21739,-24518,-21756,-24503,-21773,-24488,-21789,-24473,-21806,-24458,-21823,-24444,-21839,-24429,-21856,-24414,-21873,-24399,-21889,-24384,-21906,-24369,-21923,-24354,-21939,-24339,-21956,-24324,-21972,-24309,-21989,-24294,-22005,-24279,-22022,-24264,-22039,-24249,-22055,-24234,-22072,-24219,-22088,-24204,-22105,-24189,-22121,-24174,-22138,-24159,-22154,-24144,-22170,-24129,-22187,-24114,-22203,-24098,-22220,-24083,-22236,-24068,-22253,-24053,-22269,-24038,-22285,-24023,-22302,-24007,-22318,-23992,-22334,-23977,-22351,-23962,-22367,-23946,-22383,-23931,-22400,-23916,-22416,-23901,-22432,-23885,-22449,-23870,-22465,-23855,-22481,-23839,-22497,-23824,-22514,-23809,-22530,-23793,-22546,-23778,-22562,-23763,-22578,-23747,-22595,-23732,-22611,-23716,-22627,-23701,-22643,-23686,-22659,-23670,-22675,-23655,-22692,-23639,-22708,-23624,-22724,-23608,-22740,-23593,-22756,-23577,-22772,-23562,-22788,-23546,-22804,-23531,-22820,-23515,-22836,-23500,-22852,-23484,-22868,-23468,-22884,-23453,-22900,-23437,-22916,-23422,-22932,-23406,-22948,-23390,-22964,-23375,-22980,-23359,-22996,-23343,-23012,-23328,-23028,-23312,-23044,-23296,-23059,-23281,-23075,-23265,-23091,-23249,-23107,-23233,-23123,-23218,-23139,-23202,-23154,-23186,-23170,-23170,-23186,-23154,-23202,-23139,-23218,-23123,-23233,-23107,-23249,-23091,-23265,-23075,-23281,-23059,-23296,-23044,-23312,-23028,-23328,-23012,-23343,-22996,-23359,-22980,-23375,-22964,-23390,-22948,-23406,-22932,-23422,-22916,-23437,-22900,-23453,-22884,-23468,-22868,-23484,-22852,-23500,-22836,-23515,-22820,-23531,-22804,-23546,-22788,-23562,-22772,-23577,-22756,-23593,-22740,-23608,-22724,-23624,-22708,-23639,-22692,-23655,-22675,-23670,-22659,-23686,-22643,-23701,-22627,-23716,-22611,-23732,-22595,-23747,-22578,-23763,-22562,-23778,-22546,-23793,-22530,-23809,-22514,-23824,-22497,-23839,-22481,-23855,-22465,-23870,-22449,-23885,-22432,-23901,-22416,-23916,-22400,-23931,-22383,-23946,-22367,-23962,-22351,-23977,-22334,-23992,-22318,-24007,-22302,-24023,-22285,-24038,-22269,-24053,-22253,-24068,-22236,-24083,-22220,-24098,-22203,-24114,-22187,-24129,-22170,-24144,-22154,-24159,-22138,-24174,-22121,-24189,-22105,-24204,-22088,-24219,-22072,-24234,-22055,-24249,-22039,-24264,-22022,-24279,-22005,-24294,-21989,-24309,-21972,-24324,-21956,-24339,-21939,-24354,-21923,-24369,-21906,-24384,-21889,-24399,-21873,-24414,-21856,-24429,-21839,-24444,-21823,-24458,-21806,-24473,-21789,-24488,-21773,-24503,-21756,-24518,-21739,-24533,-21723,-24547,-21706,-24562,-21689,-24577,-21672,-24592,-21656,-24607,-21639,-24621,-21622,-24636,-21605,-24651,-21588,-24665,-21572,-24680,-21555,-24695,-21538,-24710,-21521,-24724,-21504,-24739,-21487,-24754,-21471,-24768,-21454,-24783,-21437,-24797,-21420,-24812,-21403,-24827,-21386,-24841,-21369,-24856,-21352,-24870,-21335,-24885,-21318,-24899,-21301,-24914,-21284,-24928,-21267,-24943,-21250,-24957,-21233,-24972,-21216,-24986,-21199,-25001,-21182,-25015,-21165,-25030,-21148,-25044,-21131,-25058,-21114,-25073,-21097,-25087,-21080,-25101,-21063,-25116,-21046,-25130,-21028,-25145,-21011,-25159,-20994,-25173,-20977,-25187,-20960,-25202,-20943,-25216,-20926,-25230,-20908,-25244,-20891,-25259,-20874,-25273,-20857,-25287,-20839,-25301,-20822,-25316,-20805,-25330,-20788,-25344,-20770,-25358,-20753,-25372,-20736,-25386,-20719,-25400,-20701,-25415,-20684,-25429,-20667,-25443,-20649,-25457,-20632,-25471,-20614,-25485,-20597,-25499,-20580,-25513,-20562,-25527,-20545,-25541,-20528,-25555,-20510,-25569,-20493,-25583,-20475,-25597,-20458,-25611,-20440,-25625,-20423,-25639,-20405,-25653,-20388,-25666,-20370,-25680,-20353,-25694,-20335,-25708,-20318,-25722,-20300,-25736,-20283,-25750,-20265,-25763,-20248,-25777,-20230,-25791,-20213,-25805,-20195,-25818,-20177,-25832,-20160,-25846,-20142,-25860,-20125,-25873,-20107,-25887,-20089,-25901,-20072,-25914,-20054,-25928,-20036,-25942,-20019,-25955,-20001,-25969,-19983,-25983,-19966,-25996,-19948,-26010,-19930,-26023,-19912,-26037,-19895,-26051,-19877,-26064,-19859,-26078,-19841,-26091,-19823,-26105,-19806,-26118,-19788,-26132,-19770,-26145,-19752,-26159,-19734,-26172,-19717,-26186,-19699,-26199,-19681,-26212,-19663,-26226,-19645,-26239,-19627,-26253,-19609,-26266,-19591,-26279,-19574,-26293,-19556,-26306,-19538,-26319,-19520,-26333,-19502,-26346,-19484,-26359,-19466,-26372,-19448,-26386,-19430,-26399,-19412,-26412,-19394,-26425,-19376,-26438,-19358,-26452,-19340,-26465,-19322,-26478,-19304,-26491,-19286,-26504,-19268,-26517,-19250,-26531,-19232,-26544,-19213,-26557,-19195,-26570,-19177,-26583,-19159,-26596,-19141,-26609,-19123,-26622,-19105,-26635,-19087,-26648,-19068,-26661,-19050,-26674,-19032,-26687,-19014,-26700,-18996,-26713,-18977,-26726,-18959,-26739,-18941,-26752,-18923,-26765,-18905,-26777,-18886,-26790,-18868,-26803,-18850,-26816,-18831,-26829,-18813,-26842,-18795,-26854,-18777,-26867,-18758,-26880,-18740,-26893,-18722,-26906,-18703,-26918,-18685,-26931,-18667,-26944,-18648,-26956,-18630,-26969,-18611,-26982,-18593,-26995,-18575,-27007,-18556,-27020,-18538,-27032,-18519,-27045,-18501,-27058,-18483,-27070,-18464,-27083,-18446,-27095,-18427,-27108,-18409,-27121,-18390,-27133,-18372,-27146,-18353,-27158,-18335,-27171,-18316,-27183,-18298,-27196,-18279,-27208,-18261,-27220,-18242,-27233,-18223,-27245,-18205,-27258,-18186,-27270,-18168,-27282,-18149,-27295,-18131,-27307,-18112,-27320,-18093,-27332,-18075,-27344,-18056,-27356,-18037,-27369,-18019,-27381,-18000,-27393,-17981,-27406,-17963,-27418,-17944,-27430,-17925,-27442,-17907,-27454,-17888,-27467,-17869,-27479,-17850,-27491,-17832,-27503,-17813,-27515,-17794,-27527,-17775,-27539,-17757,-27552,-17738,-27564,-17719,-27576,-17700,-27588,-17681,-27600,-17663,-27612,-17644,-27624,-17625,-27636,-17606,-27648,-17587,-27660,-17568,-27672,-17550,-27684,-17531,-27696,-17512,-27708,-17493,-27720,-17474,-27732,-17455,-27743,-17436,-27755,-17417,-27767,-17398,-27779,-17380,-27791,-17361,-27803,-17342,-27815,-17323,-27826,-17304,-27838,-17285,-27850,-17266,-27862,-17247,-27873,-17228,-27885,-17209,-27897,-17190,-27909,-17171,-27920,-17152,-27932,-17133,-27944,-17114,-27955,-17095,-27967,-17075,-27979,-17056,-27990,-17037,-28002,-17018,-28013,-16999,-28025,-16980,-28037,-16961,-28048,-16942,-28060,-16923,-28071,-16904,-28083,-16884,-28094,-16865,-28106,-16846,-28117,-16827,-28129,-16808,-28140,-16789,-28152,-16769,-28163,-16750,-28174,-16731,-28186,-16712,-28197,-16693,-28209,-16673,-28220,-16654,-28231,-16635,-28243,-16616,-28254,-16596,-28265,-16577,-28276,-16558,-28288,-16539,-28299,-16519,-28310,-16500,-28322,-16481,-28333,-16461,-28344,-16442,-28355,-16423,-28366,-16403,-28378,-16384,-28389,-16365,-28400,-16345,-28411,-16326,-28422,-16307,-28433,-16287,-28444,-16268,-28455,-16248,-28466,-16229,-28478,-16210,-28489,-16190,-28500,-16171,-28511,-16151,-28522,-16132,-28533,-16112,-28544,-16093,-28555,-16073,-28566,-16054,-28576,-16035,-28587,-16015,-28598,-15996,-28609,-15976,-28620,-15957,-28631,-15937,-28642,-15918,-28653,-15898,-28663,-15878,-28674,-15859,-28685,-15839,-28696,-15820,-28707,-15800,-28717,-15781,-28728,-15761,-28739,-15741,-28750,-15722,-28760,-15702,-28771,-15683,-28782,-15663,-28792,-15643,-28803,-15624,-28814,-15604,-28824,-15584,-28835,-15565,-28846,-15545,-28856,-15526,-28867,-15506,-28877,-15486,-28888,-15466,-28898,-15447,-28909,-15427,-28919,-15407,-28930,-15388,-28940,-15368,-28951,-15348,-28961,-15328,-28972,-15309,-28982,-15289,-28993,-15269,-29003,-15249,-29013,-15230,-29024,-15210,-29034,-15190,-29045,-15170,-29055,-15150,-29065,-15131,-29075,-15111,-29086,-15091,-29096,-15071,-29106,-15051,-29117,-15031,-29127,-15012,-29137,-14992,-29147,-14972,-29157,-14952,-29168,-14932,-29178,-14912,-29188,-14892,-29198,-14872,-29208,-14853,-29218,-14833,-29228,-14813,-29239,-14793,-29249,-14773,-29259,-14753,-29269,-14733,-29279,-14713,-29289,-14693,-29299,-14673,-29309,-14653,-29319,-14633,-29329,-14613,-29339,-14593,-29349,-14573,-29359,-14553,-29369,-14533,-29378,-14513,-29388,-14493,-29398,-14473,-29408,-14453,-29418,-14433,-29428,-14413,-29438,-14393,-29447,-14373,-29457,-14353,-29467,-14332,-29477,-14312,-29486,-14292,-29496,-14272,-29506,-14252,-29516,-14232,-29525,-14212,-29535,-14192,-29545,-14172,-29554,-14151,-29564,-14131,-29574,-14111,-29583,-14091,-29593,-14071,-29602,-14051,-29612,-14030,-29622,-14010,-29631,-13990,-29641,-13970,-29650,-13950,-29660,-13929,-29669,-13909,-29679,-13889,-29688,-13869,-29697,-13848,-29707,-13828,-29716,-13808,-29726,-13788,-29735,-13767,-29745,-13747,-29754,-13727,-29763,-13707,-29773,-13686,-29782,-13666,-29791,-13646,-29801,-13625,-29810,-13605,-29819,-13585,-29828,-13564,-29838,-13544,-29847,-13524,-29856,-13503,-29865,-13483,-29874,-13463,-29884,-13442,-29893,-13422,-29902,-13401,-29911,-13381,-29920,-13361,-29929,-13340,-29938,-13320,-29947,-13299,-29956,-13279,-29965,-13259,-29974,-13238,-29984,-13218,-29993,-13197,-30002,-13177,-30010,-13156,-30019,-13136,-30028,-13115,-30037,-13095,-30046,-13075,-30055,-13054,-30064,-13034,-30073,-13013,-30082,-12993,-30091,-12972,-30099,-12951,-30108,-12931,-30117,-12910,-30126,-12890,-30135,-12869,-30143,-12849,-30152,-12828,-30161,-12808,-30170,-12787,-30178,-12767,-30187,-12746,-30196,-12725,-30204,-12705,-30213,-12684,-30222,-12664,-30230,-12643,-30239,-12622,-30248,-12602,-30256,-12581,-30265,-12561,-30273,-12540,-30282,-12519,-30290,-12499,-30299,-12478,-30307,-12457,-30316,-12437,-30324,-12416,-30333,-12395,-30341,-12375,-30350,-12354,-30358,-12333,-30366,-12313,-30375,-12292,-30383,-12271,-30392,-12250,-30400,-12230,-30408,-12209,-30417,-12188,-30425,-12167,-30433,-12147,-30441,-12126,-30450,-12105,-30458,-12084,-30466,-12064,-30474,-12043,-30483,-12022,-30491,-12001,-30499,-11981,-30507,-11960,-30515,-11939,-30523,-11918,-30531,-11897,-30540,-11877,-30548,-11856,-30556,-11835,-30564,-11814,-30572,-11793,-30580,-11772,-30588,-11751,-30596,-11731,-30604,-11710,-30612,-11689,-30620,-11668,-30628,-11647,-30636,-11626,-30644,-11605,-30652,-11584,-30659,-11564,-30667,-11543,-30675,-11522,-30683,-11501,-30691,-11480,-30699,-11459,-30706,-11438,-30714,-11417,-30722,-11396,-30730,-11375,-30738,-11354,-30745,-11333,-30753,-11312,-30761,-11291,-30768,-11270,-30776,-11249,-30784,-11228,-30791,-11207,-30799,-11186,-30807,-11165,-30814,-11144,-30822,-11123,-30829,-11102,-30837,-11081,-30845,-11060,-30852,-11039,-30860,-11018,-30867,-10997,-30875,-10976,-30882,-10955,-30890,-10934,-30897,-10913,-30904,-10892,-30912,-10871,-30919,-10850,-30927,-10829,-30934,-10808,-30941,-10787,-30949,-10766,-30956,-10744,-30963,-10723,-30971,-10702,-30978,-10681,-30985,-10660,-30992,-10639,-31000,-10618,-31007,-10597,-31014,-10575,-31021,-10554,-31029,-10533,-31036,-10512,-31043,-10491,-31050,-10470,-31057,-10448,-31064,-10427,-31071,-10406,-31078,-10385,-31086,-10364,-31093,-10343,-31100,-10321,-31107,-10300,-31114,-10279,-31121,-10258,-31128,-10236,-31135,-10215,-31142,-10194,-31149,-10173,-31155,-10152,-31162,-10130,-31169,-10109,-31176,-10088,-31183,-10067,-31190,-10045,-31197,-10024,-31204,-10003,-31210,-9981,-31217,-9960,-31224,-9939,-31231,-9918,-31237,-9896,-31244,-9875,-31251,-9854,-31258,-9832,-31264,-9811,-31271,-9790,-31278,-9768,-31284,-9747,-31291,-9726,-31298,-9704,-31304,-9683,-31311,-9662,-31317,-9640,-31324,-9619,-31331,-9598,-31337,-9576,-31344,-9555,-31350,-9534,-31357,-9512,-31363,-9491,-31370,-9469,-31376,-9448,-31382,-9427,-31389,-9405,-31395,-9384,-31402,-9363,-31408,-9341,-31414,-9320,-31421,-9298,-31427,-9277,-31433,-9255,-31440,-9234,-31446,-9213,-31452,-9191,-31458,-9170,-31465,-9148,-31471,-9127,-31477,-9105,-31483,-9084,-31490,-9062,-31496,-9041,-31502,-9019,-31508,-8998,-31514,-8976,-31520,-8955,-31526,-8933,-31532,-8912,-31538,-8890,-31545,-8869,-31551,-8847,-31557,-8826,-31563,-8804,-31569,-8783,-31575,-8761,-31581,-8740,-31587,-8718,-31592,-8697,-31598,-8675,-31604,-8654,-31610,-8632,-31616,-8611,-31622,-8589,-31628,-8568,-31634,-8546,-31639,-8524,-31645,-8503,-31651,-8481,-31657,-8460,-31663,-8438,-31668,-8416,-31674,-8395,-31680,-8373,-31685,-8352,-31691,-8330,-31697,-8308,-31702,-8287,-31708,-8265,-31714,-8244,-31719,-8222,-31725,-8200,-31730,-8179,-31736,-8157,-31742,-8135,-31747,-8114,-31753,-8092,-31758,-8071,-31764,-8049,-31769,-8027,-31775,-8006,-31780,-7984,-31786,-7962,-31791,-7941,-31796,-7919,-31802,-7897,-31807,-7876,-31812,-7854,-31818,-7832,-31823,-7810,-31828,-7789,-31834,-7767,-31839,-7745,-31844,-7724,-31850,-7702,-31855,-7680,-31860,-7658,-31865,-7637,-31870,-7615,-31876,-7593,-31881,-7572,-31886,-7550,-31891,-7528,-31896,-7506,-31901,-7485,-31906,-7463,-31912,-7441,-31917,-7419,-31922,-7398,-31927,-7376,-31932,-7354,-31937,-7332,-31942,-7311,-31947,-7289,-31952,-7267,-31957,-7245,-31962,-7223,-31966,-7202,-31971,-7180,-31976,-7158,-31981,-7136,-31986,-7114,-31991,-7093,-31996,-7071,-32000,-7049,-32005,-7027,-32010,-7005,-32015,-6983,-32020,-6962,-32024,-6940,-32029,-6918,-32034,-6896,-32038,-6874,-32043,-6852,-32048,-6831,-32052,-6809,-32057,-6787,-32062,-6765,-32066,-6743,-32071,-6721,-32075,-6699,-32080,-6678,-32085,-6656,-32089,-6634,-32094,-6612,-32098,-6590,-32103,-6568,-32107,-6546,-32111,-6524,-32116,-6503,-32120,-6481,-32125,-6459,-32129,-6437,-32134,-6415,-32138,-6393,-32142,-6371,-32147,-6349,-32151,-6327,-32155,-6305,-32159,-6283,-32164,-6262,-32168,-6240,-32172,-6218,-32177,-6196,-32181,-6174,-32185,-6152,-32189,-6130,-32193,-6108,-32197,-6086,-32202,-6064,-32206,-6042,-32210,-6020,-32214,-5998,-32218,-5976,-32222,-5954,-32226,-5932,-32230,-5910,-32234,-5888,-32238,-5866,-32242,-5844,-32246,-5822,-32250,-5800,-32254,-5778,-32258,-5756,-32262,-5734,-32266,-5712,-32270,-5690,-32274,-5668,-32277,-5646,-32281,-5624,-32285,-5602,-32289,-5580,-32293,-5558,-32296,-5536,-32300,-5514,-32304,-5492,-32308,-5470,-32311,-5448,-32315,-5426,-32319,-5404,-32323,-5382,-32326,-5360,-32330,-5338,-32333,-5316,-32337,-5294,-32341,-5272,-32344,-5250,-32348,-5228,-32351,-5206,-32355,-5184,-32358,-5162,-32362,-5140,-32365,-5118,-32369,-5095,-32372,-5073,-32376,-5051,-32379,-5029,-32383,-5007,-32386,-4985,-32390,-4963,-32393,-4941,-32396,-4919,-32400,-4897,-32403,-4875,-32406,-4853,-32410,-4831,-32413,-4808,-32416,-4786,-32419,-4764,-32423,-4742,-32426,-4720,-32429,-4698,-32432,-4676,-32435,-4654,-32439,-4632,-32442,-4609,-32445,-4587,-32448,-4565,-32451,-4543,-32454,-4521,-32457,-4499,-32460,-4477,-32463,-4455,-32466,-4432,-32469,-4410,-32472,-4388,-32475,-4366,-32478,-4344,-32481,-4322,-32484,-4300,-32487,-4277,-32490,-4255,-32493,-4233,-32496,-4211,-32499,-4189,-32502,-4167,-32504,-4145,-32507,-4122,-32510,-4100,-32513,-4078,-32516,-4056,-32518,-4034,-32521,-4012,-32524,-3989,-32527,-3967,-32529,-3945,-32532,-3923,-32535,-3901,-32537,-3878,-32540,-3856,-32542,-3834,-32545,-3812,-32548,-3790,-32550,-3768,-32553,-3745,-32555,-3723,-32558,-3701,-32560,-3679,-32563,-3657,-32565,-3634,-32568,-3612,-32570,-3590,-32573,-3568,-32575,-3546,-32578,-3523,-32580,-3501,-32582,-3479,-32585,-3457,-32587,-3434,-32589,-3412,-32592,-3390,-32594,-3368,-32596,-3346,-32599,-3323,-32601,-3301,-32603,-3279,-32605,-3257,-32608,-3234,-32610,-3212,-32612,-3190,-32614,-3168,-32616,-3146,-32618,-3123,-32620,-3101,-32623,-3079,-32625,-3057,-32627,-3034,-32629,-3012,-32631,-2990,-32633,-2968,-32635,-2945,-32637,-2923,-32639,-2901,-32641,-2879,-32643,-2856,-32645,-2834,-32647,-2812,-32649,-2790,-32650,-2767,-32652,-2745,-32654,-2723,-32656,-2701,-32658,-2678,-32660,-2656,-32662,-2634,-32663,-2611,-32665,-2589,-32667,-2567,-32669,-2545,-32670,-2522,-32672,-2500,-32674,-2478,-32675,-2456,-32677,-2433,-32679,-2411,-32680,-2389,-32682,-2366,-32684,-2344,-32685,-2322,-32687,-2300,-32688,-2277,-32690,-2255,-32691,-2233,-32693,-2210,-32694,-2188,-32696,-2166,-32697,-2144,-32699,-2121,-32700,-2099,-32702,-2077,-32703,-2054,-32704,-2032,-32706,-2010,-32707,-1987,-32709,-1965,-32710,-1943,-32711,-1921,-32712,-1898,-32714,-1876,-32715,-1854,-32716,-1831,-32718,-1809,-32719,-1787,-32720,-1764,-32721,-1742,-32722,-1720,-32724,-1698,-32725,-1675,-32726,-1653,-32727,-1631,-32728,-1608,-32729,-1586,-32730,-1564,-32731,-1541,-32732,-1519,-32733,-1497,-32734,-1474,-32735,-1452,-32736,-1430,-32737,-1407,-32738,-1385,-32739,-1363,-32740,-1340,-32741,-1318,-32742,-1296,-32743,-1274,-32744,-1251,-32744,-1229,-32745,-1207,-32746,-1184,-32747,-1162,-32748,-1140,-32748,-1117,-32749,-1095,-32750,-1073,-32751,-1050,-32751,-1028,-32752,-1006,-32753,-983,-32753,-961,-32754,-939,-32755,-916,-32755,-894,-32756,-872,-32757,-849,-32757,-827,-32758,-805,-32758,-782,-32759,-760,-32759,-738,-32760,-715,-32760,-693,-32761,-671,-32761,-648,-32762,-626,-32762,-604,-32762,-581,-32763,-559,-32763,-537,-32763,-514,-32764,-492,-32764,-470,-32764,-447,-32765,-425,-32765,-403,-32765,-380,-32766,-358,-32766,-336,-32766,-313,-32766,-291,-32766,-269,-32767,-246,-32767,-224,-32767,-202,-32767,-179,-32767,-157,-32767,-135,-32767,-112,-32767,-90,-32767,-68,-32767,-45,-32767,-23,-32767,-1,-32767,22,-32767,44,-32767,67,-32767,89,-32767,111,-32767,134,-32767,156,-32767,178,-32767,201,-32767,223,-32767,245,-32766,268,-32766,290,-32766,312,-32766,335,-32766,357,-32765,379,-32765,402,-32765,424,-32764,446,-32764,469,-32764,491,-32763,513,-32763,536,-32763,558,-32762,580,-32762,603,-32762,625,-32761,647,-32761,670,-32760,692,-32760,714,-32759,737,-32759,759,-32758,781,-32758,804,-32757,826,-32757,848,-32756,871,-32755,893,-32755,915,-32754,938,-32753,960,-32753,982,-32752,1005,-32751,1027,-32751,1049,-32750,1072,-32749,1094,-32748,1116,-32748,1139,-32747,1161,-32746,1183,-32745,1206,-32744,1228,-32744,1250,-32743,1273,-32742,1295,-32741,1317,-32740,1339,-32739,1362,-32738,1384,-32737,1406,-32736,1429,-32735,1451,-32734,1473,-32733,1496,-32732,1518,-32731,1540,-32730,1563,-32729,1585,-32728,1607,-32727,1630,-32726,1652,-32725,1674,-32724,1697,-32722,1719,-32721,1741,-32720,1763,-32719,1786,-32718,1808,-32716,1830,-32715,1853,-32714,1875,-32712,1897,-32711,1920,-32710,1942,-32709,1964,-32707,1986,-32706,2009,-32704,2031,-32703,2053,-32702,2076,-32700,2098,-32699,2120,-32697,2143,-32696,2165,-32694,2187,-32693,2209,-32691,2232,-32690,2254,-32688,2276,-32687,2299,-32685,2321,-32684,2343,-32682,2365,-32680,2388,-32679,2410,-32677,2432,-32675,2455,-32674,2477,-32672,2499,-32670,2521,-32669,2544,-32667,2566,-32665,2588,-32663,2610,-32662,2633,-32660,2655,-32658,2677,-32656,2700,-32654,2722,-32652,2744,-32650,2766,-32649,2789,-32647,2811,-32645,2833,-32643,2855,-32641,2878,-32639,2900,-32637,2922,-32635,2944,-32633,2967,-32631,2989,-32629,3011,-32627,3033,-32625,3056,-32623,3078,-32620,3100,-32618,3122,-32616,3145,-32614,3167,-32612,3189,-32610,3211,-32608,3233,-32605,3256,-32603,3278,-32601,3300,-32599,3322,-32596,3345,-32594,3367,-32592,3389,-32589,3411,-32587,3433,-32585,3456,-32582,3478,-32580,3500,-32578,3522,-32575,3545,-32573,3567,-32570,3589,-32568,3611,-32565,3633,-32563,3656,-32560,3678,-32558,3700,-32555,3722,-32553,3744,-32550,3767,-32548,3789,-32545,3811,-32542,3833,-32540,3855,-32537,3877,-32535,3900,-32532,3922,-32529,3944,-32527,3966,-32524,3988,-32521,4011,-32518,4033,-32516,4055,-32513,4077,-32510,4099,-32507,4121,-32504,4144,-32502,4166,-32499,4188,-32496,4210,-32493,4232,-32490,4254,-32487,4276,-32484,4299,-32481,4321,-32478,4343,-32475,4365,-32472,4387,-32469,4409,-32466,4431,-32463,4454,-32460,4476,-32457,4498,-32454,4520,-32451,4542,-32448,4564,-32445,4586,-32442,4608,-32439,4631,-32435,4653,-32432,4675,-32429,4697,-32426,4719,-32423,4741,-32419,4763,-32416,4785,-32413,4807,-32410,4830,-32406,4852,-32403,4874,-32400,4896,-32396,4918,-32393,4940,-32390,4962,-32386,4984,-32383,5006,-32379,5028,-32376,5050,-32372,5072,-32369,5094,-32365,5117,-32362,5139,-32358,5161,-32355,5183,-32351,5205,-32348,5227,-32344,5249,-32341,5271,-32337,5293,-32333,5315,-32330,5337,-32326,5359,-32323,5381,-32319,5403,-32315,5425,-32311,5447,-32308,5469,-32304,5491,-32300,5513,-32296,5535,-32293,5557,-32289,5579,-32285,5601,-32281,5623,-32277,5645,-32274,5667,-32270,5689,-32266,5711,-32262,5733,-32258,5755,-32254,5777,-32250,5799,-32246,5821,-32242,5843,-32238,5865,-32234,5887,-32230,5909,-32226,5931,-32222,5953,-32218,5975,-32214,5997,-32210,6019,-32206,6041,-32202,6063,-32197,6085,-32193,6107,-32189,6129,-32185,6151,-32181,6173,-32177,6195,-32172,6217,-32168,6239,-32164,6261,-32159,6282,-32155,6304,-32151,6326,-32147,6348,-32142,6370,-32138,6392,-32134,6414,-32129,6436,-32125,6458,-32120,6480,-32116,6502,-32111,6523,-32107,6545,-32103,6567,-32098,6589,-32094,6611,-32089,6633,-32085,6655,-32080,6677,-32075,6698,-32071,6720,-32066,6742,-32062,6764,-32057,6786,-32052,6808,-32048,6830,-32043,6851,-32038,6873,-32034,6895,-32029,6917,-32024,6939,-32020,6961,-32015,6982,-32010,7004,-32005,7026,-32000,7048,-31996,7070,-31991,7092,-31986,7113,-31981,7135,-31976,7157,-31971,7179,-31966,7201,-31962,7222,-31957,7244,-31952,7266,-31947,7288,-31942,7310,-31937,7331,-31932,7353,-31927,7375,-31922,7397,-31917,7418,-31912,7440,-31906,7462,-31901,7484,-31896,7505,-31891,7527,-31886,7549,-31881,7571,-31876,7592,-31870,7614,-31865,7636,-31860,7657,-31855,7679,-31850,7701,-31844,7723,-31839,7744,-31834,7766,-31828,7788,-31823,7809,-31818,7831,-31812,7853,-31807,7875,-31802,7896,-31796,7918,-31791,7940,-31786,7961,-31780,7983,-31775,8005,-31769,8026,-31764,8048,-31758,8070,-31753,8091,-31747,8113,-31742,8134,-31736,8156,-31730,8178,-31725,8199,-31719,8221,-31714,8243,-31708,8264,-31702,8286,-31697,8307,-31691,8329,-31685,8351,-31680,8372,-31674,8394,-31668,8415,-31663,8437,-31657,8459,-31651,8480,-31645,8502,-31639,8523,-31634,8545,-31628,8567,-31622,8588,-31616,8610,-31610,8631,-31604,8653,-31598,8674,-31592,8696,-31587,8717,-31581,8739,-31575,8760,-31569,8782,-31563,8803,-31557,8825,-31551,8846,-31545,8868,-31538,8889,-31532,8911,-31526,8932,-31520,8954,-31514,8975,-31508,8997,-31502,9018,-31496,9040,-31490,9061,-31483,9083,-31477,9104,-31471,9126,-31465,9147,-31458,9169,-31452,9190,-31446,9212,-31440,9233,-31433,9254,-31427,9276,-31421,9297,-31414,9319,-31408,9340,-31402,9362,-31395,9383,-31389,9404,-31382,9426,-31376,9447,-31370,9468,-31363,9490,-31357,9511,-31350,9533,-31344,9554,-31337,9575,-31331,9597,-31324,9618,-31317,9639,-31311,9661,-31304,9682,-31298,9703,-31291,9725,-31284,9746,-31278,9767,-31271,9789,-31264,9810,-31258,9831,-31251,9853,-31244,9874,-31237,9895,-31231,9917,-31224,9938,-31217,9959,-31210,9980,-31204,10002,-31197,10023,-31190,10044,-31183,10066,-31176,10087,-31169,10108,-31162,10129,-31155,10151,-31149,10172,-31142,10193,-31135,10214,-31128,10235,-31121,10257,-31114,10278,-31107,10299,-31100,10320,-31093,10342,-31086,10363,-31078,10384,-31071,10405,-31064,10426,-31057,10447,-31050,10469,-31043,10490,-31036,10511,-31029,10532,-31021,10553,-31014,10574,-31007,10596,-31000,10617,-30992,10638,-30985,10659,-30978,10680,-30971,10701,-30963,10722,-30956,10743,-30949,10765,-30941,10786,-30934,10807,-30927,10828,-30919,10849,-30912,10870,-30904,10891,-30897,10912,-30890,10933,-30882,10954,-30875,10975,-30867,10996,-30860,11017,-30852,11038,-30845,11059,-30837,11080,-30829,11101,-30822,11122,-30814,11143,-30807,11164,-30799,11185,-30791,11206,-30784,11227,-30776,11248,-30768,11269,-30761,11290,-30753,11311,-30745,11332,-30738,11353,-30730,11374,-30722,11395,-30714,11416,-30706,11437,-30699,11458,-30691,11479,-30683,11500,-30675,11521,-30667,11542,-30659,11563,-30652,11583,-30644,11604,-30636,11625,-30628,11646,-30620,11667,-30612,11688,-30604,11709,-30596,11730,-30588,11750,-30580,11771,-30572,11792,-30564,11813,-30556,11834,-30548,11855,-30540,11876,-30531,11896,-30523,11917,-30515,11938,-30507,11959,-30499,11980,-30491,12000,-30483,12021,-30474,12042,-30466,12063,-30458,12083,-30450,12104,-30441,12125,-30433,12146,-30425,12166,-30417,12187,-30408,12208,-30400,12229,-30392,12249,-30383,12270,-30375,12291,-30366,12312,-30358,12332,-30350,12353,-30341,12374,-30333,12394,-30324,12415,-30316,12436,-30307,12456,-30299,12477,-30290,12498,-30282,12518,-30273,12539,-30265,12560,-30256,12580,-30248,12601,-30239,12621,-30230,12642,-30222,12663,-30213,12683,-30204,12704,-30196,12724,-30187,12745,-30178,12766,-30170,12786,-30161,12807,-30152,12827,-30143,12848,-30135,12868,-30126,12889,-30117,12909,-30108,12930,-30099,12950,-30091,12971,-30082,12992,-30073,13012,-30064,13033,-30055,13053,-30046,13074,-30037,13094,-30028,13114,-30019,13135,-30010,13155,-30002,13176,-29993,13196,-29984,13217,-29974,13237,-29965,13258,-29956,13278,-29947,13298,-29938,13319,-29929,13339,-29920,13360,-29911,13380,-29902,13400,-29893,13421,-29884,13441,-29874,13462,-29865,13482,-29856,13502,-29847,13523,-29838,13543,-29828,13563,-29819,13584,-29810,13604,-29801,13624,-29791,13645,-29782,13665,-29773,13685,-29763,13706,-29754,13726,-29745,13746,-29735,13766,-29726,13787,-29716,13807,-29707,13827,-29697,13847,-29688,13868,-29679,13888,-29669,13908,-29660,13928,-29650,13949,-29641,13969,-29631,13989,-29622,14009,-29612,14029,-29602,14050,-29593,14070,-29583,14090,-29574,14110,-29564,14130,-29554,14150,-29545,14171,-29535,14191,-29525,14211,-29516,14231,-29506,14251,-29496,14271,-29486,14291,-29477,14311,-29467,14331,-29457,14352,-29447,14372,-29438,14392,-29428,14412,-29418,14432,-29408,14452,-29398,14472,-29388,14492,-29378,14512,-29369,14532,-29359,14552,-29349,14572,-29339,14592,-29329,14612,-29319,14632,-29309,14652,-29299,14672,-29289,14692,-29279,14712,-29269,14732,-29259,14752,-29249,14772,-29239,14792,-29228,14812,-29218,14832,-29208,14852,-29198,14871,-29188,14891,-29178,14911,-29168,14931,-29157,14951,-29147,14971,-29137,14991,-29127,15011,-29117,15030,-29106,15050,-29096,15070,-29086,15090,-29075,15110,-29065,15130,-29055,15149,-29045,15169,-29034,15189,-29024,15209,-29013,15229,-29003,15248,-28993,15268,-28982,15288,-28972,15308,-28961,15327,-28951,15347,-28940,15367,-28930,15387,-28919,15406,-28909,15426,-28898,15446,-28888,15465,-28877,15485,-28867,15505,-28856,15525,-28846,15544,-28835,15564,-28824,15583,-28814,15603,-28803,15623,-28792,15642,-28782,15662,-28771,15682,-28760,15701,-28750,15721,-28739,15740,-28728,15760,-28717,15780,-28707,15799,-28696,15819,-28685,15838,-28674,15858,-28663,15877,-28653,15897,-28642,15917,-28631,15936,-28620,15956,-28609,15975,-28598,15995,-28587,16014,-28576,16034,-28566,16053,-28555,16072,-28544,16092,-28533,16111,-28522,16131,-28511,16150,-28500,16170,-28489,16189,-28478,16209,-28466,16228,-28455,16247,-28444,16267,-28433,16286,-28422,16306,-28411,16325,-28400,16344,-28389,16364,-28378,16383,-28366,16402,-28355,16422,-28344,16441,-28333,16460,-28322,16480,-28310,16499,-28299,16518,-28288,16538,-28276,16557,-28265,16576,-28254,16595,-28243,16615,-28231,16634,-28220,16653,-28209,16672,-28197,16692,-28186,16711,-28174,16730,-28163,16749,-28152,16768,-28140,16788,-28129,16807,-28117,16826,-28106,16845,-28094,16864,-28083,16883,-28071,16903,-28060,16922,-28048,16941,-28037,16960,-28025,16979,-28013,16998,-28002,17017,-27990,17036,-27979,17055,-27967,17074,-27955,17094,-27944,17113,-27932,17132,-27920,17151,-27909,17170,-27897,17189,-27885,17208,-27873,17227,-27862,17246,-27850,17265,-27838,17284,-27826,17303,-27815,17322,-27803,17341,-27791,17360,-27779,17379,-27767,17397,-27755,17416,-27743,17435,-27732,17454,-27720,17473,-27708,17492,-27696,17511,-27684,17530,-27672,17549,-27660,17567,-27648,17586,-27636,17605,-27624,17624,-27612,17643,-27600,17662,-27588,17680,-27576,17699,-27564,17718,-27552,17737,-27539,17756,-27527,17774,-27515,17793,-27503,17812,-27491,17831,-27479,17849,-27467,17868,-27454,17887,-27442,17906,-27430,17924,-27418,17943,-27406,17962,-27393,17980,-27381,17999,-27369,18018,-27356,18036,-27344,18055,-27332,18074,-27320,18092,-27307,18111,-27295,18130,-27282,18148,-27270,18167,-27258,18185,-27245,18204,-27233,18222,-27220,18241,-27208,18260,-27196,18278,-27183,18297,-27171,18315,-27158,18334,-27146,18352,-27133,18371,-27121,18389,-27108,18408,-27095,18426,-27083,18445,-27070,18463,-27058,18482,-27045,18500,-27032,18518,-27020,18537,-27007,18555,-26995,18574,-26982,18592,-26969,18610,-26956,18629,-26944,18647,-26931,18666,-26918,18684,-26906,18702,-26893,18721,-26880,18739,-26867,18757,-26854,18776,-26842,18794,-26829,18812,-26816,18830,-26803,18849,-26790,18867,-26777,18885,-26765,18904,-26752,18922,-26739,18940,-26726,18958,-26713,18976,-26700,18995,-26687,19013,-26674,19031,-26661,19049,-26648,19067,-26635,19086,-26622,19104,-26609,19122,-26596,19140,-26583,19158,-26570,19176,-26557,19194,-26544,19212,-26531,19231,-26517,19249,-26504,19267,-26491,19285,-26478,19303,-26465,19321,-26452,19339,-26438,19357,-26425,19375,-26412,19393,-26399,19411,-26386,19429,-26372,19447,-26359,19465,-26346,19483,-26333,19501,-26319,19519,-26306,19537,-26293,19555,-26279,19573,-26266,19590,-26253,19608,-26239,19626,-26226,19644,-26212,19662,-26199,19680,-26186,19698,-26172,19716,-26159,19733,-26145,19751,-26132,19769,-26118,19787,-26105,19805,-26091,19822,-26078,19840,-26064,19858,-26051,19876,-26037,19894,-26023,19911,-26010,19929,-25996,19947,-25983,19965,-25969,19982,-25955,20000,-25942,20018,-25928,20035,-25914,20053,-25901,20071,-25887,20088,-25873,20106,-25860,20124,-25846,20141,-25832,20159,-25818,20176,-25805,20194,-25791,20212,-25777,20229,-25763,20247,-25750,20264,-25736,20282,-25722,20299,-25708,20317,-25694,20334,-25680,20352,-25666,20369,-25653,20387,-25639,20404,-25625,20422,-25611,20439,-25597,20457,-25583,20474,-25569,20492,-25555,20509,-25541,20527,-25527,20544,-25513,20561,-25499,20579,-25485,20596,-25471,20613,-25457,20631,-25443,20648,-25429,20666,-25415,20683,-25400,20700,-25386,20718,-25372,20735,-25358,20752,-25344,20769,-25330,20787,-25316,20804,-25301,20821,-25287,20838,-25273,20856,-25259,20873,-25244,20890,-25230,20907,-25216,20925,-25202,20942,-25187,20959,-25173,20976,-25159,20993,-25145,21010,-25130,21027,-25116,21045,-25101,21062,-25087,21079,-25073,21096,-25058,21113,-25044,21130,-25030,21147,-25015,21164,-25001,21181,-24986,21198,-24972,21215,-24957,21232,-24943,21249,-24928,21266,-24914,21283,-24899,21300,-24885,21317,-24870,21334,-24856,21351,-24841,21368,-24827,21385,-24812,21402,-24797,21419,-24783,21436,-24768,21453,-24754,21470,-24739,21486,-24724,21503,-24710,21520,-24695,21537,-24680,21554,-24665,21571,-24651,21587,-24636,21604,-24621,21621,-24607,21638,-24592,21655,-24577,21671,-24562,21688,-24547,21705,-24533,21722,-24518,21738,-24503,21755,-24488,21772,-24473,21788,-24458,21805,-24444,21822,-24429,21838,-24414,21855,-24399,21872,-24384,21888,-24369,21905,-24354,21922,-24339,21938,-24324,21955,-24309,21971,-24294,21988,-24279,22004,-24264,22021,-24249,22038,-24234,22054,-24219,22071,-24204,22087,-24189,22104,-24174,22120,-24159,22137,-24144,22153,-24129,22169,-24114,22186,-24098,22202,-24083,22219,-24068,22235,-24053,22252,-24038,22268,-24023,22284,-24007,22301,-23992,22317,-23977,22333,-23962,22350,-23946,22366,-23931,22382,-23916,22399,-23901,22415,-23885,22431,-23870,22448,-23855,22464,-23839,22480,-23824,22496,-23809,22513,-23793,22529,-23778,22545,-23763,22561,-23747,22577,-23732,22594,-23716,22610,-23701,22626,-23686,22642,-23670,22658,-23655,22674,-23639,22691,-23624,22707,-23608,22723,-23593,22739,-23577,22755,-23562,22771,-23546,22787,-23531,22803,-23515,22819,-23500,22835,-23484,22851,-23468,22867,-23453,22883,-23437,22899,-23422,22915,-23406,22931,-23390,22947,-23375,22963,-23359,22979,-23343,22995,-23328,23011,-23312,23027,-23296,23043,-23281,23058,-23265,23074,-23249,23090,-23233,23106,-23218,23122,-23202,23138,-23186,23153,-23170,23169,-23154,23185,-23139,23201,-23123,23217,-23107,23232,-23091,23248,-23075,23264,-23059,23280,-23044,23295,-23028,23311,-23012,23327,-22996,23342,-22980,23358,-22964,23374,-22948,23389,-22932,23405,-22916,23421,-22900,23436,-22884,23452,-22868,23467,-22852,23483,-22836,23499,-22820,23514,-22804,23530,-22788,23545,-22772,23561,-22756,23576,-22740,23592,-22724,23607,-22708,23623,-22692,23638,-22675,23654,-22659,23669,-22643,23685,-22627,23700,-22611,23715,-22595,23731,-22578,23746,-22562,23762,-22546,23777,-22530,23792,-22514,23808,-22497,23823,-22481,23838,-22465,23854,-22449,23869,-22432,23884,-22416,23900,-22400,23915,-22383,23930,-22367,23945,-22351,23961,-22334,23976,-22318,23991,-22302,24006,-22285,24022,-22269,24037,-22253,24052,-22236,24067,-22220,24082,-22203,24097,-22187,24113,-22170,24128,-22154,24143,-22138,24158,-22121,24173,-22105,24188,-22088,24203,-22072,24218,-22055,24233,-22039,24248,-22022,24263,-22005,24278,-21989,24293,-21972,24308,-21956,24323,-21939,24338,-21923,24353,-21906,24368,-21889,24383,-21873,24398,-21856,24413,-21839,24428,-21823,24443,-21806,24457,-21789,24472,-21773,24487,-21756,24502,-21739,24517,-21723,24532,-21706,24546,-21689,24561,-21672,24576,-21656,24591,-21639,24606,-21622,24620,-21605,24635,-21588,24650,-21572,24664,-21555,24679,-21538,24694,-21521,24709,-21504,24723,-21487,24738,-21471,24753,-21454,24767,-21437,24782,-21420,24796,-21403,24811,-21386,24826,-21369,24840,-21352,24855,-21335,24869,-21318,24884,-21301,24898,-21284,24913,-21267,24927,-21250,24942,-21233,24956,-21216,24971,-21199,24985,-21182,25000,-21165,25014,-21148,25029,-21131,25043,-21114,25057,-21097,25072,-21080,25086,-21063,25100,-21046,25115,-21028,25129,-21011,25144,-20994,25158,-20977,25172,-20960,25186,-20943,25201,-20926,25215,-20908,25229,-20891,25243,-20874,25258,-20857,25272,-20839,25286,-20822,25300,-20805,25315,-20788,25329,-20770,25343,-20753,25357,-20736,25371,-20719,25385,-20701,25399,-20684,25414,-20667,25428,-20649,25442,-20632,25456,-20614,25470,-20597,25484,-20580,25498,-20562,25512,-20545,25526,-20528,25540,-20510,25554,-20493,25568,-20475,25582,-20458,25596,-20440,25610,-20423,25624,-20405,25638,-20388,25652,-20370,25665,-20353,25679,-20335,25693,-20318,25707,-20300,25721,-20283,25735,-20265,25749,-20248,25762,-20230,25776,-20213,25790,-20195,25804,-20177,25817,-20160,25831,-20142,25845,-20125,25859,-20107,25872,-20089,25886,-20072,25900,-20054,25913,-20036,25927,-20019,25941,-20001,25954,-19983,25968,-19966,25982,-19948,25995,-19930,26009,-19912,26022,-19895,26036,-19877,26050,-19859,26063,-19841,26077,-19823,26090,-19806,26104,-19788,26117,-19770,26131,-19752,26144,-19734,26158,-19717,26171,-19699,26185,-19681,26198,-19663,26211,-19645,26225,-19627,26238,-19609,26252,-19591,26265,-19574,26278,-19556,26292,-19538,26305,-19520,26318,-19502,26332,-19484,26345,-19466,26358,-19448,26371,-19430,26385,-19412,26398,-19394,26411,-19376,26424,-19358,26437,-19340,26451,-19322,26464,-19304,26477,-19286,26490,-19268,26503,-19250,26516,-19232,26530,-19213,26543,-19195,26556,-19177,26569,-19159,26582,-19141,26595,-19123,26608,-19105,26621,-19087,26634,-19068,26647,-19050,26660,-19032,26673,-19014,26686,-18996,26699,-18977,26712,-18959,26725,-18941,26738,-18923,26751,-18905,26764,-18886,26776,-18868,26789,-18850,26802,-18831,26815,-18813,26828,-18795,26841,-18777,26853,-18758,26866,-18740,26879,-18722,26892,-18703,26905,-18685,26917,-18667,26930,-18648,26943,-18630,26955,-18611,26968,-18593,26981,-18575,26994,-18556,27006,-18538,27019,-18519,27031,-18501,27044,-18483,27057,-18464,27069,-18446,27082,-18427,27094,-18409,27107,-18390,27120,-18372,27132,-18353,27145,-18335,27157,-18316,27170,-18298,27182,-18279,27195,-18261,27207,-18242,27219,-18223,27232,-18205,27244,-18186,27257,-18168,27269,-18149,27281,-18131,27294,-18112,27306,-18093,27319,-18075,27331,-18056,27343,-18037,27355,-18019,27368,-18000,27380,-17981,27392,-17963,27405,-17944,27417,-17925,27429,-17907,27441,-17888,27453,-17869,27466,-17850,27478,-17832,27490,-17813,27502,-17794,27514,-17775,27526,-17757,27538,-17738,27551,-17719,27563,-17700,27575,-17681,27587,-17663,27599,-17644,27611,-17625,27623,-17606,27635,-17587,27647,-17568,27659,-17550,27671,-17531,27683,-17512,27695,-17493,27707,-17474,27719,-17455,27731,-17436,27742,-17417,27754,-17398,27766,-17380,27778,-17361,27790,-17342,27802,-17323,27814,-17304,27825,-17285,27837,-17266,27849,-17247,27861,-17228,27872,-17209,27884,-17190,27896,-17171,27908,-17152,27919,-17133,27931,-17114,27943,-17095,27954,-17075,27966,-17056,27978,-17037,27989,-17018,28001,-16999,28012,-16980,28024,-16961,28036,-16942,28047,-16923,28059,-16904,28070,-16884,28082,-16865,28093,-16846,28105,-16827,28116,-16808,28128,-16789,28139,-16769,28151,-16750,28162,-16731,28173,-16712,28185,-16693,28196,-16673,28208,-16654,28219,-16635,28230,-16616,28242,-16596,28253,-16577,28264,-16558,28275,-16539,28287,-16519,28298,-16500,28309,-16481,28321,-16461,28332,-16442,28343,-16423,28354,-16403,28365};
diff --git a/openair1/PHY/TOOLS/twiddle24576.h b/openair1/PHY/TOOLS/twiddle24576.h
deleted file mode 100644
index 34fc59d7796a54a9aafb230ddcfa7c02dd0057c9..0000000000000000000000000000000000000000
--- a/openair1/PHY/TOOLS/twiddle24576.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The OpenAirInterface Software Alliance licenses this file to You under
- * the OAI Public License, Version 1.1  (the "License"); you may not use this file
- * except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.openairinterface.org/?page_id=698
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *-------------------------------------------------------------------------------
- * For more information about the OpenAirInterface (OAI) Software Alliance:
- *      contact@openairinterface.org
- */
-
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:8191)/24576));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*(0:2:16382)/24576));
-twa2 = zeros(1,16384);
-twb2 = zeros(1,16384);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-
-
-*/
-
-int16_t twa24576[16384] __attribute__((aligned(32))) = {32767,0,32766,-9,32766,-17,32766,-26,32766,-34,32766,-42,32766,-51,32766,-59,32766,-68,32766,-76,32766,-84,32766,-93,32766,-101,32766,-109,32766,-118,32766,-126,32766,-135,32766,-143,32766,-151,32766,-160,32766,-168,32766,-176,32766,-185,32766,-193,32766,-202,32766,-210,32766,-218,32766,-227,32766,-235,32766,-243,32766,-252,32765,-260,32765,-269,32765,-277,32765,-285,32765,-294,32765,-302,32765,-310,32765,-319,32765,-327,32765,-336,32765,-344,32765,-352,32765,-361,32764,-369,32764,-377,32764,-386,32764,-394,32764,-403,32764,-411,32764,-419,32764,-428,32764,-436,32763,-444,32763,-453,32763,-461,32763,-470,32763,-478,32763,-486,32763,-495,32763,-503,32763,-511,32762,-520,32762,-528,32762,-537,32762,-545,32762,-553,32762,-562,32762,-570,32761,-579,32761,-587,32761,-595,32761,-604,32761,-612,32761,-620,32760,-629,32760,-637,32760,-646,32760,-654,32760,-662,32760,-671,32759,-679,32759,-687,32759,-696,32759,-704,32759,-713,32759,-721,32758,-729,32758,-738,32758,-746,32758,-754,32758,-763,32757,-771,32757,-780,32757,-788,32757,-796,32757,-805,32756,-813,32756,-821,32756,-830,32756,-838,32756,-847,32755,-855,32755,-863,32755,-872,32755,-880,32754,-888,32754,-897,32754,-905,32754,-914,32754,-922,32753,-930,32753,-939,32753,-947,32753,-955,32752,-964,32752,-972,32752,-981,32752,-989,32751,-997,32751,-1006,32751,-1014,32751,-1022,32750,-1031,32750,-1039,32750,-1047,32750,-1056,32749,-1064,32749,-1073,32749,-1081,32748,-1089,32748,-1098,32748,-1106,32748,-1114,32747,-1123,32747,-1131,32747,-1140,32746,-1148,32746,-1156,32746,-1165,32746,-1173,32745,-1181,32745,-1190,32745,-1198,32744,-1207,32744,-1215,32744,-1223,32743,-1232,32743,-1240,32743,-1248,32742,-1257,32742,-1265,32742,-1274,32741,-1282,32741,-1290,32741,-1299,32740,-1307,32740,-1315,32740,-1324,32739,-1332,32739,-1340,32739,-1349,32738,-1357,32738,-1366,32738,-1374,32737,-1382,32737,-1391,32737,-1399,32736,-1407,32736,-1416,32736,-1424,32735,-1433,32735,-1441,32734,-1449,32734,-1458,32734,-1466,32733,-1474,32733,-1483,32733,-1491,32732,-1500,32732,-1508,32731,-1516,32731,-1525,32731,-1533,32730,-1541,32730,-1550,32729,-1558,32729,-1566,32729,-1575,32728,-1583,32728,-1592,32727,-1600,32727,-1608,32727,-1617,32726,-1625,32726,-1633,32725,-1642,32725,-1650,32725,-1659,32724,-1667,32724,-1675,32723,-1684,32723,-1692,32722,-1700,32722,-1709,32722,-1717,32721,-1725,32721,-1734,32720,-1742,32720,-1751,32719,-1759,32719,-1767,32718,-1776,32718,-1784,32717,-1792,32717,-1801,32717,-1809,32716,-1817,32716,-1826,32715,-1834,32715,-1843,32714,-1851,32714,-1859,32713,-1868,32713,-1876,32712,-1884,32712,-1893,32711,-1901,32711,-1909,32710,-1918,32710,-1926,32709,-1935,32709,-1943,32708,-1951,32708,-1960,32707,-1968,32707,-1976,32706,-1985,32706,-1993,32705,-2001,32705,-2010,32704,-2018,32704,-2027,32703,-2035,32703,-2043,32702,-2052,32702,-2060,32701,-2068,32701,-2077,32700,-2085,32700,-2093,32699,-2102,32699,-2110,32698,-2118,32697,-2127,32697,-2135,32696,-2144,32696,-2152,32695,-2160,32695,-2169,32694,-2177,32694,-2185,32693,-2194,32692,-2202,32692,-2210,32691,-2219,32691,-2227,32690,-2236,32690,-2244,32689,-2252,32688,-2261,32688,-2269,32687,-2277,32687,-2286,32686,-2294,32686,-2302,32685,-2311,32684,-2319,32684,-2327,32683,-2336,32683,-2344,32682,-2353,32681,-2361,32681,-2369,32680,-2378,32680,-2386,32679,-2394,32678,-2403,32678,-2411,32677,-2419,32676,-2428,32676,-2436,32675,-2444,32675,-2453,32674,-2461,32673,-2469,32673,-2478,32672,-2486,32671,-2495,32671,-2503,32670,-2511,32670,-2520,32669,-2528,32668,-2536,32668,-2545,32667,-2553,32666,-2561,32666,-2570,32665,-2578,32664,-2586,32664,-2595,32663,-2603,32662,-2611,32662,-2620,32661,-2628,32660,-2637,32660,-2645,32659,-2653,32658,-2662,32658,-2670,32657,-2678,32656,-2687,32656,-2695,32655,-2703,32654,-2712,32653,-2720,32653,-2728,32652,-2737,32651,-2745,32651,-2753,32650,-2762,32649,-2770,32649,-2778,32648,-2787,32647,-2795,32646,-2803,32646,-2812,32645,-2820,32644,-2829,32644,-2837,32643,-2845,32642,-2854,32641,-2862,32641,-2870,32640,-2879,32639,-2887,32638,-2895,32638,-2904,32637,-2912,32636,-2920,32635,-2929,32635,-2937,32634,-2945,32633,-2954,32632,-2962,32632,-2970,32631,-2979,32630,-2987,32629,-2995,32629,-3004,32628,-3012,32627,-3020,32626,-3029,32625,-3037,32625,-3045,32624,-3054,32623,-3062,32622,-3070,32622,-3079,32621,-3087,32620,-3095,32619,-3104,32618,-3112,32618,-3121,32617,-3129,32616,-3137,32615,-3146,32614,-3154,32614,-3162,32613,-3171,32612,-3179,32611,-3187,32610,-3196,32610,-3204,32609,-3212,32608,-3221,32607,-3229,32606,-3237,32605,-3246,32605,-3254,32604,-3262,32603,-3271,32602,-3279,32601,-3287,32600,-3296,32600,-3304,32599,-3312,32598,-3321,32597,-3329,32596,-3337,32595,-3346,32594,-3354,32594,-3362,32593,-3371,32592,-3379,32591,-3387,32590,-3396,32589,-3404,32588,-3412,32588,-3421,32587,-3429,32586,-3437,32585,-3446,32584,-3454,32583,-3462,32582,-3471,32581,-3479,32580,-3487,32580,-3496,32579,-3504,32578,-3512,32577,-3521,32576,-3529,32575,-3537,32574,-3546,32573,-3554,32572,-3562,32571,-3571,32571,-3579,32570,-3587,32569,-3595,32568,-3604,32567,-3612,32566,-3620,32565,-3629,32564,-3637,32563,-3645,32562,-3654,32561,-3662,32560,-3670,32559,-3679,32558,-3687,32558,-3695,32557,-3704,32556,-3712,32555,-3720,32554,-3729,32553,-3737,32552,-3745,32551,-3754,32550,-3762,32549,-3770,32548,-3779,32547,-3787,32546,-3795,32545,-3804,32544,-3812,32543,-3820,32542,-3829,32541,-3837,32540,-3845,32539,-3854,32538,-3862,32537,-3870,32536,-3878,32535,-3887,32534,-3895,32533,-3903,32532,-3912,32531,-3920,32530,-3928,32529,-3937,32528,-3945,32527,-3953,32526,-3962,32525,-3970,32524,-3978,32523,-3987,32522,-3995,32521,-4003,32520,-4012,32519,-4020,32518,-4028,32517,-4036,32516,-4045,32515,-4053,32514,-4061,32513,-4070,32512,-4078,32511,-4086,32510,-4095,32509,-4103,32508,-4111,32507,-4120,32506,-4128,32504,-4136,32503,-4145,32502,-4153,32501,-4161,32500,-4169,32499,-4178,32498,-4186,32497,-4194,32496,-4203,32495,-4211,32494,-4219,32493,-4228,32492,-4236,32491,-4244,32489,-4253,32488,-4261,32487,-4269,32486,-4277,32485,-4286,32484,-4294,32483,-4302,32482,-4311,32481,-4319,32480,-4327,32478,-4336,32477,-4344,32476,-4352,32475,-4360,32474,-4369,32473,-4377,32472,-4385,32471,-4394,32470,-4402,32468,-4410,32467,-4419,32466,-4427,32465,-4435,32464,-4444,32463,-4452,32462,-4460,32460,-4468,32459,-4477,32458,-4485,32457,-4493,32456,-4502,32455,-4510,32454,-4518,32452,-4526,32451,-4535,32450,-4543,32449,-4551,32448,-4560,32447,-4568,32445,-4576,32444,-4585,32443,-4593,32442,-4601,32441,-4609,32440,-4618,32438,-4626,32437,-4634,32436,-4643,32435,-4651,32434,-4659,32432,-4667,32431,-4676,32430,-4684,32429,-4692,32428,-4701,32426,-4709,32425,-4717,32424,-4726,32423,-4734,32422,-4742,32420,-4750,32419,-4759,32418,-4767,32417,-4775,32416,-4784,32414,-4792,32413,-4800,32412,-4808,32411,-4817,32409,-4825,32408,-4833,32407,-4842,32406,-4850,32404,-4858,32403,-4866,32402,-4875,32401,-4883,32399,-4891,32398,-4900,32397,-4908,32396,-4916,32394,-4924,32393,-4933,32392,-4941,32391,-4949,32389,-4958,32388,-4966,32387,-4974,32386,-4982,32384,-4991,32383,-4999,32382,-5007,32380,-5015,32379,-5024,32378,-5032,32377,-5040,32375,-5049,32374,-5057,32373,-5065,32371,-5073,32370,-5082,32369,-5090,32368,-5098,32366,-5107,32365,-5115,32364,-5123,32362,-5131,32361,-5140,32360,-5148,32358,-5156,32357,-5164,32356,-5173,32354,-5181,32353,-5189,32352,-5198,32350,-5206,32349,-5214,32348,-5222,32346,-5231,32345,-5239,32344,-5247,32342,-5255,32341,-5264,32340,-5272,32338,-5280,32337,-5288,32336,-5297,32334,-5305,32333,-5313,32332,-5322,32330,-5330,32329,-5338,32327,-5346,32326,-5355,32325,-5363,32323,-5371,32322,-5379,32321,-5388,32319,-5396,32318,-5404,32316,-5412,32315,-5421,32314,-5429,32312,-5437,32311,-5446,32310,-5454,32308,-5462,32307,-5470,32305,-5479,32304,-5487,32303,-5495,32301,-5503,32300,-5512,32298,-5520,32297,-5528,32295,-5536,32294,-5545,32293,-5553,32291,-5561,32290,-5569,32288,-5578,32287,-5586,32286,-5594,32284,-5602,32283,-5611,32281,-5619,32280,-5627,32278,-5635,32277,-5644,32275,-5652,32274,-5660,32273,-5668,32271,-5677,32270,-5685,32268,-5693,32267,-5701,32265,-5710,32264,-5718,32262,-5726,32261,-5734,32259,-5743,32258,-5751,32256,-5759,32255,-5767,32254,-5776,32252,-5784,32251,-5792,32249,-5800,32248,-5809,32246,-5817,32245,-5825,32243,-5833,32242,-5842,32240,-5850,32239,-5858,32237,-5866,32236,-5875,32234,-5883,32233,-5891,32231,-5899,32230,-5908,32228,-5916,32227,-5924,32225,-5932,32224,-5941,32222,-5949,32221,-5957,32219,-5965,32218,-5973,32216,-5982,32214,-5990,32213,-5998,32211,-6006,32210,-6015,32208,-6023,32207,-6031,32205,-6039,32204,-6048,32202,-6056,32201,-6064,32199,-6072,32197,-6081,32196,-6089,32194,-6097,32193,-6105,32191,-6113,32190,-6122,32188,-6130,32187,-6138,32185,-6146,32183,-6155,32182,-6163,32180,-6171,32179,-6179,32177,-6187,32176,-6196,32174,-6204,32172,-6212,32171,-6220,32169,-6229,32168,-6237,32166,-6245,32164,-6253,32163,-6262,32161,-6270,32160,-6278,32158,-6286,32156,-6294,32155,-6303,32153,-6311,32152,-6319,32150,-6327,32148,-6335,32147,-6344,32145,-6352,32143,-6360,32142,-6368,32140,-6377,32139,-6385,32137,-6393,32135,-6401,32134,-6409,32132,-6418,32130,-6426,32129,-6434,32127,-6442,32125,-6451,32124,-6459,32122,-6467,32120,-6475,32119,-6483,32117,-6492,32115,-6500,32114,-6508,32112,-6516,32110,-6524,32109,-6533,32107,-6541,32105,-6549,32104,-6557,32102,-6565,32100,-6574,32099,-6582,32097,-6590,32095,-6598,32094,-6607,32092,-6615,32090,-6623,32089,-6631,32087,-6639,32085,-6648,32084,-6656,32082,-6664,32080,-6672,32078,-6680,32077,-6689,32075,-6697,32073,-6705,32072,-6713,32070,-6721,32068,-6730,32066,-6738,32065,-6746,32063,-6754,32061,-6762,32059,-6771,32058,-6779,32056,-6787,32054,-6795,32053,-6803,32051,-6812,32049,-6820,32047,-6828,32046,-6836,32044,-6844,32042,-6852,32040,-6861,32039,-6869,32037,-6877,32035,-6885,32033,-6893,32032,-6902,32030,-6910,32028,-6918,32026,-6926,32024,-6934,32023,-6943,32021,-6951,32019,-6959,32017,-6967,32016,-6975,32014,-6983,32012,-6992,32010,-7000,32008,-7008,32007,-7016,32005,-7024,32003,-7033,32001,-7041,31999,-7049,31998,-7057,31996,-7065,31994,-7073,31992,-7082,31990,-7090,31989,-7098,31987,-7106,31985,-7114,31983,-7123,31981,-7131,31979,-7139,31978,-7147,31976,-7155,31974,-7163,31972,-7172,31970,-7180,31968,-7188,31967,-7196,31965,-7204,31963,-7212,31961,-7221,31959,-7229,31957,-7237,31956,-7245,31954,-7253,31952,-7262,31950,-7270,31948,-7278,31946,-7286,31944,-7294,31943,-7302,31941,-7311,31939,-7319,31937,-7327,31935,-7335,31933,-7343,31931,-7351,31929,-7359,31928,-7368,31926,-7376,31924,-7384,31922,-7392,31920,-7400,31918,-7408,31916,-7417,31914,-7425,31912,-7433,31911,-7441,31909,-7449,31907,-7457,31905,-7466,31903,-7474,31901,-7482,31899,-7490,31897,-7498,31895,-7506,31893,-7515,31891,-7523,31889,-7531,31888,-7539,31886,-7547,31884,-7555,31882,-7563,31880,-7572,31878,-7580,31876,-7588,31874,-7596,31872,-7604,31870,-7612,31868,-7620,31866,-7629,31864,-7637,31862,-7645,31860,-7653,31858,-7661,31856,-7669,31854,-7677,31853,-7686,31851,-7694,31849,-7702,31847,-7710,31845,-7718,31843,-7726,31841,-7734,31839,-7743,31837,-7751,31835,-7759,31833,-7767,31831,-7775,31829,-7783,31827,-7791,31825,-7800,31823,-7808,31821,-7816,31819,-7824,31817,-7832,31815,-7840,31813,-7848,31811,-7857,31809,-7865,31807,-7873,31805,-7881,31803,-7889,31801,-7897,31799,-7905,31797,-7913,31795,-7922,31793,-7930,31791,-7938,31789,-7946,31787,-7954,31785,-7962,31782,-7970,31780,-7978,31778,-7987,31776,-7995,31774,-8003,31772,-8011,31770,-8019,31768,-8027,31766,-8035,31764,-8043,31762,-8052,31760,-8060,31758,-8068,31756,-8076,31754,-8084,31752,-8092,31750,-8100,31748,-8108,31745,-8117,31743,-8125,31741,-8133,31739,-8141,31737,-8149,31735,-8157,31733,-8165,31731,-8173,31729,-8181,31727,-8190,31725,-8198,31723,-8206,31720,-8214,31718,-8222,31716,-8230,31714,-8238,31712,-8246,31710,-8254,31708,-8263,31706,-8271,31704,-8279,31701,-8287,31699,-8295,31697,-8303,31695,-8311,31693,-8319,31691,-8327,31689,-8335,31687,-8344,31684,-8352,31682,-8360,31680,-8368,31678,-8376,31676,-8384,31674,-8392,31672,-8400,31669,-8408,31667,-8416,31665,-8425,31663,-8433,31661,-8441,31659,-8449,31656,-8457,31654,-8465,31652,-8473,31650,-8481,31648,-8489,31646,-8497,31643,-8505,31641,-8514,31639,-8522,31637,-8530,31635,-8538,31633,-8546,31630,-8554,31628,-8562,31626,-8570,31624,-8578,31622,-8586,31619,-8594,31617,-8603,31615,-8611,31613,-8619,31611,-8627,31608,-8635,31606,-8643,31604,-8651,31602,-8659,31600,-8667,31597,-8675,31595,-8683,31593,-8691,31591,-8700,31588,-8708,31586,-8716,31584,-8724,31582,-8732,31580,-8740,31577,-8748,31575,-8756,31573,-8764,31571,-8772,31568,-8780,31566,-8788,31564,-8796,31562,-8804,31559,-8813,31557,-8821,31555,-8829,31553,-8837,31550,-8845,31548,-8853,31546,-8861,31544,-8869,31541,-8877,31539,-8885,31537,-8893,31534,-8901,31532,-8909,31530,-8917,31528,-8925,31525,-8933,31523,-8942,31521,-8950,31518,-8958,31516,-8966,31514,-8974,31512,-8982,31509,-8990,31507,-8998,31505,-9006,31502,-9014,31500,-9022,31498,-9030,31495,-9038,31493,-9046,31491,-9054,31489,-9062,31486,-9070,31484,-9078,31482,-9087,31479,-9095,31477,-9103,31475,-9111,31472,-9119,31470,-9127,31468,-9135,31465,-9143,31463,-9151,31461,-9159,31458,-9167,31456,-9175,31454,-9183,31451,-9191,31449,-9199,31446,-9207,31444,-9215,31442,-9223,31439,-9231,31437,-9239,31435,-9247,31432,-9255,31430,-9263,31428,-9271,31425,-9280,31423,-9288,31420,-9296,31418,-9304,31416,-9312,31413,-9320,31411,-9328,31409,-9336,31406,-9344,31404,-9352,31401,-9360,31399,-9368,31397,-9376,31394,-9384,31392,-9392,31389,-9400,31387,-9408,31385,-9416,31382,-9424,31380,-9432,31377,-9440,31375,-9448,31373,-9456,31370,-9464,31368,-9472,31365,-9480,31363,-9488,31360,-9496,31358,-9504,31356,-9512,31353,-9520,31351,-9528,31348,-9536,31346,-9544,31343,-9552,31341,-9560,31338,-9568,31336,-9576,31334,-9584,31331,-9592,31329,-9600,31326,-9608,31324,-9616,31321,-9624,31319,-9632,31316,-9640,31314,-9648,31311,-9656,31309,-9664,31307,-9672,31304,-9680,31302,-9688,31299,-9696,31297,-9704,31294,-9712,31292,-9720,31289,-9728,31287,-9736,31284,-9744,31282,-9752,31279,-9760,31277,-9768,31274,-9776,31272,-9784,31269,-9792,31267,-9800,31264,-9808,31262,-9816,31259,-9824,31257,-9832,31254,-9840,31252,-9848,31249,-9856,31247,-9864,31244,-9872,31242,-9880,31239,-9888,31236,-9896,31234,-9904,31231,-9912,31229,-9920,31226,-9928,31224,-9936,31221,-9944,31219,-9952,31216,-9960,31214,-9968,31211,-9976,31209,-9984,31206,-9992,31203,-10000,31201,-10008,31198,-10016,31196,-10024,31193,-10032,31191,-10040,31188,-10048,31185,-10056,31183,-10064,31180,-10072,31178,-10080,31175,-10088,31173,-10096,31170,-10104,31167,-10112,31165,-10120,31162,-10128,31160,-10136,31157,-10144,31154,-10152,31152,-10160,31149,-10167,31147,-10175,31144,-10183,31141,-10191,31139,-10199,31136,-10207,31134,-10215,31131,-10223,31128,-10231,31126,-10239,31123,-10247,31121,-10255,31118,-10263,31115,-10271,31113,-10279,31110,-10287,31107,-10295,31105,-10303,31102,-10311,31100,-10319,31097,-10327,31094,-10335,31092,-10343,31089,-10350,31086,-10358,31084,-10366,31081,-10374,31078,-10382,31076,-10390,31073,-10398,31070,-10406,31068,-10414,31065,-10422,31062,-10430,31060,-10438,31057,-10446,31054,-10454,31052,-10462,31049,-10470,31046,-10478,31044,-10485,31041,-10493,31038,-10501,31036,-10509,31033,-10517,31030,-10525,31028,-10533,31025,-10541,31022,-10549,31019,-10557,31017,-10565,31014,-10573,31011,-10581,31009,-10589,31006,-10597,31003,-10604,31001,-10612,30998,-10620,30995,-10628,30992,-10636,30990,-10644,30987,-10652,30984,-10660,30981,-10668,30979,-10676,30976,-10684,30973,-10692,30971,-10700,30968,-10707,30965,-10715,30962,-10723,30960,-10731,30957,-10739,30954,-10747,30951,-10755,30949,-10763,30946,-10771,30943,-10779,30940,-10787,30938,-10795,30935,-10802,30932,-10810,30929,-10818,30927,-10826,30924,-10834,30921,-10842,30918,-10850,30915,-10858,30913,-10866,30910,-10874,30907,-10881,30904,-10889,30902,-10897,30899,-10905,30896,-10913,30893,-10921,30890,-10929,30888,-10937,30885,-10945,30882,-10953,30879,-10960,30876,-10968,30874,-10976,30871,-10984,30868,-10992,30865,-11000,30862,-11008,30860,-11016,30857,-11024,30854,-11031,30851,-11039,30848,-11047,30845,-11055,30843,-11063,30840,-11071,30837,-11079,30834,-11087,30831,-11095,30828,-11102,30826,-11110,30823,-11118,30820,-11126,30817,-11134,30814,-11142,30811,-11150,30809,-11158,30806,-11165,30803,-11173,30800,-11181,30797,-11189,30794,-11197,30791,-11205,30788,-11213,30786,-11221,30783,-11228,30780,-11236,30777,-11244,30774,-11252,30771,-11260,30768,-11268,30766,-11276,30763,-11284,30760,-11291,30757,-11299,30754,-11307,30751,-11315,30748,-11323,30745,-11331,30742,-11339,30739,-11346,30737,-11354,30734,-11362,30731,-11370,30728,-11378,30725,-11386,30722,-11394,30719,-11401,30716,-11409,30713,-11417,30710,-11425,30707,-11433,30705,-11441,30702,-11449,30699,-11456,30696,-11464,30693,-11472,30690,-11480,30687,-11488,30684,-11496,30681,-11503,30678,-11511,30675,-11519,30672,-11527,30669,-11535,30666,-11543,30663,-11551,30660,-11558,30657,-11566,30655,-11574,30652,-11582,30649,-11590,30646,-11598,30643,-11605,30640,-11613,30637,-11621,30634,-11629,30631,-11637,30628,-11645,30625,-11652,30622,-11660,30619,-11668,30616,-11676,30613,-11684,30610,-11692,30607,-11699,30604,-11707,30601,-11715,30598,-11723,30595,-11731,30592,-11738,30589,-11746,30586,-11754,30583,-11762,30580,-11770,30577,-11778,30574,-11785,30571,-11793,30568,-11801,30565,-11809,30562,-11817,30559,-11824,30556,-11832,30553,-11840,30550,-11848,30547,-11856,30544,-11863,30541,-11871,30538,-11879,30535,-11887,30532,-11895,30528,-11903,30525,-11910,30522,-11918,30519,-11926,30516,-11934,30513,-11942,30510,-11949,30507,-11957,30504,-11965,30501,-11973,30498,-11981,30495,-11988,30492,-11996,30489,-12004,30486,-12012,30483,-12020,30480,-12027,30476,-12035,30473,-12043,30470,-12051,30467,-12058,30464,-12066,30461,-12074,30458,-12082,30455,-12090,30452,-12097,30449,-12105,30446,-12113,30442,-12121,30439,-12129,30436,-12136,30433,-12144,30430,-12152,30427,-12160,30424,-12167,30421,-12175,30418,-12183,30415,-12191,30411,-12199,30408,-12206,30405,-12214,30402,-12222,30399,-12230,30396,-12237,30393,-12245,30390,-12253,30386,-12261,30383,-12269,30380,-12276,30377,-12284,30374,-12292,30371,-12300,30368,-12307,30364,-12315,30361,-12323,30358,-12331,30355,-12338,30352,-12346,30349,-12354,30345,-12362,30342,-12369,30339,-12377,30336,-12385,30333,-12393,30330,-12400,30326,-12408,30323,-12416,30320,-12424,30317,-12431,30314,-12439,30311,-12447,30307,-12455,30304,-12462,30301,-12470,30298,-12478,30295,-12486,30291,-12493,30288,-12501,30285,-12509,30282,-12517,30279,-12524,30275,-12532,30272,-12540,30269,-12548,30266,-12555,30263,-12563,30259,-12571,30256,-12579,30253,-12586,30250,-12594,30247,-12602,30243,-12610,30240,-12617,30237,-12625,30234,-12633,30230,-12640,30227,-12648,30224,-12656,30221,-12664,30217,-12671,30214,-12679,30211,-12687,30208,-12695,30205,-12702,30201,-12710,30198,-12718,30195,-12725,30191,-12733,30188,-12741,30185,-12749,30182,-12756,30178,-12764,30175,-12772,30172,-12779,30169,-12787,30165,-12795,30162,-12803,30159,-12810,30156,-12818,30152,-12826,30149,-12833,30146,-12841,30142,-12849,30139,-12857,30136,-12864,30133,-12872,30129,-12880,30126,-12887,30123,-12895,30119,-12903,30116,-12910,30113,-12918,30109,-12926,30106,-12934,30103,-12941,30100,-12949,30096,-12957,30093,-12964,30090,-12972,30086,-12980,30083,-12987,30080,-12995,30076,-13003,30073,-13010,30070,-13018,30066,-13026,30063,-13034,30060,-13041,30056,-13049,30053,-13057,30050,-13064,30046,-13072,30043,-13080,30040,-13087,30036,-13095,30033,-13103,30030,-13110,30026,-13118,30023,-13126,30020,-13133,30016,-13141,30013,-13149,30009,-13156,30006,-13164,30003,-13172,29999,-13179,29996,-13187,29993,-13195,29989,-13202,29986,-13210,29983,-13218,29979,-13225,29976,-13233,29972,-13241,29969,-13248,29966,-13256,29962,-13264,29959,-13271,29955,-13279,29952,-13287,29949,-13294,29945,-13302,29942,-13310,29938,-13317,29935,-13325,29932,-13333,29928,-13340,29925,-13348,29921,-13356,29918,-13363,29915,-13371,29911,-13379,29908,-13386,29904,-13394,29901,-13401,29897,-13409,29894,-13417,29891,-13424,29887,-13432,29884,-13440,29880,-13447,29877,-13455,29873,-13463,29870,-13470,29866,-13478,29863,-13486,29860,-13493,29856,-13501,29853,-13508,29849,-13516,29846,-13524,29842,-13531,29839,-13539,29835,-13547,29832,-13554,29828,-13562,29825,-13569,29822,-13577,29818,-13585,29815,-13592,29811,-13600,29808,-13608,29804,-13615,29801,-13623,29797,-13630,29794,-13638,29790,-13646,29787,-13653,29783,-13661,29780,-13668,29776,-13676,29773,-13684,29769,-13691,29766,-13699,29762,-13707,29759,-13714,29755,-13722,29752,-13729,29748,-13737,29745,-13745,29741,-13752,29738,-13760,29734,-13767,29731,-13775,29727,-13783,29724,-13790,29720,-13798,29717,-13805,29713,-13813,29709,-13821,29706,-13828,29702,-13836,29699,-13843,29695,-13851,29692,-13859,29688,-13866,29685,-13874,29681,-13881,29678,-13889,29674,-13896,29670,-13904,29667,-13912,29663,-13919,29660,-13927,29656,-13934,29653,-13942,29649,-13950,29646,-13957,29642,-13965,29638,-13972,29635,-13980,29631,-13987,29628,-13995,29624,-14003,29621,-14010,29617,-14018,29613,-14025,29610,-14033,29606,-14040,29603,-14048,29599,-14056,29595,-14063,29592,-14071,29588,-14078,29585,-14086,29581,-14093,29577,-14101,29574,-14109,29570,-14116,29567,-14124,29563,-14131,29559,-14139,29556,-14146,29552,-14154,29548,-14161,29545,-14169,29541,-14177,29538,-14184,29534,-14192,29530,-14199,29527,-14207,29523,-14214,29519,-14222,29516,-14229,29512,-14237,29509,-14245,29505,-14252,29501,-14260,29498,-14267,29494,-14275,29490,-14282,29487,-14290,29483,-14297,29479,-14305,29476,-14312,29472,-14320,29468,-14327,29465,-14335,29461,-14343,29457,-14350,29454,-14358,29450,-14365,29446,-14373,29443,-14380,29439,-14388,29435,-14395,29432,-14403,29428,-14410,29424,-14418,29421,-14425,29417,-14433,29413,-14440,29410,-14448,29406,-14455,29402,-14463,29398,-14470,29395,-14478,29391,-14485,29387,-14493,29384,-14500,29380,-14508,29376,-14516,29372,-14523,29369,-14531,29365,-14538,29361,-14546,29358,-14553,29354,-14561,29350,-14568,29346,-14576,29343,-14583,29339,-14591,29335,-14598,29332,-14606,29328,-14613,29324,-14621,29320,-14628,29317,-14636,29313,-14643,29309,-14651,29305,-14658,29302,-14666,29298,-14673,29294,-14681,29290,-14688,29287,-14695,29283,-14703,29279,-14710,29275,-14718,29272,-14725,29268,-14733,29264,-14740,29260,-14748,29256,-14755,29253,-14763,29249,-14770,29245,-14778,29241,-14785,29238,-14793,29234,-14800,29230,-14808,29226,-14815,29222,-14823,29219,-14830,29215,-14838,29211,-14845,29207,-14853,29203,-14860,29200,-14867,29196,-14875,29192,-14882,29188,-14890,29184,-14897,29181,-14905,29177,-14912,29173,-14920,29169,-14927,29165,-14935,29162,-14942,29158,-14950,29154,-14957,29150,-14964,29146,-14972,29142,-14979,29139,-14987,29135,-14994,29131,-15002,29127,-15009,29123,-15017,29119,-15024,29116,-15031,29112,-15039,29108,-15046,29104,-15054,29100,-15061,29096,-15069,29092,-15076,29089,-15084,29085,-15091,29081,-15098,29077,-15106,29073,-15113,29069,-15121,29065,-15128,29062,-15136,29058,-15143,29054,-15150,29050,-15158,29046,-15165,29042,-15173,29038,-15180,29034,-15188,29031,-15195,29027,-15202,29023,-15210,29019,-15217,29015,-15225,29011,-15232,29007,-15239,29003,-15247,28999,-15254,28996,-15262,28992,-15269,28988,-15277,28984,-15284,28980,-15291,28976,-15299,28972,-15306,28968,-15314,28964,-15321,28960,-15328,28956,-15336,28953,-15343,28949,-15351,28945,-15358,28941,-15365,28937,-15373,28933,-15380,28929,-15388,28925,-15395,28921,-15402,28917,-15410,28913,-15417,28909,-15425,28905,-15432,28901,-15439,28897,-15447,28893,-15454,28890,-15462,28886,-15469,28882,-15476,28878,-15484,28874,-15491,28870,-15498,28866,-15506,28862,-15513,28858,-15521,28854,-15528,28850,-15535,28846,-15543,28842,-15550,28838,-15557,28834,-15565,28830,-15572,28826,-15580,28822,-15587,28818,-15594,28814,-15602,28810,-15609,28806,-15616,28802,-15624,28798,-15631,28794,-15639,28790,-15646,28786,-15653,28782,-15661,28778,-15668,28774,-15675,28770,-15683,28766,-15690,28762,-15697,28758,-15705,28754,-15712,28750,-15719,28746,-15727,28742,-15734,28738,-15741,28734,-15749,28730,-15756,28726,-15764,28722,-15771,28718,-15778,28714,-15786,28710,-15793,28706,-15800,28702,-15808,28698,-15815,28694,-15822,28690,-15830,28685,-15837,28681,-15844,28677,-15852,28673,-15859,28669,-15866,28665,-15874,28661,-15881,28657,-15888,28653,-15896,28649,-15903,28645,-15910,28641,-15918,28637,-15925,28633,-15932,28629,-15939,28625,-15947,28620,-15954,28616,-15961,28612,-15969,28608,-15976,28604,-15983,28600,-15991,28596,-15998,28592,-16005,28588,-16013,28584,-16020,28580,-16027,28575,-16035,28571,-16042,28567,-16049,28563,-16056,28559,-16064,28555,-16071,28551,-16078,28547,-16086,28543,-16093,28538,-16100,28534,-16108,28530,-16115,28526,-16122,28522,-16129,28518,-16137,28514,-16144,28510,-16151,28506,-16159,28501,-16166,28497,-16173,28493,-16180,28489,-16188,28485,-16195,28481,-16202,28477,-16210,28472,-16217,28468,-16224,28464,-16231,28460,-16239,28456,-16246,28452,-16253,28447,-16261,28443,-16268,28439,-16275,28435,-16282,28431,-16290,28427,-16297,28423,-16304,28418,-16311,28414,-16319,28410,-16326,28406,-16333,28402,-16340,28397,-16348,28393,-16355,28389,-16362,28385,-16369,28381,-16377,28377,-16384,28372,-16391,28368,-16399,28364,-16406,28360,-16413,28356,-16420,28351,-16428,28347,-16435,28343,-16442,28339,-16449,28335,-16456,28330,-16464,28326,-16471,28322,-16478,28318,-16485,28314,-16493,28309,-16500,28305,-16507,28301,-16514,28297,-16522,28292,-16529,28288,-16536,28284,-16543,28280,-16551,28275,-16558,28271,-16565,28267,-16572,28263,-16579,28259,-16587,28254,-16594,28250,-16601,28246,-16608,28242,-16616,28237,-16623,28233,-16630,28229,-16637,28225,-16644,28220,-16652,28216,-16659,28212,-16666,28208,-16673,28203,-16681,28199,-16688,28195,-16695,28190,-16702,28186,-16709,28182,-16717,28178,-16724,28173,-16731,28169,-16738,28165,-16745,28161,-16753,28156,-16760,28152,-16767,28148,-16774,28143,-16781,28139,-16789,28135,-16796,28131,-16803,28126,-16810,28122,-16817,28118,-16825,28113,-16832,28109,-16839,28105,-16846,28100,-16853,28096,-16860,28092,-16868,28087,-16875,28083,-16882,28079,-16889,28075,-16896,28070,-16904,28066,-16911,28062,-16918,28057,-16925,28053,-16932,28049,-16939,28044,-16947,28040,-16954,28036,-16961,28031,-16968,28027,-16975,28023,-16982,28018,-16990,28014,-16997,28009,-17004,28005,-17011,28001,-17018,27996,-17025,27992,-17033,27988,-17040,27983,-17047,27979,-17054,27975,-17061,27970,-17068,27966,-17075,27962,-17083,27957,-17090,27953,-17097,27948,-17104,27944,-17111,27940,-17118,27935,-17125,27931,-17133,27927,-17140,27922,-17147,27918,-17154,27913,-17161,27909,-17168,27905,-17175,27900,-17183,27896,-17190,27891,-17197,27887,-17204,27883,-17211,27878,-17218,27874,-17225,27869,-17233,27865,-17240,27861,-17247,27856,-17254,27852,-17261,27847,-17268,27843,-17275,27839,-17282,27834,-17289,27830,-17297,27825,-17304,27821,-17311,27816,-17318,27812,-17325,27808,-17332,27803,-17339,27799,-17346,27794,-17353,27790,-17361,27785,-17368,27781,-17375,27777,-17382,27772,-17389,27768,-17396,27763,-17403,27759,-17410,27754,-17417,27750,-17424,27745,-17432,27741,-17439,27736,-17446,27732,-17453,27728,-17460,27723,-17467,27719,-17474,27714,-17481,27710,-17488,27705,-17495,27701,-17502,27696,-17510,27692,-17517,27687,-17524,27683,-17531,27678,-17538,27674,-17545,27669,-17552,27665,-17559,27660,-17566,27656,-17573,27651,-17580,27647,-17587,27642,-17594,27638,-17601,27633,-17609,27629,-17616,27624,-17623,27620,-17630,27615,-17637,27611,-17644,27606,-17651,27602,-17658,27597,-17665,27593,-17672,27588,-17679,27584,-17686,27579,-17693,27575,-17700,27570,-17707,27566,-17714,27561,-17721,27557,-17728,27552,-17736,27548,-17743,27543,-17750,27538,-17757,27534,-17764,27529,-17771,27525,-17778,27520,-17785,27516,-17792,27511,-17799,27507,-17806,27502,-17813,27498,-17820,27493,-17827,27488,-17834,27484,-17841,27479,-17848,27475,-17855,27470,-17862,27466,-17869,27461,-17876,27456,-17883,27452,-17890,27447,-17897,27443,-17904,27438,-17911,27434,-17918,27429,-17925,27424,-17932,27420,-17939,27415,-17946,27411,-17953,27406,-17960,27401,-17967,27397,-17974,27392,-17981,27388,-17988,27383,-17995,27378,-18002,27374,-18009,27369,-18016,27365,-18023,27360,-18030,27355,-18037,27351,-18044,27346,-18051,27342,-18058,27337,-18065,27332,-18072,27328,-18079,27323,-18086,27319,-18093,27314,-18100,27309,-18107,27305,-18114,27300,-18121,27295,-18128,27291,-18135,27286,-18142,27281,-18149,27277,-18156,27272,-18163,27268,-18170,27263,-18177,27258,-18184,27254,-18191,27249,-18198,27244,-18205,27240,-18212,27235,-18219,27230,-18226,27226,-18233,27221,-18240,27216,-18247,27212,-18254,27207,-18261,27202,-18268,27198,-18274,27193,-18281,27188,-18288,27184,-18295,27179,-18302,27174,-18309,27170,-18316,27165,-18323,27160,-18330,27156,-18337,27151,-18344,27146,-18351,27141,-18358,27137,-18365,27132,-18372,27127,-18379,27123,-18386,27118,-18393,27113,-18399,27109,-18406,27104,-18413,27099,-18420,27094,-18427,27090,-18434,27085,-18441,27080,-18448,27076,-18455,27071,-18462,27066,-18469,27061,-18476,27057,-18483,27052,-18489,27047,-18496,27042,-18503,27038,-18510,27033,-18517,27028,-18524,27024,-18531,27019,-18538,27014,-18545,27009,-18552,27005,-18559,27000,-18565,26995,-18572,26990,-18579,26986,-18586,26981,-18593,26976,-18600,26971,-18607,26967,-18614,26962,-18621,26957,-18628,26952,-18634,26948,-18641,26943,-18648,26938,-18655,26933,-18662,26928,-18669,26924,-18676,26919,-18683,26914,-18690,26909,-18696,26905,-18703,26900,-18710,26895,-18717,26890,-18724,26885,-18731,26881,-18738,26876,-18745,26871,-18751,26866,-18758,26861,-18765,26857,-18772,26852,-18779,26847,-18786,26842,-18793,26837,-18799,26833,-18806,26828,-18813,26823,-18820,26818,-18827,26813,-18834,26809,-18841,26804,-18847,26799,-18854,26794,-18861,26789,-18868,26784,-18875,26780,-18882,26775,-18889,26770,-18895,26765,-18902,26760,-18909,26755,-18916,26751,-18923,26746,-18930,26741,-18936,26736,-18943,26731,-18950,26726,-18957,26722,-18964,26717,-18971,26712,-18977,26707,-18984,26702,-18991,26697,-18998,26692,-19005,26688,-19012,26683,-19018,26678,-19025,26673,-19032,26668,-19039,26663,-19046,26658,-19052,26654,-19059,26649,-19066,26644,-19073,26639,-19080,26634,-19087,26629,-19093,26624,-19100,26619,-19107,26615,-19114,26610,-19121,26605,-19127,26600,-19134,26595,-19141,26590,-19148,26585,-19155,26580,-19161,26575,-19168,26570,-19175,26566,-19182,26561,-19189,26556,-19195,26551,-19202,26546,-19209,26541,-19216,26536,-19222,26531,-19229,26526,-19236,26521,-19243,26516,-19250,26512,-19256,26507,-19263,26502,-19270,26497,-19277,26492,-19283,26487,-19290,26482,-19297,26477,-19304,26472,-19311,26467,-19317,26462,-19324,26457,-19331,26452,-19338,26447,-19344,26442,-19351,26437,-19358,26433,-19365,26428,-19371,26423,-19378,26418,-19385,26413,-19392,26408,-19398,26403,-19405,26398,-19412,26393,-19419,26388,-19425,26383,-19432,26378,-19439,26373,-19446,26368,-19452,26363,-19459,26358,-19466,26353,-19473,26348,-19479,26343,-19486,26338,-19493,26333,-19500,26328,-19506,26323,-19513,26318,-19520,26313,-19527,26308,-19533,26303,-19540,26298,-19547,26293,-19553,26288,-19560,26283,-19567,26278,-19574,26273,-19580,26268,-19587,26263,-19594,26258,-19600,26253,-19607,26248,-19614,26243,-19621,26238,-19627,26233,-19634,26228,-19641,26223,-19647,26218,-19654,26213,-19661,26208,-19668,26203,-19674,26198,-19681,26193,-19688,26188,-19694,26183,-19701,26178,-19708,26173,-19714,26168,-19721,26163,-19728,26158,-19734,26153,-19741,26148,-19748,26142,-19755,26137,-19761,26132,-19768,26127,-19775,26122,-19781,26117,-19788,26112,-19795,26107,-19801,26102,-19808,26097,-19815,26092,-19821,26087,-19828,26082,-19835,26077,-19841,26072,-19848,26067,-19855,26061,-19861,26056,-19868,26051,-19875,26046,-19881,26041,-19888,26036,-19895,26031,-19901,26026,-19908,26021,-19915,26016,-19921,26011,-19928,26006,-19934,26000,-19941,25995,-19948,25990,-19954,25985,-19961,25980,-19968,25975,-19974,25970,-19981,25965,-19988,25960,-19994,25954,-20001,25949,-20008,25944,-20014,25939,-20021,25934,-20027,25929,-20034,25924,-20041,25919,-20047,25913,-20054,25908,-20061,25903,-20067,25898,-20074,25893,-20080,25888,-20087,25883,-20094,25878,-20100,25872,-20107,25867,-20114,25862,-20120,25857,-20127,25852,-20133,25847,-20140,25842,-20147,25836,-20153,25831,-20160,25826,-20166,25821,-20173,25816,-20180,25811,-20186,25805,-20193,25800,-20199,25795,-20206,25790,-20213,25785,-20219,25780,-20226,25774,-20232,25769,-20239,25764,-20246,25759,-20252,25754,-20259,25749,-20265,25743,-20272,25738,-20278,25733,-20285,25728,-20292,25723,-20298,25717,-20305,25712,-20311,25707,-20318,25702,-20324,25697,-20331,25691,-20338,25686,-20344,25681,-20351,25676,-20357,25671,-20364,25665,-20370,25660,-20377,25655,-20384,25650,-20390,25645,-20397,25639,-20403,25634,-20410,25629,-20416,25624,-20423,25619,-20429,25613,-20436,25608,-20443,25603,-20449,25598,-20456,25592,-20462,25587,-20469,25582,-20475,25577,-20482,25571,-20488,25566,-20495,25561,-20501,25556,-20508,25550,-20514,25545,-20521,25540,-20528,25535,-20534,25529,-20541,25524,-20547,25519,-20554,25514,-20560,25508,-20567,25503,-20573,25498,-20580,25493,-20586,25487,-20593,25482,-20599,25477,-20606,25472,-20612,25466,-20619,25461,-20625,25456,-20632,25451,-20638,25445,-20645,25440,-20651,25435,-20658,25429,-20664,25424,-20671,25419,-20677,25414,-20684,25408,-20690,25403,-20697,25398,-20703,25392,-20710,25387,-20716,25382,-20723,25376,-20729,25371,-20736,25366,-20742,25361,-20749,25355,-20755,25350,-20762,25345,-20768,25339,-20775,25334,-20781,25329,-20788,25323,-20794,25318,-20801,25313,-20807,25307,-20814,25302,-20820,25297,-20826,25291,-20833,25286,-20839,25281,-20846,25276,-20852,25270,-20859,25265,-20865,25260,-20872,25254,-20878,25249,-20885,25243,-20891,25238,-20898,25233,-20904,25227,-20910,25222,-20917,25217,-20923,25211,-20930,25206,-20936,25201,-20943,25195,-20949,25190,-20956,25185,-20962,25179,-20968,25174,-20975,25169,-20981,25163,-20988,25158,-20994,25152,-21001,25147,-21007,25142,-21013,25136,-21020,25131,-21026,25126,-21033,25120,-21039,25115,-21046,25109,-21052,25104,-21058,25099,-21065,25093,-21071,25088,-21078,25083,-21084,25077,-21091,25072,-21097,25066,-21103,25061,-21110,25056,-21116,25050,-21123,25045,-21129,25039,-21135,25034,-21142,25029,-21148,25023,-21155,25018,-21161,25012,-21167,25007,-21174,25001,-21180,24996,-21187,24991,-21193,24985,-21199,24980,-21206,24974,-21212,24969,-21218,24964,-21225,24958,-21231,24953,-21238,24947,-21244,24942,-21250,24936,-21257,24931,-21263,24926,-21269,24920,-21276,24915,-21282,24909,-21289,24904,-21295,24898,-21301,24893,-21308,24887,-21314,24882,-21320,24877,-21327,24871,-21333,24866,-21340,24860,-21346,24855,-21352,24849,-21359,24844,-21365,24838,-21371,24833,-21378,24827,-21384,24822,-21390,24816,-21397,24811,-21403,24805,-21409,24800,-21416,24795,-21422,24789,-21428,24784,-21435,24778,-21441,24773,-21447,24767,-21454,24762,-21460,24756,-21466,24751,-21473,24745,-21479,24740,-21485,24734,-21492,24729,-21498,24723,-21504,24718,-21511,24712,-21517,24707,-21523,24701,-21530,24696,-21536,24690,-21542,24685,-21549,24679,-21555,24674,-21561,24668,-21567,24663,-21574,24657,-21580,24652,-21586,24646,-21593,24641,-21599,24635,-21605,24630,-21612,24624,-21618,24618,-21624,24613,-21630,24607,-21637,24602,-21643,24596,-21649,24591,-21656,24585,-21662,24580,-21668,24574,-21674,24569,-21681,24563,-21687,24558,-21693,24552,-21700,24546,-21706,24541,-21712,24535,-21718,24530,-21725,24524,-21731,24519,-21737,24513,-21744,24508,-21750,24502,-21756,24496,-21762,24491,-21769,24485,-21775,24480,-21781,24474,-21787,24469,-21794,24463,-21800,24457,-21806,24452,-21812,24446,-21819,24441,-21825,24435,-21831,24430,-21837,24424,-21844,24418,-21850,24413,-21856,24407,-21862,24402,-21869,24396,-21875,24390,-21881,24385,-21887,24379,-21894,24374,-21900,24368,-21906,24362,-21912,24357,-21918,24351,-21925,24346,-21931,24340,-21937,24334,-21943,24329,-21950,24323,-21956,24318,-21962,24312,-21968,24306,-21974,24301,-21981,24295,-21987,24289,-21993,24284,-21999,24278,-22005,24273,-22012,24267,-22018,24261,-22024,24256,-22030,24250,-22036,24244,-22043,24239,-22049,24233,-22055,24228,-22061,24222,-22067,24216,-22074,24211,-22080,24205,-22086,24199,-22092,24194,-22098,24188,-22105,24182,-22111,24177,-22117,24171,-22123,24165,-22129,24160,-22136,24154,-22142,24148,-22148,24143,-22154,24137,-22160,24131,-22166,24126,-22173,24120,-22179,24114,-22185,24109,-22191,24103,-22197,24097,-22203,24092,-22210,24086,-22216,24080,-22222,24075,-22228,24069,-22234,24063,-22240,24058,-22246,24052,-22253,24046,-22259,24041,-22265,24035,-22271,24029,-22277,24023,-22283,24018,-22289,24012,-22296,24006,-22302,24001,-22308,23995,-22314,23989,-22320,23984,-22326,23978,-22332,23972,-22339,23966,-22345,23961,-22351,23955,-22357,23949,-22363,23944,-22369,23938,-22375,23932,-22381,23926,-22388,23921,-22394,23915,-22400,23909,-22406,23903,-22412,23898,-22418,23892,-22424,23886,-22430,23881,-22436,23875,-22443,23869,-22449,23863,-22455,23858,-22461,23852,-22467,23846,-22473,23840,-22479,23835,-22485,23829,-22491,23823,-22497,23817,-22504,23812,-22510,23806,-22516,23800,-22522,23794,-22528,23789,-22534,23783,-22540,23777,-22546,23771,-22552,23766,-22558,23760,-22564,23754,-22570,23748,-22576,23742,-22583,23737,-22589,23731,-22595,23725,-22601,23719,-22607,23714,-22613,23708,-22619,23702,-22625,23696,-22631,23690,-22637,23685,-22643,23679,-22649,23673,-22655,23667,-22661,23661,-22667,23656,-22673,23650,-22679,23644,-22686,23638,-22692,23632,-22698,23627,-22704,23621,-22710,23615,-22716,23609,-22722,23603,-22728,23598,-22734,23592,-22740,23586,-22746,23580,-22752,23574,-22758,23569,-22764,23563,-22770,23557,-22776,23551,-22782,23545,-22788,23539,-22794,23534,-22800,23528,-22806,23522,-22812,23516,-22818,23510,-22824,23504,-22830,23499,-22836,23493,-22842,23487,-22848,23481,-22854,23475,-22860,23469,-22866,23464,-22872,23458,-22878,23452,-22884,23446,-22890,23440,-22896,23434,-22902,23428,-22908,23423,-22914,23417,-22920,23411,-22926,23405,-22932,23399,-22938,23393,-22944,23387,-22950,23382,-22956,23376,-22962,23370,-22968,23364,-22974,23358,-22980,23352,-22986,23346,-22992,23340,-22998,23335,-23004,23329,-23010,23323,-23016,23317,-23022,23311,-23028,23305,-23034,23299,-23040,23293,-23046,23287,-23051,23282,-23057,23276,-23063,23270,-23069,23264,-23075,23258,-23081,23252,-23087,23246,-23093,23240,-23099,23234,-23105,23228,-23111,23223,-23117,23217,-23123,23211,-23129,23205,-23135,23199,-23141,23193,-23147,23187,-23152,23181,-23158,23175,-23164,23169,-23170,23163,-23176,23157,-23182,23151,-23188,23146,-23194,23140,-23200,23134,-23206,23128,-23212,23122,-23218,23116,-23224,23110,-23229,23104,-23235,23098,-23241,23092,-23247,23086,-23253,23080,-23259,23074,-23265,23068,-23271,23062,-23277,23056,-23283,23050,-23288,23045,-23294,23039,-23300,23033,-23306,23027,-23312,23021,-23318,23015,-23324,23009,-23330,23003,-23336,22997,-23341,22991,-23347,22985,-23353,22979,-23359,22973,-23365,22967,-23371,22961,-23377,22955,-23383,22949,-23388,22943,-23394,22937,-23400,22931,-23406,22925,-23412,22919,-23418,22913,-23424,22907,-23429,22901,-23435,22895,-23441,22889,-23447,22883,-23453,22877,-23459,22871,-23465,22865,-23470,22859,-23476,22853,-23482,22847,-23488,22841,-23494,22835,-23500,22829,-23505,22823,-23511,22817,-23517,22811,-23523,22805,-23529,22799,-23535,22793,-23540,22787,-23546,22781,-23552,22775,-23558,22769,-23564,22763,-23570,22757,-23575,22751,-23581,22745,-23587,22739,-23593,22733,-23599,22727,-23604,22721,-23610,22715,-23616,22709,-23622,22703,-23628,22697,-23633,22691,-23639,22685,-23645,22678,-23651,22672,-23657,22666,-23662,22660,-23668,22654,-23674,22648,-23680,22642,-23686,22636,-23691,22630,-23697,22624,-23703,22618,-23709,22612,-23715,22606,-23720,22600,-23726,22594,-23732,22588,-23738,22582,-23743,22575,-23749,22569,-23755,22563,-23761,22557,-23767,22551,-23772,22545,-23778,22539,-23784,22533,-23790,22527,-23795,22521,-23801,22515,-23807,22509,-23813,22503,-23818,22496,-23824,22490,-23830,22484,-23836,22478,-23841,22472,-23847,22466,-23853,22460,-23859,22454,-23864,22448,-23870,22442,-23876,22435,-23882,22429,-23887,22423,-23893,22417,-23899,22411,-23904,22405,-23910,22399,-23916,22393,-23922,22387,-23927,22380,-23933,22374,-23939,22368,-23945,22362,-23950,22356,-23956,22350,-23962,22344,-23967,22338,-23973,22331,-23979,22325,-23985,22319,-23990,22313,-23996,22307,-24002,22301,-24007,22295,-24013,22288,-24019,22282,-24024,22276,-24030,22270,-24036,22264,-24042,22258,-24047,22252,-24053,22245,-24059,22239,-24064,22233,-24070,22227,-24076,22221,-24081,22215,-24087,22209,-24093,22202,-24098,22196,-24104,22190,-24110,22184,-24115,22178,-24121,22172,-24127,22165,-24132,22159,-24138,22153,-24144,22147,-24149,22141,-24155,22135,-24161,22128,-24166,22122,-24172,22116,-24178,22110,-24183,22104,-24189,22097,-24195,22091,-24200,22085,-24206,22079,-24212,22073,-24217,22066,-24223,22060,-24229,22054,-24234,22048,-24240,22042,-24245,22035,-24251,22029,-24257,22023,-24262,22017,-24268,22011,-24274,22004,-24279,21998,-24285,21992,-24290,21986,-24296,21980,-24302,21973,-24307,21967,-24313,21961,-24319,21955,-24324,21949,-24330,21942,-24335,21936,-24341,21930,-24347,21924,-24352,21917,-24358,21911,-24363,21905,-24369,21899,-24375,21893,-24380,21886,-24386,21880,-24391,21874,-24397,21868,-24403,21861,-24408,21855,-24414,21849,-24419,21843,-24425,21836,-24431,21830,-24436,21824,-24442,21818,-24447,21811,-24453,21805,-24458,21799,-24464,21793,-24470,21786,-24475,21780,-24481,21774,-24486,21768,-24492,21761,-24497,21755,-24503,21749,-24509,21743,-24514,21736,-24520,21730,-24525,21724,-24531,21717,-24536,21711,-24542,21705,-24547,21699,-24553,21692,-24559,21686,-24564,21680,-24570,21673,-24575,21667,-24581,21661,-24586,21655,-24592,21648,-24597,21642,-24603,21636,-24608,21629,-24614,21623,-24619,21617,-24625,21611,-24631,21604,-24636,21598,-24642,21592,-24647,21585,-24653,21579,-24658,21573,-24664,21566,-24669,21560,-24675,21554,-24680,21548,-24686,21541,-24691,21535,-24697,21529,-24702,21522,-24708,21516,-24713,21510,-24719,21503,-24724,21497,-24730,21491,-24735,21484,-24741,21478,-24746,21472,-24752,21465,-24757,21459,-24763,21453,-24768,21446,-24774,21440,-24779,21434,-24785,21427,-24790,21421,-24796,21415,-24801,21408,-24806,21402,-24812,21396,-24817,21389,-24823,21383,-24828,21377,-24834,21370,-24839,21364,-24845,21358,-24850,21351,-24856,21345,-24861,21339,-24867,21332,-24872,21326,-24878,21319,-24883,21313,-24888,21307,-24894,21300,-24899,21294,-24905,21288,-24910,21281,-24916,21275,-24921,21268,-24927,21262,-24932,21256,-24937,21249,-24943,21243,-24948,21237,-24954,21230,-24959,21224,-24965,21217,-24970,21211,-24975,21205,-24981,21198,-24986,21192,-24992,21186,-24997,21179,-25002,21173,-25008,21166,-25013,21160,-25019,21154,-25024,21147,-25030,21141,-25035,21134,-25040,21128,-25046,21122,-25051,21115,-25057,21109,-25062,21102,-25067,21096,-25073,21090,-25078,21083,-25084,21077,-25089,21070,-25094,21064,-25100,21057,-25105,21051,-25110,21045,-25116,21038,-25121,21032,-25127,21025,-25132,21019,-25137,21012,-25143,21006,-25148,21000,-25153,20993,-25159,20987,-25164,20980,-25170,20974,-25175,20967,-25180,20961,-25186,20955,-25191,20948,-25196,20942,-25202,20935,-25207,20929,-25212,20922,-25218,20916,-25223,20909,-25228,20903,-25234,20897,-25239,20890,-25244,20884,-25250,20877,-25255,20871,-25261,20864,-25266,20858,-25271,20851,-25277,20845,-25282,20838,-25287,20832,-25292,20825,-25298,20819,-25303,20813,-25308,20806,-25314,20800,-25319,20793,-25324,20787,-25330,20780,-25335,20774,-25340,20767,-25346,20761,-25351,20754,-25356,20748,-25362,20741,-25367,20735,-25372,20728,-25377,20722,-25383,20715,-25388,20709,-25393,20702,-25399,20696,-25404,20689,-25409,20683,-25415,20676,-25420,20670,-25425,20663,-25430,20657,-25436,20650,-25441,20644,-25446,20637,-25452,20631,-25457,20624,-25462,20618,-25467,20611,-25473,20605,-25478,20598,-25483,20592,-25488,20585,-25494,20579,-25499,20572,-25504,20566,-25509,20559,-25515,20553,-25520,20546,-25525,20540,-25530,20533,-25536,20527,-25541,20520,-25546,20513,-25551,20507,-25557,20500,-25562,20494,-25567,20487,-25572,20481,-25578,20474,-25583,20468,-25588,20461,-25593,20455,-25599,20448,-25604,20442,-25609,20435,-25614,20428,-25620,20422,-25625,20415,-25630,20409,-25635,20402,-25640,20396,-25646,20389,-25651,20383,-25656,20376,-25661,20369,-25666,20363,-25672,20356,-25677,20350,-25682,20343,-25687,20337,-25692,20330,-25698,20323,-25703,20317,-25708,20310,-25713,20304,-25718,20297,-25724,20291,-25729,20284,-25734,20277,-25739,20271,-25744,20264,-25750,20258,-25755,20251,-25760,20245,-25765,20238,-25770,20231,-25775,20225,-25781,20218,-25786,20212,-25791,20205,-25796,20198,-25801,20192,-25806,20185,-25812,20179,-25817,20172,-25822,20165,-25827,20159,-25832,20152,-25837,20146,-25843,20139,-25848,20132,-25853,20126,-25858,20119,-25863,20113,-25868,20106,-25873,20099,-25879,20093,-25884,20086,-25889,20079,-25894,20073,-25899,20066,-25904,20060,-25909,20053,-25914,20046,-25920,20040,-25925,20033,-25930,20026,-25935,20020,-25940,20013,-25945,20007,-25950,20000,-25955,19993,-25961,19987,-25966,19980,-25971,19973,-25976,19967,-25981,19960,-25986,19953,-25991,19947,-25996,19940,-26001,19933,-26007,19927,-26012,19920,-26017,19914,-26022,19907,-26027,19900,-26032,19894,-26037,19887,-26042,19880,-26047,19874,-26052,19867,-26057,19860,-26062,19854,-26068,19847,-26073,19840,-26078,19834,-26083,19827,-26088,19820,-26093,19814,-26098,19807,-26103,19800,-26108,19794,-26113,19787,-26118,19780,-26123,19774,-26128,19767,-26133,19760,-26138,19754,-26143,19747,-26149,19740,-26154,19733,-26159,19727,-26164,19720,-26169,19713,-26174,19707,-26179,19700,-26184,19693,-26189,19687,-26194,19680,-26199,19673,-26204,19667,-26209,19660,-26214,19653,-26219,19646,-26224,19640,-26229,19633,-26234,19626,-26239,19620,-26244,19613,-26249,19606,-26254,19599,-26259,19593,-26264,19586,-26269,19579,-26274,19573,-26279,19566,-26284,19559,-26289,19552,-26294,19546,-26299,19539,-26304,19532,-26309,19526,-26314,19519,-26319,19512,-26324,19505,-26329,19499,-26334,19492,-26339,19485,-26344,19478,-26349,19472,-26354,19465,-26359,19458,-26364,19451,-26369,19445,-26374,19438,-26379,19431,-26384,19424,-26389,19418,-26394,19411,-26399,19404,-26404,19397,-26409,19391,-26414,19384,-26419,19377,-26424,19370,-26429,19364,-26434,19357,-26438,19350,-26443,19343,-26448,19337,-26453,19330,-26458,19323,-26463,19316,-26468,19310,-26473,19303,-26478,19296,-26483,19289,-26488,19282,-26493,19276,-26498,19269,-26503,19262,-26508,19255,-26513,19249,-26517,19242,-26522,19235,-26527,19228,-26532,19221,-26537,19215,-26542,19208,-26547,19201,-26552,19194,-26557,19188,-26562,19181,-26567,19174,-26571,19167,-26576,19160,-26581,19154,-26586,19147,-26591,19140,-26596,19133,-26601,19126,-26606,19120,-26611,19113,-26616,19106,-26620,19099,-26625,19092,-26630,19086,-26635,19079,-26640,19072,-26645,19065,-26650,19058,-26655,19051,-26659,19045,-26664,19038,-26669,19031,-26674,19024,-26679,19017,-26684,19011,-26689,19004,-26693,18997,-26698,18990,-26703,18983,-26708,18976,-26713,18970,-26718,18963,-26723,18956,-26727,18949,-26732,18942,-26737,18935,-26742,18929,-26747,18922,-26752,18915,-26756,18908,-26761,18901,-26766,18894,-26771,18888,-26776,18881,-26781,18874,-26785,18867,-26790,18860,-26795,18853,-26800,18846,-26805,18840,-26810,18833,-26814,18826,-26819,18819,-26824,18812,-26829,18805,-26834,18798,-26838,18792,-26843,18785,-26848,18778,-26853,18771,-26858,18764,-26862,18757,-26867,18750,-26872,18744,-26877,18737,-26882,18730,-26886,18723,-26891,18716,-26896,18709,-26901,18702,-26906,18695,-26910,18689,-26915,18682,-26920,18675,-26925,18668,-26929,18661,-26934,18654,-26939,18647,-26944,18640,-26949,18633,-26953,18627,-26958,18620,-26963,18613,-26968,18606,-26972,18599,-26977,18592,-26982,18585,-26987,18578,-26991,18571,-26996,18564,-27001,18558,-27006,18551,-27010,18544,-27015,18537,-27020,18530,-27025,18523,-27029,18516,-27034,18509,-27039,18502,-27043,18495,-27048,18488,-27053,18482,-27058,18475,-27062,18468,-27067,18461,-27072,18454,-27077,18447,-27081,18440,-27086,18433,-27091,18426,-27095,18419,-27100,18412,-27105,18405,-27110,18398,-27114,18392,-27119,18385,-27124,18378,-27128,18371,-27133,18364,-27138,18357,-27142,18350,-27147,18343,-27152,18336,-27157,18329,-27161,18322,-27166,18315,-27171,18308,-27175,18301,-27180,18294,-27185,18287,-27189,18280,-27194,18273,-27199,18267,-27203,18260,-27208,18253,-27213,18246,-27217,18239,-27222,18232,-27227,18225,-27231,18218,-27236,18211,-27241,18204,-27245,18197,-27250,18190,-27255,18183,-27259,18176,-27264,18169,-27269,18162,-27273,18155,-27278,18148,-27282,18141,-27287,18134,-27292,18127,-27296,18120,-27301,18113,-27306,18106,-27310,18099,-27315,18092,-27320,18085,-27324,18078,-27329,18071,-27333,18064,-27338,18057,-27343,18050,-27347,18043,-27352,18036,-27356,18029,-27361,18022,-27366,18015,-27370,18008,-27375,18001,-27379,17994,-27384,17987,-27389,17980,-27393,17973,-27398,17966,-27402,17959,-27407,17952,-27412,17945,-27416,17938,-27421,17931,-27425,17924,-27430,17917,-27435,17910,-27439,17903,-27444,17896,-27448,17889,-27453,17882,-27457,17875,-27462,17868,-27467,17861,-27471,17854,-27476,17847,-27480,17840,-27485,17833,-27489,17826,-27494,17819,-27499,17812,-27503,17805,-27508,17798,-27512,17791,-27517,17784,-27521,17777,-27526,17770,-27530,17763,-27535,17756,-27539,17749,-27544,17742,-27549,17735,-27553,17727,-27558,17720,-27562,17713,-27567,17706,-27571,17699,-27576,17692,-27580,17685,-27585,17678,-27589,17671,-27594,17664,-27598,17657,-27603,17650,-27607,17643,-27612,17636,-27616,17629,-27621,17622,-27625,17615,-27630,17608,-27634,17600,-27639,17593,-27643,17586,-27648,17579,-27652,17572,-27657,17565,-27661,17558,-27666,17551,-27670,17544,-27675,17537,-27679,17530,-27684,17523,-27688,17516,-27693,17509,-27697,17501,-27702,17494,-27706,17487,-27711,17480,-27715,17473,-27720,17466,-27724,17459,-27729,17452,-27733,17445,-27737,17438,-27742,17431,-27746,17423,-27751,17416,-27755,17409,-27760,17402,-27764,17395,-27769,17388,-27773,17381,-27778,17374,-27782,17367,-27786,17360,-27791,17352,-27795,17345,-27800,17338,-27804,17331,-27809,17324,-27813,17317,-27817,17310,-27822,17303,-27826,17296,-27831,17288,-27835,17281,-27840,17274,-27844,17267,-27848,17260,-27853,17253,-27857,17246,-27862,17239,-27866,17232,-27870,17224,-27875,17217,-27879,17210,-27884,17203,-27888,17196,-27892,17189,-27897,17182,-27901,17174,-27906,17167,-27910,17160,-27914,17153,-27919,17146,-27923,17139,-27928,17132,-27932,17124,-27936,17117,-27941,17110,-27945,17103,-27949,17096,-27954,17089,-27958,17082,-27963,17074,-27967,17067,-27971,17060,-27976,17053,-27980,17046,-27984,17039,-27989,17032,-27993,17024,-27997,17017,-28002,17010,-28006,17003,-28010,16996,-28015,16989,-28019,16981,-28024,16974,-28028,16967,-28032,16960,-28037,16953,-28041,16946,-28045,16938,-28050,16931,-28054,16924,-28058,16917,-28063,16910,-28067,16903,-28071,16895,-28076,16888,-28080,16881,-28084,16874,-28088,16867,-28093,16859,-28097,16852,-28101,16845,-28106,16838,-28110,16831,-28114,16824,-28119,16816,-28123,16809,-28127,16802,-28132,16795,-28136,16788,-28140,16780,-28144,16773,-28149,16766,-28153,16759,-28157,16752,-28162,16744,-28166,16737,-28170,16730,-28174,16723,-28179,16716,-28183,16708,-28187,16701,-28191,16694,-28196,16687,-28200,16680,-28204,16672,-28209,16665,-28213,16658,-28217,16651,-28221,16643,-28226,16636,-28230,16629,-28234,16622,-28238,16615,-28243,16607,-28247,16600,-28251,16593,-28255,16586,-28260,16578,-28264,16571,-28268,16564,-28272,16557,-28276,16550,-28281,16542,-28285,16535,-28289,16528,-28293,16521,-28298,16513,-28302,16506,-28306,16499,-28310,16492,-28315,16484,-28319,16477,-28323,16470,-28327,16463,-28331,16455,-28336,16448,-28340,16441,-28344,16434,-28348,16427,-28352,16419,-28357,16412,-28361,16405,-28365,16398,-28369,16390,-28373,16383,-28378,16376,-28382,16368,-28386,16361,-28390,16354,-28394,16347,-28398,16339,-28403,16332,-28407,16325,-28411,16318,-28415,16310,-28419,16303,-28424,16296,-28428,16289,-28432,16281,-28436,16274,-28440,16267,-28444,16260,-28448,16252,-28453,16245,-28457,16238,-28461,16230,-28465,16223,-28469,16216,-28473,16209,-28478,16201,-28482,16194,-28486,16187,-28490,16179,-28494,16172,-28498,16165,-28502,16158,-28507,16150,-28511,16143,-28515,16136,-28519,16128,-28523,16121,-28527,16114,-28531,16107,-28535,16099,-28539,16092,-28544,16085,-28548,16077,-28552,16070,-28556,16063,-28560,16055,-28564,16048,-28568,16041,-28572,16034,-28576,16026,-28581,16019,-28585,16012,-28589,16004,-28593,15997,-28597,15990,-28601,15982,-28605,15975,-28609,15968,-28613,15960,-28617,15953,-28621,15946,-28626,15938,-28630,15931,-28634,15924,-28638,15917,-28642,15909,-28646,15902,-28650,15895,-28654,15887,-28658,15880,-28662,15873,-28666,15865,-28670,15858,-28674,15851,-28678,15843,-28682,15836,-28686,15829,-28691,15821,-28695,15814,-28699,15807,-28703,15799,-28707,15792,-28711,15785,-28715,15777,-28719,15770,-28723,15763,-28727,15755,-28731,15748,-28735,15740,-28739,15733,-28743,15726,-28747,15718,-28751,15711,-28755,15704,-28759,15696,-28763,15689,-28767,15682,-28771,15674,-28775,15667,-28779,15660,-28783,15652,-28787,15645,-28791,15638,-28795,15630,-28799,15623,-28803,15615,-28807,15608,-28811,15601,-28815,15593,-28819,15586,-28823,15579,-28827,15571,-28831,15564,-28835,15556,-28839,15549,-28843,15542,-28847,15534,-28851,15527,-28855,15520,-28859,15512,-28863,15505,-28867,15497,-28871,15490,-28875,15483,-28879,15475,-28883,15468,-28887,15461,-28891,15453,-28894,15446,-28898,15438,-28902,15431,-28906,15424,-28910,15416,-28914,15409,-28918,15401,-28922,15394,-28926,15387,-28930,15379,-28934,15372,-28938,15364,-28942,15357,-28946,15350,-28950,15342,-28954,15335,-28957,15327,-28961,15320,-28965,15313,-28969,15305,-28973,15298,-28977,15290,-28981,15283,-28985,15276,-28989,15268,-28993,15261,-28997,15253,-29000,15246,-29004,15238,-29008,15231,-29012,15224,-29016,15216,-29020,15209,-29024,15201,-29028,15194,-29032,15187,-29035,15179,-29039,15172,-29043,15164,-29047,15157,-29051,15149,-29055,15142,-29059,15135,-29063,15127,-29066,15120,-29070,15112,-29074,15105,-29078,15097,-29082,15090,-29086,15083,-29090,15075,-29093,15068,-29097,15060,-29101,15053,-29105,15045,-29109,15038,-29113,15030,-29117,15023,-29120,15016,-29124,15008,-29128,15001,-29132,14993,-29136,14986,-29140,14978,-29143,14971,-29147,14963,-29151,14956,-29155,14949,-29159,14941,-29163,14934,-29166,14926,-29170,14919,-29174,14911,-29178,14904,-29182,14896,-29185,14889,-29189,14881,-29193,14874,-29197,14866,-29201,14859,-29204,14852,-29208,14844,-29212,14837,-29216,14829,-29220,14822,-29223,14814,-29227,14807,-29231,14799,-29235,14792,-29239,14784,-29242,14777,-29246,14769,-29250,14762,-29254,14754,-29257,14747,-29261,14739,-29265,14732,-29269,14724,-29273,14717,-29276,14709,-29280,14702,-29284,14694,-29288,14687,-29291,14680,-29295,14672,-29299,14665,-29303,14657,-29306,14650,-29310,14642,-29314,14635,-29318,14627,-29321,14620,-29325,14612,-29329,14605,-29333,14597,-29336,14590,-29340,14582,-29344,14575,-29347,14567,-29351,14560,-29355,14552,-29359,14545,-29362,14537,-29366,14530,-29370,14522,-29373,14515,-29377,14507,-29381,14499,-29385,14492,-29388,14484,-29392,14477,-29396,14469,-29399,14462,-29403,14454,-29407,14447,-29411,14439,-29414,14432,-29418,14424,-29422,14417,-29425,14409,-29429,14402,-29433,14394,-29436,14387,-29440,14379,-29444,14372,-29447,14364,-29451,14357,-29455,14349,-29458,14342,-29462,14334,-29466,14326,-29469,14319,-29473,14311,-29477,14304,-29480,14296,-29484,14289,-29488,14281,-29491,14274,-29495,14266,-29499,14259,-29502,14251,-29506,14244,-29510,14236,-29513,14228,-29517,14221,-29520,14213,-29524,14206,-29528,14198,-29531,14191,-29535,14183,-29539,14176,-29542,14168,-29546,14160,-29549,14153,-29553,14145,-29557,14138,-29560,14130,-29564,14123,-29568,14115,-29571,14108,-29575,14100,-29578,14092,-29582,14085,-29586,14077,-29589,14070,-29593,14062,-29596,14055,-29600,14047,-29604,14039,-29607,14032,-29611,14024,-29614,14017,-29618,14009,-29622,14002,-29625,13994,-29629,13986,-29632,13979,-29636,13971,-29639,13964,-29643,13956,-29647,13949,-29650,13941,-29654,13933,-29657,13926,-29661,13918,-29664,13911,-29668,13903,-29671,13895,-29675,13888,-29679,13880,-29682,13873,-29686,13865,-29689,13858,-29693,13850,-29696,13842,-29700,13835,-29703,13827,-29707,13820,-29710,13812,-29714,13804,-29718,13797,-29721,13789,-29725,13782,-29728,13774,-29732,13766,-29735,13759,-29739,13751,-29742,13744,-29746,13736,-29749,13728,-29753,13721,-29756,13713,-29760,13706,-29763,13698,-29767,13690,-29770,13683,-29774,13675,-29777,13667,-29781,13660,-29784,13652,-29788,13645,-29791,13637,-29795,13629,-29798,13622,-29802,13614,-29805,13607,-29809,13599,-29812,13591,-29816,13584,-29819,13576,-29823,13568,-29826,13561,-29829,13553,-29833,13546,-29836,13538,-29840,13530,-29843,13523,-29847,13515,-29850,13507,-29854,13500,-29857,13492,-29861,13485,-29864,13477,-29867,13469,-29871,13462,-29874,13454,-29878,13446,-29881,13439,-29885,13431,-29888,13423,-29892,13416,-29895,13408,-29898,13400,-29902,13393,-29905,13385,-29909,13378,-29912,13370,-29916,13362,-29919,13355,-29922,13347,-29926,13339,-29929,13332,-29933,13324,-29936,13316,-29939,13309,-29943,13301,-29946,13293,-29950,13286,-29953,13278,-29956,13270,-29960,13263,-29963,13255,-29967,13247,-29970,13240,-29973,13232,-29977,13224,-29980,13217,-29984,13209,-29987,13201,-29990,13194,-29994,13186,-29997,13178,-30000,13171,-30004,13163,-30007,13155,-30010,13148,-30014,13140,-30017,13132,-30021,13125,-30024,13117,-30027,13109,-30031,13102,-30034,13094,-30037,13086,-30041,13079,-30044,13071,-30047,13063,-30051,13056,-30054,13048,-30057,13040,-30061,13033,-30064,13025,-30067,13017,-30071,13009,-30074,13002,-30077,12994,-30081,12986,-30084,12979,-30087,12971,-30091,12963,-30094,12956,-30097,12948,-30101,12940,-30104,12933,-30107,12925,-30110,12917,-30114,12909,-30117,12902,-30120,12894,-30124,12886,-30127,12879,-30130,12871,-30134,12863,-30137,12856,-30140,12848,-30143,12840,-30147,12832,-30150,12825,-30153,12817,-30157,12809,-30160,12802,-30163,12794,-30166,12786,-30170,12778,-30173,12771,-30176,12763,-30179,12755,-30183,12748,-30186,12740,-30189,12732,-30192,12724,-30196,12717,-30199,12709,-30202,12701,-30206,12694,-30209,12686,-30212,12678,-30215,12670,-30218,12663,-30222,12655,-30225,12647,-30228,12639,-30231,12632,-30235,12624,-30238,12616,-30241,12609,-30244,12601,-30248,12593,-30251,12585,-30254,12578,-30257,12570,-30260,12562,-30264,12554,-30267,12547,-30270,12539,-30273,12531,-30276,12523,-30280,12516,-30283,12508,-30286,12500,-30289,12492,-30292,12485,-30296,12477,-30299,12469,-30302,12461,-30305,12454,-30308,12446,-30312,12438,-30315,12430,-30318,12423,-30321,12415,-30324,12407,-30327,12399,-30331,12392,-30334,12384,-30337,12376,-30340,12368,-30343,12361,-30346,12353,-30350,12345,-30353,12337,-30356,12330,-30359,12322,-30362,12314,-30365,12306,-30369,12299,-30372,12291,-30375,12283,-30378,12275,-30381,12268,-30384,12260,-30387,12252,-30391,12244,-30394,12236,-30397,12229,-30400,12221,-30403,12213,-30406,12205,-30409,12198,-30412,12190,-30416,12182,-30419,12174,-30422,12166,-30425,12159,-30428,12151,-30431,12143,-30434,12135,-30437,12128,-30440,12120,-30443,12112,-30447,12104,-30450,12096,-30453,12089,-30456,12081,-30459,12073,-30462,12065,-30465,12057,-30468,12050,-30471,12042,-30474,12034,-30477,12026,-30481,12019,-30484,12011,-30487,12003,-30490,11995,-30493,11987,-30496,11980,-30499,11972,-30502,11964,-30505,11956,-30508,11948,-30511,11941,-30514,11933,-30517,11925,-30520,11917,-30523,11909,-30526,11902,-30529,11894,-30533,11886,-30536,11878,-30539,11870,-30542,11862,-30545,11855,-30548,11847,-30551,11839,-30554,11831,-30557,11823,-30560,11816,-30563,11808,-30566,11800,-30569,11792,-30572,11784,-30575,11777,-30578,11769,-30581,11761,-30584,11753,-30587,11745,-30590,11737,-30593,11730,-30596,11722,-30599,11714,-30602,11706,-30605,11698,-30608,11691,-30611,11683,-30614,11675,-30617,11667,-30620,11659,-30623,11651,-30626,11644,-30629,11636,-30632,11628,-30635,11620,-30638,11612,-30641,11604,-30644,11597,-30647,11589,-30650,11581,-30653,11573,-30656,11565,-30658,11557,-30661,11550,-30664,11542,-30667,11534,-30670,11526,-30673,11518,-30676,11510,-30679,11502,-30682,11495,-30685,11487,-30688,11479,-30691,11471,-30694,11463,-30697,11455,-30700,11448,-30703,11440,-30706,11432,-30708,11424,-30711,11416,-30714,11408,-30717,11400,-30720,11393,-30723,11385,-30726,11377,-30729,11369,-30732,11361,-30735,11353,-30738,11345,-30740,11338,-30743,11330,-30746,11322,-30749,11314,-30752,11306,-30755,11298,-30758,11290,-30761,11283,-30764,11275,-30767,11267,-30769,11259,-30772,11251,-30775,11243,-30778,11235,-30781,11227,-30784,11220,-30787,11212,-30789,11204,-30792,11196,-30795,11188,-30798,11180,-30801,11172,-30804,11164,-30807,11157,-30810,11149,-30812,11141,-30815,11133,-30818,11125,-30821,11117,-30824,11109,-30827,11101,-30829,11094,-30832,11086,-30835,11078,-30838,11070,-30841,11062,-30844,11054,-30846,11046,-30849,11038,-30852,11030,-30855,11023,-30858,11015,-30861,11007,-30863,10999,-30866,10991,-30869,10983,-30872,10975,-30875,10967,-30877,10959,-30880,10952,-30883,10944,-30886,10936,-30889,10928,-30891,10920,-30894,10912,-30897,10904,-30900,10896,-30903,10888,-30905,10880,-30908,10873,-30911,10865,-30914,10857,-30916,10849,-30919,10841,-30922,10833,-30925,10825,-30928,10817,-30930,10809,-30933,10801,-30936,10794,-30939,10786,-30941,10778,-30944,10770,-30947,10762,-30950,10754,-30952,10746,-30955,10738,-30958,10730,-30961,10722,-30963,10714,-30966,10706,-30969,10699,-30972,10691,-30974,10683,-30977,10675,-30980,10667,-30982,10659,-30985,10651,-30988,10643,-30991,10635,-30993,10627,-30996,10619,-30999,10611,-31002,10603,-31004,10596,-31007,10588,-31010,10580,-31012,10572,-31015,10564,-31018,10556,-31020,10548,-31023,10540,-31026,10532,-31029,10524,-31031,10516,-31034,10508,-31037,10500,-31039,10492,-31042,10484,-31045,10477,-31047,10469,-31050,10461,-31053,10453,-31055,10445,-31058,10437,-31061,10429,-31063,10421,-31066,10413,-31069,10405,-31071,10397,-31074,10389,-31077,10381,-31079,10373,-31082,10365,-31085,10357,-31087,10349,-31090,10342,-31093,10334,-31095,10326,-31098,10318,-31101,10310,-31103,10302,-31106,10294,-31108,10286,-31111,10278,-31114,10270,-31116,10262,-31119,10254,-31122,10246,-31124,10238,-31127,10230,-31129,10222,-31132,10214,-31135,10206,-31137,10198,-31140,10190,-31142,10182,-31145,10174,-31148,10166,-31150,10159,-31153,10151,-31155,10143,-31158,10135,-31161,10127,-31163,10119,-31166,10111,-31168,10103,-31171,10095,-31174,10087,-31176,10079,-31179,10071,-31181,10063,-31184,10055,-31186,10047,-31189,10039,-31192,10031,-31194,10023,-31197,10015,-31199,10007,-31202,9999,-31204,9991,-31207,9983,-31210,9975,-31212,9967,-31215,9959,-31217,9951,-31220,9943,-31222,9935,-31225,9927,-31227,9919,-31230,9911,-31232,9903,-31235,9895,-31237,9887,-31240,9879,-31243,9871,-31245,9863,-31248,9855,-31250,9847,-31253,9839,-31255,9831,-31258,9823,-31260,9815,-31263,9807,-31265,9799,-31268,9791,-31270,9783,-31273,9775,-31275,9767,-31278,9759,-31280,9751,-31283,9743,-31285,9735,-31288,9727,-31290,9719,-31293,9711,-31295,9703,-31298,9695,-31300,9687,-31303,9679,-31305,9671,-31308,9663,-31310,9655,-31312,9647,-31315,9639,-31317,9631,-31320,9623,-31322,9615,-31325,9607,-31327,9599,-31330,9591,-31332,9583,-31335,9575,-31337,9567,-31339,9559,-31342,9551,-31344,9543,-31347,9535,-31349,9527,-31352,9519,-31354,9511,-31357,9503,-31359,9495,-31361,9487,-31364,9479,-31366,9471,-31369,9463,-31371,9455,-31374,9447,-31376,9439,-31378,9431,-31381,9423,-31383,9415,-31386,9407,-31388,9399,-31390,9391,-31393,9383,-31395,9375,-31398,9367,-31400,9359,-31402,9351,-31405,9343,-31407,9335,-31410,9327,-31412,9319,-31414,9311,-31417,9303,-31419,9295,-31421,9287,-31424,9279,-31426,9270,-31429,9262,-31431,9254,-31433,9246,-31436,9238,-31438,9230,-31440,9222,-31443,9214,-31445,9206,-31447,9198,-31450,9190,-31452,9182,-31455,9174,-31457,9166,-31459,9158,-31462,9150,-31464,9142,-31466,9134,-31469,9126,-31471,9118,-31473,9110,-31476,9102,-31478,9094,-31480,9086,-31483,9077,-31485,9069,-31487,9061,-31490,9053,-31492,9045,-31494,9037,-31496,9029,-31499,9021,-31501,9013,-31503,9005,-31506,8997,-31508,8989,-31510,8981,-31513,8973,-31515,8965,-31517,8957,-31519,8949,-31522,8941,-31524,8932,-31526,8924,-31529,8916,-31531,8908,-31533,8900,-31535,8892,-31538,8884,-31540,8876,-31542,8868,-31545,8860,-31547,8852,-31549,8844,-31551,8836,-31554,8828,-31556,8820,-31558,8812,-31560,8803,-31563,8795,-31565,8787,-31567,8779,-31569,8771,-31572,8763,-31574,8755,-31576,8747,-31578,8739,-31581,8731,-31583,8723,-31585,8715,-31587,8707,-31589,8699,-31592,8690,-31594,8682,-31596,8674,-31598,8666,-31601,8658,-31603,8650,-31605,8642,-31607,8634,-31609,8626,-31612,8618,-31614,8610,-31616,8602,-31618,8593,-31620,8585,-31623,8577,-31625,8569,-31627,8561,-31629,8553,-31631,8545,-31634,8537,-31636,8529,-31638,8521,-31640,8513,-31642,8504,-31644,8496,-31647,8488,-31649,8480,-31651,8472,-31653,8464,-31655,8456,-31657,8448,-31660,8440,-31662,8432,-31664,8424,-31666,8415,-31668,8407,-31670,8399,-31673,8391,-31675,8383,-31677,8375,-31679,8367,-31681,8359,-31683,8351,-31685,8343,-31688,8334,-31690,8326,-31692,8318,-31694,8310,-31696,8302,-31698,8294,-31700,8286,-31702,8278,-31705,8270,-31707,8262,-31709,8253,-31711,8245,-31713,8237,-31715,8229,-31717,8221,-31719,8213,-31721,8205,-31724,8197,-31726,8189,-31728,8180,-31730,8172,-31732,8164,-31734,8156,-31736,8148,-31738,8140,-31740,8132,-31742,8124,-31744,8116,-31746,8107,-31749,8099,-31751,8091,-31753,8083,-31755,8075,-31757,8067,-31759,8059,-31761,8051,-31763,8042,-31765,8034,-31767,8026,-31769,8018,-31771,8010,-31773,8002,-31775,7994,-31777,7986,-31779,7977,-31781,7969,-31783,7961,-31786,7953,-31788,7945,-31790,7937,-31792,7929,-31794,7921,-31796,7912,-31798,7904,-31800,7896,-31802,7888,-31804,7880,-31806,7872,-31808,7864,-31810,7856,-31812,7847,-31814,7839,-31816,7831,-31818,7823,-31820,7815,-31822,7807,-31824,7799,-31826,7790,-31828,7782,-31830,7774,-31832,7766,-31834,7758,-31836,7750,-31838,7742,-31840,7733,-31842,7725,-31844,7717,-31846,7709,-31848,7701,-31850,7693,-31852,7685,-31854,7676,-31855,7668,-31857,7660,-31859,7652,-31861,7644,-31863,7636,-31865,7628,-31867,7619,-31869,7611,-31871,7603,-31873,7595,-31875,7587,-31877,7579,-31879,7571,-31881,7562,-31883,7554,-31885,7546,-31887,7538,-31889,7530,-31890,7522,-31892,7514,-31894,7505,-31896,7497,-31898,7489,-31900,7481,-31902,7473,-31904,7465,-31906,7456,-31908,7448,-31910,7440,-31912,7432,-31913,7424,-31915,7416,-31917,7407,-31919,7399,-31921,7391,-31923,7383,-31925,7375,-31927,7367,-31929,7358,-31930,7350,-31932,7342,-31934,7334,-31936,7326,-31938,7318,-31940,7310,-31942,7301,-31944,7293,-31945,7285,-31947,7277,-31949,7269,-31951,7261,-31953,7252,-31955,7244,-31957,7236,-31958,7228,-31960,7220,-31962,7211,-31964,7203,-31966,7195,-31968,7187,-31969,7179,-31971,7171,-31973,7162,-31975,7154,-31977,7146,-31979,7138,-31980,7130,-31982,7122,-31984,7113,-31986,7105,-31988,7097,-31990,7089,-31991,7081,-31993,7072,-31995,7064,-31997,7056,-31999,7048,-32000,7040,-32002,7032,-32004,7023,-32006,7015,-32008,7007,-32009,6999,-32011,6991,-32013,6982,-32015,6974,-32017,6966,-32018,6958,-32020,6950,-32022,6942,-32024,6933,-32025,6925,-32027,6917,-32029,6909,-32031,6901,-32033,6892,-32034,6884,-32036,6876,-32038,6868,-32040,6860,-32041,6851,-32043,6843,-32045,6835,-32047,6827,-32048,6819,-32050,6811,-32052,6802,-32054,6794,-32055,6786,-32057,6778,-32059,6770,-32060,6761,-32062,6753,-32064,6745,-32066,6737,-32067,6729,-32069,6720,-32071,6712,-32073,6704,-32074,6696,-32076,6688,-32078,6679,-32079,6671,-32081,6663,-32083,6655,-32085,6647,-32086,6638,-32088,6630,-32090,6622,-32091,6614,-32093,6606,-32095,6597,-32096,6589,-32098,6581,-32100,6573,-32101,6564,-32103,6556,-32105,6548,-32106,6540,-32108,6532,-32110,6523,-32111,6515,-32113,6507,-32115,6499,-32116,6491,-32118,6482,-32120,6474,-32121,6466,-32123,6458,-32125,6450,-32126,6441,-32128,6433,-32130,6425,-32131,6417,-32133,6408,-32135,6400,-32136,6392,-32138,6384,-32140,6376,-32141,6367,-32143,6359,-32144,6351,-32146,6343,-32148,6334,-32149,6326,-32151,6318,-32153,6310,-32154,6302,-32156,6293,-32157,6285,-32159,6277,-32161,6269,-32162,6261,-32164,6252,-32165,6244,-32167,6236,-32169,6228,-32170,6219,-32172,6211,-32173,6203,-32175,6195,-32177,6186,-32178,6178,-32180,6170,-32181,6162,-32183,6154,-32184,6145,-32186,6137,-32188,6129,-32189,6121,-32191,6112,-32192,6104,-32194,6096,-32195,6088,-32197,6080,-32198,6071,-32200,6063,-32202,6055,-32203,6047,-32205,6038,-32206,6030,-32208,6022,-32209,6014,-32211,6005,-32212,5997,-32214,5989,-32215,5981,-32217,5972,-32219,5964,-32220,5956,-32222,5948,-32223,5940,-32225,5931,-32226,5923,-32228,5915,-32229,5907,-32231,5898,-32232,5890,-32234,5882,-32235,5874,-32237,5865,-32238,5857,-32240,5849,-32241,5841,-32243,5832,-32244,5824,-32246,5816,-32247,5808,-32249,5799,-32250,5791,-32252,5783,-32253,5775,-32255,5766,-32256,5758,-32257,5750,-32259,5742,-32260,5733,-32262,5725,-32263,5717,-32265,5709,-32266,5700,-32268,5692,-32269,5684,-32271,5676,-32272,5667,-32274,5659,-32275,5651,-32276,5643,-32278,5634,-32279,5626,-32281,5618,-32282,5610,-32284,5601,-32285,5593,-32287,5585,-32288,5577,-32289,5568,-32291,5560,-32292,5552,-32294,5544,-32295,5535,-32296,5527,-32298,5519,-32299,5511,-32301,5502,-32302,5494,-32304,5486,-32305,5478,-32306,5469,-32308,5461,-32309,5453,-32311,5445,-32312,5436,-32313,5428,-32315,5420,-32316,5411,-32317,5403,-32319,5395,-32320,5387,-32322,5378,-32323,5370,-32324,5362,-32326,5354,-32327,5345,-32328,5337,-32330,5329,-32331,5321,-32333,5312,-32334,5304,-32335,5296,-32337,5287,-32338,5279,-32339,5271,-32341,5263,-32342,5254,-32343,5246,-32345,5238,-32346,5230,-32347,5221,-32349,5213,-32350,5205,-32351,5197,-32353,5188,-32354,5180,-32355,5172,-32357,5163,-32358,5155,-32359,5147,-32361,5139,-32362,5130,-32363,5122,-32365,5114,-32366,5106,-32367,5097,-32369,5089,-32370,5081,-32371,5072,-32372,5064,-32374,5056,-32375,5048,-32376,5039,-32378,5031,-32379,5023,-32380,5014,-32381,5006,-32383,4998,-32384,4990,-32385,4981,-32387,4973,-32388,4965,-32389,4957,-32390,4948,-32392,4940,-32393,4932,-32394,4923,-32395,4915,-32397,4907,-32398,4899,-32399,4890,-32400,4882,-32402,4874,-32403,4865,-32404,4857,-32405,4849,-32407,4841,-32408,4832,-32409,4824,-32410,4816,-32412,4807,-32413,4799,-32414,4791,-32415,4783,-32417,4774,-32418,4766,-32419,4758,-32420,4749,-32421,4741,-32423,4733,-32424,4725,-32425,4716,-32426,4708,-32427,4700,-32429,4691,-32430,4683,-32431,4675,-32432,4666,-32433,4658,-32435,4650,-32436,4642,-32437,4633,-32438,4625,-32439,4617,-32441,4608,-32442,4600,-32443,4592,-32444,4584,-32445,4575,-32446,4567,-32448,4559,-32449,4550,-32450,4542,-32451,4534,-32452,4525,-32453,4517,-32455,4509,-32456,4501,-32457,4492,-32458,4484,-32459,4476,-32460,4467,-32461,4459,-32463,4451,-32464,4443,-32465,4434,-32466,4426,-32467,4418,-32468,4409,-32469,4401,-32471,4393,-32472,4384,-32473,4376,-32474,4368,-32475,4359,-32476,4351,-32477,4343,-32478,4335,-32479,4326,-32481,4318,-32482,4310,-32483,4301,-32484,4293,-32485,4285,-32486,4276,-32487,4268,-32488,4260,-32489,4252,-32490,4243,-32492,4235,-32493,4227,-32494,4218,-32495,4210,-32496,4202,-32497,4193,-32498,4185,-32499,4177,-32500,4168,-32501,4160,-32502,4152,-32503,4144,-32504,4135,-32505,4127,-32507,4119,-32508,4110,-32509,4102,-32510,4094,-32511,4085,-32512,4077,-32513,4069,-32514,4060,-32515,4052,-32516,4044,-32517,4035,-32518,4027,-32519,4019,-32520,4011,-32521,4002,-32522,3994,-32523,3986,-32524,3977,-32525,3969,-32526,3961,-32527,3952,-32528,3944,-32529,3936,-32530,3927,-32531,3919,-32532,3911,-32533,3902,-32534,3894,-32535,3886,-32536,3877,-32537,3869,-32538,3861,-32539,3853,-32540,3844,-32541,3836,-32542,3828,-32543,3819,-32544,3811,-32545,3803,-32546,3794,-32547,3786,-32548,3778,-32549,3769,-32550,3761,-32551,3753,-32552,3744,-32553,3736,-32554,3728,-32555,3719,-32556,3711,-32557,3703,-32558,3694,-32559,3686,-32559,3678,-32560,3669,-32561,3661,-32562,3653,-32563,3644,-32564,3636,-32565,3628,-32566,3619,-32567,3611,-32568,3603,-32569,3594,-32570,3586,-32571,3578,-32572,3570,-32572,3561,-32573,3553,-32574,3545,-32575,3536,-32576,3528,-32577,3520,-32578,3511,-32579,3503,-32580,3495,-32581,3486,-32581,3478,-32582,3470,-32583,3461,-32584,3453,-32585,3445,-32586,3436,-32587,3428,-32588,3420,-32589,3411,-32589,3403,-32590,3395,-32591,3386,-32592,3378,-32593,3370,-32594,3361,-32595,3353,-32595,3345,-32596,3336,-32597,3328,-32598,3320,-32599,3311,-32600,3303,-32601,3295,-32601,3286,-32602,3278,-32603,3270,-32604,3261,-32605,3253,-32606,3245,-32606,3236,-32607,3228,-32608,3220,-32609,3211,-32610,3203,-32611,3195,-32611,3186,-32612,3178,-32613,3170,-32614,3161,-32615,3153,-32615,3145,-32616,3136,-32617,3128,-32618,3120,-32619,3111,-32619,3103,-32620,3094,-32621,3086,-32622,3078,-32623,3069,-32623,3061,-32624,3053,-32625,3044,-32626,3036,-32626,3028,-32627,3019,-32628,3011,-32629,3003,-32630,2994,-32630,2986,-32631,2978,-32632,2969,-32633,2961,-32633,2953,-32634,2944,-32635,2936,-32636,2928,-32636,2919,-32637,2911,-32638,2903,-32639,2894,-32639,2886,-32640,2878,-32641,2869,-32642,2861,-32642,2853,-32643,2844,-32644,2836,-32645,2828,-32645,2819,-32646,2811,-32647,2802,-32647,2794,-32648,2786,-32649,2777,-32650,2769,-32650,2761,-32651,2752,-32652,2744,-32652,2736,-32653,2727,-32654,2719,-32654,2711,-32655,2702,-32656,2694,-32657,2686,-32657,2677,-32658,2669,-32659,2661,-32659,2652,-32660,2644,-32661,2636,-32661,2627,-32662,2619,-32663,2610,-32663,2602,-32664,2594,-32665,2585,-32665,2577,-32666,2569,-32667,2560,-32667,2552,-32668,2544,-32669,2535,-32669,2527,-32670,2519,-32671,2510,-32671,2502,-32672,2494,-32672,2485,-32673,2477,-32674,2468,-32674,2460,-32675,2452,-32676,2443,-32676,2435,-32677,2427,-32677,2418,-32678,2410,-32679,2402,-32679,2393,-32680,2385,-32681,2377,-32681,2368,-32682,2360,-32682,2352,-32683,2343,-32684,2335,-32684,2326,-32685,2318,-32685,2310,-32686,2301,-32687,2293,-32687,2285,-32688,2276,-32688,2268,-32689,2260,-32689,2251,-32690,2243,-32691,2235,-32691,2226,-32692,2218,-32692,2209,-32693,2201,-32693,2193,-32694,2184,-32695,2176,-32695,2168,-32696,2159,-32696,2151,-32697,2143,-32697,2134,-32698,2126,-32698,2117,-32699,2109,-32700,2101,-32700,2092,-32701,2084,-32701,2076,-32702,2067,-32702,2059,-32703,2051,-32703,2042,-32704,2034,-32704,2026,-32705,2017,-32705,2009,-32706,2000,-32706,1992,-32707,1984,-32707,1975,-32708,1967,-32708,1959,-32709,1950,-32709,1942,-32710,1934,-32710,1925,-32711,1917,-32711,1908,-32712,1900,-32712,1892,-32713,1883,-32713,1875,-32714,1867,-32714,1858,-32715,1850,-32715,1842,-32716,1833,-32716,1825,-32717,1816,-32717,1808,-32718,1800,-32718,1791,-32718,1783,-32719,1775,-32719,1766,-32720,1758,-32720,1750,-32721,1741,-32721,1733,-32722,1724,-32722,1716,-32723,1708,-32723,1699,-32723,1691,-32724,1683,-32724,1674,-32725,1666,-32725,1658,-32726,1649,-32726,1641,-32726,1632,-32727,1624,-32727,1616,-32728,1607,-32728,1599,-32728,1591,-32729,1582,-32729,1574,-32730,1565,-32730,1557,-32730,1549,-32731,1540,-32731,1532,-32732,1524,-32732,1515,-32732,1507,-32733,1499,-32733,1490,-32734,1482,-32734,1473,-32734,1465,-32735,1457,-32735,1448,-32735,1440,-32736,1432,-32736,1423,-32737,1415,-32737,1406,-32737,1398,-32738,1390,-32738,1381,-32738,1373,-32739,1365,-32739,1356,-32739,1348,-32740,1339,-32740,1331,-32740,1323,-32741,1314,-32741,1306,-32741,1298,-32742,1289,-32742,1281,-32742,1273,-32743,1264,-32743,1256,-32743,1247,-32744,1239,-32744,1231,-32744,1222,-32745,1214,-32745,1206,-32745,1197,-32746,1189,-32746,1180,-32746,1172,-32747,1164,-32747,1155,-32747,1147,-32747,1139,-32748,1130,-32748,1122,-32748,1113,-32749,1105,-32749,1097,-32749,1088,-32749,1080,-32750,1072,-32750,1063,-32750,1055,-32751,1046,-32751,1038,-32751,1030,-32751,1021,-32752,1013,-32752,1005,-32752,996,-32752,988,-32753,980,-32753,971,-32753,963,-32753,954,-32754,946,-32754,938,-32754,929,-32754,921,-32755,913,-32755,904,-32755,896,-32755,887,-32755,879,-32756,871,-32756,862,-32756,854,-32756,846,-32757,837,-32757,829,-32757,820,-32757,812,-32757,804,-32758,795,-32758,787,-32758,779,-32758,770,-32758,762,-32759,753,-32759,745,-32759,737,-32759,728,-32759,720,-32760,712,-32760,703,-32760,695,-32760,686,-32760,678,-32760,670,-32761,661,-32761,653,-32761,645,-32761,636,-32761,628,-32761,619,-32762,611,-32762,603,-32762,594,-32762,586,-32762,578,-32762,569,-32763,561,-32763,552,-32763,544,-32763,536,-32763,527,-32763,519,-32763,510,-32764,502,-32764,494,-32764,485,-32764,477,-32764,469,-32764,460,-32764,452,-32764,443,-32764,435,-32765,427,-32765,418,-32765,410,-32765,402,-32765,393,-32765,385,-32765,376,-32765,368,-32765,360,-32766,351,-32766,343,-32766,335,-32766,326,-32766,318,-32766,309,-32766,301,-32766,293,-32766,284,-32766,276,-32766,268,-32766,259,-32766,251,-32767,242,-32767,234,-32767,226,-32767,217,-32767,209,-32767,201,-32767,192,-32767,184,-32767,175,-32767,167,-32767,159,-32767,150,-32767,142,-32767,134,-32767,125,-32767,117,-32767,108,-32767,100,-32767,92,-32767,83,-32767,75,-32767,67,-32767,58,-32767,50,-32767,41,-32767,33,-32767,25,-32767,16,-32767,8,-32767,0,-32767,-9,-32767,-17,-32767,-26,-32767,-34,-32767,-42,-32767,-51,-32767,-59,-32767,-68,-32767,-76,-32767,-84,-32767,-93,-32767,-101,-32767,-109,-32767,-118,-32767,-126,-32767,-135,-32767,-143,-32767,-151,-32767,-160,-32767,-168,-32767,-176,-32767,-185,-32767,-193,-32767,-202,-32767,-210,-32767,-218,-32767,-227,-32767,-235,-32767,-243,-32767,-252,-32767,-260,-32766,-269,-32766,-277,-32766,-285,-32766,-294,-32766,-302,-32766,-310,-32766,-319,-32766,-327,-32766,-336,-32766,-344,-32766,-352,-32766,-361,-32766,-369,-32765,-377,-32765,-386,-32765,-394,-32765,-403,-32765,-411,-32765,-419,-32765,-428,-32765,-436,-32765,-444,-32764,-453,-32764,-461,-32764,-470,-32764,-478,-32764,-486,-32764,-495,-32764,-503,-32764,-511,-32764,-520,-32763,-528,-32763,-537,-32763,-545,-32763,-553,-32763,-562,-32763,-570,-32763,-579,-32762,-587,-32762,-595,-32762,-604,-32762,-612,-32762,-620,-32762,-629,-32761,-637,-32761,-646,-32761,-654,-32761,-662,-32761,-671,-32761,-679,-32760,-687,-32760,-696,-32760,-704,-32760,-713,-32760,-721,-32760,-729,-32759,-738,-32759,-746,-32759,-754,-32759,-763,-32759,-771,-32758,-780,-32758,-788,-32758,-796,-32758,-805,-32758,-813,-32757,-821,-32757,-830,-32757,-838,-32757,-847,-32757,-855,-32756,-863,-32756,-872,-32756,-880,-32756,-888,-32755,-897,-32755,-905,-32755,-914,-32755,-922,-32755,-930,-32754,-939,-32754,-947,-32754,-955,-32754,-964,-32753,-972,-32753,-981,-32753,-989,-32753,-997,-32752,-1006,-32752,-1014,-32752,-1022,-32752,-1031,-32751,-1039,-32751,-1047,-32751,-1056,-32751,-1064,-32750,-1073,-32750,-1081,-32750,-1089,-32749,-1098,-32749,-1106,-32749,-1114,-32749,-1123,-32748,-1131,-32748,-1140,-32748,-1148,-32747,-1156,-32747,-1165,-32747,-1173,-32747,-1181,-32746,-1190,-32746,-1198,-32746,-1207,-32745,-1215,-32745,-1223,-32745,-1232,-32744,-1240,-32744,-1248,-32744,-1257,-32743,-1265,-32743,-1274,-32743,-1282,-32742,-1290,-32742,-1299,-32742,-1307,-32741,-1315,-32741,-1324,-32741,-1332,-32740,-1340,-32740,-1349,-32740,-1357,-32739,-1366,-32739,-1374,-32739,-1382,-32738,-1391,-32738,-1399,-32738,-1407,-32737,-1416,-32737,-1424,-32737,-1433,-32736,-1441,-32736,-1449,-32735,-1458,-32735,-1466,-32735,-1474,-32734,-1483,-32734,-1491,-32734,-1500,-32733,-1508,-32733,-1516,-32732,-1525,-32732,-1533,-32732,-1541,-32731,-1550,-32731,-1558,-32730,-1566,-32730,-1575,-32730,-1583,-32729,-1592,-32729,-1600,-32728,-1608,-32728,-1617,-32728,-1625,-32727,-1633,-32727,-1642,-32726,-1650,-32726,-1659,-32726,-1667,-32725,-1675,-32725,-1684,-32724,-1692,-32724,-1700,-32723,-1709,-32723,-1717,-32723,-1725,-32722,-1734,-32722,-1742,-32721,-1751,-32721,-1759,-32720,-1767,-32720,-1776,-32719,-1784,-32719,-1792,-32718,-1801,-32718,-1809,-32718,-1817,-32717,-1826,-32717,-1834,-32716,-1843,-32716,-1851,-32715,-1859,-32715,-1868,-32714,-1876,-32714,-1884,-32713,-1893,-32713,-1901,-32712,-1909,-32712,-1918,-32711,-1926,-32711,-1935,-32710,-1943,-32710,-1951,-32709,-1960,-32709,-1968,-32708,-1976,-32708,-1985,-32707,-1993,-32707,-2001,-32706,-2010,-32706,-2018,-32705,-2027,-32705,-2035,-32704,-2043,-32704,-2052,-32703,-2060,-32703,-2068,-32702,-2077,-32702,-2085,-32701,-2093,-32701,-2102,-32700,-2110,-32700,-2118,-32699,-2127,-32698,-2135,-32698,-2144,-32697,-2152,-32697,-2160,-32696,-2169,-32696,-2177,-32695,-2185,-32695,-2194,-32694,-2202,-32693,-2210,-32693,-2219,-32692,-2227,-32692,-2236,-32691,-2244,-32691,-2252,-32690,-2261,-32689,-2269,-32689,-2277,-32688,-2286,-32688,-2294,-32687,-2302,-32687,-2311,-32686,-2319,-32685,-2327,-32685,-2336,-32684,-2344,-32684,-2353,-32683,-2361,-32682,-2369,-32682,-2378,-32681,-2386,-32681,-2394,-32680,-2403,-32679,-2411,-32679,-2419,-32678,-2428,-32677,-2436,-32677,-2444,-32676,-2453,-32676,-2461,-32675,-2469,-32674,-2478,-32674,-2486,-32673,-2495,-32672,-2503,-32672,-2511,-32671,-2520,-32671,-2528,-32670,-2536,-32669,-2545,-32669,-2553,-32668,-2561,-32667,-2570,-32667,-2578,-32666,-2586,-32665,-2595,-32665,-2603,-32664,-2611,-32663,-2620,-32663,-2628,-32662,-2637,-32661,-2645,-32661,-2653,-32660,-2662,-32659,-2670,-32659,-2678,-32658,-2687,-32657,-2695,-32657,-2703,-32656,-2712,-32655,-2720,-32654,-2728,-32654,-2737,-32653,-2745,-32652,-2753,-32652,-2762,-32651,-2770,-32650,-2778,-32650,-2787,-32649,-2795,-32648,-2803,-32647,-2812,-32647,-2820,-32646,-2829,-32645,-2837,-32645,-2845,-32644,-2854,-32643,-2862,-32642,-2870,-32642,-2879,-32641,-2887,-32640,-2895,-32639,-2904,-32639,-2912,-32638,-2920,-32637,-2929,-32636,-2937,-32636,-2945,-32635,-2954,-32634,-2962,-32633,-2970,-32633,-2979,-32632,-2987,-32631,-2995,-32630,-3004,-32630,-3012,-32629,-3020,-32628,-3029,-32627,-3037,-32626,-3045,-32626,-3054,-32625,-3062,-32624,-3070,-32623,-3079,-32623,-3087,-32622,-3095,-32621,-3104,-32620,-3112,-32619,-3121,-32619,-3129,-32618,-3137,-32617,-3146,-32616,-3154,-32615,-3162,-32615,-3171,-32614,-3179,-32613,-3187,-32612,-3196,-32611,-3204,-32611,-3212,-32610,-3221,-32609,-3229,-32608,-3237,-32607,-3246,-32606,-3254,-32606,-3262,-32605,-3271,-32604,-3279,-32603,-3287,-32602,-3296,-32601,-3304,-32601,-3312,-32600,-3321,-32599,-3329,-32598,-3337,-32597,-3346,-32596,-3354,-32595,-3362,-32595,-3371,-32594,-3379,-32593,-3387,-32592,-3396,-32591,-3404,-32590,-3412,-32589,-3421,-32589,-3429,-32588,-3437,-32587,-3446,-32586,-3454,-32585,-3462,-32584,-3471,-32583,-3479,-32582,-3487,-32581,-3496,-32581,-3504,-32580,-3512,-32579,-3521,-32578,-3529,-32577,-3537,-32576,-3546,-32575,-3554,-32574,-3562,-32573,-3571,-32572,-3579,-32572,-3587,-32571,-3595,-32570,-3604,-32569,-3612,-32568,-3620,-32567,-3629,-32566,-3637,-32565,-3645,-32564,-3654,-32563,-3662,-32562,-3670,-32561,-3679,-32560,-3687,-32559,-3695,-32559,-3704,-32558,-3712,-32557,-3720,-32556,-3729,-32555,-3737,-32554,-3745,-32553,-3754,-32552,-3762,-32551,-3770,-32550,-3779,-32549,-3787,-32548,-3795,-32547,-3804,-32546,-3812,-32545,-3820,-32544,-3829,-32543,-3837,-32542,-3845,-32541,-3854,-32540,-3862,-32539,-3870,-32538,-3878,-32537,-3887,-32536,-3895,-32535,-3903,-32534,-3912,-32533,-3920,-32532,-3928,-32531,-3937,-32530,-3945,-32529,-3953,-32528,-3962,-32527,-3970,-32526,-3978,-32525,-3987,-32524,-3995,-32523,-4003,-32522,-4012,-32521,-4020,-32520,-4028,-32519,-4036,-32518,-4045,-32517,-4053,-32516,-4061,-32515,-4070,-32514,-4078,-32513,-4086,-32512,-4095,-32511,-4103,-32510,-4111,-32509,-4120,-32508,-4128,-32507,-4136,-32505,-4145,-32504,-4153,-32503,-4161,-32502,-4169,-32501,-4178,-32500,-4186,-32499,-4194,-32498,-4203,-32497,-4211,-32496,-4219,-32495,-4228,-32494,-4236,-32493,-4244,-32492,-4253,-32490,-4261,-32489,-4269,-32488,-4277,-32487,-4286,-32486,-4294,-32485,-4302,-32484,-4311,-32483,-4319,-32482,-4327,-32481,-4336,-32479,-4344,-32478,-4352,-32477,-4360,-32476,-4369,-32475,-4377,-32474,-4385,-32473,-4394,-32472,-4402,-32471,-4410,-32469,-4419,-32468,-4427,-32467,-4435,-32466,-4444,-32465,-4452,-32464,-4460,-32463,-4468,-32461,-4477,-32460,-4485,-32459,-4493,-32458,-4502,-32457,-4510,-32456,-4518,-32455,-4526,-32453,-4535,-32452,-4543,-32451,-4551,-32450,-4560,-32449,-4568,-32448,-4576,-32446,-4585,-32445,-4593,-32444,-4601,-32443,-4609,-32442,-4618,-32441,-4626,-32439,-4634,-32438,-4643,-32437,-4651,-32436,-4659,-32435,-4667,-32433,-4676,-32432,-4684,-32431,-4692,-32430,-4701,-32429,-4709,-32427,-4717,-32426,-4726,-32425,-4734,-32424,-4742,-32423,-4750,-32421,-4759,-32420,-4767,-32419,-4775,-32418,-4784,-32417,-4792,-32415,-4800,-32414,-4808,-32413,-4817,-32412,-4825,-32410,-4833,-32409,-4842,-32408,-4850,-32407,-4858,-32405,-4866,-32404,-4875,-32403,-4883,-32402,-4891,-32400,-4900,-32399,-4908,-32398,-4916,-32397,-4924,-32395,-4933,-32394,-4941,-32393,-4949,-32392,-4958,-32390,-4966,-32389,-4974,-32388,-4982,-32387,-4991,-32385,-4999,-32384,-5007,-32383,-5015,-32381,-5024,-32380,-5032,-32379,-5040,-32378,-5049,-32376,-5057,-32375,-5065,-32374,-5073,-32372,-5082,-32371,-5090,-32370,-5098,-32369,-5107,-32367,-5115,-32366,-5123,-32365,-5131,-32363,-5140,-32362,-5148,-32361,-5156,-32359,-5164,-32358,-5173,-32357,-5181,-32355,-5189,-32354,-5198,-32353,-5206,-32351,-5214,-32350,-5222,-32349,-5231,-32347,-5239,-32346,-5247,-32345,-5255,-32343,-5264,-32342,-5272,-32341,-5280,-32339,-5288,-32338,-5297,-32337,-5305,-32335,-5313,-32334,-5322,-32333,-5330,-32331,-5338,-32330,-5346,-32328,-5355,-32327,-5363,-32326,-5371,-32324,-5379,-32323,-5388,-32322,-5396,-32320,-5404,-32319,-5412,-32317,-5421,-32316,-5429,-32315,-5437,-32313,-5446,-32312,-5454,-32311,-5462,-32309,-5470,-32308,-5479,-32306,-5487,-32305,-5495,-32304,-5503,-32302,-5512,-32301,-5520,-32299,-5528,-32298,-5536,-32296,-5545,-32295,-5553,-32294,-5561,-32292,-5569,-32291,-5578,-32289,-5586,-32288,-5594,-32287,-5602,-32285,-5611,-32284,-5619,-32282,-5627,-32281,-5635,-32279,-5644,-32278,-5652,-32276,-5660,-32275,-5668,-32274,-5677,-32272,-5685,-32271,-5693,-32269,-5701,-32268,-5710,-32266,-5718,-32265,-5726,-32263,-5734,-32262,-5743,-32260,-5751,-32259,-5759,-32257,-5767,-32256,-5776,-32255,-5784,-32253,-5792,-32252,-5800,-32250,-5809,-32249,-5817,-32247,-5825,-32246,-5833,-32244,-5842,-32243,-5850,-32241,-5858,-32240,-5866,-32238,-5875,-32237,-5883,-32235,-5891,-32234,-5899,-32232,-5908,-32231,-5916,-32229,-5924,-32228,-5932,-32226,-5941,-32225,-5949,-32223,-5957,-32222,-5965,-32220,-5973,-32219,-5982,-32217,-5990,-32215,-5998,-32214,-6006,-32212,-6015,-32211,-6023,-32209,-6031,-32208,-6039,-32206,-6048,-32205,-6056,-32203,-6064,-32202,-6072,-32200,-6081,-32198,-6089,-32197,-6097,-32195,-6105,-32194,-6113,-32192,-6122,-32191,-6130,-32189,-6138,-32188,-6146,-32186,-6155,-32184,-6163,-32183,-6171,-32181,-6179,-32180,-6187,-32178,-6196,-32177,-6204,-32175,-6212,-32173,-6220,-32172,-6229,-32170,-6237,-32169,-6245,-32167,-6253,-32165,-6262,-32164,-6270,-32162,-6278,-32161,-6286,-32159,-6294,-32157,-6303,-32156,-6311,-32154,-6319,-32153,-6327,-32151,-6335,-32149,-6344,-32148,-6352,-32146,-6360,-32144,-6368,-32143,-6377,-32141,-6385,-32140,-6393,-32138,-6401,-32136,-6409,-32135,-6418,-32133,-6426,-32131,-6434,-32130,-6442,-32128,-6451,-32126,-6459,-32125,-6467,-32123,-6475,-32121,-6483,-32120,-6492,-32118,-6500,-32116,-6508,-32115,-6516,-32113,-6524,-32111,-6533,-32110,-6541,-32108,-6549,-32106,-6557,-32105,-6565,-32103,-6574,-32101,-6582,-32100,-6590,-32098,-6598,-32096,-6607,-32095,-6615,-32093,-6623,-32091,-6631,-32090,-6639,-32088,-6648,-32086,-6656,-32085,-6664,-32083,-6672,-32081,-6680,-32079,-6689,-32078,-6697,-32076,-6705,-32074,-6713,-32073,-6721,-32071,-6730,-32069,-6738,-32067,-6746,-32066,-6754,-32064,-6762,-32062,-6771,-32060,-6779,-32059,-6787,-32057,-6795,-32055,-6803,-32054,-6812,-32052,-6820,-32050,-6828,-32048,-6836,-32047,-6844,-32045,-6852,-32043,-6861,-32041,-6869,-32040,-6877,-32038,-6885,-32036,-6893,-32034,-6902,-32033,-6910,-32031,-6918,-32029,-6926,-32027,-6934,-32025,-6943,-32024,-6951,-32022,-6959,-32020,-6967,-32018,-6975,-32017,-6983,-32015,-6992,-32013,-7000,-32011,-7008,-32009,-7016,-32008,-7024,-32006,-7033,-32004,-7041,-32002,-7049,-32000,-7057,-31999,-7065,-31997,-7073,-31995,-7082,-31993,-7090,-31991,-7098,-31990,-7106,-31988,-7114,-31986,-7123,-31984,-7131,-31982,-7139,-31980,-7147,-31979,-7155,-31977,-7163,-31975,-7172,-31973,-7180,-31971,-7188,-31969,-7196,-31968,-7204,-31966,-7212,-31964,-7221,-31962,-7229,-31960,-7237,-31958,-7245,-31957,-7253,-31955,-7262,-31953,-7270,-31951,-7278,-31949,-7286,-31947,-7294,-31945,-7302,-31944,-7311,-31942,-7319,-31940,-7327,-31938,-7335,-31936,-7343,-31934,-7351,-31932,-7359,-31930,-7368,-31929,-7376,-31927,-7384,-31925,-7392,-31923,-7400,-31921,-7408,-31919,-7417,-31917,-7425,-31915,-7433,-31913,-7441,-31912,-7449,-31910,-7457,-31908,-7466,-31906,-7474,-31904,-7482,-31902,-7490,-31900,-7498,-31898,-7506,-31896,-7515,-31894,-7523,-31892,-7531,-31890,-7539,-31889,-7547,-31887,-7555,-31885,-7563,-31883,-7572,-31881,-7580,-31879,-7588,-31877,-7596,-31875,-7604,-31873,-7612,-31871,-7620,-31869,-7629,-31867,-7637,-31865,-7645,-31863,-7653,-31861,-7661,-31859,-7669,-31857,-7677,-31855,-7686,-31854,-7694,-31852,-7702,-31850,-7710,-31848,-7718,-31846,-7726,-31844,-7734,-31842,-7743,-31840,-7751,-31838,-7759,-31836,-7767,-31834,-7775,-31832,-7783,-31830,-7791,-31828,-7800,-31826,-7808,-31824,-7816,-31822,-7824,-31820,-7832,-31818,-7840,-31816,-7848,-31814,-7857,-31812,-7865,-31810,-7873,-31808,-7881,-31806,-7889,-31804,-7897,-31802,-7905,-31800,-7913,-31798,-7922,-31796,-7930,-31794,-7938,-31792,-7946,-31790,-7954,-31788,-7962,-31786,-7970,-31783,-7978,-31781,-7987,-31779,-7995,-31777,-8003,-31775,-8011,-31773,-8019,-31771,-8027,-31769,-8035,-31767,-8043,-31765,-8052,-31763,-8060,-31761,-8068,-31759,-8076,-31757,-8084,-31755,-8092,-31753,-8100,-31751,-8108,-31749,-8117,-31746,-8125,-31744,-8133,-31742,-8141,-31740,-8149,-31738,-8157,-31736,-8165,-31734,-8173,-31732,-8181,-31730,-8190,-31728,-8198,-31726,-8206,-31724,-8214,-31721,-8222,-31719,-8230,-31717,-8238,-31715,-8246,-31713,-8254,-31711,-8263,-31709,-8271,-31707,-8279,-31705,-8287,-31702,-8295,-31700,-8303,-31698,-8311,-31696,-8319,-31694,-8327,-31692,-8335,-31690,-8344,-31688,-8352,-31685,-8360,-31683,-8368,-31681,-8376,-31679,-8384,-31677,-8392,-31675,-8400,-31673,-8408,-31670,-8416,-31668,-8425,-31666,-8433,-31664,-8441,-31662,-8449,-31660,-8457,-31657,-8465,-31655,-8473,-31653,-8481,-31651,-8489,-31649,-8497,-31647,-8505,-31644,-8514,-31642,-8522,-31640,-8530,-31638,-8538,-31636,-8546,-31634,-8554,-31631,-8562,-31629,-8570,-31627,-8578,-31625,-8586,-31623,-8594,-31620,-8603,-31618,-8611,-31616,-8619,-31614,-8627,-31612,-8635,-31609,-8643,-31607,-8651,-31605,-8659,-31603,-8667,-31601,-8675,-31598,-8683,-31596,-8691,-31594,-8700,-31592,-8708,-31589,-8716,-31587,-8724,-31585,-8732,-31583,-8740,-31581,-8748,-31578,-8756,-31576,-8764,-31574,-8772,-31572,-8780,-31569,-8788,-31567,-8796,-31565,-8804,-31563,-8813,-31560,-8821,-31558,-8829,-31556,-8837,-31554,-8845,-31551,-8853,-31549,-8861,-31547,-8869,-31545,-8877,-31542,-8885,-31540,-8893,-31538,-8901,-31535,-8909,-31533,-8917,-31531,-8925,-31529,-8933,-31526,-8942,-31524,-8950,-31522,-8958,-31519,-8966,-31517,-8974,-31515,-8982,-31513,-8990,-31510,-8998,-31508,-9006,-31506,-9014,-31503,-9022,-31501,-9030,-31499,-9038,-31496,-9046,-31494,-9054,-31492,-9062,-31490,-9070,-31487,-9078,-31485,-9087,-31483,-9095,-31480,-9103,-31478,-9111,-31476,-9119,-31473,-9127,-31471,-9135,-31469,-9143,-31466,-9151,-31464,-9159,-31462,-9167,-31459,-9175,-31457,-9183,-31455,-9191,-31452,-9199,-31450,-9207,-31447,-9215,-31445,-9223,-31443,-9231,-31440,-9239,-31438,-9247,-31436,-9255,-31433,-9263,-31431,-9271,-31429,-9280,-31426,-9288,-31424,-9296,-31421,-9304,-31419,-9312,-31417,-9320,-31414,-9328,-31412,-9336,-31410,-9344,-31407,-9352,-31405,-9360,-31402,-9368,-31400,-9376,-31398,-9384,-31395,-9392,-31393,-9400,-31390,-9408,-31388,-9416,-31386,-9424,-31383,-9432,-31381,-9440,-31378,-9448,-31376,-9456,-31374,-9464,-31371,-9472,-31369,-9480,-31366,-9488,-31364,-9496,-31361,-9504,-31359,-9512,-31357,-9520,-31354,-9528,-31352,-9536,-31349,-9544,-31347,-9552,-31344,-9560,-31342,-9568,-31339,-9576,-31337,-9584,-31335,-9592,-31332,-9600,-31330,-9608,-31327,-9616,-31325,-9624,-31322,-9632,-31320,-9640,-31317,-9648,-31315,-9656,-31312,-9664,-31310,-9672,-31308,-9680,-31305,-9688,-31303,-9696,-31300,-9704,-31298,-9712,-31295,-9720,-31293,-9728,-31290,-9736,-31288,-9744,-31285,-9752,-31283,-9760,-31280,-9768,-31278,-9776,-31275,-9784,-31273,-9792,-31270,-9800,-31268,-9808,-31265,-9816,-31263,-9824,-31260,-9832,-31258,-9840,-31255,-9848,-31253,-9856,-31250,-9864,-31248,-9872,-31245,-9880,-31243,-9888,-31240,-9896,-31237,-9904,-31235,-9912,-31232,-9920,-31230,-9928,-31227,-9936,-31225,-9944,-31222,-9952,-31220,-9960,-31217,-9968,-31215,-9976,-31212,-9984,-31210,-9992,-31207,-10000,-31204,-10008,-31202,-10016,-31199,-10024,-31197,-10032,-31194,-10040,-31192,-10048,-31189,-10056,-31186,-10064,-31184,-10072,-31181,-10080,-31179,-10088,-31176,-10096,-31174,-10104,-31171,-10112,-31168,-10120,-31166,-10128,-31163,-10136,-31161,-10144,-31158,-10152,-31155,-10160,-31153,-10167,-31150,-10175,-31148,-10183,-31145,-10191,-31142,-10199,-31140,-10207,-31137,-10215,-31135,-10223,-31132,-10231,-31129,-10239,-31127,-10247,-31124,-10255,-31122,-10263,-31119,-10271,-31116,-10279,-31114,-10287,-31111,-10295,-31108,-10303,-31106,-10311,-31103,-10319,-31101,-10327,-31098,-10335,-31095,-10343,-31093,-10350,-31090,-10358,-31087,-10366,-31085,-10374,-31082,-10382,-31079,-10390,-31077,-10398,-31074,-10406,-31071,-10414,-31069,-10422,-31066,-10430,-31063,-10438,-31061,-10446,-31058,-10454,-31055,-10462,-31053,-10470,-31050,-10478,-31047,-10485,-31045,-10493,-31042,-10501,-31039,-10509,-31037,-10517,-31034,-10525,-31031,-10533,-31029,-10541,-31026,-10549,-31023,-10557,-31020,-10565,-31018,-10573,-31015,-10581,-31012,-10589,-31010,-10597,-31007,-10604,-31004,-10612,-31002,-10620,-30999,-10628,-30996,-10636,-30993,-10644,-30991,-10652,-30988,-10660,-30985,-10668,-30982,-10676,-30980,-10684,-30977,-10692,-30974,-10700,-30972,-10707,-30969,-10715,-30966,-10723,-30963,-10731,-30961,-10739,-30958,-10747,-30955,-10755,-30952,-10763,-30950,-10771,-30947,-10779,-30944,-10787,-30941,-10795,-30939,-10802,-30936,-10810,-30933,-10818,-30930,-10826,-30928,-10834,-30925,-10842,-30922,-10850,-30919,-10858,-30916,-10866,-30914,-10874,-30911,-10881,-30908,-10889,-30905,-10897,-30903,-10905,-30900,-10913,-30897,-10921,-30894,-10929,-30891,-10937,-30889,-10945,-30886,-10953,-30883,-10960,-30880,-10968,-30877,-10976,-30875,-10984,-30872,-10992,-30869,-11000,-30866,-11008,-30863,-11016,-30861,-11024,-30858,-11031,-30855,-11039,-30852,-11047,-30849,-11055,-30846,-11063,-30844,-11071,-30841,-11079,-30838,-11087,-30835,-11095,-30832,-11102,-30829,-11110,-30827,-11118,-30824,-11126,-30821,-11134,-30818,-11142,-30815,-11150,-30812,-11158,-30810,-11165,-30807,-11173,-30804,-11181,-30801,-11189,-30798,-11197,-30795,-11205,-30792,-11213,-30789,-11221,-30787,-11228,-30784,-11236,-30781,-11244,-30778,-11252,-30775,-11260,-30772,-11268,-30769,-11276,-30767,-11284,-30764,-11291,-30761,-11299,-30758,-11307,-30755,-11315,-30752,-11323,-30749,-11331,-30746,-11339,-30743,-11346,-30740,-11354,-30738,-11362,-30735,-11370,-30732,-11378,-30729,-11386,-30726,-11394,-30723,-11401,-30720,-11409,-30717,-11417,-30714,-11425,-30711,-11433,-30708,-11441,-30706,-11449,-30703,-11456,-30700,-11464,-30697,-11472,-30694,-11480,-30691,-11488,-30688,-11496,-30685,-11503,-30682,-11511,-30679,-11519,-30676,-11527,-30673,-11535,-30670,-11543,-30667,-11551,-30664,-11558,-30661,-11566,-30658,-11574,-30656,-11582,-30653,-11590,-30650,-11598,-30647,-11605,-30644,-11613,-30641,-11621,-30638,-11629,-30635,-11637,-30632,-11645,-30629,-11652,-30626,-11660,-30623,-11668,-30620,-11676,-30617,-11684,-30614,-11692,-30611,-11699,-30608,-11707,-30605,-11715,-30602,-11723,-30599,-11731,-30596,-11738,-30593,-11746,-30590,-11754,-30587,-11762,-30584,-11770,-30581,-11778,-30578,-11785,-30575,-11793,-30572,-11801,-30569,-11809,-30566,-11817,-30563,-11824,-30560,-11832,-30557,-11840,-30554,-11848,-30551,-11856,-30548,-11863,-30545,-11871,-30542,-11879,-30539,-11887,-30536,-11895,-30533,-11903,-30529,-11910,-30526,-11918,-30523,-11926,-30520,-11934,-30517,-11942,-30514,-11949,-30511,-11957,-30508,-11965,-30505,-11973,-30502,-11981,-30499,-11988,-30496,-11996,-30493,-12004,-30490,-12012,-30487,-12020,-30484,-12027,-30481,-12035,-30477,-12043,-30474,-12051,-30471,-12058,-30468,-12066,-30465,-12074,-30462,-12082,-30459,-12090,-30456,-12097,-30453,-12105,-30450,-12113,-30447,-12121,-30443,-12129,-30440,-12136,-30437,-12144,-30434,-12152,-30431,-12160,-30428,-12167,-30425,-12175,-30422,-12183,-30419,-12191,-30416,-12199,-30412,-12206,-30409,-12214,-30406,-12222,-30403,-12230,-30400,-12237,-30397,-12245,-30394,-12253,-30391,-12261,-30387,-12269,-30384,-12276,-30381,-12284,-30378,-12292,-30375,-12300,-30372,-12307,-30369,-12315,-30365,-12323,-30362,-12331,-30359,-12338,-30356,-12346,-30353,-12354,-30350,-12362,-30346,-12369,-30343,-12377,-30340,-12385,-30337,-12393,-30334,-12400,-30331,-12408,-30327,-12416,-30324,-12424,-30321,-12431,-30318,-12439,-30315,-12447,-30312,-12455,-30308,-12462,-30305,-12470,-30302,-12478,-30299,-12486,-30296,-12493,-30292,-12501,-30289,-12509,-30286,-12517,-30283,-12524,-30280,-12532,-30276,-12540,-30273,-12548,-30270,-12555,-30267,-12563,-30264,-12571,-30260,-12579,-30257,-12586,-30254,-12594,-30251,-12602,-30248,-12610,-30244,-12617,-30241,-12625,-30238,-12633,-30235,-12640,-30231,-12648,-30228,-12656,-30225,-12664,-30222,-12671,-30218,-12679,-30215,-12687,-30212,-12695,-30209,-12702,-30206,-12710,-30202,-12718,-30199,-12725,-30196,-12733,-30192,-12741,-30189,-12749,-30186,-12756,-30183,-12764,-30179,-12772,-30176,-12779,-30173,-12787,-30170,-12795,-30166,-12803,-30163,-12810,-30160,-12818,-30157,-12826,-30153,-12833,-30150,-12841,-30147,-12849,-30143,-12857,-30140,-12864,-30137,-12872,-30134,-12880,-30130,-12887,-30127,-12895,-30124,-12903,-30120,-12910,-30117,-12918,-30114,-12926,-30110,-12934,-30107,-12941,-30104,-12949,-30101,-12957,-30097,-12964,-30094,-12972,-30091,-12980,-30087,-12987,-30084,-12995,-30081,-13003,-30077,-13010,-30074,-13018,-30071,-13026,-30067,-13034,-30064,-13041,-30061,-13049,-30057,-13057,-30054,-13064,-30051,-13072,-30047,-13080,-30044,-13087,-30041,-13095,-30037,-13103,-30034,-13110,-30031,-13118,-30027,-13126,-30024,-13133,-30021,-13141,-30017,-13149,-30014,-13156,-30010,-13164,-30007,-13172,-30004,-13179,-30000,-13187,-29997,-13195,-29994,-13202,-29990,-13210,-29987,-13218,-29984,-13225,-29980,-13233,-29977,-13241,-29973,-13248,-29970,-13256,-29967,-13264,-29963,-13271,-29960,-13279,-29956,-13287,-29953,-13294,-29950,-13302,-29946,-13310,-29943,-13317,-29939,-13325,-29936,-13333,-29933,-13340,-29929,-13348,-29926,-13356,-29922,-13363,-29919,-13371,-29916,-13379,-29912,-13386,-29909,-13394,-29905,-13401,-29902,-13409,-29898,-13417,-29895,-13424,-29892,-13432,-29888,-13440,-29885,-13447,-29881,-13455,-29878,-13463,-29874,-13470,-29871,-13478,-29867,-13486,-29864,-13493,-29861,-13501,-29857,-13508,-29854,-13516,-29850,-13524,-29847,-13531,-29843,-13539,-29840,-13547,-29836,-13554,-29833,-13562,-29829,-13569,-29826,-13577,-29823,-13585,-29819,-13592,-29816,-13600,-29812,-13608,-29809,-13615,-29805,-13623,-29802,-13630,-29798,-13638,-29795,-13646,-29791,-13653,-29788,-13661,-29784,-13668,-29781,-13676,-29777,-13684,-29774,-13691,-29770,-13699,-29767,-13707,-29763,-13714,-29760,-13722,-29756,-13729,-29753,-13737,-29749,-13745,-29746,-13752,-29742,-13760,-29739,-13767,-29735,-13775,-29732,-13783,-29728,-13790,-29725,-13798,-29721,-13805,-29718,-13813,-29714,-13821,-29710,-13828,-29707,-13836,-29703,-13843,-29700,-13851,-29696,-13859,-29693,-13866,-29689,-13874,-29686,-13881,-29682,-13889,-29679,-13896,-29675,-13904,-29671,-13912,-29668,-13919,-29664,-13927,-29661,-13934,-29657,-13942,-29654,-13950,-29650,-13957,-29647,-13965,-29643,-13972,-29639,-13980,-29636,-13987,-29632,-13995,-29629,-14003,-29625,-14010,-29622,-14018,-29618,-14025,-29614,-14033,-29611,-14040,-29607,-14048,-29604,-14056,-29600,-14063,-29596,-14071,-29593,-14078,-29589,-14086,-29586,-14093,-29582,-14101,-29578,-14109,-29575,-14116,-29571,-14124,-29568,-14131,-29564,-14139,-29560,-14146,-29557,-14154,-29553,-14161,-29549,-14169,-29546,-14177,-29542,-14184,-29539,-14192,-29535,-14199,-29531,-14207,-29528,-14214,-29524,-14222,-29520,-14229,-29517,-14237,-29513,-14245,-29510,-14252,-29506,-14260,-29502,-14267,-29499,-14275,-29495,-14282,-29491,-14290,-29488,-14297,-29484,-14305,-29480,-14312,-29477,-14320,-29473,-14327,-29469,-14335,-29466,-14343,-29462,-14350,-29458,-14358,-29455,-14365,-29451,-14373,-29447,-14380,-29444,-14388,-29440,-14395,-29436,-14403,-29433,-14410,-29429,-14418,-29425,-14425,-29422,-14433,-29418,-14440,-29414,-14448,-29411,-14455,-29407,-14463,-29403,-14470,-29399,-14478,-29396,-14485,-29392,-14493,-29388,-14500,-29385,-14508,-29381,-14516,-29377,-14523,-29373,-14531,-29370,-14538,-29366,-14546,-29362,-14553,-29359,-14561,-29355,-14568,-29351,-14576,-29347,-14583,-29344,-14591,-29340,-14598,-29336,-14606,-29333,-14613,-29329,-14621,-29325,-14628,-29321,-14636,-29318,-14643,-29314,-14651,-29310,-14658,-29306,-14666,-29303,-14673,-29299,-14681,-29295,-14688,-29291,-14695,-29288,-14703,-29284,-14710,-29280,-14718,-29276,-14725,-29273,-14733,-29269,-14740,-29265,-14748,-29261,-14755,-29257,-14763,-29254,-14770,-29250,-14778,-29246,-14785,-29242,-14793,-29239,-14800,-29235,-14808,-29231,-14815,-29227,-14823,-29223,-14830,-29220,-14838,-29216,-14845,-29212,-14853,-29208,-14860,-29204,-14867,-29201,-14875,-29197,-14882,-29193,-14890,-29189,-14897,-29185,-14905,-29182,-14912,-29178,-14920,-29174,-14927,-29170,-14935,-29166,-14942,-29163,-14950,-29159,-14957,-29155,-14964,-29151,-14972,-29147,-14979,-29143,-14987,-29140,-14994,-29136,-15002,-29132,-15009,-29128,-15017,-29124,-15024,-29120,-15031,-29117,-15039,-29113,-15046,-29109,-15054,-29105,-15061,-29101,-15069,-29097,-15076,-29093,-15084,-29090,-15091,-29086,-15098,-29082,-15106,-29078,-15113,-29074,-15121,-29070,-15128,-29066,-15136,-29063,-15143,-29059,-15150,-29055,-15158,-29051,-15165,-29047,-15173,-29043,-15180,-29039,-15188,-29035,-15195,-29032,-15202,-29028,-15210,-29024,-15217,-29020,-15225,-29016,-15232,-29012,-15239,-29008,-15247,-29004,-15254,-29000,-15262,-28997,-15269,-28993,-15277,-28989,-15284,-28985,-15291,-28981,-15299,-28977,-15306,-28973,-15314,-28969,-15321,-28965,-15328,-28961,-15336,-28957,-15343,-28954,-15351,-28950,-15358,-28946,-15365,-28942,-15373,-28938,-15380,-28934,-15388,-28930,-15395,-28926,-15402,-28922,-15410,-28918,-15417,-28914,-15425,-28910,-15432,-28906,-15439,-28902,-15447,-28898,-15454,-28894,-15462,-28891,-15469,-28887,-15476,-28883,-15484,-28879,-15491,-28875,-15498,-28871,-15506,-28867,-15513,-28863,-15521,-28859,-15528,-28855,-15535,-28851,-15543,-28847,-15550,-28843,-15557,-28839,-15565,-28835,-15572,-28831,-15580,-28827,-15587,-28823,-15594,-28819,-15602,-28815,-15609,-28811,-15616,-28807,-15624,-28803,-15631,-28799,-15639,-28795,-15646,-28791,-15653,-28787,-15661,-28783,-15668,-28779,-15675,-28775,-15683,-28771,-15690,-28767,-15697,-28763,-15705,-28759,-15712,-28755,-15719,-28751,-15727,-28747,-15734,-28743,-15741,-28739,-15749,-28735,-15756,-28731,-15764,-28727,-15771,-28723,-15778,-28719,-15786,-28715,-15793,-28711,-15800,-28707,-15808,-28703,-15815,-28699,-15822,-28695,-15830,-28691,-15837,-28686,-15844,-28682,-15852,-28678,-15859,-28674,-15866,-28670,-15874,-28666,-15881,-28662,-15888,-28658,-15896,-28654,-15903,-28650,-15910,-28646,-15918,-28642,-15925,-28638,-15932,-28634,-15939,-28630,-15947,-28626,-15954,-28621,-15961,-28617,-15969,-28613,-15976,-28609,-15983,-28605,-15991,-28601,-15998,-28597,-16005,-28593,-16013,-28589,-16020,-28585,-16027,-28581,-16035,-28576,-16042,-28572,-16049,-28568,-16056,-28564,-16064,-28560,-16071,-28556,-16078,-28552,-16086,-28548,-16093,-28544,-16100,-28539,-16108,-28535,-16115,-28531,-16122,-28527,-16129,-28523,-16137,-28519,-16144,-28515,-16151,-28511,-16159,-28507,-16166,-28502,-16173,-28498,-16180,-28494,-16188,-28490,-16195,-28486,-16202,-28482,-16210,-28478,-16217,-28473,-16224,-28469,-16231,-28465,-16239,-28461,-16246,-28457,-16253,-28453,-16261,-28448,-16268,-28444,-16275,-28440,-16282,-28436,-16290,-28432,-16297,-28428,-16304,-28424,-16311,-28419,-16319,-28415,-16326,-28411,-16333,-28407,-16340,-28403,-16348,-28398,-16355,-28394,-16362,-28390,-16369,-28386,-16377,-28382};
-
-int16_t twb24576[16384] __attribute__((aligned(32))) = {32767,0,32766,-17,32766,-34,32766,-51,32766,-68,32766,-84,32766,-101,32766,-118,32766,-135,32766,-151,32766,-168,32766,-185,32766,-202,32766,-218,32766,-235,32766,-252,32765,-269,32765,-285,32765,-302,32765,-319,32765,-336,32765,-352,32764,-369,32764,-386,32764,-403,32764,-419,32764,-436,32763,-453,32763,-470,32763,-486,32763,-503,32762,-520,32762,-537,32762,-553,32762,-570,32761,-587,32761,-604,32761,-620,32760,-637,32760,-654,32760,-671,32759,-687,32759,-704,32759,-721,32758,-738,32758,-754,32757,-771,32757,-788,32757,-805,32756,-821,32756,-838,32755,-855,32755,-872,32754,-888,32754,-905,32754,-922,32753,-939,32753,-955,32752,-972,32752,-989,32751,-1006,32751,-1022,32750,-1039,32750,-1056,32749,-1073,32748,-1089,32748,-1106,32747,-1123,32747,-1140,32746,-1156,32746,-1173,32745,-1190,32744,-1207,32744,-1223,32743,-1240,32742,-1257,32742,-1274,32741,-1290,32740,-1307,32740,-1324,32739,-1340,32738,-1357,32738,-1374,32737,-1391,32736,-1407,32736,-1424,32735,-1441,32734,-1458,32733,-1474,32733,-1491,32732,-1508,32731,-1525,32730,-1541,32729,-1558,32729,-1575,32728,-1592,32727,-1608,32726,-1625,32725,-1642,32725,-1659,32724,-1675,32723,-1692,32722,-1709,32721,-1725,32720,-1742,32719,-1759,32718,-1776,32717,-1792,32717,-1809,32716,-1826,32715,-1843,32714,-1859,32713,-1876,32712,-1893,32711,-1909,32710,-1926,32709,-1943,32708,-1960,32707,-1976,32706,-1993,32705,-2010,32704,-2027,32703,-2043,32702,-2060,32701,-2077,32700,-2093,32699,-2110,32697,-2127,32696,-2144,32695,-2160,32694,-2177,32693,-2194,32692,-2210,32691,-2227,32690,-2244,32688,-2261,32687,-2277,32686,-2294,32685,-2311,32684,-2327,32683,-2344,32681,-2361,32680,-2378,32679,-2394,32678,-2411,32676,-2428,32675,-2444,32674,-2461,32673,-2478,32671,-2495,32670,-2511,32669,-2528,32668,-2545,32666,-2561,32665,-2578,32664,-2595,32662,-2611,32661,-2628,32660,-2645,32658,-2662,32657,-2678,32656,-2695,32654,-2712,32653,-2728,32651,-2745,32650,-2762,32649,-2778,32647,-2795,32646,-2812,32644,-2829,32643,-2845,32641,-2862,32640,-2879,32638,-2895,32637,-2912,32635,-2929,32634,-2945,32632,-2962,32631,-2979,32629,-2995,32628,-3012,32626,-3029,32625,-3045,32623,-3062,32622,-3079,32620,-3095,32618,-3112,32617,-3129,32615,-3146,32614,-3162,32612,-3179,32610,-3196,32609,-3212,32607,-3229,32605,-3246,32604,-3262,32602,-3279,32600,-3296,32599,-3312,32597,-3329,32595,-3346,32594,-3362,32592,-3379,32590,-3396,32588,-3412,32587,-3429,32585,-3446,32583,-3462,32581,-3479,32580,-3496,32578,-3512,32576,-3529,32574,-3546,32572,-3562,32571,-3579,32569,-3595,32567,-3612,32565,-3629,32563,-3645,32561,-3662,32559,-3679,32558,-3695,32556,-3712,32554,-3729,32552,-3745,32550,-3762,32548,-3779,32546,-3795,32544,-3812,32542,-3829,32540,-3845,32538,-3862,32536,-3878,32534,-3895,32532,-3912,32530,-3928,32528,-3945,32526,-3962,32524,-3978,32522,-3995,32520,-4012,32518,-4028,32516,-4045,32514,-4061,32512,-4078,32510,-4095,32508,-4111,32506,-4128,32503,-4145,32501,-4161,32499,-4178,32497,-4194,32495,-4211,32493,-4228,32491,-4244,32488,-4261,32486,-4277,32484,-4294,32482,-4311,32480,-4327,32477,-4344,32475,-4360,32473,-4377,32471,-4394,32468,-4410,32466,-4427,32464,-4444,32462,-4460,32459,-4477,32457,-4493,32455,-4510,32452,-4526,32450,-4543,32448,-4560,32445,-4576,32443,-4593,32441,-4609,32438,-4626,32436,-4643,32434,-4659,32431,-4676,32429,-4692,32426,-4709,32424,-4726,32422,-4742,32419,-4759,32417,-4775,32414,-4792,32412,-4808,32409,-4825,32407,-4842,32404,-4858,32402,-4875,32399,-4891,32397,-4908,32394,-4924,32392,-4941,32389,-4958,32387,-4974,32384,-4991,32382,-5007,32379,-5024,32377,-5040,32374,-5057,32371,-5073,32369,-5090,32366,-5107,32364,-5123,32361,-5140,32358,-5156,32356,-5173,32353,-5189,32350,-5206,32348,-5222,32345,-5239,32342,-5255,32340,-5272,32337,-5288,32334,-5305,32332,-5322,32329,-5338,32326,-5355,32323,-5371,32321,-5388,32318,-5404,32315,-5421,32312,-5437,32310,-5454,32307,-5470,32304,-5487,32301,-5503,32298,-5520,32295,-5536,32293,-5553,32290,-5569,32287,-5586,32284,-5602,32281,-5619,32278,-5635,32275,-5652,32273,-5668,32270,-5685,32267,-5701,32264,-5718,32261,-5734,32258,-5751,32255,-5767,32252,-5784,32249,-5800,32246,-5817,32243,-5833,32240,-5850,32237,-5866,32234,-5883,32231,-5899,32228,-5916,32225,-5932,32222,-5949,32219,-5965,32216,-5982,32213,-5998,32210,-6015,32207,-6031,32204,-6048,32201,-6064,32197,-6081,32194,-6097,32191,-6113,32188,-6130,32185,-6146,32182,-6163,32179,-6179,32176,-6196,32172,-6212,32169,-6229,32166,-6245,32163,-6262,32160,-6278,32156,-6294,32153,-6311,32150,-6327,32147,-6344,32143,-6360,32140,-6377,32137,-6393,32134,-6409,32130,-6426,32127,-6442,32124,-6459,32120,-6475,32117,-6492,32114,-6508,32110,-6524,32107,-6541,32104,-6557,32100,-6574,32097,-6590,32094,-6607,32090,-6623,32087,-6639,32084,-6656,32080,-6672,32077,-6689,32073,-6705,32070,-6721,32066,-6738,32063,-6754,32059,-6771,32056,-6787,32053,-6803,32049,-6820,32046,-6836,32042,-6852,32039,-6869,32035,-6885,32032,-6902,32028,-6918,32024,-6934,32021,-6951,32017,-6967,32014,-6983,32010,-7000,32007,-7016,32003,-7033,31999,-7049,31996,-7065,31992,-7082,31989,-7098,31985,-7114,31981,-7131,31978,-7147,31974,-7163,31970,-7180,31967,-7196,31963,-7212,31959,-7229,31956,-7245,31952,-7262,31948,-7278,31944,-7294,31941,-7311,31937,-7327,31933,-7343,31929,-7359,31926,-7376,31922,-7392,31918,-7408,31914,-7425,31911,-7441,31907,-7457,31903,-7474,31899,-7490,31895,-7506,31891,-7523,31888,-7539,31884,-7555,31880,-7572,31876,-7588,31872,-7604,31868,-7620,31864,-7637,31860,-7653,31856,-7669,31853,-7686,31849,-7702,31845,-7718,31841,-7734,31837,-7751,31833,-7767,31829,-7783,31825,-7800,31821,-7816,31817,-7832,31813,-7848,31809,-7865,31805,-7881,31801,-7897,31797,-7913,31793,-7930,31789,-7946,31785,-7962,31780,-7978,31776,-7995,31772,-8011,31768,-8027,31764,-8043,31760,-8060,31756,-8076,31752,-8092,31748,-8108,31743,-8125,31739,-8141,31735,-8157,31731,-8173,31727,-8190,31723,-8206,31718,-8222,31714,-8238,31710,-8254,31706,-8271,31701,-8287,31697,-8303,31693,-8319,31689,-8335,31684,-8352,31680,-8368,31676,-8384,31672,-8400,31667,-8416,31663,-8433,31659,-8449,31654,-8465,31650,-8481,31646,-8497,31641,-8514,31637,-8530,31633,-8546,31628,-8562,31624,-8578,31619,-8594,31615,-8611,31611,-8627,31606,-8643,31602,-8659,31597,-8675,31593,-8691,31588,-8708,31584,-8724,31580,-8740,31575,-8756,31571,-8772,31566,-8788,31562,-8804,31557,-8821,31553,-8837,31548,-8853,31544,-8869,31539,-8885,31534,-8901,31530,-8917,31525,-8933,31521,-8950,31516,-8966,31512,-8982,31507,-8998,31502,-9014,31498,-9030,31493,-9046,31489,-9062,31484,-9078,31479,-9095,31475,-9111,31470,-9127,31465,-9143,31461,-9159,31456,-9175,31451,-9191,31446,-9207,31442,-9223,31437,-9239,31432,-9255,31428,-9271,31423,-9288,31418,-9304,31413,-9320,31409,-9336,31404,-9352,31399,-9368,31394,-9384,31389,-9400,31385,-9416,31380,-9432,31375,-9448,31370,-9464,31365,-9480,31360,-9496,31356,-9512,31351,-9528,31346,-9544,31341,-9560,31336,-9576,31331,-9592,31326,-9608,31321,-9624,31316,-9640,31311,-9656,31307,-9672,31302,-9688,31297,-9704,31292,-9720,31287,-9736,31282,-9752,31277,-9768,31272,-9784,31267,-9800,31262,-9816,31257,-9832,31252,-9848,31247,-9864,31242,-9880,31236,-9896,31231,-9912,31226,-9928,31221,-9944,31216,-9960,31211,-9976,31206,-9992,31201,-10008,31196,-10024,31191,-10040,31185,-10056,31180,-10072,31175,-10088,31170,-10104,31165,-10120,31160,-10136,31154,-10152,31149,-10167,31144,-10183,31139,-10199,31134,-10215,31128,-10231,31123,-10247,31118,-10263,31113,-10279,31107,-10295,31102,-10311,31097,-10327,31092,-10343,31086,-10358,31081,-10374,31076,-10390,31070,-10406,31065,-10422,31060,-10438,31054,-10454,31049,-10470,31044,-10485,31038,-10501,31033,-10517,31028,-10533,31022,-10549,31017,-10565,31011,-10581,31006,-10597,31001,-10612,30995,-10628,30990,-10644,30984,-10660,30979,-10676,30973,-10692,30968,-10707,30962,-10723,30957,-10739,30951,-10755,30946,-10771,30940,-10787,30935,-10802,30929,-10818,30924,-10834,30918,-10850,30913,-10866,30907,-10881,30902,-10897,30896,-10913,30890,-10929,30885,-10945,30879,-10960,30874,-10976,30868,-10992,30862,-11008,30857,-11024,30851,-11039,30845,-11055,30840,-11071,30834,-11087,30828,-11102,30823,-11118,30817,-11134,30811,-11150,30806,-11165,30800,-11181,30794,-11197,30788,-11213,30783,-11228,30777,-11244,30771,-11260,30766,-11276,30760,-11291,30754,-11307,30748,-11323,30742,-11339,30737,-11354,30731,-11370,30725,-11386,30719,-11401,30713,-11417,30707,-11433,30702,-11449,30696,-11464,30690,-11480,30684,-11496,30678,-11511,30672,-11527,30666,-11543,30660,-11558,30655,-11574,30649,-11590,30643,-11605,30637,-11621,30631,-11637,30625,-11652,30619,-11668,30613,-11684,30607,-11699,30601,-11715,30595,-11731,30589,-11746,30583,-11762,30577,-11778,30571,-11793,30565,-11809,30559,-11824,30553,-11840,30547,-11856,30541,-11871,30535,-11887,30528,-11903,30522,-11918,30516,-11934,30510,-11949,30504,-11965,30498,-11981,30492,-11996,30486,-12012,30480,-12027,30473,-12043,30467,-12058,30461,-12074,30455,-12090,30449,-12105,30442,-12121,30436,-12136,30430,-12152,30424,-12167,30418,-12183,30411,-12199,30405,-12214,30399,-12230,30393,-12245,30386,-12261,30380,-12276,30374,-12292,30368,-12307,30361,-12323,30355,-12338,30349,-12354,30342,-12369,30336,-12385,30330,-12400,30323,-12416,30317,-12431,30311,-12447,30304,-12462,30298,-12478,30291,-12493,30285,-12509,30279,-12524,30272,-12540,30266,-12555,30259,-12571,30253,-12586,30247,-12602,30240,-12617,30234,-12633,30227,-12648,30221,-12664,30214,-12679,30208,-12695,30201,-12710,30195,-12725,30188,-12741,30182,-12756,30175,-12772,30169,-12787,30162,-12803,30156,-12818,30149,-12833,30142,-12849,30136,-12864,30129,-12880,30123,-12895,30116,-12910,30109,-12926,30103,-12941,30096,-12957,30090,-12972,30083,-12987,30076,-13003,30070,-13018,30063,-13034,30056,-13049,30050,-13064,30043,-13080,30036,-13095,30030,-13110,30023,-13126,30016,-13141,30009,-13156,30003,-13172,29996,-13187,29989,-13202,29983,-13218,29976,-13233,29969,-13248,29962,-13264,29955,-13279,29949,-13294,29942,-13310,29935,-13325,29928,-13340,29921,-13356,29915,-13371,29908,-13386,29901,-13401,29894,-13417,29887,-13432,29880,-13447,29873,-13463,29866,-13478,29860,-13493,29853,-13508,29846,-13524,29839,-13539,29832,-13554,29825,-13569,29818,-13585,29811,-13600,29804,-13615,29797,-13630,29790,-13646,29783,-13661,29776,-13676,29769,-13691,29762,-13707,29755,-13722,29748,-13737,29741,-13752,29734,-13767,29727,-13783,29720,-13798,29713,-13813,29706,-13828,29699,-13843,29692,-13859,29685,-13874,29678,-13889,29670,-13904,29663,-13919,29656,-13934,29649,-13950,29642,-13965,29635,-13980,29628,-13995,29621,-14010,29613,-14025,29606,-14040,29599,-14056,29592,-14071,29585,-14086,29577,-14101,29570,-14116,29563,-14131,29556,-14146,29548,-14161,29541,-14177,29534,-14192,29527,-14207,29519,-14222,29512,-14237,29505,-14252,29498,-14267,29490,-14282,29483,-14297,29476,-14312,29468,-14327,29461,-14343,29454,-14358,29446,-14373,29439,-14388,29432,-14403,29424,-14418,29417,-14433,29410,-14448,29402,-14463,29395,-14478,29387,-14493,29380,-14508,29372,-14523,29365,-14538,29358,-14553,29350,-14568,29343,-14583,29335,-14598,29328,-14613,29320,-14628,29313,-14643,29305,-14658,29298,-14673,29290,-14688,29283,-14703,29275,-14718,29268,-14733,29260,-14748,29253,-14763,29245,-14778,29238,-14793,29230,-14808,29222,-14823,29215,-14838,29207,-14853,29200,-14867,29192,-14882,29184,-14897,29177,-14912,29169,-14927,29162,-14942,29154,-14957,29146,-14972,29139,-14987,29131,-15002,29123,-15017,29116,-15031,29108,-15046,29100,-15061,29092,-15076,29085,-15091,29077,-15106,29069,-15121,29062,-15136,29054,-15150,29046,-15165,29038,-15180,29031,-15195,29023,-15210,29015,-15225,29007,-15239,28999,-15254,28992,-15269,28984,-15284,28976,-15299,28968,-15314,28960,-15328,28953,-15343,28945,-15358,28937,-15373,28929,-15388,28921,-15402,28913,-15417,28905,-15432,28897,-15447,28890,-15462,28882,-15476,28874,-15491,28866,-15506,28858,-15521,28850,-15535,28842,-15550,28834,-15565,28826,-15580,28818,-15594,28810,-15609,28802,-15624,28794,-15639,28786,-15653,28778,-15668,28770,-15683,28762,-15697,28754,-15712,28746,-15727,28738,-15741,28730,-15756,28722,-15771,28714,-15786,28706,-15800,28698,-15815,28690,-15830,28681,-15844,28673,-15859,28665,-15874,28657,-15888,28649,-15903,28641,-15918,28633,-15932,28625,-15947,28616,-15961,28608,-15976,28600,-15991,28592,-16005,28584,-16020,28575,-16035,28567,-16049,28559,-16064,28551,-16078,28543,-16093,28534,-16108,28526,-16122,28518,-16137,28510,-16151,28501,-16166,28493,-16180,28485,-16195,28477,-16210,28468,-16224,28460,-16239,28452,-16253,28443,-16268,28435,-16282,28427,-16297,28418,-16311,28410,-16326,28402,-16340,28393,-16355,28385,-16369,28377,-16384,28368,-16399,28360,-16413,28351,-16428,28343,-16442,28335,-16456,28326,-16471,28318,-16485,28309,-16500,28301,-16514,28292,-16529,28284,-16543,28275,-16558,28267,-16572,28259,-16587,28250,-16601,28242,-16616,28233,-16630,28225,-16644,28216,-16659,28208,-16673,28199,-16688,28190,-16702,28182,-16717,28173,-16731,28165,-16745,28156,-16760,28148,-16774,28139,-16789,28131,-16803,28122,-16817,28113,-16832,28105,-16846,28096,-16860,28087,-16875,28079,-16889,28070,-16904,28062,-16918,28053,-16932,28044,-16947,28036,-16961,28027,-16975,28018,-16990,28009,-17004,28001,-17018,27992,-17033,27983,-17047,27975,-17061,27966,-17075,27957,-17090,27948,-17104,27940,-17118,27931,-17133,27922,-17147,27913,-17161,27905,-17175,27896,-17190,27887,-17204,27878,-17218,27869,-17233,27861,-17247,27852,-17261,27843,-17275,27834,-17289,27825,-17304,27816,-17318,27808,-17332,27799,-17346,27790,-17361,27781,-17375,27772,-17389,27763,-17403,27754,-17417,27745,-17432,27736,-17446,27728,-17460,27719,-17474,27710,-17488,27701,-17502,27692,-17517,27683,-17531,27674,-17545,27665,-17559,27656,-17573,27647,-17587,27638,-17601,27629,-17616,27620,-17630,27611,-17644,27602,-17658,27593,-17672,27584,-17686,27575,-17700,27566,-17714,27557,-17728,27548,-17743,27538,-17757,27529,-17771,27520,-17785,27511,-17799,27502,-17813,27493,-17827,27484,-17841,27475,-17855,27466,-17869,27456,-17883,27447,-17897,27438,-17911,27429,-17925,27420,-17939,27411,-17953,27401,-17967,27392,-17981,27383,-17995,27374,-18009,27365,-18023,27355,-18037,27346,-18051,27337,-18065,27328,-18079,27319,-18093,27309,-18107,27300,-18121,27291,-18135,27281,-18149,27272,-18163,27263,-18177,27254,-18191,27244,-18205,27235,-18219,27226,-18233,27216,-18247,27207,-18261,27198,-18274,27188,-18288,27179,-18302,27170,-18316,27160,-18330,27151,-18344,27141,-18358,27132,-18372,27123,-18386,27113,-18399,27104,-18413,27094,-18427,27085,-18441,27076,-18455,27066,-18469,27057,-18483,27047,-18496,27038,-18510,27028,-18524,27019,-18538,27009,-18552,27000,-18565,26990,-18579,26981,-18593,26971,-18607,26962,-18621,26952,-18634,26943,-18648,26933,-18662,26924,-18676,26914,-18690,26905,-18703,26895,-18717,26885,-18731,26876,-18745,26866,-18758,26857,-18772,26847,-18786,26837,-18799,26828,-18813,26818,-18827,26809,-18841,26799,-18854,26789,-18868,26780,-18882,26770,-18895,26760,-18909,26751,-18923,26741,-18936,26731,-18950,26722,-18964,26712,-18977,26702,-18991,26692,-19005,26683,-19018,26673,-19032,26663,-19046,26654,-19059,26644,-19073,26634,-19087,26624,-19100,26615,-19114,26605,-19127,26595,-19141,26585,-19155,26575,-19168,26566,-19182,26556,-19195,26546,-19209,26536,-19222,26526,-19236,26516,-19250,26507,-19263,26497,-19277,26487,-19290,26477,-19304,26467,-19317,26457,-19331,26447,-19344,26437,-19358,26428,-19371,26418,-19385,26408,-19398,26398,-19412,26388,-19425,26378,-19439,26368,-19452,26358,-19466,26348,-19479,26338,-19493,26328,-19506,26318,-19520,26308,-19533,26298,-19547,26288,-19560,26278,-19574,26268,-19587,26258,-19600,26248,-19614,26238,-19627,26228,-19641,26218,-19654,26208,-19668,26198,-19681,26188,-19694,26178,-19708,26168,-19721,26158,-19734,26148,-19748,26137,-19761,26127,-19775,26117,-19788,26107,-19801,26097,-19815,26087,-19828,26077,-19841,26067,-19855,26056,-19868,26046,-19881,26036,-19895,26026,-19908,26016,-19921,26006,-19934,25995,-19948,25985,-19961,25975,-19974,25965,-19988,25954,-20001,25944,-20014,25934,-20027,25924,-20041,25913,-20054,25903,-20067,25893,-20080,25883,-20094,25872,-20107,25862,-20120,25852,-20133,25842,-20147,25831,-20160,25821,-20173,25811,-20186,25800,-20199,25790,-20213,25780,-20226,25769,-20239,25759,-20252,25749,-20265,25738,-20278,25728,-20292,25717,-20305,25707,-20318,25697,-20331,25686,-20344,25676,-20357,25665,-20370,25655,-20384,25645,-20397,25634,-20410,25624,-20423,25613,-20436,25603,-20449,25592,-20462,25582,-20475,25571,-20488,25561,-20501,25550,-20514,25540,-20528,25529,-20541,25519,-20554,25508,-20567,25498,-20580,25487,-20593,25477,-20606,25466,-20619,25456,-20632,25445,-20645,25435,-20658,25424,-20671,25414,-20684,25403,-20697,25392,-20710,25382,-20723,25371,-20736,25361,-20749,25350,-20762,25339,-20775,25329,-20788,25318,-20801,25307,-20814,25297,-20826,25286,-20839,25276,-20852,25265,-20865,25254,-20878,25243,-20891,25233,-20904,25222,-20917,25211,-20930,25201,-20943,25190,-20956,25179,-20968,25169,-20981,25158,-20994,25147,-21007,25136,-21020,25126,-21033,25115,-21046,25104,-21058,25093,-21071,25083,-21084,25072,-21097,25061,-21110,25050,-21123,25039,-21135,25029,-21148,25018,-21161,25007,-21174,24996,-21187,24985,-21199,24974,-21212,24964,-21225,24953,-21238,24942,-21250,24931,-21263,24920,-21276,24909,-21289,24898,-21301,24887,-21314,24877,-21327,24866,-21340,24855,-21352,24844,-21365,24833,-21378,24822,-21390,24811,-21403,24800,-21416,24789,-21428,24778,-21441,24767,-21454,24756,-21466,24745,-21479,24734,-21492,24723,-21504,24712,-21517,24701,-21530,24690,-21542,24679,-21555,24668,-21567,24657,-21580,24646,-21593,24635,-21605,24624,-21618,24613,-21630,24602,-21643,24591,-21656,24580,-21668,24569,-21681,24558,-21693,24546,-21706,24535,-21718,24524,-21731,24513,-21744,24502,-21756,24491,-21769,24480,-21781,24469,-21794,24457,-21806,24446,-21819,24435,-21831,24424,-21844,24413,-21856,24402,-21869,24390,-21881,24379,-21894,24368,-21906,24357,-21918,24346,-21931,24334,-21943,24323,-21956,24312,-21968,24301,-21981,24289,-21993,24278,-22005,24267,-22018,24256,-22030,24244,-22043,24233,-22055,24222,-22067,24211,-22080,24199,-22092,24188,-22105,24177,-22117,24165,-22129,24154,-22142,24143,-22154,24131,-22166,24120,-22179,24109,-22191,24097,-22203,24086,-22216,24075,-22228,24063,-22240,24052,-22253,24041,-22265,24029,-22277,24018,-22289,24006,-22302,23995,-22314,23984,-22326,23972,-22339,23961,-22351,23949,-22363,23938,-22375,23926,-22388,23915,-22400,23903,-22412,23892,-22424,23881,-22436,23869,-22449,23858,-22461,23846,-22473,23835,-22485,23823,-22497,23812,-22510,23800,-22522,23789,-22534,23777,-22546,23766,-22558,23754,-22570,23742,-22583,23731,-22595,23719,-22607,23708,-22619,23696,-22631,23685,-22643,23673,-22655,23661,-22667,23650,-22679,23638,-22692,23627,-22704,23615,-22716,23603,-22728,23592,-22740,23580,-22752,23569,-22764,23557,-22776,23545,-22788,23534,-22800,23522,-22812,23510,-22824,23499,-22836,23487,-22848,23475,-22860,23464,-22872,23452,-22884,23440,-22896,23428,-22908,23417,-22920,23405,-22932,23393,-22944,23382,-22956,23370,-22968,23358,-22980,23346,-22992,23335,-23004,23323,-23016,23311,-23028,23299,-23040,23287,-23051,23276,-23063,23264,-23075,23252,-23087,23240,-23099,23228,-23111,23217,-23123,23205,-23135,23193,-23147,23181,-23158,23169,-23170,23157,-23182,23146,-23194,23134,-23206,23122,-23218,23110,-23229,23098,-23241,23086,-23253,23074,-23265,23062,-23277,23050,-23288,23039,-23300,23027,-23312,23015,-23324,23003,-23336,22991,-23347,22979,-23359,22967,-23371,22955,-23383,22943,-23394,22931,-23406,22919,-23418,22907,-23429,22895,-23441,22883,-23453,22871,-23465,22859,-23476,22847,-23488,22835,-23500,22823,-23511,22811,-23523,22799,-23535,22787,-23546,22775,-23558,22763,-23570,22751,-23581,22739,-23593,22727,-23604,22715,-23616,22703,-23628,22691,-23639,22678,-23651,22666,-23662,22654,-23674,22642,-23686,22630,-23697,22618,-23709,22606,-23720,22594,-23732,22582,-23743,22569,-23755,22557,-23767,22545,-23778,22533,-23790,22521,-23801,22509,-23813,22496,-23824,22484,-23836,22472,-23847,22460,-23859,22448,-23870,22435,-23882,22423,-23893,22411,-23904,22399,-23916,22387,-23927,22374,-23939,22362,-23950,22350,-23962,22338,-23973,22325,-23985,22313,-23996,22301,-24007,22288,-24019,22276,-24030,22264,-24042,22252,-24053,22239,-24064,22227,-24076,22215,-24087,22202,-24098,22190,-24110,22178,-24121,22165,-24132,22153,-24144,22141,-24155,22128,-24166,22116,-24178,22104,-24189,22091,-24200,22079,-24212,22066,-24223,22054,-24234,22042,-24245,22029,-24257,22017,-24268,22004,-24279,21992,-24290,21980,-24302,21967,-24313,21955,-24324,21942,-24335,21930,-24347,21917,-24358,21905,-24369,21893,-24380,21880,-24391,21868,-24403,21855,-24414,21843,-24425,21830,-24436,21818,-24447,21805,-24458,21793,-24470,21780,-24481,21768,-24492,21755,-24503,21743,-24514,21730,-24525,21717,-24536,21705,-24547,21692,-24559,21680,-24570,21667,-24581,21655,-24592,21642,-24603,21629,-24614,21617,-24625,21604,-24636,21592,-24647,21579,-24658,21566,-24669,21554,-24680,21541,-24691,21529,-24702,21516,-24713,21503,-24724,21491,-24735,21478,-24746,21465,-24757,21453,-24768,21440,-24779,21427,-24790,21415,-24801,21402,-24812,21389,-24823,21377,-24834,21364,-24845,21351,-24856,21339,-24867,21326,-24878,21313,-24888,21300,-24899,21288,-24910,21275,-24921,21262,-24932,21249,-24943,21237,-24954,21224,-24965,21211,-24975,21198,-24986,21186,-24997,21173,-25008,21160,-25019,21147,-25030,21134,-25040,21122,-25051,21109,-25062,21096,-25073,21083,-25084,21070,-25094,21057,-25105,21045,-25116,21032,-25127,21019,-25137,21006,-25148,20993,-25159,20980,-25170,20967,-25180,20955,-25191,20942,-25202,20929,-25212,20916,-25223,20903,-25234,20890,-25244,20877,-25255,20864,-25266,20851,-25277,20838,-25287,20825,-25298,20813,-25308,20800,-25319,20787,-25330,20774,-25340,20761,-25351,20748,-25362,20735,-25372,20722,-25383,20709,-25393,20696,-25404,20683,-25415,20670,-25425,20657,-25436,20644,-25446,20631,-25457,20618,-25467,20605,-25478,20592,-25488,20579,-25499,20566,-25509,20553,-25520,20540,-25530,20527,-25541,20513,-25551,20500,-25562,20487,-25572,20474,-25583,20461,-25593,20448,-25604,20435,-25614,20422,-25625,20409,-25635,20396,-25646,20383,-25656,20369,-25666,20356,-25677,20343,-25687,20330,-25698,20317,-25708,20304,-25718,20291,-25729,20277,-25739,20264,-25750,20251,-25760,20238,-25770,20225,-25781,20212,-25791,20198,-25801,20185,-25812,20172,-25822,20159,-25832,20146,-25843,20132,-25853,20119,-25863,20106,-25873,20093,-25884,20079,-25894,20066,-25904,20053,-25914,20040,-25925,20026,-25935,20013,-25945,20000,-25955,19987,-25966,19973,-25976,19960,-25986,19947,-25996,19933,-26007,19920,-26017,19907,-26027,19894,-26037,19880,-26047,19867,-26057,19854,-26068,19840,-26078,19827,-26088,19814,-26098,19800,-26108,19787,-26118,19774,-26128,19760,-26138,19747,-26149,19733,-26159,19720,-26169,19707,-26179,19693,-26189,19680,-26199,19667,-26209,19653,-26219,19640,-26229,19626,-26239,19613,-26249,19599,-26259,19586,-26269,19573,-26279,19559,-26289,19546,-26299,19532,-26309,19519,-26319,19505,-26329,19492,-26339,19478,-26349,19465,-26359,19451,-26369,19438,-26379,19424,-26389,19411,-26399,19397,-26409,19384,-26419,19370,-26429,19357,-26438,19343,-26448,19330,-26458,19316,-26468,19303,-26478,19289,-26488,19276,-26498,19262,-26508,19249,-26517,19235,-26527,19221,-26537,19208,-26547,19194,-26557,19181,-26567,19167,-26576,19154,-26586,19140,-26596,19126,-26606,19113,-26616,19099,-26625,19086,-26635,19072,-26645,19058,-26655,19045,-26664,19031,-26674,19017,-26684,19004,-26693,18990,-26703,18976,-26713,18963,-26723,18949,-26732,18935,-26742,18922,-26752,18908,-26761,18894,-26771,18881,-26781,18867,-26790,18853,-26800,18840,-26810,18826,-26819,18812,-26829,18798,-26838,18785,-26848,18771,-26858,18757,-26867,18744,-26877,18730,-26886,18716,-26896,18702,-26906,18689,-26915,18675,-26925,18661,-26934,18647,-26944,18633,-26953,18620,-26963,18606,-26972,18592,-26982,18578,-26991,18564,-27001,18551,-27010,18537,-27020,18523,-27029,18509,-27039,18495,-27048,18482,-27058,18468,-27067,18454,-27077,18440,-27086,18426,-27095,18412,-27105,18398,-27114,18385,-27124,18371,-27133,18357,-27142,18343,-27152,18329,-27161,18315,-27171,18301,-27180,18287,-27189,18273,-27199,18260,-27208,18246,-27217,18232,-27227,18218,-27236,18204,-27245,18190,-27255,18176,-27264,18162,-27273,18148,-27282,18134,-27292,18120,-27301,18106,-27310,18092,-27320,18078,-27329,18064,-27338,18050,-27347,18036,-27356,18022,-27366,18008,-27375,17994,-27384,17980,-27393,17966,-27402,17952,-27412,17938,-27421,17924,-27430,17910,-27439,17896,-27448,17882,-27457,17868,-27467,17854,-27476,17840,-27485,17826,-27494,17812,-27503,17798,-27512,17784,-27521,17770,-27530,17756,-27539,17742,-27549,17727,-27558,17713,-27567,17699,-27576,17685,-27585,17671,-27594,17657,-27603,17643,-27612,17629,-27621,17615,-27630,17600,-27639,17586,-27648,17572,-27657,17558,-27666,17544,-27675,17530,-27684,17516,-27693,17501,-27702,17487,-27711,17473,-27720,17459,-27729,17445,-27737,17431,-27746,17416,-27755,17402,-27764,17388,-27773,17374,-27782,17360,-27791,17345,-27800,17331,-27809,17317,-27817,17303,-27826,17288,-27835,17274,-27844,17260,-27853,17246,-27862,17232,-27870,17217,-27879,17203,-27888,17189,-27897,17174,-27906,17160,-27914,17146,-27923,17132,-27932,17117,-27941,17103,-27949,17089,-27958,17074,-27967,17060,-27976,17046,-27984,17032,-27993,17017,-28002,17003,-28010,16989,-28019,16974,-28028,16960,-28037,16946,-28045,16931,-28054,16917,-28063,16903,-28071,16888,-28080,16874,-28088,16859,-28097,16845,-28106,16831,-28114,16816,-28123,16802,-28132,16788,-28140,16773,-28149,16759,-28157,16744,-28166,16730,-28174,16716,-28183,16701,-28191,16687,-28200,16672,-28209,16658,-28217,16643,-28226,16629,-28234,16615,-28243,16600,-28251,16586,-28260,16571,-28268,16557,-28276,16542,-28285,16528,-28293,16513,-28302,16499,-28310,16484,-28319,16470,-28327,16455,-28336,16441,-28344,16427,-28352,16412,-28361,16398,-28369,16383,-28378,16368,-28386,16354,-28394,16339,-28403,16325,-28411,16310,-28419,16296,-28428,16281,-28436,16267,-28444,16252,-28453,16238,-28461,16223,-28469,16209,-28478,16194,-28486,16179,-28494,16165,-28502,16150,-28511,16136,-28519,16121,-28527,16107,-28535,16092,-28544,16077,-28552,16063,-28560,16048,-28568,16034,-28576,16019,-28585,16004,-28593,15990,-28601,15975,-28609,15960,-28617,15946,-28626,15931,-28634,15917,-28642,15902,-28650,15887,-28658,15873,-28666,15858,-28674,15843,-28682,15829,-28691,15814,-28699,15799,-28707,15785,-28715,15770,-28723,15755,-28731,15740,-28739,15726,-28747,15711,-28755,15696,-28763,15682,-28771,15667,-28779,15652,-28787,15638,-28795,15623,-28803,15608,-28811,15593,-28819,15579,-28827,15564,-28835,15549,-28843,15534,-28851,15520,-28859,15505,-28867,15490,-28875,15475,-28883,15461,-28891,15446,-28898,15431,-28906,15416,-28914,15401,-28922,15387,-28930,15372,-28938,15357,-28946,15342,-28954,15327,-28961,15313,-28969,15298,-28977,15283,-28985,15268,-28993,15253,-29000,15238,-29008,15224,-29016,15209,-29024,15194,-29032,15179,-29039,15164,-29047,15149,-29055,15135,-29063,15120,-29070,15105,-29078,15090,-29086,15075,-29093,15060,-29101,15045,-29109,15030,-29117,15016,-29124,15001,-29132,14986,-29140,14971,-29147,14956,-29155,14941,-29163,14926,-29170,14911,-29178,14896,-29185,14881,-29193,14866,-29201,14852,-29208,14837,-29216,14822,-29223,14807,-29231,14792,-29239,14777,-29246,14762,-29254,14747,-29261,14732,-29269,14717,-29276,14702,-29284,14687,-29291,14672,-29299,14657,-29306,14642,-29314,14627,-29321,14612,-29329,14597,-29336,14582,-29344,14567,-29351,14552,-29359,14537,-29366,14522,-29373,14507,-29381,14492,-29388,14477,-29396,14462,-29403,14447,-29411,14432,-29418,14417,-29425,14402,-29433,14387,-29440,14372,-29447,14357,-29455,14342,-29462,14326,-29469,14311,-29477,14296,-29484,14281,-29491,14266,-29499,14251,-29506,14236,-29513,14221,-29520,14206,-29528,14191,-29535,14176,-29542,14160,-29549,14145,-29557,14130,-29564,14115,-29571,14100,-29578,14085,-29586,14070,-29593,14055,-29600,14039,-29607,14024,-29614,14009,-29622,13994,-29629,13979,-29636,13964,-29643,13949,-29650,13933,-29657,13918,-29664,13903,-29671,13888,-29679,13873,-29686,13858,-29693,13842,-29700,13827,-29707,13812,-29714,13797,-29721,13782,-29728,13766,-29735,13751,-29742,13736,-29749,13721,-29756,13706,-29763,13690,-29770,13675,-29777,13660,-29784,13645,-29791,13629,-29798,13614,-29805,13599,-29812,13584,-29819,13568,-29826,13553,-29833,13538,-29840,13523,-29847,13507,-29854,13492,-29861,13477,-29867,13462,-29874,13446,-29881,13431,-29888,13416,-29895,13400,-29902,13385,-29909,13370,-29916,13355,-29922,13339,-29929,13324,-29936,13309,-29943,13293,-29950,13278,-29956,13263,-29963,13247,-29970,13232,-29977,13217,-29984,13201,-29990,13186,-29997,13171,-30004,13155,-30010,13140,-30017,13125,-30024,13109,-30031,13094,-30037,13079,-30044,13063,-30051,13048,-30057,13033,-30064,13017,-30071,13002,-30077,12986,-30084,12971,-30091,12956,-30097,12940,-30104,12925,-30110,12909,-30117,12894,-30124,12879,-30130,12863,-30137,12848,-30143,12832,-30150,12817,-30157,12802,-30163,12786,-30170,12771,-30176,12755,-30183,12740,-30189,12724,-30196,12709,-30202,12694,-30209,12678,-30215,12663,-30222,12647,-30228,12632,-30235,12616,-30241,12601,-30248,12585,-30254,12570,-30260,12554,-30267,12539,-30273,12523,-30280,12508,-30286,12492,-30292,12477,-30299,12461,-30305,12446,-30312,12430,-30318,12415,-30324,12399,-30331,12384,-30337,12368,-30343,12353,-30350,12337,-30356,12322,-30362,12306,-30369,12291,-30375,12275,-30381,12260,-30387,12244,-30394,12229,-30400,12213,-30406,12198,-30412,12182,-30419,12166,-30425,12151,-30431,12135,-30437,12120,-30443,12104,-30450,12089,-30456,12073,-30462,12057,-30468,12042,-30474,12026,-30481,12011,-30487,11995,-30493,11980,-30499,11964,-30505,11948,-30511,11933,-30517,11917,-30523,11902,-30529,11886,-30536,11870,-30542,11855,-30548,11839,-30554,11823,-30560,11808,-30566,11792,-30572,11777,-30578,11761,-30584,11745,-30590,11730,-30596,11714,-30602,11698,-30608,11683,-30614,11667,-30620,11651,-30626,11636,-30632,11620,-30638,11604,-30644,11589,-30650,11573,-30656,11557,-30661,11542,-30667,11526,-30673,11510,-30679,11495,-30685,11479,-30691,11463,-30697,11448,-30703,11432,-30708,11416,-30714,11400,-30720,11385,-30726,11369,-30732,11353,-30738,11338,-30743,11322,-30749,11306,-30755,11290,-30761,11275,-30767,11259,-30772,11243,-30778,11227,-30784,11212,-30789,11196,-30795,11180,-30801,11164,-30807,11149,-30812,11133,-30818,11117,-30824,11101,-30829,11086,-30835,11070,-30841,11054,-30846,11038,-30852,11023,-30858,11007,-30863,10991,-30869,10975,-30875,10959,-30880,10944,-30886,10928,-30891,10912,-30897,10896,-30903,10880,-30908,10865,-30914,10849,-30919,10833,-30925,10817,-30930,10801,-30936,10786,-30941,10770,-30947,10754,-30952,10738,-30958,10722,-30963,10706,-30969,10691,-30974,10675,-30980,10659,-30985,10643,-30991,10627,-30996,10611,-31002,10596,-31007,10580,-31012,10564,-31018,10548,-31023,10532,-31029,10516,-31034,10500,-31039,10484,-31045,10469,-31050,10453,-31055,10437,-31061,10421,-31066,10405,-31071,10389,-31077,10373,-31082,10357,-31087,10342,-31093,10326,-31098,10310,-31103,10294,-31108,10278,-31114,10262,-31119,10246,-31124,10230,-31129,10214,-31135,10198,-31140,10182,-31145,10166,-31150,10151,-31155,10135,-31161,10119,-31166,10103,-31171,10087,-31176,10071,-31181,10055,-31186,10039,-31192,10023,-31197,10007,-31202,9991,-31207,9975,-31212,9959,-31217,9943,-31222,9927,-31227,9911,-31232,9895,-31237,9879,-31243,9863,-31248,9847,-31253,9831,-31258,9815,-31263,9799,-31268,9783,-31273,9767,-31278,9751,-31283,9735,-31288,9719,-31293,9703,-31298,9687,-31303,9671,-31308,9655,-31312,9639,-31317,9623,-31322,9607,-31327,9591,-31332,9575,-31337,9559,-31342,9543,-31347,9527,-31352,9511,-31357,9495,-31361,9479,-31366,9463,-31371,9447,-31376,9431,-31381,9415,-31386,9399,-31390,9383,-31395,9367,-31400,9351,-31405,9335,-31410,9319,-31414,9303,-31419,9287,-31424,9270,-31429,9254,-31433,9238,-31438,9222,-31443,9206,-31447,9190,-31452,9174,-31457,9158,-31462,9142,-31466,9126,-31471,9110,-31476,9094,-31480,9077,-31485,9061,-31490,9045,-31494,9029,-31499,9013,-31503,8997,-31508,8981,-31513,8965,-31517,8949,-31522,8932,-31526,8916,-31531,8900,-31535,8884,-31540,8868,-31545,8852,-31549,8836,-31554,8820,-31558,8803,-31563,8787,-31567,8771,-31572,8755,-31576,8739,-31581,8723,-31585,8707,-31589,8690,-31594,8674,-31598,8658,-31603,8642,-31607,8626,-31612,8610,-31616,8593,-31620,8577,-31625,8561,-31629,8545,-31634,8529,-31638,8513,-31642,8496,-31647,8480,-31651,8464,-31655,8448,-31660,8432,-31664,8415,-31668,8399,-31673,8383,-31677,8367,-31681,8351,-31685,8334,-31690,8318,-31694,8302,-31698,8286,-31702,8270,-31707,8253,-31711,8237,-31715,8221,-31719,8205,-31724,8189,-31728,8172,-31732,8156,-31736,8140,-31740,8124,-31744,8107,-31749,8091,-31753,8075,-31757,8059,-31761,8042,-31765,8026,-31769,8010,-31773,7994,-31777,7977,-31781,7961,-31786,7945,-31790,7929,-31794,7912,-31798,7896,-31802,7880,-31806,7864,-31810,7847,-31814,7831,-31818,7815,-31822,7799,-31826,7782,-31830,7766,-31834,7750,-31838,7733,-31842,7717,-31846,7701,-31850,7685,-31854,7668,-31857,7652,-31861,7636,-31865,7619,-31869,7603,-31873,7587,-31877,7571,-31881,7554,-31885,7538,-31889,7522,-31892,7505,-31896,7489,-31900,7473,-31904,7456,-31908,7440,-31912,7424,-31915,7407,-31919,7391,-31923,7375,-31927,7358,-31930,7342,-31934,7326,-31938,7310,-31942,7293,-31945,7277,-31949,7261,-31953,7244,-31957,7228,-31960,7211,-31964,7195,-31968,7179,-31971,7162,-31975,7146,-31979,7130,-31982,7113,-31986,7097,-31990,7081,-31993,7064,-31997,7048,-32000,7032,-32004,7015,-32008,6999,-32011,6982,-32015,6966,-32018,6950,-32022,6933,-32025,6917,-32029,6901,-32033,6884,-32036,6868,-32040,6851,-32043,6835,-32047,6819,-32050,6802,-32054,6786,-32057,6770,-32060,6753,-32064,6737,-32067,6720,-32071,6704,-32074,6688,-32078,6671,-32081,6655,-32085,6638,-32088,6622,-32091,6606,-32095,6589,-32098,6573,-32101,6556,-32105,6540,-32108,6523,-32111,6507,-32115,6491,-32118,6474,-32121,6458,-32125,6441,-32128,6425,-32131,6408,-32135,6392,-32138,6376,-32141,6359,-32144,6343,-32148,6326,-32151,6310,-32154,6293,-32157,6277,-32161,6261,-32164,6244,-32167,6228,-32170,6211,-32173,6195,-32177,6178,-32180,6162,-32183,6145,-32186,6129,-32189,6112,-32192,6096,-32195,6080,-32198,6063,-32202,6047,-32205,6030,-32208,6014,-32211,5997,-32214,5981,-32217,5964,-32220,5948,-32223,5931,-32226,5915,-32229,5898,-32232,5882,-32235,5865,-32238,5849,-32241,5832,-32244,5816,-32247,5799,-32250,5783,-32253,5766,-32256,5750,-32259,5733,-32262,5717,-32265,5700,-32268,5684,-32271,5667,-32274,5651,-32276,5634,-32279,5618,-32282,5601,-32285,5585,-32288,5568,-32291,5552,-32294,5535,-32296,5519,-32299,5502,-32302,5486,-32305,5469,-32308,5453,-32311,5436,-32313,5420,-32316,5403,-32319,5387,-32322,5370,-32324,5354,-32327,5337,-32330,5321,-32333,5304,-32335,5287,-32338,5271,-32341,5254,-32343,5238,-32346,5221,-32349,5205,-32351,5188,-32354,5172,-32357,5155,-32359,5139,-32362,5122,-32365,5106,-32367,5089,-32370,5072,-32372,5056,-32375,5039,-32378,5023,-32380,5006,-32383,4990,-32385,4973,-32388,4957,-32390,4940,-32393,4923,-32395,4907,-32398,4890,-32400,4874,-32403,4857,-32405,4841,-32408,4824,-32410,4807,-32413,4791,-32415,4774,-32418,4758,-32420,4741,-32423,4725,-32425,4708,-32427,4691,-32430,4675,-32432,4658,-32435,4642,-32437,4625,-32439,4608,-32442,4592,-32444,4575,-32446,4559,-32449,4542,-32451,4525,-32453,4509,-32456,4492,-32458,4476,-32460,4459,-32463,4443,-32465,4426,-32467,4409,-32469,4393,-32472,4376,-32474,4359,-32476,4343,-32478,4326,-32481,4310,-32483,4293,-32485,4276,-32487,4260,-32489,4243,-32492,4227,-32494,4210,-32496,4193,-32498,4177,-32500,4160,-32502,4144,-32504,4127,-32507,4110,-32509,4094,-32511,4077,-32513,4060,-32515,4044,-32517,4027,-32519,4011,-32521,3994,-32523,3977,-32525,3961,-32527,3944,-32529,3927,-32531,3911,-32533,3894,-32535,3877,-32537,3861,-32539,3844,-32541,3828,-32543,3811,-32545,3794,-32547,3778,-32549,3761,-32551,3744,-32553,3728,-32555,3711,-32557,3694,-32559,3678,-32560,3661,-32562,3644,-32564,3628,-32566,3611,-32568,3594,-32570,3578,-32572,3561,-32573,3545,-32575,3528,-32577,3511,-32579,3495,-32581,3478,-32582,3461,-32584,3445,-32586,3428,-32588,3411,-32589,3395,-32591,3378,-32593,3361,-32595,3345,-32596,3328,-32598,3311,-32600,3295,-32601,3278,-32603,3261,-32605,3245,-32606,3228,-32608,3211,-32610,3195,-32611,3178,-32613,3161,-32615,3145,-32616,3128,-32618,3111,-32619,3094,-32621,3078,-32623,3061,-32624,3044,-32626,3028,-32627,3011,-32629,2994,-32630,2978,-32632,2961,-32633,2944,-32635,2928,-32636,2911,-32638,2894,-32639,2878,-32641,2861,-32642,2844,-32644,2828,-32645,2811,-32647,2794,-32648,2777,-32650,2761,-32651,2744,-32652,2727,-32654,2711,-32655,2694,-32657,2677,-32658,2661,-32659,2644,-32661,2627,-32662,2610,-32663,2594,-32665,2577,-32666,2560,-32667,2544,-32669,2527,-32670,2510,-32671,2494,-32672,2477,-32674,2460,-32675,2443,-32676,2427,-32677,2410,-32679,2393,-32680,2377,-32681,2360,-32682,2343,-32684,2326,-32685,2310,-32686,2293,-32687,2276,-32688,2260,-32689,2243,-32691,2226,-32692,2209,-32693,2193,-32694,2176,-32695,2159,-32696,2143,-32697,2126,-32698,2109,-32700,2092,-32701,2076,-32702,2059,-32703,2042,-32704,2026,-32705,2009,-32706,1992,-32707,1975,-32708,1959,-32709,1942,-32710,1925,-32711,1908,-32712,1892,-32713,1875,-32714,1858,-32715,1842,-32716,1825,-32717,1808,-32718,1791,-32718,1775,-32719,1758,-32720,1741,-32721,1724,-32722,1708,-32723,1691,-32724,1674,-32725,1658,-32726,1641,-32726,1624,-32727,1607,-32728,1591,-32729,1574,-32730,1557,-32730,1540,-32731,1524,-32732,1507,-32733,1490,-32734,1473,-32734,1457,-32735,1440,-32736,1423,-32737,1406,-32737,1390,-32738,1373,-32739,1356,-32739,1339,-32740,1323,-32741,1306,-32741,1289,-32742,1273,-32743,1256,-32743,1239,-32744,1222,-32745,1206,-32745,1189,-32746,1172,-32747,1155,-32747,1139,-32748,1122,-32748,1105,-32749,1088,-32749,1072,-32750,1055,-32751,1038,-32751,1021,-32752,1005,-32752,988,-32753,971,-32753,954,-32754,938,-32754,921,-32755,904,-32755,887,-32755,871,-32756,854,-32756,837,-32757,820,-32757,804,-32758,787,-32758,770,-32758,753,-32759,737,-32759,720,-32760,703,-32760,686,-32760,670,-32761,653,-32761,636,-32761,619,-32762,603,-32762,586,-32762,569,-32763,552,-32763,536,-32763,519,-32763,502,-32764,485,-32764,469,-32764,452,-32764,435,-32765,418,-32765,402,-32765,385,-32765,368,-32765,351,-32766,335,-32766,318,-32766,301,-32766,284,-32766,268,-32766,251,-32767,234,-32767,217,-32767,201,-32767,184,-32767,167,-32767,150,-32767,134,-32767,117,-32767,100,-32767,83,-32767,67,-32767,50,-32767,33,-32767,16,-32767,0,-32767,-17,-32767,-34,-32767,-51,-32767,-68,-32767,-84,-32767,-101,-32767,-118,-32767,-135,-32767,-151,-32767,-168,-32767,-185,-32767,-202,-32767,-218,-32767,-235,-32767,-252,-32767,-269,-32766,-285,-32766,-302,-32766,-319,-32766,-336,-32766,-352,-32766,-369,-32765,-386,-32765,-403,-32765,-419,-32765,-436,-32765,-453,-32764,-470,-32764,-486,-32764,-503,-32764,-520,-32763,-537,-32763,-553,-32763,-570,-32763,-587,-32762,-604,-32762,-620,-32762,-637,-32761,-654,-32761,-671,-32761,-687,-32760,-704,-32760,-721,-32760,-738,-32759,-754,-32759,-771,-32758,-788,-32758,-805,-32758,-821,-32757,-838,-32757,-855,-32756,-872,-32756,-888,-32755,-905,-32755,-922,-32755,-939,-32754,-955,-32754,-972,-32753,-989,-32753,-1006,-32752,-1022,-32752,-1039,-32751,-1056,-32751,-1073,-32750,-1089,-32749,-1106,-32749,-1123,-32748,-1140,-32748,-1156,-32747,-1173,-32747,-1190,-32746,-1207,-32745,-1223,-32745,-1240,-32744,-1257,-32743,-1274,-32743,-1290,-32742,-1307,-32741,-1324,-32741,-1340,-32740,-1357,-32739,-1374,-32739,-1391,-32738,-1407,-32737,-1424,-32737,-1441,-32736,-1458,-32735,-1474,-32734,-1491,-32734,-1508,-32733,-1525,-32732,-1541,-32731,-1558,-32730,-1575,-32730,-1592,-32729,-1608,-32728,-1625,-32727,-1642,-32726,-1659,-32726,-1675,-32725,-1692,-32724,-1709,-32723,-1725,-32722,-1742,-32721,-1759,-32720,-1776,-32719,-1792,-32718,-1809,-32718,-1826,-32717,-1843,-32716,-1859,-32715,-1876,-32714,-1893,-32713,-1909,-32712,-1926,-32711,-1943,-32710,-1960,-32709,-1976,-32708,-1993,-32707,-2010,-32706,-2027,-32705,-2043,-32704,-2060,-32703,-2077,-32702,-2093,-32701,-2110,-32700,-2127,-32698,-2144,-32697,-2160,-32696,-2177,-32695,-2194,-32694,-2210,-32693,-2227,-32692,-2244,-32691,-2261,-32689,-2277,-32688,-2294,-32687,-2311,-32686,-2327,-32685,-2344,-32684,-2361,-32682,-2378,-32681,-2394,-32680,-2411,-32679,-2428,-32677,-2444,-32676,-2461,-32675,-2478,-32674,-2495,-32672,-2511,-32671,-2528,-32670,-2545,-32669,-2561,-32667,-2578,-32666,-2595,-32665,-2611,-32663,-2628,-32662,-2645,-32661,-2662,-32659,-2678,-32658,-2695,-32657,-2712,-32655,-2728,-32654,-2745,-32652,-2762,-32651,-2778,-32650,-2795,-32648,-2812,-32647,-2829,-32645,-2845,-32644,-2862,-32642,-2879,-32641,-2895,-32639,-2912,-32638,-2929,-32636,-2945,-32635,-2962,-32633,-2979,-32632,-2995,-32630,-3012,-32629,-3029,-32627,-3045,-32626,-3062,-32624,-3079,-32623,-3095,-32621,-3112,-32619,-3129,-32618,-3146,-32616,-3162,-32615,-3179,-32613,-3196,-32611,-3212,-32610,-3229,-32608,-3246,-32606,-3262,-32605,-3279,-32603,-3296,-32601,-3312,-32600,-3329,-32598,-3346,-32596,-3362,-32595,-3379,-32593,-3396,-32591,-3412,-32589,-3429,-32588,-3446,-32586,-3462,-32584,-3479,-32582,-3496,-32581,-3512,-32579,-3529,-32577,-3546,-32575,-3562,-32573,-3579,-32572,-3595,-32570,-3612,-32568,-3629,-32566,-3645,-32564,-3662,-32562,-3679,-32560,-3695,-32559,-3712,-32557,-3729,-32555,-3745,-32553,-3762,-32551,-3779,-32549,-3795,-32547,-3812,-32545,-3829,-32543,-3845,-32541,-3862,-32539,-3878,-32537,-3895,-32535,-3912,-32533,-3928,-32531,-3945,-32529,-3962,-32527,-3978,-32525,-3995,-32523,-4012,-32521,-4028,-32519,-4045,-32517,-4061,-32515,-4078,-32513,-4095,-32511,-4111,-32509,-4128,-32507,-4145,-32504,-4161,-32502,-4178,-32500,-4194,-32498,-4211,-32496,-4228,-32494,-4244,-32492,-4261,-32489,-4277,-32487,-4294,-32485,-4311,-32483,-4327,-32481,-4344,-32478,-4360,-32476,-4377,-32474,-4394,-32472,-4410,-32469,-4427,-32467,-4444,-32465,-4460,-32463,-4477,-32460,-4493,-32458,-4510,-32456,-4526,-32453,-4543,-32451,-4560,-32449,-4576,-32446,-4593,-32444,-4609,-32442,-4626,-32439,-4643,-32437,-4659,-32435,-4676,-32432,-4692,-32430,-4709,-32427,-4726,-32425,-4742,-32423,-4759,-32420,-4775,-32418,-4792,-32415,-4808,-32413,-4825,-32410,-4842,-32408,-4858,-32405,-4875,-32403,-4891,-32400,-4908,-32398,-4924,-32395,-4941,-32393,-4958,-32390,-4974,-32388,-4991,-32385,-5007,-32383,-5024,-32380,-5040,-32378,-5057,-32375,-5073,-32372,-5090,-32370,-5107,-32367,-5123,-32365,-5140,-32362,-5156,-32359,-5173,-32357,-5189,-32354,-5206,-32351,-5222,-32349,-5239,-32346,-5255,-32343,-5272,-32341,-5288,-32338,-5305,-32335,-5322,-32333,-5338,-32330,-5355,-32327,-5371,-32324,-5388,-32322,-5404,-32319,-5421,-32316,-5437,-32313,-5454,-32311,-5470,-32308,-5487,-32305,-5503,-32302,-5520,-32299,-5536,-32296,-5553,-32294,-5569,-32291,-5586,-32288,-5602,-32285,-5619,-32282,-5635,-32279,-5652,-32276,-5668,-32274,-5685,-32271,-5701,-32268,-5718,-32265,-5734,-32262,-5751,-32259,-5767,-32256,-5784,-32253,-5800,-32250,-5817,-32247,-5833,-32244,-5850,-32241,-5866,-32238,-5883,-32235,-5899,-32232,-5916,-32229,-5932,-32226,-5949,-32223,-5965,-32220,-5982,-32217,-5998,-32214,-6015,-32211,-6031,-32208,-6048,-32205,-6064,-32202,-6081,-32198,-6097,-32195,-6113,-32192,-6130,-32189,-6146,-32186,-6163,-32183,-6179,-32180,-6196,-32177,-6212,-32173,-6229,-32170,-6245,-32167,-6262,-32164,-6278,-32161,-6294,-32157,-6311,-32154,-6327,-32151,-6344,-32148,-6360,-32144,-6377,-32141,-6393,-32138,-6409,-32135,-6426,-32131,-6442,-32128,-6459,-32125,-6475,-32121,-6492,-32118,-6508,-32115,-6524,-32111,-6541,-32108,-6557,-32105,-6574,-32101,-6590,-32098,-6607,-32095,-6623,-32091,-6639,-32088,-6656,-32085,-6672,-32081,-6689,-32078,-6705,-32074,-6721,-32071,-6738,-32067,-6754,-32064,-6771,-32060,-6787,-32057,-6803,-32054,-6820,-32050,-6836,-32047,-6852,-32043,-6869,-32040,-6885,-32036,-6902,-32033,-6918,-32029,-6934,-32025,-6951,-32022,-6967,-32018,-6983,-32015,-7000,-32011,-7016,-32008,-7033,-32004,-7049,-32000,-7065,-31997,-7082,-31993,-7098,-31990,-7114,-31986,-7131,-31982,-7147,-31979,-7163,-31975,-7180,-31971,-7196,-31968,-7212,-31964,-7229,-31960,-7245,-31957,-7262,-31953,-7278,-31949,-7294,-31945,-7311,-31942,-7327,-31938,-7343,-31934,-7359,-31930,-7376,-31927,-7392,-31923,-7408,-31919,-7425,-31915,-7441,-31912,-7457,-31908,-7474,-31904,-7490,-31900,-7506,-31896,-7523,-31892,-7539,-31889,-7555,-31885,-7572,-31881,-7588,-31877,-7604,-31873,-7620,-31869,-7637,-31865,-7653,-31861,-7669,-31857,-7686,-31854,-7702,-31850,-7718,-31846,-7734,-31842,-7751,-31838,-7767,-31834,-7783,-31830,-7800,-31826,-7816,-31822,-7832,-31818,-7848,-31814,-7865,-31810,-7881,-31806,-7897,-31802,-7913,-31798,-7930,-31794,-7946,-31790,-7962,-31786,-7978,-31781,-7995,-31777,-8011,-31773,-8027,-31769,-8043,-31765,-8060,-31761,-8076,-31757,-8092,-31753,-8108,-31749,-8125,-31744,-8141,-31740,-8157,-31736,-8173,-31732,-8190,-31728,-8206,-31724,-8222,-31719,-8238,-31715,-8254,-31711,-8271,-31707,-8287,-31702,-8303,-31698,-8319,-31694,-8335,-31690,-8352,-31685,-8368,-31681,-8384,-31677,-8400,-31673,-8416,-31668,-8433,-31664,-8449,-31660,-8465,-31655,-8481,-31651,-8497,-31647,-8514,-31642,-8530,-31638,-8546,-31634,-8562,-31629,-8578,-31625,-8594,-31620,-8611,-31616,-8627,-31612,-8643,-31607,-8659,-31603,-8675,-31598,-8691,-31594,-8708,-31589,-8724,-31585,-8740,-31581,-8756,-31576,-8772,-31572,-8788,-31567,-8804,-31563,-8821,-31558,-8837,-31554,-8853,-31549,-8869,-31545,-8885,-31540,-8901,-31535,-8917,-31531,-8933,-31526,-8950,-31522,-8966,-31517,-8982,-31513,-8998,-31508,-9014,-31503,-9030,-31499,-9046,-31494,-9062,-31490,-9078,-31485,-9095,-31480,-9111,-31476,-9127,-31471,-9143,-31466,-9159,-31462,-9175,-31457,-9191,-31452,-9207,-31447,-9223,-31443,-9239,-31438,-9255,-31433,-9271,-31429,-9288,-31424,-9304,-31419,-9320,-31414,-9336,-31410,-9352,-31405,-9368,-31400,-9384,-31395,-9400,-31390,-9416,-31386,-9432,-31381,-9448,-31376,-9464,-31371,-9480,-31366,-9496,-31361,-9512,-31357,-9528,-31352,-9544,-31347,-9560,-31342,-9576,-31337,-9592,-31332,-9608,-31327,-9624,-31322,-9640,-31317,-9656,-31312,-9672,-31308,-9688,-31303,-9704,-31298,-9720,-31293,-9736,-31288,-9752,-31283,-9768,-31278,-9784,-31273,-9800,-31268,-9816,-31263,-9832,-31258,-9848,-31253,-9864,-31248,-9880,-31243,-9896,-31237,-9912,-31232,-9928,-31227,-9944,-31222,-9960,-31217,-9976,-31212,-9992,-31207,-10008,-31202,-10024,-31197,-10040,-31192,-10056,-31186,-10072,-31181,-10088,-31176,-10104,-31171,-10120,-31166,-10136,-31161,-10152,-31155,-10167,-31150,-10183,-31145,-10199,-31140,-10215,-31135,-10231,-31129,-10247,-31124,-10263,-31119,-10279,-31114,-10295,-31108,-10311,-31103,-10327,-31098,-10343,-31093,-10358,-31087,-10374,-31082,-10390,-31077,-10406,-31071,-10422,-31066,-10438,-31061,-10454,-31055,-10470,-31050,-10485,-31045,-10501,-31039,-10517,-31034,-10533,-31029,-10549,-31023,-10565,-31018,-10581,-31012,-10597,-31007,-10612,-31002,-10628,-30996,-10644,-30991,-10660,-30985,-10676,-30980,-10692,-30974,-10707,-30969,-10723,-30963,-10739,-30958,-10755,-30952,-10771,-30947,-10787,-30941,-10802,-30936,-10818,-30930,-10834,-30925,-10850,-30919,-10866,-30914,-10881,-30908,-10897,-30903,-10913,-30897,-10929,-30891,-10945,-30886,-10960,-30880,-10976,-30875,-10992,-30869,-11008,-30863,-11024,-30858,-11039,-30852,-11055,-30846,-11071,-30841,-11087,-30835,-11102,-30829,-11118,-30824,-11134,-30818,-11150,-30812,-11165,-30807,-11181,-30801,-11197,-30795,-11213,-30789,-11228,-30784,-11244,-30778,-11260,-30772,-11276,-30767,-11291,-30761,-11307,-30755,-11323,-30749,-11339,-30743,-11354,-30738,-11370,-30732,-11386,-30726,-11401,-30720,-11417,-30714,-11433,-30708,-11449,-30703,-11464,-30697,-11480,-30691,-11496,-30685,-11511,-30679,-11527,-30673,-11543,-30667,-11558,-30661,-11574,-30656,-11590,-30650,-11605,-30644,-11621,-30638,-11637,-30632,-11652,-30626,-11668,-30620,-11684,-30614,-11699,-30608,-11715,-30602,-11731,-30596,-11746,-30590,-11762,-30584,-11778,-30578,-11793,-30572,-11809,-30566,-11824,-30560,-11840,-30554,-11856,-30548,-11871,-30542,-11887,-30536,-11903,-30529,-11918,-30523,-11934,-30517,-11949,-30511,-11965,-30505,-11981,-30499,-11996,-30493,-12012,-30487,-12027,-30481,-12043,-30474,-12058,-30468,-12074,-30462,-12090,-30456,-12105,-30450,-12121,-30443,-12136,-30437,-12152,-30431,-12167,-30425,-12183,-30419,-12199,-30412,-12214,-30406,-12230,-30400,-12245,-30394,-12261,-30387,-12276,-30381,-12292,-30375,-12307,-30369,-12323,-30362,-12338,-30356,-12354,-30350,-12369,-30343,-12385,-30337,-12400,-30331,-12416,-30324,-12431,-30318,-12447,-30312,-12462,-30305,-12478,-30299,-12493,-30292,-12509,-30286,-12524,-30280,-12540,-30273,-12555,-30267,-12571,-30260,-12586,-30254,-12602,-30248,-12617,-30241,-12633,-30235,-12648,-30228,-12664,-30222,-12679,-30215,-12695,-30209,-12710,-30202,-12725,-30196,-12741,-30189,-12756,-30183,-12772,-30176,-12787,-30170,-12803,-30163,-12818,-30157,-12833,-30150,-12849,-30143,-12864,-30137,-12880,-30130,-12895,-30124,-12910,-30117,-12926,-30110,-12941,-30104,-12957,-30097,-12972,-30091,-12987,-30084,-13003,-30077,-13018,-30071,-13034,-30064,-13049,-30057,-13064,-30051,-13080,-30044,-13095,-30037,-13110,-30031,-13126,-30024,-13141,-30017,-13156,-30010,-13172,-30004,-13187,-29997,-13202,-29990,-13218,-29984,-13233,-29977,-13248,-29970,-13264,-29963,-13279,-29956,-13294,-29950,-13310,-29943,-13325,-29936,-13340,-29929,-13356,-29922,-13371,-29916,-13386,-29909,-13401,-29902,-13417,-29895,-13432,-29888,-13447,-29881,-13463,-29874,-13478,-29867,-13493,-29861,-13508,-29854,-13524,-29847,-13539,-29840,-13554,-29833,-13569,-29826,-13585,-29819,-13600,-29812,-13615,-29805,-13630,-29798,-13646,-29791,-13661,-29784,-13676,-29777,-13691,-29770,-13707,-29763,-13722,-29756,-13737,-29749,-13752,-29742,-13767,-29735,-13783,-29728,-13798,-29721,-13813,-29714,-13828,-29707,-13843,-29700,-13859,-29693,-13874,-29686,-13889,-29679,-13904,-29671,-13919,-29664,-13934,-29657,-13950,-29650,-13965,-29643,-13980,-29636,-13995,-29629,-14010,-29622,-14025,-29614,-14040,-29607,-14056,-29600,-14071,-29593,-14086,-29586,-14101,-29578,-14116,-29571,-14131,-29564,-14146,-29557,-14161,-29549,-14177,-29542,-14192,-29535,-14207,-29528,-14222,-29520,-14237,-29513,-14252,-29506,-14267,-29499,-14282,-29491,-14297,-29484,-14312,-29477,-14327,-29469,-14343,-29462,-14358,-29455,-14373,-29447,-14388,-29440,-14403,-29433,-14418,-29425,-14433,-29418,-14448,-29411,-14463,-29403,-14478,-29396,-14493,-29388,-14508,-29381,-14523,-29373,-14538,-29366,-14553,-29359,-14568,-29351,-14583,-29344,-14598,-29336,-14613,-29329,-14628,-29321,-14643,-29314,-14658,-29306,-14673,-29299,-14688,-29291,-14703,-29284,-14718,-29276,-14733,-29269,-14748,-29261,-14763,-29254,-14778,-29246,-14793,-29239,-14808,-29231,-14823,-29223,-14838,-29216,-14853,-29208,-14867,-29201,-14882,-29193,-14897,-29185,-14912,-29178,-14927,-29170,-14942,-29163,-14957,-29155,-14972,-29147,-14987,-29140,-15002,-29132,-15017,-29124,-15031,-29117,-15046,-29109,-15061,-29101,-15076,-29093,-15091,-29086,-15106,-29078,-15121,-29070,-15136,-29063,-15150,-29055,-15165,-29047,-15180,-29039,-15195,-29032,-15210,-29024,-15225,-29016,-15239,-29008,-15254,-29000,-15269,-28993,-15284,-28985,-15299,-28977,-15314,-28969,-15328,-28961,-15343,-28954,-15358,-28946,-15373,-28938,-15388,-28930,-15402,-28922,-15417,-28914,-15432,-28906,-15447,-28898,-15462,-28891,-15476,-28883,-15491,-28875,-15506,-28867,-15521,-28859,-15535,-28851,-15550,-28843,-15565,-28835,-15580,-28827,-15594,-28819,-15609,-28811,-15624,-28803,-15639,-28795,-15653,-28787,-15668,-28779,-15683,-28771,-15697,-28763,-15712,-28755,-15727,-28747,-15741,-28739,-15756,-28731,-15771,-28723,-15786,-28715,-15800,-28707,-15815,-28699,-15830,-28691,-15844,-28682,-15859,-28674,-15874,-28666,-15888,-28658,-15903,-28650,-15918,-28642,-15932,-28634,-15947,-28626,-15961,-28617,-15976,-28609,-15991,-28601,-16005,-28593,-16020,-28585,-16035,-28576,-16049,-28568,-16064,-28560,-16078,-28552,-16093,-28544,-16108,-28535,-16122,-28527,-16137,-28519,-16151,-28511,-16166,-28502,-16180,-28494,-16195,-28486,-16210,-28478,-16224,-28469,-16239,-28461,-16253,-28453,-16268,-28444,-16282,-28436,-16297,-28428,-16311,-28419,-16326,-28411,-16340,-28403,-16355,-28394,-16369,-28386,-16384,-28378,-16399,-28369,-16413,-28361,-16428,-28352,-16442,-28344,-16456,-28336,-16471,-28327,-16485,-28319,-16500,-28310,-16514,-28302,-16529,-28293,-16543,-28285,-16558,-28276,-16572,-28268,-16587,-28260,-16601,-28251,-16616,-28243,-16630,-28234,-16644,-28226,-16659,-28217,-16673,-28209,-16688,-28200,-16702,-28191,-16717,-28183,-16731,-28174,-16745,-28166,-16760,-28157,-16774,-28149,-16789,-28140,-16803,-28132,-16817,-28123,-16832,-28114,-16846,-28106,-16860,-28097,-16875,-28088,-16889,-28080,-16904,-28071,-16918,-28063,-16932,-28054,-16947,-28045,-16961,-28037,-16975,-28028,-16990,-28019,-17004,-28010,-17018,-28002,-17033,-27993,-17047,-27984,-17061,-27976,-17075,-27967,-17090,-27958,-17104,-27949,-17118,-27941,-17133,-27932,-17147,-27923,-17161,-27914,-17175,-27906,-17190,-27897,-17204,-27888,-17218,-27879,-17233,-27870,-17247,-27862,-17261,-27853,-17275,-27844,-17289,-27835,-17304,-27826,-17318,-27817,-17332,-27809,-17346,-27800,-17361,-27791,-17375,-27782,-17389,-27773,-17403,-27764,-17417,-27755,-17432,-27746,-17446,-27737,-17460,-27729,-17474,-27720,-17488,-27711,-17502,-27702,-17517,-27693,-17531,-27684,-17545,-27675,-17559,-27666,-17573,-27657,-17587,-27648,-17601,-27639,-17616,-27630,-17630,-27621,-17644,-27612,-17658,-27603,-17672,-27594,-17686,-27585,-17700,-27576,-17714,-27567,-17728,-27558,-17743,-27549,-17757,-27539,-17771,-27530,-17785,-27521,-17799,-27512,-17813,-27503,-17827,-27494,-17841,-27485,-17855,-27476,-17869,-27467,-17883,-27457,-17897,-27448,-17911,-27439,-17925,-27430,-17939,-27421,-17953,-27412,-17967,-27402,-17981,-27393,-17995,-27384,-18009,-27375,-18023,-27366,-18037,-27356,-18051,-27347,-18065,-27338,-18079,-27329,-18093,-27320,-18107,-27310,-18121,-27301,-18135,-27292,-18149,-27282,-18163,-27273,-18177,-27264,-18191,-27255,-18205,-27245,-18219,-27236,-18233,-27227,-18247,-27217,-18261,-27208,-18274,-27199,-18288,-27189,-18302,-27180,-18316,-27171,-18330,-27161,-18344,-27152,-18358,-27142,-18372,-27133,-18386,-27124,-18399,-27114,-18413,-27105,-18427,-27095,-18441,-27086,-18455,-27077,-18469,-27067,-18483,-27058,-18496,-27048,-18510,-27039,-18524,-27029,-18538,-27020,-18552,-27010,-18565,-27001,-18579,-26991,-18593,-26982,-18607,-26972,-18621,-26963,-18634,-26953,-18648,-26944,-18662,-26934,-18676,-26925,-18690,-26915,-18703,-26906,-18717,-26896,-18731,-26886,-18745,-26877,-18758,-26867,-18772,-26858,-18786,-26848,-18799,-26838,-18813,-26829,-18827,-26819,-18841,-26810,-18854,-26800,-18868,-26790,-18882,-26781,-18895,-26771,-18909,-26761,-18923,-26752,-18936,-26742,-18950,-26732,-18964,-26723,-18977,-26713,-18991,-26703,-19005,-26693,-19018,-26684,-19032,-26674,-19046,-26664,-19059,-26655,-19073,-26645,-19087,-26635,-19100,-26625,-19114,-26616,-19127,-26606,-19141,-26596,-19155,-26586,-19168,-26576,-19182,-26567,-19195,-26557,-19209,-26547,-19222,-26537,-19236,-26527,-19250,-26517,-19263,-26508,-19277,-26498,-19290,-26488,-19304,-26478,-19317,-26468,-19331,-26458,-19344,-26448,-19358,-26438,-19371,-26429,-19385,-26419,-19398,-26409,-19412,-26399,-19425,-26389,-19439,-26379,-19452,-26369,-19466,-26359,-19479,-26349,-19493,-26339,-19506,-26329,-19520,-26319,-19533,-26309,-19547,-26299,-19560,-26289,-19574,-26279,-19587,-26269,-19600,-26259,-19614,-26249,-19627,-26239,-19641,-26229,-19654,-26219,-19668,-26209,-19681,-26199,-19694,-26189,-19708,-26179,-19721,-26169,-19734,-26159,-19748,-26149,-19761,-26138,-19775,-26128,-19788,-26118,-19801,-26108,-19815,-26098,-19828,-26088,-19841,-26078,-19855,-26068,-19868,-26057,-19881,-26047,-19895,-26037,-19908,-26027,-19921,-26017,-19934,-26007,-19948,-25996,-19961,-25986,-19974,-25976,-19988,-25966,-20001,-25955,-20014,-25945,-20027,-25935,-20041,-25925,-20054,-25914,-20067,-25904,-20080,-25894,-20094,-25884,-20107,-25873,-20120,-25863,-20133,-25853,-20147,-25843,-20160,-25832,-20173,-25822,-20186,-25812,-20199,-25801,-20213,-25791,-20226,-25781,-20239,-25770,-20252,-25760,-20265,-25750,-20278,-25739,-20292,-25729,-20305,-25718,-20318,-25708,-20331,-25698,-20344,-25687,-20357,-25677,-20370,-25666,-20384,-25656,-20397,-25646,-20410,-25635,-20423,-25625,-20436,-25614,-20449,-25604,-20462,-25593,-20475,-25583,-20488,-25572,-20501,-25562,-20514,-25551,-20528,-25541,-20541,-25530,-20554,-25520,-20567,-25509,-20580,-25499,-20593,-25488,-20606,-25478,-20619,-25467,-20632,-25457,-20645,-25446,-20658,-25436,-20671,-25425,-20684,-25415,-20697,-25404,-20710,-25393,-20723,-25383,-20736,-25372,-20749,-25362,-20762,-25351,-20775,-25340,-20788,-25330,-20801,-25319,-20814,-25308,-20826,-25298,-20839,-25287,-20852,-25277,-20865,-25266,-20878,-25255,-20891,-25244,-20904,-25234,-20917,-25223,-20930,-25212,-20943,-25202,-20956,-25191,-20968,-25180,-20981,-25170,-20994,-25159,-21007,-25148,-21020,-25137,-21033,-25127,-21046,-25116,-21058,-25105,-21071,-25094,-21084,-25084,-21097,-25073,-21110,-25062,-21123,-25051,-21135,-25040,-21148,-25030,-21161,-25019,-21174,-25008,-21187,-24997,-21199,-24986,-21212,-24975,-21225,-24965,-21238,-24954,-21250,-24943,-21263,-24932,-21276,-24921,-21289,-24910,-21301,-24899,-21314,-24888,-21327,-24878,-21340,-24867,-21352,-24856,-21365,-24845,-21378,-24834,-21390,-24823,-21403,-24812,-21416,-24801,-21428,-24790,-21441,-24779,-21454,-24768,-21466,-24757,-21479,-24746,-21492,-24735,-21504,-24724,-21517,-24713,-21530,-24702,-21542,-24691,-21555,-24680,-21567,-24669,-21580,-24658,-21593,-24647,-21605,-24636,-21618,-24625,-21630,-24614,-21643,-24603,-21656,-24592,-21668,-24581,-21681,-24570,-21693,-24559,-21706,-24547,-21718,-24536,-21731,-24525,-21744,-24514,-21756,-24503,-21769,-24492,-21781,-24481,-21794,-24470,-21806,-24458,-21819,-24447,-21831,-24436,-21844,-24425,-21856,-24414,-21869,-24403,-21881,-24391,-21894,-24380,-21906,-24369,-21918,-24358,-21931,-24347,-21943,-24335,-21956,-24324,-21968,-24313,-21981,-24302,-21993,-24290,-22005,-24279,-22018,-24268,-22030,-24257,-22043,-24245,-22055,-24234,-22067,-24223,-22080,-24212,-22092,-24200,-22105,-24189,-22117,-24178,-22129,-24166,-22142,-24155,-22154,-24144,-22166,-24132,-22179,-24121,-22191,-24110,-22203,-24098,-22216,-24087,-22228,-24076,-22240,-24064,-22253,-24053,-22265,-24042,-22277,-24030,-22289,-24019,-22302,-24007,-22314,-23996,-22326,-23985,-22339,-23973,-22351,-23962,-22363,-23950,-22375,-23939,-22388,-23927,-22400,-23916,-22412,-23904,-22424,-23893,-22436,-23882,-22449,-23870,-22461,-23859,-22473,-23847,-22485,-23836,-22497,-23824,-22510,-23813,-22522,-23801,-22534,-23790,-22546,-23778,-22558,-23767,-22570,-23755,-22583,-23743,-22595,-23732,-22607,-23720,-22619,-23709,-22631,-23697,-22643,-23686,-22655,-23674,-22667,-23662,-22679,-23651,-22692,-23639,-22704,-23628,-22716,-23616,-22728,-23604,-22740,-23593,-22752,-23581,-22764,-23570,-22776,-23558,-22788,-23546,-22800,-23535,-22812,-23523,-22824,-23511,-22836,-23500,-22848,-23488,-22860,-23476,-22872,-23465,-22884,-23453,-22896,-23441,-22908,-23429,-22920,-23418,-22932,-23406,-22944,-23394,-22956,-23383,-22968,-23371,-22980,-23359,-22992,-23347,-23004,-23336,-23016,-23324,-23028,-23312,-23040,-23300,-23051,-23288,-23063,-23277,-23075,-23265,-23087,-23253,-23099,-23241,-23111,-23229,-23123,-23218,-23135,-23206,-23147,-23194,-23158,-23182,-23170,-23170,-23182,-23158,-23194,-23147,-23206,-23135,-23218,-23123,-23229,-23111,-23241,-23099,-23253,-23087,-23265,-23075,-23277,-23063,-23288,-23051,-23300,-23040,-23312,-23028,-23324,-23016,-23336,-23004,-23347,-22992,-23359,-22980,-23371,-22968,-23383,-22956,-23394,-22944,-23406,-22932,-23418,-22920,-23429,-22908,-23441,-22896,-23453,-22884,-23465,-22872,-23476,-22860,-23488,-22848,-23500,-22836,-23511,-22824,-23523,-22812,-23535,-22800,-23546,-22788,-23558,-22776,-23570,-22764,-23581,-22752,-23593,-22740,-23604,-22728,-23616,-22716,-23628,-22704,-23639,-22692,-23651,-22679,-23662,-22667,-23674,-22655,-23686,-22643,-23697,-22631,-23709,-22619,-23720,-22607,-23732,-22595,-23743,-22583,-23755,-22570,-23767,-22558,-23778,-22546,-23790,-22534,-23801,-22522,-23813,-22510,-23824,-22497,-23836,-22485,-23847,-22473,-23859,-22461,-23870,-22449,-23882,-22436,-23893,-22424,-23904,-22412,-23916,-22400,-23927,-22388,-23939,-22375,-23950,-22363,-23962,-22351,-23973,-22339,-23985,-22326,-23996,-22314,-24007,-22302,-24019,-22289,-24030,-22277,-24042,-22265,-24053,-22253,-24064,-22240,-24076,-22228,-24087,-22216,-24098,-22203,-24110,-22191,-24121,-22179,-24132,-22166,-24144,-22154,-24155,-22142,-24166,-22129,-24178,-22117,-24189,-22105,-24200,-22092,-24212,-22080,-24223,-22067,-24234,-22055,-24245,-22043,-24257,-22030,-24268,-22018,-24279,-22005,-24290,-21993,-24302,-21981,-24313,-21968,-24324,-21956,-24335,-21943,-24347,-21931,-24358,-21918,-24369,-21906,-24380,-21894,-24391,-21881,-24403,-21869,-24414,-21856,-24425,-21844,-24436,-21831,-24447,-21819,-24458,-21806,-24470,-21794,-24481,-21781,-24492,-21769,-24503,-21756,-24514,-21744,-24525,-21731,-24536,-21718,-24547,-21706,-24559,-21693,-24570,-21681,-24581,-21668,-24592,-21656,-24603,-21643,-24614,-21630,-24625,-21618,-24636,-21605,-24647,-21593,-24658,-21580,-24669,-21567,-24680,-21555,-24691,-21542,-24702,-21530,-24713,-21517,-24724,-21504,-24735,-21492,-24746,-21479,-24757,-21466,-24768,-21454,-24779,-21441,-24790,-21428,-24801,-21416,-24812,-21403,-24823,-21390,-24834,-21378,-24845,-21365,-24856,-21352,-24867,-21340,-24878,-21327,-24888,-21314,-24899,-21301,-24910,-21289,-24921,-21276,-24932,-21263,-24943,-21250,-24954,-21238,-24965,-21225,-24975,-21212,-24986,-21199,-24997,-21187,-25008,-21174,-25019,-21161,-25030,-21148,-25040,-21135,-25051,-21123,-25062,-21110,-25073,-21097,-25084,-21084,-25094,-21071,-25105,-21058,-25116,-21046,-25127,-21033,-25137,-21020,-25148,-21007,-25159,-20994,-25170,-20981,-25180,-20968,-25191,-20956,-25202,-20943,-25212,-20930,-25223,-20917,-25234,-20904,-25244,-20891,-25255,-20878,-25266,-20865,-25277,-20852,-25287,-20839,-25298,-20826,-25308,-20814,-25319,-20801,-25330,-20788,-25340,-20775,-25351,-20762,-25362,-20749,-25372,-20736,-25383,-20723,-25393,-20710,-25404,-20697,-25415,-20684,-25425,-20671,-25436,-20658,-25446,-20645,-25457,-20632,-25467,-20619,-25478,-20606,-25488,-20593,-25499,-20580,-25509,-20567,-25520,-20554,-25530,-20541,-25541,-20528,-25551,-20514,-25562,-20501,-25572,-20488,-25583,-20475,-25593,-20462,-25604,-20449,-25614,-20436,-25625,-20423,-25635,-20410,-25646,-20397,-25656,-20384,-25666,-20370,-25677,-20357,-25687,-20344,-25698,-20331,-25708,-20318,-25718,-20305,-25729,-20292,-25739,-20278,-25750,-20265,-25760,-20252,-25770,-20239,-25781,-20226,-25791,-20213,-25801,-20199,-25812,-20186,-25822,-20173,-25832,-20160,-25843,-20147,-25853,-20133,-25863,-20120,-25873,-20107,-25884,-20094,-25894,-20080,-25904,-20067,-25914,-20054,-25925,-20041,-25935,-20027,-25945,-20014,-25955,-20001,-25966,-19988,-25976,-19974,-25986,-19961,-25996,-19948,-26007,-19934,-26017,-19921,-26027,-19908,-26037,-19895,-26047,-19881,-26057,-19868,-26068,-19855,-26078,-19841,-26088,-19828,-26098,-19815,-26108,-19801,-26118,-19788,-26128,-19775,-26138,-19761,-26149,-19748,-26159,-19734,-26169,-19721,-26179,-19708,-26189,-19694,-26199,-19681,-26209,-19668,-26219,-19654,-26229,-19641,-26239,-19627,-26249,-19614,-26259,-19600,-26269,-19587,-26279,-19574,-26289,-19560,-26299,-19547,-26309,-19533,-26319,-19520,-26329,-19506,-26339,-19493,-26349,-19479,-26359,-19466,-26369,-19452,-26379,-19439,-26389,-19425,-26399,-19412,-26409,-19398,-26419,-19385,-26429,-19371,-26438,-19358,-26448,-19344,-26458,-19331,-26468,-19317,-26478,-19304,-26488,-19290,-26498,-19277,-26508,-19263,-26517,-19250,-26527,-19236,-26537,-19222,-26547,-19209,-26557,-19195,-26567,-19182,-26576,-19168,-26586,-19155,-26596,-19141,-26606,-19127,-26616,-19114,-26625,-19100,-26635,-19087,-26645,-19073,-26655,-19059,-26664,-19046,-26674,-19032,-26684,-19018,-26693,-19005,-26703,-18991,-26713,-18977,-26723,-18964,-26732,-18950,-26742,-18936,-26752,-18923,-26761,-18909,-26771,-18895,-26781,-18882,-26790,-18868,-26800,-18854,-26810,-18841,-26819,-18827,-26829,-18813,-26838,-18799,-26848,-18786,-26858,-18772,-26867,-18758,-26877,-18745,-26886,-18731,-26896,-18717,-26906,-18703,-26915,-18690,-26925,-18676,-26934,-18662,-26944,-18648,-26953,-18634,-26963,-18621,-26972,-18607,-26982,-18593,-26991,-18579,-27001,-18565,-27010,-18552,-27020,-18538,-27029,-18524,-27039,-18510,-27048,-18496,-27058,-18483,-27067,-18469,-27077,-18455,-27086,-18441,-27095,-18427,-27105,-18413,-27114,-18399,-27124,-18386,-27133,-18372,-27142,-18358,-27152,-18344,-27161,-18330,-27171,-18316,-27180,-18302,-27189,-18288,-27199,-18274,-27208,-18261,-27217,-18247,-27227,-18233,-27236,-18219,-27245,-18205,-27255,-18191,-27264,-18177,-27273,-18163,-27282,-18149,-27292,-18135,-27301,-18121,-27310,-18107,-27320,-18093,-27329,-18079,-27338,-18065,-27347,-18051,-27356,-18037,-27366,-18023,-27375,-18009,-27384,-17995,-27393,-17981,-27402,-17967,-27412,-17953,-27421,-17939,-27430,-17925,-27439,-17911,-27448,-17897,-27457,-17883,-27467,-17869,-27476,-17855,-27485,-17841,-27494,-17827,-27503,-17813,-27512,-17799,-27521,-17785,-27530,-17771,-27539,-17757,-27549,-17743,-27558,-17728,-27567,-17714,-27576,-17700,-27585,-17686,-27594,-17672,-27603,-17658,-27612,-17644,-27621,-17630,-27630,-17616,-27639,-17601,-27648,-17587,-27657,-17573,-27666,-17559,-27675,-17545,-27684,-17531,-27693,-17517,-27702,-17502,-27711,-17488,-27720,-17474,-27729,-17460,-27737,-17446,-27746,-17432,-27755,-17417,-27764,-17403,-27773,-17389,-27782,-17375,-27791,-17361,-27800,-17346,-27809,-17332,-27817,-17318,-27826,-17304,-27835,-17289,-27844,-17275,-27853,-17261,-27862,-17247,-27870,-17233,-27879,-17218,-27888,-17204,-27897,-17190,-27906,-17175,-27914,-17161,-27923,-17147,-27932,-17133,-27941,-17118,-27949,-17104,-27958,-17090,-27967,-17075,-27976,-17061,-27984,-17047,-27993,-17033,-28002,-17018,-28010,-17004,-28019,-16990,-28028,-16975,-28037,-16961,-28045,-16947,-28054,-16932,-28063,-16918,-28071,-16904,-28080,-16889,-28088,-16875,-28097,-16860,-28106,-16846,-28114,-16832,-28123,-16817,-28132,-16803,-28140,-16789,-28149,-16774,-28157,-16760,-28166,-16745,-28174,-16731,-28183,-16717,-28191,-16702,-28200,-16688,-28209,-16673,-28217,-16659,-28226,-16644,-28234,-16630,-28243,-16616,-28251,-16601,-28260,-16587,-28268,-16572,-28276,-16558,-28285,-16543,-28293,-16529,-28302,-16514,-28310,-16500,-28319,-16485,-28327,-16471,-28336,-16456,-28344,-16442,-28352,-16428,-28361,-16413,-28369,-16399,-28378,-16384,-28386,-16369,-28394,-16355,-28403,-16340,-28411,-16326,-28419,-16311,-28428,-16297,-28436,-16282,-28444,-16268,-28453,-16253,-28461,-16239,-28469,-16224,-28478,-16210,-28486,-16195,-28494,-16180,-28502,-16166,-28511,-16151,-28519,-16137,-28527,-16122,-28535,-16108,-28544,-16093,-28552,-16078,-28560,-16064,-28568,-16049,-28576,-16035,-28585,-16020,-28593,-16005,-28601,-15991,-28609,-15976,-28617,-15961,-28626,-15947,-28634,-15932,-28642,-15918,-28650,-15903,-28658,-15888,-28666,-15874,-28674,-15859,-28682,-15844,-28691,-15830,-28699,-15815,-28707,-15800,-28715,-15786,-28723,-15771,-28731,-15756,-28739,-15741,-28747,-15727,-28755,-15712,-28763,-15697,-28771,-15683,-28779,-15668,-28787,-15653,-28795,-15639,-28803,-15624,-28811,-15609,-28819,-15594,-28827,-15580,-28835,-15565,-28843,-15550,-28851,-15535,-28859,-15521,-28867,-15506,-28875,-15491,-28883,-15476,-28891,-15462,-28898,-15447,-28906,-15432,-28914,-15417,-28922,-15402,-28930,-15388,-28938,-15373,-28946,-15358,-28954,-15343,-28961,-15328,-28969,-15314,-28977,-15299,-28985,-15284,-28993,-15269,-29000,-15254,-29008,-15239,-29016,-15225,-29024,-15210,-29032,-15195,-29039,-15180,-29047,-15165,-29055,-15150,-29063,-15136,-29070,-15121,-29078,-15106,-29086,-15091,-29093,-15076,-29101,-15061,-29109,-15046,-29117,-15031,-29124,-15017,-29132,-15002,-29140,-14987,-29147,-14972,-29155,-14957,-29163,-14942,-29170,-14927,-29178,-14912,-29185,-14897,-29193,-14882,-29201,-14867,-29208,-14853,-29216,-14838,-29223,-14823,-29231,-14808,-29239,-14793,-29246,-14778,-29254,-14763,-29261,-14748,-29269,-14733,-29276,-14718,-29284,-14703,-29291,-14688,-29299,-14673,-29306,-14658,-29314,-14643,-29321,-14628,-29329,-14613,-29336,-14598,-29344,-14583,-29351,-14568,-29359,-14553,-29366,-14538,-29373,-14523,-29381,-14508,-29388,-14493,-29396,-14478,-29403,-14463,-29411,-14448,-29418,-14433,-29425,-14418,-29433,-14403,-29440,-14388,-29447,-14373,-29455,-14358,-29462,-14343,-29469,-14327,-29477,-14312,-29484,-14297,-29491,-14282,-29499,-14267,-29506,-14252,-29513,-14237,-29520,-14222,-29528,-14207,-29535,-14192,-29542,-14177,-29549,-14161,-29557,-14146,-29564,-14131,-29571,-14116,-29578,-14101,-29586,-14086,-29593,-14071,-29600,-14056,-29607,-14040,-29614,-14025,-29622,-14010,-29629,-13995,-29636,-13980,-29643,-13965,-29650,-13950,-29657,-13934,-29664,-13919,-29671,-13904,-29679,-13889,-29686,-13874,-29693,-13859,-29700,-13843,-29707,-13828,-29714,-13813,-29721,-13798,-29728,-13783,-29735,-13767,-29742,-13752,-29749,-13737,-29756,-13722,-29763,-13707,-29770,-13691,-29777,-13676,-29784,-13661,-29791,-13646,-29798,-13630,-29805,-13615,-29812,-13600,-29819,-13585,-29826,-13569,-29833,-13554,-29840,-13539,-29847,-13524,-29854,-13508,-29861,-13493,-29867,-13478,-29874,-13463,-29881,-13447,-29888,-13432,-29895,-13417,-29902,-13401,-29909,-13386,-29916,-13371,-29922,-13356,-29929,-13340,-29936,-13325,-29943,-13310,-29950,-13294,-29956,-13279,-29963,-13264,-29970,-13248,-29977,-13233,-29984,-13218,-29990,-13202,-29997,-13187,-30004,-13172,-30010,-13156,-30017,-13141,-30024,-13126,-30031,-13110,-30037,-13095,-30044,-13080,-30051,-13064,-30057,-13049,-30064,-13034,-30071,-13018,-30077,-13003,-30084,-12987,-30091,-12972,-30097,-12957,-30104,-12941,-30110,-12926,-30117,-12910,-30124,-12895,-30130,-12880,-30137,-12864,-30143,-12849,-30150,-12833,-30157,-12818,-30163,-12803,-30170,-12787,-30176,-12772,-30183,-12756,-30189,-12741,-30196,-12725,-30202,-12710,-30209,-12695,-30215,-12679,-30222,-12664,-30228,-12648,-30235,-12633,-30241,-12617,-30248,-12602,-30254,-12586,-30260,-12571,-30267,-12555,-30273,-12540,-30280,-12524,-30286,-12509,-30292,-12493,-30299,-12478,-30305,-12462,-30312,-12447,-30318,-12431,-30324,-12416,-30331,-12400,-30337,-12385,-30343,-12369,-30350,-12354,-30356,-12338,-30362,-12323,-30369,-12307,-30375,-12292,-30381,-12276,-30387,-12261,-30394,-12245,-30400,-12230,-30406,-12214,-30412,-12199,-30419,-12183,-30425,-12167,-30431,-12152,-30437,-12136,-30443,-12121,-30450,-12105,-30456,-12090,-30462,-12074,-30468,-12058,-30474,-12043,-30481,-12027,-30487,-12012,-30493,-11996,-30499,-11981,-30505,-11965,-30511,-11949,-30517,-11934,-30523,-11918,-30529,-11903,-30536,-11887,-30542,-11871,-30548,-11856,-30554,-11840,-30560,-11824,-30566,-11809,-30572,-11793,-30578,-11778,-30584,-11762,-30590,-11746,-30596,-11731,-30602,-11715,-30608,-11699,-30614,-11684,-30620,-11668,-30626,-11652,-30632,-11637,-30638,-11621,-30644,-11605,-30650,-11590,-30656,-11574,-30661,-11558,-30667,-11543,-30673,-11527,-30679,-11511,-30685,-11496,-30691,-11480,-30697,-11464,-30703,-11449,-30708,-11433,-30714,-11417,-30720,-11401,-30726,-11386,-30732,-11370,-30738,-11354,-30743,-11339,-30749,-11323,-30755,-11307,-30761,-11291,-30767,-11276,-30772,-11260,-30778,-11244,-30784,-11228,-30789,-11213,-30795,-11197,-30801,-11181,-30807,-11165,-30812,-11150,-30818,-11134,-30824,-11118,-30829,-11102,-30835,-11087,-30841,-11071,-30846,-11055,-30852,-11039,-30858,-11024,-30863,-11008,-30869,-10992,-30875,-10976,-30880,-10960,-30886,-10945,-30891,-10929,-30897,-10913,-30903,-10897,-30908,-10881,-30914,-10866,-30919,-10850,-30925,-10834,-30930,-10818,-30936,-10802,-30941,-10787,-30947,-10771,-30952,-10755,-30958,-10739,-30963,-10723,-30969,-10707,-30974,-10692,-30980,-10676,-30985,-10660,-30991,-10644,-30996,-10628,-31002,-10612,-31007,-10597,-31012,-10581,-31018,-10565,-31023,-10549,-31029,-10533,-31034,-10517,-31039,-10501,-31045,-10485,-31050,-10470,-31055,-10454,-31061,-10438,-31066,-10422,-31071,-10406,-31077,-10390,-31082,-10374,-31087,-10358,-31093,-10343,-31098,-10327,-31103,-10311,-31108,-10295,-31114,-10279,-31119,-10263,-31124,-10247,-31129,-10231,-31135,-10215,-31140,-10199,-31145,-10183,-31150,-10167,-31155,-10152,-31161,-10136,-31166,-10120,-31171,-10104,-31176,-10088,-31181,-10072,-31186,-10056,-31192,-10040,-31197,-10024,-31202,-10008,-31207,-9992,-31212,-9976,-31217,-9960,-31222,-9944,-31227,-9928,-31232,-9912,-31237,-9896,-31243,-9880,-31248,-9864,-31253,-9848,-31258,-9832,-31263,-9816,-31268,-9800,-31273,-9784,-31278,-9768,-31283,-9752,-31288,-9736,-31293,-9720,-31298,-9704,-31303,-9688,-31308,-9672,-31312,-9656,-31317,-9640,-31322,-9624,-31327,-9608,-31332,-9592,-31337,-9576,-31342,-9560,-31347,-9544,-31352,-9528,-31357,-9512,-31361,-9496,-31366,-9480,-31371,-9464,-31376,-9448,-31381,-9432,-31386,-9416,-31390,-9400,-31395,-9384,-31400,-9368,-31405,-9352,-31410,-9336,-31414,-9320,-31419,-9304,-31424,-9288,-31429,-9271,-31433,-9255,-31438,-9239,-31443,-9223,-31447,-9207,-31452,-9191,-31457,-9175,-31462,-9159,-31466,-9143,-31471,-9127,-31476,-9111,-31480,-9095,-31485,-9078,-31490,-9062,-31494,-9046,-31499,-9030,-31503,-9014,-31508,-8998,-31513,-8982,-31517,-8966,-31522,-8950,-31526,-8933,-31531,-8917,-31535,-8901,-31540,-8885,-31545,-8869,-31549,-8853,-31554,-8837,-31558,-8821,-31563,-8804,-31567,-8788,-31572,-8772,-31576,-8756,-31581,-8740,-31585,-8724,-31589,-8708,-31594,-8691,-31598,-8675,-31603,-8659,-31607,-8643,-31612,-8627,-31616,-8611,-31620,-8594,-31625,-8578,-31629,-8562,-31634,-8546,-31638,-8530,-31642,-8514,-31647,-8497,-31651,-8481,-31655,-8465,-31660,-8449,-31664,-8433,-31668,-8416,-31673,-8400,-31677,-8384,-31681,-8368,-31685,-8352,-31690,-8335,-31694,-8319,-31698,-8303,-31702,-8287,-31707,-8271,-31711,-8254,-31715,-8238,-31719,-8222,-31724,-8206,-31728,-8190,-31732,-8173,-31736,-8157,-31740,-8141,-31744,-8125,-31749,-8108,-31753,-8092,-31757,-8076,-31761,-8060,-31765,-8043,-31769,-8027,-31773,-8011,-31777,-7995,-31781,-7978,-31786,-7962,-31790,-7946,-31794,-7930,-31798,-7913,-31802,-7897,-31806,-7881,-31810,-7865,-31814,-7848,-31818,-7832,-31822,-7816,-31826,-7800,-31830,-7783,-31834,-7767,-31838,-7751,-31842,-7734,-31846,-7718,-31850,-7702,-31854,-7686,-31857,-7669,-31861,-7653,-31865,-7637,-31869,-7620,-31873,-7604,-31877,-7588,-31881,-7572,-31885,-7555,-31889,-7539,-31892,-7523,-31896,-7506,-31900,-7490,-31904,-7474,-31908,-7457,-31912,-7441,-31915,-7425,-31919,-7408,-31923,-7392,-31927,-7376,-31930,-7359,-31934,-7343,-31938,-7327,-31942,-7311,-31945,-7294,-31949,-7278,-31953,-7262,-31957,-7245,-31960,-7229,-31964,-7212,-31968,-7196,-31971,-7180,-31975,-7163,-31979,-7147,-31982,-7131,-31986,-7114,-31990,-7098,-31993,-7082,-31997,-7065,-32000,-7049,-32004,-7033,-32008,-7016,-32011,-7000,-32015,-6983,-32018,-6967,-32022,-6951,-32025,-6934,-32029,-6918,-32033,-6902,-32036,-6885,-32040,-6869,-32043,-6852,-32047,-6836,-32050,-6820,-32054,-6803,-32057,-6787,-32060,-6771,-32064,-6754,-32067,-6738,-32071,-6721,-32074,-6705,-32078,-6689,-32081,-6672,-32085,-6656,-32088,-6639,-32091,-6623,-32095,-6607,-32098,-6590,-32101,-6574,-32105,-6557,-32108,-6541,-32111,-6524,-32115,-6508,-32118,-6492,-32121,-6475,-32125,-6459,-32128,-6442,-32131,-6426,-32135,-6409,-32138,-6393,-32141,-6377,-32144,-6360,-32148,-6344,-32151,-6327,-32154,-6311,-32157,-6294,-32161,-6278,-32164,-6262,-32167,-6245,-32170,-6229,-32173,-6212,-32177,-6196,-32180,-6179,-32183,-6163,-32186,-6146,-32189,-6130,-32192,-6113,-32195,-6097,-32198,-6081,-32202,-6064,-32205,-6048,-32208,-6031,-32211,-6015,-32214,-5998,-32217,-5982,-32220,-5965,-32223,-5949,-32226,-5932,-32229,-5916,-32232,-5899,-32235,-5883,-32238,-5866,-32241,-5850,-32244,-5833,-32247,-5817,-32250,-5800,-32253,-5784,-32256,-5767,-32259,-5751,-32262,-5734,-32265,-5718,-32268,-5701,-32271,-5685,-32274,-5668,-32276,-5652,-32279,-5635,-32282,-5619,-32285,-5602,-32288,-5586,-32291,-5569,-32294,-5553,-32296,-5536,-32299,-5520,-32302,-5503,-32305,-5487,-32308,-5470,-32311,-5454,-32313,-5437,-32316,-5421,-32319,-5404,-32322,-5388,-32324,-5371,-32327,-5355,-32330,-5338,-32333,-5322,-32335,-5305,-32338,-5288,-32341,-5272,-32343,-5255,-32346,-5239,-32349,-5222,-32351,-5206,-32354,-5189,-32357,-5173,-32359,-5156,-32362,-5140,-32365,-5123,-32367,-5107,-32370,-5090,-32372,-5073,-32375,-5057,-32378,-5040,-32380,-5024,-32383,-5007,-32385,-4991,-32388,-4974,-32390,-4958,-32393,-4941,-32395,-4924,-32398,-4908,-32400,-4891,-32403,-4875,-32405,-4858,-32408,-4842,-32410,-4825,-32413,-4808,-32415,-4792,-32418,-4775,-32420,-4759,-32423,-4742,-32425,-4726,-32427,-4709,-32430,-4692,-32432,-4676,-32435,-4659,-32437,-4643,-32439,-4626,-32442,-4609,-32444,-4593,-32446,-4576,-32449,-4560,-32451,-4543,-32453,-4526,-32456,-4510,-32458,-4493,-32460,-4477,-32463,-4460,-32465,-4444,-32467,-4427,-32469,-4410,-32472,-4394,-32474,-4377,-32476,-4360,-32478,-4344,-32481,-4327,-32483,-4311,-32485,-4294,-32487,-4277,-32489,-4261,-32492,-4244,-32494,-4228,-32496,-4211,-32498,-4194,-32500,-4178,-32502,-4161,-32504,-4145,-32507,-4128,-32509,-4111,-32511,-4095,-32513,-4078,-32515,-4061,-32517,-4045,-32519,-4028,-32521,-4012,-32523,-3995,-32525,-3978,-32527,-3962,-32529,-3945,-32531,-3928,-32533,-3912,-32535,-3895,-32537,-3878,-32539,-3862,-32541,-3845,-32543,-3829,-32545,-3812,-32547,-3795,-32549,-3779,-32551,-3762,-32553,-3745,-32555,-3729,-32557,-3712,-32559,-3695,-32560,-3679,-32562,-3662,-32564,-3645,-32566,-3629,-32568,-3612,-32570,-3595,-32572,-3579,-32573,-3562,-32575,-3546,-32577,-3529,-32579,-3512,-32581,-3496,-32582,-3479,-32584,-3462,-32586,-3446,-32588,-3429,-32589,-3412,-32591,-3396,-32593,-3379,-32595,-3362,-32596,-3346,-32598,-3329,-32600,-3312,-32601,-3296,-32603,-3279,-32605,-3262,-32606,-3246,-32608,-3229,-32610,-3212,-32611,-3196,-32613,-3179,-32615,-3162,-32616,-3146,-32618,-3129,-32619,-3112,-32621,-3095,-32623,-3079,-32624,-3062,-32626,-3045,-32627,-3029,-32629,-3012,-32630,-2995,-32632,-2979,-32633,-2962,-32635,-2945,-32636,-2929,-32638,-2912,-32639,-2895,-32641,-2879,-32642,-2862,-32644,-2845,-32645,-2829,-32647,-2812,-32648,-2795,-32650,-2778,-32651,-2762,-32652,-2745,-32654,-2728,-32655,-2712,-32657,-2695,-32658,-2678,-32659,-2662,-32661,-2645,-32662,-2628,-32663,-2611,-32665,-2595,-32666,-2578,-32667,-2561,-32669,-2545,-32670,-2528,-32671,-2511,-32672,-2495,-32674,-2478,-32675,-2461,-32676,-2444,-32677,-2428,-32679,-2411,-32680,-2394,-32681,-2378,-32682,-2361,-32684,-2344,-32685,-2327,-32686,-2311,-32687,-2294,-32688,-2277,-32689,-2261,-32691,-2244,-32692,-2227,-32693,-2210,-32694,-2194,-32695,-2177,-32696,-2160,-32697,-2144,-32698,-2127,-32700,-2110,-32701,-2093,-32702,-2077,-32703,-2060,-32704,-2043,-32705,-2027,-32706,-2010,-32707,-1993,-32708,-1976,-32709,-1960,-32710,-1943,-32711,-1926,-32712,-1909,-32713,-1893,-32714,-1876,-32715,-1859,-32716,-1843,-32717,-1826,-32718,-1809,-32718,-1792,-32719,-1776,-32720,-1759,-32721,-1742,-32722,-1725,-32723,-1709,-32724,-1692,-32725,-1675,-32726,-1659,-32726,-1642,-32727,-1625,-32728,-1608,-32729,-1592,-32730,-1575,-32730,-1558,-32731,-1541,-32732,-1525,-32733,-1508,-32734,-1491,-32734,-1474,-32735,-1458,-32736,-1441,-32737,-1424,-32737,-1407,-32738,-1391,-32739,-1374,-32739,-1357,-32740,-1340,-32741,-1324,-32741,-1307,-32742,-1290,-32743,-1274,-32743,-1257,-32744,-1240,-32745,-1223,-32745,-1207,-32746,-1190,-32747,-1173,-32747,-1156,-32748,-1140,-32748,-1123,-32749,-1106,-32749,-1089,-32750,-1073,-32751,-1056,-32751,-1039,-32752,-1022,-32752,-1006,-32753,-989,-32753,-972,-32754,-955,-32754,-939,-32755,-922,-32755,-905,-32755,-888,-32756,-872,-32756,-855,-32757,-838,-32757,-821,-32758,-805,-32758,-788,-32758,-771,-32759,-754,-32759,-738,-32760,-721,-32760,-704,-32760,-687,-32761,-671,-32761,-654,-32761,-637,-32762,-620,-32762,-604,-32762,-587,-32763,-570,-32763,-553,-32763,-537,-32763,-520,-32764,-503,-32764,-486,-32764,-470,-32764,-453,-32765,-436,-32765,-419,-32765,-403,-32765,-386,-32765,-369,-32766,-352,-32766,-336,-32766,-319,-32766,-302,-32766,-285,-32766,-269,-32767,-252,-32767,-235,-32767,-218,-32767,-202,-32767,-185,-32767,-168,-32767,-151,-32767,-135,-32767,-118,-32767,-101,-32767,-84,-32767,-68,-32767,-51,-32767,-34,-32767,-17,-32767,-1,-32767,16,-32767,33,-32767,50,-32767,67,-32767,83,-32767,100,-32767,117,-32767,134,-32767,150,-32767,167,-32767,184,-32767,201,-32767,217,-32767,234,-32767,251,-32766,268,-32766,284,-32766,301,-32766,318,-32766,335,-32766,351,-32765,368,-32765,385,-32765,402,-32765,418,-32765,435,-32764,452,-32764,469,-32764,485,-32764,502,-32763,519,-32763,536,-32763,552,-32763,569,-32762,586,-32762,603,-32762,619,-32761,636,-32761,653,-32761,670,-32760,686,-32760,703,-32760,720,-32759,737,-32759,753,-32758,770,-32758,787,-32758,804,-32757,820,-32757,837,-32756,854,-32756,871,-32755,887,-32755,904,-32755,921,-32754,938,-32754,954,-32753,971,-32753,988,-32752,1005,-32752,1021,-32751,1038,-32751,1055,-32750,1072,-32749,1088,-32749,1105,-32748,1122,-32748,1139,-32747,1155,-32747,1172,-32746,1189,-32745,1206,-32745,1222,-32744,1239,-32743,1256,-32743,1273,-32742,1289,-32741,1306,-32741,1323,-32740,1339,-32739,1356,-32739,1373,-32738,1390,-32737,1406,-32737,1423,-32736,1440,-32735,1457,-32734,1473,-32734,1490,-32733,1507,-32732,1524,-32731,1540,-32730,1557,-32730,1574,-32729,1591,-32728,1607,-32727,1624,-32726,1641,-32726,1658,-32725,1674,-32724,1691,-32723,1708,-32722,1724,-32721,1741,-32720,1758,-32719,1775,-32718,1791,-32718,1808,-32717,1825,-32716,1842,-32715,1858,-32714,1875,-32713,1892,-32712,1908,-32711,1925,-32710,1942,-32709,1959,-32708,1975,-32707,1992,-32706,2009,-32705,2026,-32704,2042,-32703,2059,-32702,2076,-32701,2092,-32700,2109,-32698,2126,-32697,2143,-32696,2159,-32695,2176,-32694,2193,-32693,2209,-32692,2226,-32691,2243,-32689,2260,-32688,2276,-32687,2293,-32686,2310,-32685,2326,-32684,2343,-32682,2360,-32681,2377,-32680,2393,-32679,2410,-32677,2427,-32676,2443,-32675,2460,-32674,2477,-32672,2494,-32671,2510,-32670,2527,-32669,2544,-32667,2560,-32666,2577,-32665,2594,-32663,2610,-32662,2627,-32661,2644,-32659,2661,-32658,2677,-32657,2694,-32655,2711,-32654,2727,-32652,2744,-32651,2761,-32650,2777,-32648,2794,-32647,2811,-32645,2828,-32644,2844,-32642,2861,-32641,2878,-32639,2894,-32638,2911,-32636,2928,-32635,2944,-32633,2961,-32632,2978,-32630,2994,-32629,3011,-32627,3028,-32626,3044,-32624,3061,-32623,3078,-32621,3094,-32619,3111,-32618,3128,-32616,3145,-32615,3161,-32613,3178,-32611,3195,-32610,3211,-32608,3228,-32606,3245,-32605,3261,-32603,3278,-32601,3295,-32600,3311,-32598,3328,-32596,3345,-32595,3361,-32593,3378,-32591,3395,-32589,3411,-32588,3428,-32586,3445,-32584,3461,-32582,3478,-32581,3495,-32579,3511,-32577,3528,-32575,3545,-32573,3561,-32572,3578,-32570,3594,-32568,3611,-32566,3628,-32564,3644,-32562,3661,-32560,3678,-32559,3694,-32557,3711,-32555,3728,-32553,3744,-32551,3761,-32549,3778,-32547,3794,-32545,3811,-32543,3828,-32541,3844,-32539,3861,-32537,3877,-32535,3894,-32533,3911,-32531,3927,-32529,3944,-32527,3961,-32525,3977,-32523,3994,-32521,4011,-32519,4027,-32517,4044,-32515,4060,-32513,4077,-32511,4094,-32509,4110,-32507,4127,-32504,4144,-32502,4160,-32500,4177,-32498,4193,-32496,4210,-32494,4227,-32492,4243,-32489,4260,-32487,4276,-32485,4293,-32483,4310,-32481,4326,-32478,4343,-32476,4359,-32474,4376,-32472,4393,-32469,4409,-32467,4426,-32465,4443,-32463,4459,-32460,4476,-32458,4492,-32456,4509,-32453,4525,-32451,4542,-32449,4559,-32446,4575,-32444,4592,-32442,4608,-32439,4625,-32437,4642,-32435,4658,-32432,4675,-32430,4691,-32427,4708,-32425,4725,-32423,4741,-32420,4758,-32418,4774,-32415,4791,-32413,4807,-32410,4824,-32408,4841,-32405,4857,-32403,4874,-32400,4890,-32398,4907,-32395,4923,-32393,4940,-32390,4957,-32388,4973,-32385,4990,-32383,5006,-32380,5023,-32378,5039,-32375,5056,-32372,5072,-32370,5089,-32367,5106,-32365,5122,-32362,5139,-32359,5155,-32357,5172,-32354,5188,-32351,5205,-32349,5221,-32346,5238,-32343,5254,-32341,5271,-32338,5287,-32335,5304,-32333,5321,-32330,5337,-32327,5354,-32324,5370,-32322,5387,-32319,5403,-32316,5420,-32313,5436,-32311,5453,-32308,5469,-32305,5486,-32302,5502,-32299,5519,-32296,5535,-32294,5552,-32291,5568,-32288,5585,-32285,5601,-32282,5618,-32279,5634,-32276,5651,-32274,5667,-32271,5684,-32268,5700,-32265,5717,-32262,5733,-32259,5750,-32256,5766,-32253,5783,-32250,5799,-32247,5816,-32244,5832,-32241,5849,-32238,5865,-32235,5882,-32232,5898,-32229,5915,-32226,5931,-32223,5948,-32220,5964,-32217,5981,-32214,5997,-32211,6014,-32208,6030,-32205,6047,-32202,6063,-32198,6080,-32195,6096,-32192,6112,-32189,6129,-32186,6145,-32183,6162,-32180,6178,-32177,6195,-32173,6211,-32170,6228,-32167,6244,-32164,6261,-32161,6277,-32157,6293,-32154,6310,-32151,6326,-32148,6343,-32144,6359,-32141,6376,-32138,6392,-32135,6408,-32131,6425,-32128,6441,-32125,6458,-32121,6474,-32118,6491,-32115,6507,-32111,6523,-32108,6540,-32105,6556,-32101,6573,-32098,6589,-32095,6606,-32091,6622,-32088,6638,-32085,6655,-32081,6671,-32078,6688,-32074,6704,-32071,6720,-32067,6737,-32064,6753,-32060,6770,-32057,6786,-32054,6802,-32050,6819,-32047,6835,-32043,6851,-32040,6868,-32036,6884,-32033,6901,-32029,6917,-32025,6933,-32022,6950,-32018,6966,-32015,6982,-32011,6999,-32008,7015,-32004,7032,-32000,7048,-31997,7064,-31993,7081,-31990,7097,-31986,7113,-31982,7130,-31979,7146,-31975,7162,-31971,7179,-31968,7195,-31964,7211,-31960,7228,-31957,7244,-31953,7261,-31949,7277,-31945,7293,-31942,7310,-31938,7326,-31934,7342,-31930,7358,-31927,7375,-31923,7391,-31919,7407,-31915,7424,-31912,7440,-31908,7456,-31904,7473,-31900,7489,-31896,7505,-31892,7522,-31889,7538,-31885,7554,-31881,7571,-31877,7587,-31873,7603,-31869,7619,-31865,7636,-31861,7652,-31857,7668,-31854,7685,-31850,7701,-31846,7717,-31842,7733,-31838,7750,-31834,7766,-31830,7782,-31826,7799,-31822,7815,-31818,7831,-31814,7847,-31810,7864,-31806,7880,-31802,7896,-31798,7912,-31794,7929,-31790,7945,-31786,7961,-31781,7977,-31777,7994,-31773,8010,-31769,8026,-31765,8042,-31761,8059,-31757,8075,-31753,8091,-31749,8107,-31744,8124,-31740,8140,-31736,8156,-31732,8172,-31728,8189,-31724,8205,-31719,8221,-31715,8237,-31711,8253,-31707,8270,-31702,8286,-31698,8302,-31694,8318,-31690,8334,-31685,8351,-31681,8367,-31677,8383,-31673,8399,-31668,8415,-31664,8432,-31660,8448,-31655,8464,-31651,8480,-31647,8496,-31642,8513,-31638,8529,-31634,8545,-31629,8561,-31625,8577,-31620,8593,-31616,8610,-31612,8626,-31607,8642,-31603,8658,-31598,8674,-31594,8690,-31589,8707,-31585,8723,-31581,8739,-31576,8755,-31572,8771,-31567,8787,-31563,8803,-31558,8820,-31554,8836,-31549,8852,-31545,8868,-31540,8884,-31535,8900,-31531,8916,-31526,8932,-31522,8949,-31517,8965,-31513,8981,-31508,8997,-31503,9013,-31499,9029,-31494,9045,-31490,9061,-31485,9077,-31480,9094,-31476,9110,-31471,9126,-31466,9142,-31462,9158,-31457,9174,-31452,9190,-31447,9206,-31443,9222,-31438,9238,-31433,9254,-31429,9270,-31424,9287,-31419,9303,-31414,9319,-31410,9335,-31405,9351,-31400,9367,-31395,9383,-31390,9399,-31386,9415,-31381,9431,-31376,9447,-31371,9463,-31366,9479,-31361,9495,-31357,9511,-31352,9527,-31347,9543,-31342,9559,-31337,9575,-31332,9591,-31327,9607,-31322,9623,-31317,9639,-31312,9655,-31308,9671,-31303,9687,-31298,9703,-31293,9719,-31288,9735,-31283,9751,-31278,9767,-31273,9783,-31268,9799,-31263,9815,-31258,9831,-31253,9847,-31248,9863,-31243,9879,-31237,9895,-31232,9911,-31227,9927,-31222,9943,-31217,9959,-31212,9975,-31207,9991,-31202,10007,-31197,10023,-31192,10039,-31186,10055,-31181,10071,-31176,10087,-31171,10103,-31166,10119,-31161,10135,-31155,10151,-31150,10166,-31145,10182,-31140,10198,-31135,10214,-31129,10230,-31124,10246,-31119,10262,-31114,10278,-31108,10294,-31103,10310,-31098,10326,-31093,10342,-31087,10357,-31082,10373,-31077,10389,-31071,10405,-31066,10421,-31061,10437,-31055,10453,-31050,10469,-31045,10484,-31039,10500,-31034,10516,-31029,10532,-31023,10548,-31018,10564,-31012,10580,-31007,10596,-31002,10611,-30996,10627,-30991,10643,-30985,10659,-30980,10675,-30974,10691,-30969,10706,-30963,10722,-30958,10738,-30952,10754,-30947,10770,-30941,10786,-30936,10801,-30930,10817,-30925,10833,-30919,10849,-30914,10865,-30908,10880,-30903,10896,-30897,10912,-30891,10928,-30886,10944,-30880,10959,-30875,10975,-30869,10991,-30863,11007,-30858,11023,-30852,11038,-30846,11054,-30841,11070,-30835,11086,-30829,11101,-30824,11117,-30818,11133,-30812,11149,-30807,11164,-30801,11180,-30795,11196,-30789,11212,-30784,11227,-30778,11243,-30772,11259,-30767,11275,-30761,11290,-30755,11306,-30749,11322,-30743,11338,-30738,11353,-30732,11369,-30726,11385,-30720,11400,-30714,11416,-30708,11432,-30703,11448,-30697,11463,-30691,11479,-30685,11495,-30679,11510,-30673,11526,-30667,11542,-30661,11557,-30656,11573,-30650,11589,-30644,11604,-30638,11620,-30632,11636,-30626,11651,-30620,11667,-30614,11683,-30608,11698,-30602,11714,-30596,11730,-30590,11745,-30584,11761,-30578,11777,-30572,11792,-30566,11808,-30560,11823,-30554,11839,-30548,11855,-30542,11870,-30536,11886,-30529,11902,-30523,11917,-30517,11933,-30511,11948,-30505,11964,-30499,11980,-30493,11995,-30487,12011,-30481,12026,-30474,12042,-30468,12057,-30462,12073,-30456,12089,-30450,12104,-30443,12120,-30437,12135,-30431,12151,-30425,12166,-30419,12182,-30412,12198,-30406,12213,-30400,12229,-30394,12244,-30387,12260,-30381,12275,-30375,12291,-30369,12306,-30362,12322,-30356,12337,-30350,12353,-30343,12368,-30337,12384,-30331,12399,-30324,12415,-30318,12430,-30312,12446,-30305,12461,-30299,12477,-30292,12492,-30286,12508,-30280,12523,-30273,12539,-30267,12554,-30260,12570,-30254,12585,-30248,12601,-30241,12616,-30235,12632,-30228,12647,-30222,12663,-30215,12678,-30209,12694,-30202,12709,-30196,12724,-30189,12740,-30183,12755,-30176,12771,-30170,12786,-30163,12802,-30157,12817,-30150,12832,-30143,12848,-30137,12863,-30130,12879,-30124,12894,-30117,12909,-30110,12925,-30104,12940,-30097,12956,-30091,12971,-30084,12986,-30077,13002,-30071,13017,-30064,13033,-30057,13048,-30051,13063,-30044,13079,-30037,13094,-30031,13109,-30024,13125,-30017,13140,-30010,13155,-30004,13171,-29997,13186,-29990,13201,-29984,13217,-29977,13232,-29970,13247,-29963,13263,-29956,13278,-29950,13293,-29943,13309,-29936,13324,-29929,13339,-29922,13355,-29916,13370,-29909,13385,-29902,13400,-29895,13416,-29888,13431,-29881,13446,-29874,13462,-29867,13477,-29861,13492,-29854,13507,-29847,13523,-29840,13538,-29833,13553,-29826,13568,-29819,13584,-29812,13599,-29805,13614,-29798,13629,-29791,13645,-29784,13660,-29777,13675,-29770,13690,-29763,13706,-29756,13721,-29749,13736,-29742,13751,-29735,13766,-29728,13782,-29721,13797,-29714,13812,-29707,13827,-29700,13842,-29693,13858,-29686,13873,-29679,13888,-29671,13903,-29664,13918,-29657,13933,-29650,13949,-29643,13964,-29636,13979,-29629,13994,-29622,14009,-29614,14024,-29607,14039,-29600,14055,-29593,14070,-29586,14085,-29578,14100,-29571,14115,-29564,14130,-29557,14145,-29549,14160,-29542,14176,-29535,14191,-29528,14206,-29520,14221,-29513,14236,-29506,14251,-29499,14266,-29491,14281,-29484,14296,-29477,14311,-29469,14326,-29462,14342,-29455,14357,-29447,14372,-29440,14387,-29433,14402,-29425,14417,-29418,14432,-29411,14447,-29403,14462,-29396,14477,-29388,14492,-29381,14507,-29373,14522,-29366,14537,-29359,14552,-29351,14567,-29344,14582,-29336,14597,-29329,14612,-29321,14627,-29314,14642,-29306,14657,-29299,14672,-29291,14687,-29284,14702,-29276,14717,-29269,14732,-29261,14747,-29254,14762,-29246,14777,-29239,14792,-29231,14807,-29223,14822,-29216,14837,-29208,14852,-29201,14866,-29193,14881,-29185,14896,-29178,14911,-29170,14926,-29163,14941,-29155,14956,-29147,14971,-29140,14986,-29132,15001,-29124,15016,-29117,15030,-29109,15045,-29101,15060,-29093,15075,-29086,15090,-29078,15105,-29070,15120,-29063,15135,-29055,15149,-29047,15164,-29039,15179,-29032,15194,-29024,15209,-29016,15224,-29008,15238,-29000,15253,-28993,15268,-28985,15283,-28977,15298,-28969,15313,-28961,15327,-28954,15342,-28946,15357,-28938,15372,-28930,15387,-28922,15401,-28914,15416,-28906,15431,-28898,15446,-28891,15461,-28883,15475,-28875,15490,-28867,15505,-28859,15520,-28851,15534,-28843,15549,-28835,15564,-28827,15579,-28819,15593,-28811,15608,-28803,15623,-28795,15638,-28787,15652,-28779,15667,-28771,15682,-28763,15696,-28755,15711,-28747,15726,-28739,15740,-28731,15755,-28723,15770,-28715,15785,-28707,15799,-28699,15814,-28691,15829,-28682,15843,-28674,15858,-28666,15873,-28658,15887,-28650,15902,-28642,15917,-28634,15931,-28626,15946,-28617,15960,-28609,15975,-28601,15990,-28593,16004,-28585,16019,-28576,16034,-28568,16048,-28560,16063,-28552,16077,-28544,16092,-28535,16107,-28527,16121,-28519,16136,-28511,16150,-28502,16165,-28494,16179,-28486,16194,-28478,16209,-28469,16223,-28461,16238,-28453,16252,-28444,16267,-28436,16281,-28428,16296,-28419,16310,-28411,16325,-28403,16339,-28394,16354,-28386,16368,-28378,16383,-28369,16398,-28361,16412,-28352,16427,-28344,16441,-28336,16455,-28327,16470,-28319,16484,-28310,16499,-28302,16513,-28293,16528,-28285,16542,-28276,16557,-28268,16571,-28260,16586,-28251,16600,-28243,16615,-28234,16629,-28226,16643,-28217,16658,-28209,16672,-28200,16687,-28191,16701,-28183,16716,-28174,16730,-28166,16744,-28157,16759,-28149,16773,-28140,16788,-28132,16802,-28123,16816,-28114,16831,-28106,16845,-28097,16859,-28088,16874,-28080,16888,-28071,16903,-28063,16917,-28054,16931,-28045,16946,-28037,16960,-28028,16974,-28019,16989,-28010,17003,-28002,17017,-27993,17032,-27984,17046,-27976,17060,-27967,17074,-27958,17089,-27949,17103,-27941,17117,-27932,17132,-27923,17146,-27914,17160,-27906,17174,-27897,17189,-27888,17203,-27879,17217,-27870,17232,-27862,17246,-27853,17260,-27844,17274,-27835,17288,-27826,17303,-27817,17317,-27809,17331,-27800,17345,-27791,17360,-27782,17374,-27773,17388,-27764,17402,-27755,17416,-27746,17431,-27737,17445,-27729,17459,-27720,17473,-27711,17487,-27702,17501,-27693,17516,-27684,17530,-27675,17544,-27666,17558,-27657,17572,-27648,17586,-27639,17600,-27630,17615,-27621,17629,-27612,17643,-27603,17657,-27594,17671,-27585,17685,-27576,17699,-27567,17713,-27558,17727,-27549,17742,-27539,17756,-27530,17770,-27521,17784,-27512,17798,-27503,17812,-27494,17826,-27485,17840,-27476,17854,-27467,17868,-27457,17882,-27448,17896,-27439,17910,-27430,17924,-27421,17938,-27412,17952,-27402,17966,-27393,17980,-27384,17994,-27375,18008,-27366,18022,-27356,18036,-27347,18050,-27338,18064,-27329,18078,-27320,18092,-27310,18106,-27301,18120,-27292,18134,-27282,18148,-27273,18162,-27264,18176,-27255,18190,-27245,18204,-27236,18218,-27227,18232,-27217,18246,-27208,18260,-27199,18273,-27189,18287,-27180,18301,-27171,18315,-27161,18329,-27152,18343,-27142,18357,-27133,18371,-27124,18385,-27114,18398,-27105,18412,-27095,18426,-27086,18440,-27077,18454,-27067,18468,-27058,18482,-27048,18495,-27039,18509,-27029,18523,-27020,18537,-27010,18551,-27001,18564,-26991,18578,-26982,18592,-26972,18606,-26963,18620,-26953,18633,-26944,18647,-26934,18661,-26925,18675,-26915,18689,-26906,18702,-26896,18716,-26886,18730,-26877,18744,-26867,18757,-26858,18771,-26848,18785,-26838,18798,-26829,18812,-26819,18826,-26810,18840,-26800,18853,-26790,18867,-26781,18881,-26771,18894,-26761,18908,-26752,18922,-26742,18935,-26732,18949,-26723,18963,-26713,18976,-26703,18990,-26693,19004,-26684,19017,-26674,19031,-26664,19045,-26655,19058,-26645,19072,-26635,19086,-26625,19099,-26616,19113,-26606,19126,-26596,19140,-26586,19154,-26576,19167,-26567,19181,-26557,19194,-26547,19208,-26537,19221,-26527,19235,-26517,19249,-26508,19262,-26498,19276,-26488,19289,-26478,19303,-26468,19316,-26458,19330,-26448,19343,-26438,19357,-26429,19370,-26419,19384,-26409,19397,-26399,19411,-26389,19424,-26379,19438,-26369,19451,-26359,19465,-26349,19478,-26339,19492,-26329,19505,-26319,19519,-26309,19532,-26299,19546,-26289,19559,-26279,19573,-26269,19586,-26259,19599,-26249,19613,-26239,19626,-26229,19640,-26219,19653,-26209,19667,-26199,19680,-26189,19693,-26179,19707,-26169,19720,-26159,19733,-26149,19747,-26138,19760,-26128,19774,-26118,19787,-26108,19800,-26098,19814,-26088,19827,-26078,19840,-26068,19854,-26057,19867,-26047,19880,-26037,19894,-26027,19907,-26017,19920,-26007,19933,-25996,19947,-25986,19960,-25976,19973,-25966,19987,-25955,20000,-25945,20013,-25935,20026,-25925,20040,-25914,20053,-25904,20066,-25894,20079,-25884,20093,-25873,20106,-25863,20119,-25853,20132,-25843,20146,-25832,20159,-25822,20172,-25812,20185,-25801,20198,-25791,20212,-25781,20225,-25770,20238,-25760,20251,-25750,20264,-25739,20277,-25729,20291,-25718,20304,-25708,20317,-25698,20330,-25687,20343,-25677,20356,-25666,20369,-25656,20383,-25646,20396,-25635,20409,-25625,20422,-25614,20435,-25604,20448,-25593,20461,-25583,20474,-25572,20487,-25562,20500,-25551,20513,-25541,20527,-25530,20540,-25520,20553,-25509,20566,-25499,20579,-25488,20592,-25478,20605,-25467,20618,-25457,20631,-25446,20644,-25436,20657,-25425,20670,-25415,20683,-25404,20696,-25393,20709,-25383,20722,-25372,20735,-25362,20748,-25351,20761,-25340,20774,-25330,20787,-25319,20800,-25308,20813,-25298,20825,-25287,20838,-25277,20851,-25266,20864,-25255,20877,-25244,20890,-25234,20903,-25223,20916,-25212,20929,-25202,20942,-25191,20955,-25180,20967,-25170,20980,-25159,20993,-25148,21006,-25137,21019,-25127,21032,-25116,21045,-25105,21057,-25094,21070,-25084,21083,-25073,21096,-25062,21109,-25051,21122,-25040,21134,-25030,21147,-25019,21160,-25008,21173,-24997,21186,-24986,21198,-24975,21211,-24965,21224,-24954,21237,-24943,21249,-24932,21262,-24921,21275,-24910,21288,-24899,21300,-24888,21313,-24878,21326,-24867,21339,-24856,21351,-24845,21364,-24834,21377,-24823,21389,-24812,21402,-24801,21415,-24790,21427,-24779,21440,-24768,21453,-24757,21465,-24746,21478,-24735,21491,-24724,21503,-24713,21516,-24702,21529,-24691,21541,-24680,21554,-24669,21566,-24658,21579,-24647,21592,-24636,21604,-24625,21617,-24614,21629,-24603,21642,-24592,21655,-24581,21667,-24570,21680,-24559,21692,-24547,21705,-24536,21717,-24525,21730,-24514,21743,-24503,21755,-24492,21768,-24481,21780,-24470,21793,-24458,21805,-24447,21818,-24436,21830,-24425,21843,-24414,21855,-24403,21868,-24391,21880,-24380,21893,-24369,21905,-24358,21917,-24347,21930,-24335,21942,-24324,21955,-24313,21967,-24302,21980,-24290,21992,-24279,22004,-24268,22017,-24257,22029,-24245,22042,-24234,22054,-24223,22066,-24212,22079,-24200,22091,-24189,22104,-24178,22116,-24166,22128,-24155,22141,-24144,22153,-24132,22165,-24121,22178,-24110,22190,-24098,22202,-24087,22215,-24076,22227,-24064,22239,-24053,22252,-24042,22264,-24030,22276,-24019,22288,-24007,22301,-23996,22313,-23985,22325,-23973,22338,-23962,22350,-23950,22362,-23939,22374,-23927,22387,-23916,22399,-23904,22411,-23893,22423,-23882,22435,-23870,22448,-23859,22460,-23847,22472,-23836,22484,-23824,22496,-23813,22509,-23801,22521,-23790,22533,-23778,22545,-23767,22557,-23755,22569,-23743,22582,-23732,22594,-23720,22606,-23709,22618,-23697,22630,-23686,22642,-23674,22654,-23662,22666,-23651,22678,-23639,22691,-23628,22703,-23616,22715,-23604,22727,-23593,22739,-23581,22751,-23570,22763,-23558,22775,-23546,22787,-23535,22799,-23523,22811,-23511,22823,-23500,22835,-23488,22847,-23476,22859,-23465,22871,-23453,22883,-23441,22895,-23429,22907,-23418,22919,-23406,22931,-23394,22943,-23383,22955,-23371,22967,-23359,22979,-23347,22991,-23336,23003,-23324,23015,-23312,23027,-23300,23039,-23288,23050,-23277,23062,-23265,23074,-23253,23086,-23241,23098,-23229,23110,-23218,23122,-23206,23134,-23194,23146,-23182,23157,-23170,23169,-23158,23181,-23147,23193,-23135,23205,-23123,23217,-23111,23228,-23099,23240,-23087,23252,-23075,23264,-23063,23276,-23051,23287,-23040,23299,-23028,23311,-23016,23323,-23004,23335,-22992,23346,-22980,23358,-22968,23370,-22956,23382,-22944,23393,-22932,23405,-22920,23417,-22908,23428,-22896,23440,-22884,23452,-22872,23464,-22860,23475,-22848,23487,-22836,23499,-22824,23510,-22812,23522,-22800,23534,-22788,23545,-22776,23557,-22764,23569,-22752,23580,-22740,23592,-22728,23603,-22716,23615,-22704,23627,-22692,23638,-22679,23650,-22667,23661,-22655,23673,-22643,23685,-22631,23696,-22619,23708,-22607,23719,-22595,23731,-22583,23742,-22570,23754,-22558,23766,-22546,23777,-22534,23789,-22522,23800,-22510,23812,-22497,23823,-22485,23835,-22473,23846,-22461,23858,-22449,23869,-22436,23881,-22424,23892,-22412,23903,-22400,23915,-22388,23926,-22375,23938,-22363,23949,-22351,23961,-22339,23972,-22326,23984,-22314,23995,-22302,24006,-22289,24018,-22277,24029,-22265,24041,-22253,24052,-22240,24063,-22228,24075,-22216,24086,-22203,24097,-22191,24109,-22179,24120,-22166,24131,-22154,24143,-22142,24154,-22129,24165,-22117,24177,-22105,24188,-22092,24199,-22080,24211,-22067,24222,-22055,24233,-22043,24244,-22030,24256,-22018,24267,-22005,24278,-21993,24289,-21981,24301,-21968,24312,-21956,24323,-21943,24334,-21931,24346,-21918,24357,-21906,24368,-21894,24379,-21881,24390,-21869,24402,-21856,24413,-21844,24424,-21831,24435,-21819,24446,-21806,24457,-21794,24469,-21781,24480,-21769,24491,-21756,24502,-21744,24513,-21731,24524,-21718,24535,-21706,24546,-21693,24558,-21681,24569,-21668,24580,-21656,24591,-21643,24602,-21630,24613,-21618,24624,-21605,24635,-21593,24646,-21580,24657,-21567,24668,-21555,24679,-21542,24690,-21530,24701,-21517,24712,-21504,24723,-21492,24734,-21479,24745,-21466,24756,-21454,24767,-21441,24778,-21428,24789,-21416,24800,-21403,24811,-21390,24822,-21378,24833,-21365,24844,-21352,24855,-21340,24866,-21327,24877,-21314,24887,-21301,24898,-21289,24909,-21276,24920,-21263,24931,-21250,24942,-21238,24953,-21225,24964,-21212,24974,-21199,24985,-21187,24996,-21174,25007,-21161,25018,-21148,25029,-21135,25039,-21123,25050,-21110,25061,-21097,25072,-21084,25083,-21071,25093,-21058,25104,-21046,25115,-21033,25126,-21020,25136,-21007,25147,-20994,25158,-20981,25169,-20968,25179,-20956,25190,-20943,25201,-20930,25211,-20917,25222,-20904,25233,-20891,25243,-20878,25254,-20865,25265,-20852,25276,-20839,25286,-20826,25297,-20814,25307,-20801,25318,-20788,25329,-20775,25339,-20762,25350,-20749,25361,-20736,25371,-20723,25382,-20710,25392,-20697,25403,-20684,25414,-20671,25424,-20658,25435,-20645,25445,-20632,25456,-20619,25466,-20606,25477,-20593,25487,-20580,25498,-20567,25508,-20554,25519,-20541,25529,-20528,25540,-20514,25550,-20501,25561,-20488,25571,-20475,25582,-20462,25592,-20449,25603,-20436,25613,-20423,25624,-20410,25634,-20397,25645,-20384,25655,-20370,25665,-20357,25676,-20344,25686,-20331,25697,-20318,25707,-20305,25717,-20292,25728,-20278,25738,-20265,25749,-20252,25759,-20239,25769,-20226,25780,-20213,25790,-20199,25800,-20186,25811,-20173,25821,-20160,25831,-20147,25842,-20133,25852,-20120,25862,-20107,25872,-20094,25883,-20080,25893,-20067,25903,-20054,25913,-20041,25924,-20027,25934,-20014,25944,-20001,25954,-19988,25965,-19974,25975,-19961,25985,-19948,25995,-19934,26006,-19921,26016,-19908,26026,-19895,26036,-19881,26046,-19868,26056,-19855,26067,-19841,26077,-19828,26087,-19815,26097,-19801,26107,-19788,26117,-19775,26127,-19761,26137,-19748,26148,-19734,26158,-19721,26168,-19708,26178,-19694,26188,-19681,26198,-19668,26208,-19654,26218,-19641,26228,-19627,26238,-19614,26248,-19600,26258,-19587,26268,-19574,26278,-19560,26288,-19547,26298,-19533,26308,-19520,26318,-19506,26328,-19493,26338,-19479,26348,-19466,26358,-19452,26368,-19439,26378,-19425,26388,-19412,26398,-19398,26408,-19385,26418,-19371,26428,-19358,26437,-19344,26447,-19331,26457,-19317,26467,-19304,26477,-19290,26487,-19277,26497,-19263,26507,-19250,26516,-19236,26526,-19222,26536,-19209,26546,-19195,26556,-19182,26566,-19168,26575,-19155,26585,-19141,26595,-19127,26605,-19114,26615,-19100,26624,-19087,26634,-19073,26644,-19059,26654,-19046,26663,-19032,26673,-19018,26683,-19005,26692,-18991,26702,-18977,26712,-18964,26722,-18950,26731,-18936,26741,-18923,26751,-18909,26760,-18895,26770,-18882,26780,-18868,26789,-18854,26799,-18841,26809,-18827,26818,-18813,26828,-18799,26837,-18786,26847,-18772,26857,-18758,26866,-18745,26876,-18731,26885,-18717,26895,-18703,26905,-18690,26914,-18676,26924,-18662,26933,-18648,26943,-18634,26952,-18621,26962,-18607,26971,-18593,26981,-18579,26990,-18565,27000,-18552,27009,-18538,27019,-18524,27028,-18510,27038,-18496,27047,-18483,27057,-18469,27066,-18455,27076,-18441,27085,-18427,27094,-18413,27104,-18399,27113,-18386,27123,-18372,27132,-18358,27141,-18344,27151,-18330,27160,-18316,27170,-18302,27179,-18288,27188,-18274,27198,-18261,27207,-18247,27216,-18233,27226,-18219,27235,-18205,27244,-18191,27254,-18177,27263,-18163,27272,-18149,27281,-18135,27291,-18121,27300,-18107,27309,-18093,27319,-18079,27328,-18065,27337,-18051,27346,-18037,27355,-18023,27365,-18009,27374,-17995,27383,-17981,27392,-17967,27401,-17953,27411,-17939,27420,-17925,27429,-17911,27438,-17897,27447,-17883,27456,-17869,27466,-17855,27475,-17841,27484,-17827,27493,-17813,27502,-17799,27511,-17785,27520,-17771,27529,-17757,27538,-17743,27548,-17728,27557,-17714,27566,-17700,27575,-17686,27584,-17672,27593,-17658,27602,-17644,27611,-17630,27620,-17616,27629,-17601,27638,-17587,27647,-17573,27656,-17559,27665,-17545,27674,-17531,27683,-17517,27692,-17502,27701,-17488,27710,-17474,27719,-17460,27728,-17446,27736,-17432,27745,-17417,27754,-17403,27763,-17389,27772,-17375,27781,-17361,27790,-17346,27799,-17332,27808,-17318,27816,-17304,27825,-17289,27834,-17275,27843,-17261,27852,-17247,27861,-17233,27869,-17218,27878,-17204,27887,-17190,27896,-17175,27905,-17161,27913,-17147,27922,-17133,27931,-17118,27940,-17104,27948,-17090,27957,-17075,27966,-17061,27975,-17047,27983,-17033,27992,-17018,28001,-17004,28009,-16990,28018,-16975,28027,-16961,28036,-16947,28044,-16932,28053,-16918,28062,-16904,28070,-16889,28079,-16875,28087,-16860,28096,-16846,28105,-16832,28113,-16817,28122,-16803,28131,-16789,28139,-16774,28148,-16760,28156,-16745,28165,-16731,28173,-16717,28182,-16702,28190,-16688,28199,-16673,28208,-16659,28216,-16644,28225,-16630,28233,-16616,28242,-16601,28250,-16587,28259,-16572,28267,-16558,28275,-16543,28284,-16529,28292,-16514,28301,-16500,28309,-16485,28318,-16471,28326,-16456,28335,-16442,28343,-16428,28351,-16413,28360,-16399,28368};
diff --git a/openair1/PHY/TOOLS/twiddle6144.h b/openair1/PHY/TOOLS/twiddle6144.h
deleted file mode 100644
index 6fc18ebfbe0cbe52c5da48026e59f209e696e87d..0000000000000000000000000000000000000000
--- a/openair1/PHY/TOOLS/twiddle6144.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The OpenAirInterface Software Alliance licenses this file to You under
- * the OAI Public License, Version 1.1  (the "License"); you may not use this file
- * except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.openairinterface.org/?page_id=698
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *-------------------------------------------------------------------------------
- * For more information about the OpenAirInterface (OAI) Software Alliance:
- *      contact@openairinterface.org
- */
-
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:2047)/6144));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*(0:2:4094)/6144));
-twa2 = zeros(1,4096);
-twb2 = zeros(1,4096);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-
-
- */
-int16_t twa6144[4096] __attribute__((aligned(32))) = {32767,0,32766,-34,32766,-68,32766,-101,32766,-135,32766,-168,32766,-202,32766,-235,32765,-269,32765,-302,32765,-336,32764,-369,32764,-403,32764,-436,32763,-470,32763,-503,32762,-537,32762,-570,32761,-604,32760,-637,32760,-671,32759,-704,32758,-738,32757,-771,32757,-805,32756,-838,32755,-872,32754,-905,32753,-939,32752,-972,32751,-1006,32750,-1039,32749,-1073,32748,-1106,32747,-1140,32746,-1173,32744,-1207,32743,-1240,32742,-1274,32740,-1307,32739,-1340,32738,-1374,32736,-1407,32735,-1441,32733,-1474,32732,-1508,32730,-1541,32729,-1575,32727,-1608,32725,-1642,32724,-1675,32722,-1709,32720,-1742,32718,-1776,32717,-1809,32715,-1843,32713,-1876,32711,-1909,32709,-1943,32707,-1976,32705,-2010,32703,-2043,32701,-2077,32699,-2110,32696,-2144,32694,-2177,32692,-2210,32690,-2244,32687,-2277,32685,-2311,32683,-2344,32680,-2378,32678,-2411,32675,-2444,32673,-2478,32670,-2511,32668,-2545,32665,-2578,32662,-2611,32660,-2645,32657,-2678,32654,-2712,32651,-2745,32649,-2778,32646,-2812,32643,-2845,32640,-2879,32637,-2912,32634,-2945,32631,-2979,32628,-3012,32625,-3045,32622,-3079,32618,-3112,32615,-3146,32612,-3179,32609,-3212,32605,-3246,32602,-3279,32599,-3312,32595,-3346,32592,-3379,32588,-3412,32585,-3446,32581,-3479,32578,-3512,32574,-3546,32571,-3579,32567,-3612,32563,-3645,32559,-3679,32556,-3712,32552,-3745,32548,-3779,32544,-3812,32540,-3845,32536,-3878,32532,-3912,32528,-3945,32524,-3978,32520,-4012,32516,-4045,32512,-4078,32508,-4111,32503,-4145,32499,-4178,32495,-4211,32491,-4244,32486,-4277,32482,-4311,32477,-4344,32473,-4377,32468,-4410,32464,-4444,32459,-4477,32455,-4510,32450,-4543,32445,-4576,32441,-4609,32436,-4643,32431,-4676,32426,-4709,32422,-4742,32417,-4775,32412,-4808,32407,-4842,32402,-4875,32397,-4908,32392,-4941,32387,-4974,32382,-5007,32377,-5040,32371,-5073,32366,-5107,32361,-5140,32356,-5173,32350,-5206,32345,-5239,32340,-5272,32334,-5305,32329,-5338,32323,-5371,32318,-5404,32312,-5437,32307,-5470,32301,-5503,32295,-5536,32290,-5569,32284,-5602,32278,-5635,32273,-5668,32267,-5701,32261,-5734,32255,-5767,32249,-5800,32243,-5833,32237,-5866,32231,-5899,32225,-5932,32219,-5965,32213,-5998,32207,-6031,32201,-6064,32194,-6097,32188,-6130,32182,-6163,32176,-6196,32169,-6229,32163,-6262,32156,-6294,32150,-6327,32143,-6360,32137,-6393,32130,-6426,32124,-6459,32117,-6492,32110,-6524,32104,-6557,32097,-6590,32090,-6623,32084,-6656,32077,-6689,32070,-6721,32063,-6754,32056,-6787,32049,-6820,32042,-6852,32035,-6885,32028,-6918,32021,-6951,32014,-6983,32007,-7016,31999,-7049,31992,-7082,31985,-7114,31978,-7147,31970,-7180,31963,-7212,31956,-7245,31948,-7278,31941,-7311,31933,-7343,31926,-7376,31918,-7408,31911,-7441,31903,-7474,31895,-7506,31888,-7539,31880,-7572,31872,-7604,31864,-7637,31856,-7669,31849,-7702,31841,-7734,31833,-7767,31825,-7800,31817,-7832,31809,-7865,31801,-7897,31793,-7930,31785,-7962,31776,-7995,31768,-8027,31760,-8060,31752,-8092,31743,-8125,31735,-8157,31727,-8190,31718,-8222,31710,-8254,31701,-8287,31693,-8319,31684,-8352,31676,-8384,31667,-8416,31659,-8449,31650,-8481,31641,-8514,31633,-8546,31624,-8578,31615,-8611,31606,-8643,31597,-8675,31588,-8708,31580,-8740,31571,-8772,31562,-8804,31553,-8837,31544,-8869,31534,-8901,31525,-8933,31516,-8966,31507,-8998,31498,-9030,31489,-9062,31479,-9095,31470,-9127,31461,-9159,31451,-9191,31442,-9223,31432,-9255,31423,-9288,31413,-9320,31404,-9352,31394,-9384,31385,-9416,31375,-9448,31365,-9480,31356,-9512,31346,-9544,31336,-9576,31326,-9608,31316,-9640,31307,-9672,31297,-9704,31287,-9736,31277,-9768,31267,-9800,31257,-9832,31247,-9864,31236,-9896,31226,-9928,31216,-9960,31206,-9992,31196,-10024,31185,-10056,31175,-10088,31165,-10120,31154,-10152,31144,-10183,31134,-10215,31123,-10247,31113,-10279,31102,-10311,31092,-10343,31081,-10374,31070,-10406,31060,-10438,31049,-10470,31038,-10501,31028,-10533,31017,-10565,31006,-10597,30995,-10628,30984,-10660,30973,-10692,30962,-10723,30951,-10755,30940,-10787,30929,-10818,30918,-10850,30907,-10881,30896,-10913,30885,-10945,30874,-10976,30862,-11008,30851,-11039,30840,-11071,30828,-11102,30817,-11134,30806,-11165,30794,-11197,30783,-11228,30771,-11260,30760,-11291,30748,-11323,30737,-11354,30725,-11386,30713,-11417,30702,-11449,30690,-11480,30678,-11511,30666,-11543,30655,-11574,30643,-11605,30631,-11637,30619,-11668,30607,-11699,30595,-11731,30583,-11762,30571,-11793,30559,-11824,30547,-11856,30535,-11887,30522,-11918,30510,-11949,30498,-11981,30486,-12012,30473,-12043,30461,-12074,30449,-12105,30436,-12136,30424,-12167,30411,-12199,30399,-12230,30386,-12261,30374,-12292,30361,-12323,30349,-12354,30336,-12385,30323,-12416,30311,-12447,30298,-12478,30285,-12509,30272,-12540,30259,-12571,30247,-12602,30234,-12633,30221,-12664,30208,-12695,30195,-12725,30182,-12756,30169,-12787,30156,-12818,30142,-12849,30129,-12880,30116,-12910,30103,-12941,30090,-12972,30076,-13003,30063,-13034,30050,-13064,30036,-13095,30023,-13126,30009,-13156,29996,-13187,29983,-13218,29969,-13248,29955,-13279,29942,-13310,29928,-13340,29915,-13371,29901,-13401,29887,-13432,29873,-13463,29860,-13493,29846,-13524,29832,-13554,29818,-13585,29804,-13615,29790,-13646,29776,-13676,29762,-13707,29748,-13737,29734,-13767,29720,-13798,29706,-13828,29692,-13859,29678,-13889,29663,-13919,29649,-13950,29635,-13980,29621,-14010,29606,-14040,29592,-14071,29577,-14101,29563,-14131,29548,-14161,29534,-14192,29519,-14222,29505,-14252,29490,-14282,29476,-14312,29461,-14343,29446,-14373,29432,-14403,29417,-14433,29402,-14463,29387,-14493,29372,-14523,29358,-14553,29343,-14583,29328,-14613,29313,-14643,29298,-14673,29283,-14703,29268,-14733,29253,-14763,29238,-14793,29222,-14823,29207,-14853,29192,-14882,29177,-14912,29162,-14942,29146,-14972,29131,-15002,29116,-15031,29100,-15061,29085,-15091,29069,-15121,29054,-15150,29038,-15180,29023,-15210,29007,-15239,28992,-15269,28976,-15299,28960,-15328,28945,-15358,28929,-15388,28913,-15417,28897,-15447,28882,-15476,28866,-15506,28850,-15535,28834,-15565,28818,-15594,28802,-15624,28786,-15653,28770,-15683,28754,-15712,28738,-15741,28722,-15771,28706,-15800,28690,-15830,28673,-15859,28657,-15888,28641,-15918,28625,-15947,28608,-15976,28592,-16005,28575,-16035,28559,-16064,28543,-16093,28526,-16122,28510,-16151,28493,-16180,28477,-16210,28460,-16239,28443,-16268,28427,-16297,28410,-16326,28393,-16355,28377,-16384,28360,-16413,28343,-16442,28326,-16471,28309,-16500,28292,-16529,28275,-16558,28259,-16587,28242,-16616,28225,-16644,28208,-16673,28190,-16702,28173,-16731,28156,-16760,28139,-16789,28122,-16817,28105,-16846,28087,-16875,28070,-16904,28053,-16932,28036,-16961,28018,-16990,28001,-17018,27983,-17047,27966,-17075,27948,-17104,27931,-17133,27913,-17161,27896,-17190,27878,-17218,27861,-17247,27843,-17275,27825,-17304,27808,-17332,27790,-17361,27772,-17389,27754,-17417,27736,-17446,27719,-17474,27701,-17502,27683,-17531,27665,-17559,27647,-17587,27629,-17616,27611,-17644,27593,-17672,27575,-17700,27557,-17728,27538,-17757,27520,-17785,27502,-17813,27484,-17841,27466,-17869,27447,-17897,27429,-17925,27411,-17953,27392,-17981,27374,-18009,27355,-18037,27337,-18065,27319,-18093,27300,-18121,27281,-18149,27263,-18177,27244,-18205,27226,-18233,27207,-18261,27188,-18288,27170,-18316,27151,-18344,27132,-18372,27113,-18399,27094,-18427,27076,-18455,27057,-18483,27038,-18510,27019,-18538,27000,-18565,26981,-18593,26962,-18621,26943,-18648,26924,-18676,26905,-18703,26885,-18731,26866,-18758,26847,-18786,26828,-18813,26809,-18841,26789,-18868,26770,-18895,26751,-18923,26731,-18950,26712,-18977,26692,-19005,26673,-19032,26654,-19059,26634,-19087,26615,-19114,26595,-19141,26575,-19168,26556,-19195,26536,-19222,26516,-19250,26497,-19277,26477,-19304,26457,-19331,26437,-19358,26418,-19385,26398,-19412,26378,-19439,26358,-19466,26338,-19493,26318,-19520,26298,-19547,26278,-19574,26258,-19600,26238,-19627,26218,-19654,26198,-19681,26178,-19708,26158,-19734,26137,-19761,26117,-19788,26097,-19815,26077,-19841,26056,-19868,26036,-19895,26016,-19921,25995,-19948,25975,-19974,25954,-20001,25934,-20027,25913,-20054,25893,-20080,25872,-20107,25852,-20133,25831,-20160,25811,-20186,25790,-20213,25769,-20239,25749,-20265,25728,-20292,25707,-20318,25686,-20344,25665,-20370,25645,-20397,25624,-20423,25603,-20449,25582,-20475,25561,-20501,25540,-20528,25519,-20554,25498,-20580,25477,-20606,25456,-20632,25435,-20658,25414,-20684,25392,-20710,25371,-20736,25350,-20762,25329,-20788,25307,-20814,25286,-20839,25265,-20865,25243,-20891,25222,-20917,25201,-20943,25179,-20968,25158,-20994,25136,-21020,25115,-21046,25093,-21071,25072,-21097,25050,-21123,25029,-21148,25007,-21174,24985,-21199,24964,-21225,24942,-21250,24920,-21276,24898,-21301,24877,-21327,24855,-21352,24833,-21378,24811,-21403,24789,-21428,24767,-21454,24745,-21479,24723,-21504,24701,-21530,24679,-21555,24657,-21580,24635,-21605,24613,-21630,24591,-21656,24569,-21681,24546,-21706,24524,-21731,24502,-21756,24480,-21781,24457,-21806,24435,-21831,24413,-21856,24390,-21881,24368,-21906,24346,-21931,24323,-21956,24301,-21981,24278,-22005,24256,-22030,24233,-22055,24211,-22080,24188,-22105,24165,-22129,24143,-22154,24120,-22179,24097,-22203,24075,-22228,24052,-22253,24029,-22277,24006,-22302,23984,-22326,23961,-22351,23938,-22375,23915,-22400,23892,-22424,23869,-22449,23846,-22473,23823,-22497,23800,-22522,23777,-22546,23754,-22570,23731,-22595,23708,-22619,23685,-22643,23661,-22667,23638,-22692,23615,-22716,23592,-22740,23569,-22764,23545,-22788,23522,-22812,23499,-22836,23475,-22860,23452,-22884,23428,-22908,23405,-22932,23382,-22956,23358,-22980,23335,-23004,23311,-23028,23287,-23051,23264,-23075,23240,-23099,23217,-23123,23193,-23147,23169,-23170,23146,-23194,23122,-23218,23098,-23241,23074,-23265,23050,-23288,23027,-23312,23003,-23336,22979,-23359,22955,-23383,22931,-23406,22907,-23429,22883,-23453,22859,-23476,22835,-23500,22811,-23523,22787,-23546,22763,-23570,22739,-23593,22715,-23616,22691,-23639,22666,-23662,22642,-23686,22618,-23709,22594,-23732,22569,-23755,22545,-23778,22521,-23801,22496,-23824,22472,-23847,22448,-23870,22423,-23893,22399,-23916,22374,-23939,22350,-23962,22325,-23985,22301,-24007,22276,-24030,22252,-24053,22227,-24076,22202,-24098,22178,-24121,22153,-24144,22128,-24166,22104,-24189,22079,-24212,22054,-24234,22029,-24257,22004,-24279,21980,-24302,21955,-24324,21930,-24347,21905,-24369,21880,-24391,21855,-24414,21830,-24436,21805,-24458,21780,-24481,21755,-24503,21730,-24525,21705,-24547,21680,-24570,21655,-24592,21629,-24614,21604,-24636,21579,-24658,21554,-24680,21529,-24702,21503,-24724,21478,-24746,21453,-24768,21427,-24790,21402,-24812,21377,-24834,21351,-24856,21326,-24878,21300,-24899,21275,-24921,21249,-24943,21224,-24965,21198,-24986,21173,-25008,21147,-25030,21122,-25051,21096,-25073,21070,-25094,21045,-25116,21019,-25137,20993,-25159,20967,-25180,20942,-25202,20916,-25223,20890,-25244,20864,-25266,20838,-25287,20813,-25308,20787,-25330,20761,-25351,20735,-25372,20709,-25393,20683,-25415,20657,-25436,20631,-25457,20605,-25478,20579,-25499,20553,-25520,20527,-25541,20500,-25562,20474,-25583,20448,-25604,20422,-25625,20396,-25646,20369,-25666,20343,-25687,20317,-25708,20291,-25729,20264,-25750,20238,-25770,20212,-25791,20185,-25812,20159,-25832,20132,-25853,20106,-25873,20079,-25894,20053,-25914,20026,-25935,20000,-25955,19973,-25976,19947,-25996,19920,-26017,19894,-26037,19867,-26057,19840,-26078,19814,-26098,19787,-26118,19760,-26138,19733,-26159,19707,-26179,19680,-26199,19653,-26219,19626,-26239,19599,-26259,19573,-26279,19546,-26299,19519,-26319,19492,-26339,19465,-26359,19438,-26379,19411,-26399,19384,-26419,19357,-26438,19330,-26458,19303,-26478,19276,-26498,19249,-26517,19221,-26537,19194,-26557,19167,-26576,19140,-26596,19113,-26616,19086,-26635,19058,-26655,19031,-26674,19004,-26693,18976,-26713,18949,-26732,18922,-26752,18894,-26771,18867,-26790,18840,-26810,18812,-26829,18785,-26848,18757,-26867,18730,-26886,18702,-26906,18675,-26925,18647,-26944,18620,-26963,18592,-26982,18564,-27001,18537,-27020,18509,-27039,18482,-27058,18454,-27077,18426,-27095,18398,-27114,18371,-27133,18343,-27152,18315,-27171,18287,-27189,18260,-27208,18232,-27227,18204,-27245,18176,-27264,18148,-27282,18120,-27301,18092,-27320,18064,-27338,18036,-27356,18008,-27375,17980,-27393,17952,-27412,17924,-27430,17896,-27448,17868,-27467,17840,-27485,17812,-27503,17784,-27521,17756,-27539,17727,-27558,17699,-27576,17671,-27594,17643,-27612,17615,-27630,17586,-27648,17558,-27666,17530,-27684,17501,-27702,17473,-27720,17445,-27737,17416,-27755,17388,-27773,17360,-27791,17331,-27809,17303,-27826,17274,-27844,17246,-27862,17217,-27879,17189,-27897,17160,-27914,17132,-27932,17103,-27949,17074,-27967,17046,-27984,17017,-28002,16989,-28019,16960,-28037,16931,-28054,16903,-28071,16874,-28088,16845,-28106,16816,-28123,16788,-28140,16759,-28157,16730,-28174,16701,-28191,16672,-28209,16643,-28226,16615,-28243,16586,-28260,16557,-28276,16528,-28293,16499,-28310,16470,-28327,16441,-28344,16412,-28361,16383,-28378,16354,-28394,16325,-28411,16296,-28428,16267,-28444,16238,-28461,16209,-28478,16179,-28494,16150,-28511,16121,-28527,16092,-28544,16063,-28560,16034,-28576,16004,-28593,15975,-28609,15946,-28626,15917,-28642,15887,-28658,15858,-28674,15829,-28691,15799,-28707,15770,-28723,15740,-28739,15711,-28755,15682,-28771,15652,-28787,15623,-28803,15593,-28819,15564,-28835,15534,-28851,15505,-28867,15475,-28883,15446,-28898,15416,-28914,15387,-28930,15357,-28946,15327,-28961,15298,-28977,15268,-28993,15238,-29008,15209,-29024,15179,-29039,15149,-29055,15120,-29070,15090,-29086,15060,-29101,15030,-29117,15001,-29132,14971,-29147,14941,-29163,14911,-29178,14881,-29193,14852,-29208,14822,-29223,14792,-29239,14762,-29254,14732,-29269,14702,-29284,14672,-29299,14642,-29314,14612,-29329,14582,-29344,14552,-29359,14522,-29373,14492,-29388,14462,-29403,14432,-29418,14402,-29433,14372,-29447,14342,-29462,14311,-29477,14281,-29491,14251,-29506,14221,-29520,14191,-29535,14160,-29549,14130,-29564,14100,-29578,14070,-29593,14039,-29607,14009,-29622,13979,-29636,13949,-29650,13918,-29664,13888,-29679,13858,-29693,13827,-29707,13797,-29721,13766,-29735,13736,-29749,13706,-29763,13675,-29777,13645,-29791,13614,-29805,13584,-29819,13553,-29833,13523,-29847,13492,-29861,13462,-29874,13431,-29888,13400,-29902,13370,-29916,13339,-29929,13309,-29943,13278,-29956,13247,-29970,13217,-29984,13186,-29997,13155,-30010,13125,-30024,13094,-30037,13063,-30051,13033,-30064,13002,-30077,12971,-30091,12940,-30104,12909,-30117,12879,-30130,12848,-30143,12817,-30157,12786,-30170,12755,-30183,12724,-30196,12694,-30209,12663,-30222,12632,-30235,12601,-30248,12570,-30260,12539,-30273,12508,-30286,12477,-30299,12446,-30312,12415,-30324,12384,-30337,12353,-30350,12322,-30362,12291,-30375,12260,-30387,12229,-30400,12198,-30412,12166,-30425,12135,-30437,12104,-30450,12073,-30462,12042,-30474,12011,-30487,11980,-30499,11948,-30511,11917,-30523,11886,-30536,11855,-30548,11823,-30560,11792,-30572,11761,-30584,11730,-30596,11698,-30608,11667,-30620,11636,-30632,11604,-30644,11573,-30656,11542,-30667,11510,-30679,11479,-30691,11448,-30703,11416,-30714,11385,-30726,11353,-30738,11322,-30749,11290,-30761,11259,-30772,11227,-30784,11196,-30795,11164,-30807,11133,-30818,11101,-30829,11070,-30841,11038,-30852,11007,-30863,10975,-30875,10944,-30886,10912,-30897,10880,-30908,10849,-30919,10817,-30930,10786,-30941,10754,-30952,10722,-30963,10691,-30974,10659,-30985,10627,-30996,10596,-31007,10564,-31018,10532,-31029,10500,-31039,10469,-31050,10437,-31061,10405,-31071,10373,-31082,10342,-31093,10310,-31103,10278,-31114,10246,-31124,10214,-31135,10182,-31145,10151,-31155,10119,-31166,10087,-31176,10055,-31186,10023,-31197,9991,-31207,9959,-31217,9927,-31227,9895,-31237,9863,-31248,9831,-31258,9799,-31268,9767,-31278,9735,-31288,9703,-31298,9671,-31308,9639,-31317,9607,-31327,9575,-31337,9543,-31347,9511,-31357,9479,-31366,9447,-31376,9415,-31386,9383,-31395,9351,-31405,9319,-31414,9287,-31424,9254,-31433,9222,-31443,9190,-31452,9158,-31462,9126,-31471,9094,-31480,9061,-31490,9029,-31499,8997,-31508,8965,-31517,8932,-31526,8900,-31535,8868,-31545,8836,-31554,8803,-31563,8771,-31572,8739,-31581,8707,-31589,8674,-31598,8642,-31607,8610,-31616,8577,-31625,8545,-31634,8513,-31642,8480,-31651,8448,-31660,8415,-31668,8383,-31677,8351,-31685,8318,-31694,8286,-31702,8253,-31711,8221,-31719,8189,-31728,8156,-31736,8124,-31744,8091,-31753,8059,-31761,8026,-31769,7994,-31777,7961,-31786,7929,-31794,7896,-31802,7864,-31810,7831,-31818,7799,-31826,7766,-31834,7733,-31842,7701,-31850,7668,-31857,7636,-31865,7603,-31873,7571,-31881,7538,-31889,7505,-31896,7473,-31904,7440,-31912,7407,-31919,7375,-31927,7342,-31934,7310,-31942,7277,-31949,7244,-31957,7211,-31964,7179,-31971,7146,-31979,7113,-31986,7081,-31993,7048,-32000,7015,-32008,6982,-32015,6950,-32022,6917,-32029,6884,-32036,6851,-32043,6819,-32050,6786,-32057,6753,-32064,6720,-32071,6688,-32078,6655,-32085,6622,-32091,6589,-32098,6556,-32105,6523,-32111,6491,-32118,6458,-32125,6425,-32131,6392,-32138,6359,-32144,6326,-32151,6293,-32157,6261,-32164,6228,-32170,6195,-32177,6162,-32183,6129,-32189,6096,-32195,6063,-32202,6030,-32208,5997,-32214,5964,-32220,5931,-32226,5898,-32232,5865,-32238,5832,-32244,5799,-32250,5766,-32256,5733,-32262,5700,-32268,5667,-32274,5634,-32279,5601,-32285,5568,-32291,5535,-32296,5502,-32302,5469,-32308,5436,-32313,5403,-32319,5370,-32324,5337,-32330,5304,-32335,5271,-32341,5238,-32346,5205,-32351,5172,-32357,5139,-32362,5106,-32367,5072,-32372,5039,-32378,5006,-32383,4973,-32388,4940,-32393,4907,-32398,4874,-32403,4841,-32408,4807,-32413,4774,-32418,4741,-32423,4708,-32427,4675,-32432,4642,-32437,4608,-32442,4575,-32446,4542,-32451,4509,-32456,4476,-32460,4443,-32465,4409,-32469,4376,-32474,4343,-32478,4310,-32483,4276,-32487,4243,-32492,4210,-32496,4177,-32500,4144,-32504,4110,-32509,4077,-32513,4044,-32517,4011,-32521,3977,-32525,3944,-32529,3911,-32533,3877,-32537,3844,-32541,3811,-32545,3778,-32549,3744,-32553,3711,-32557,3678,-32560,3644,-32564,3611,-32568,3578,-32572,3545,-32575,3511,-32579,3478,-32582,3445,-32586,3411,-32589,3378,-32593,3345,-32596,3311,-32600,3278,-32603,3245,-32606,3211,-32610,3178,-32613,3145,-32616,3111,-32619,3078,-32623,3044,-32626,3011,-32629,2978,-32632,2944,-32635,2911,-32638,2878,-32641,2844,-32644,2811,-32647,2777,-32650,2744,-32652,2711,-32655,2677,-32658,2644,-32661,2610,-32663,2577,-32666,2544,-32669,2510,-32671,2477,-32674,2443,-32676,2410,-32679,2377,-32681,2343,-32684,2310,-32686,2276,-32688,2243,-32691,2209,-32693,2176,-32695,2143,-32697,2109,-32700,2076,-32702,2042,-32704,2009,-32706,1975,-32708,1942,-32710,1908,-32712,1875,-32714,1842,-32716,1808,-32718,1775,-32719,1741,-32721,1708,-32723,1674,-32725,1641,-32726,1607,-32728,1574,-32730,1540,-32731,1507,-32733,1473,-32734,1440,-32736,1406,-32737,1373,-32739,1339,-32740,1306,-32741,1273,-32743,1239,-32744,1206,-32745,1172,-32747,1139,-32748,1105,-32749,1072,-32750,1038,-32751,1005,-32752,971,-32753,938,-32754,904,-32755,871,-32756,837,-32757,804,-32758,770,-32758,737,-32759,703,-32760,670,-32761,636,-32761,603,-32762,569,-32763,536,-32763,502,-32764,469,-32764,435,-32765,402,-32765,368,-32765,335,-32766,301,-32766,268,-32766,234,-32767,201,-32767,167,-32767,134,-32767,100,-32767,67,-32767,33,-32767,0,-32767,-34,-32767,-68,-32767,-101,-32767,-135,-32767,-168,-32767,-202,-32767,-235,-32767,-269,-32766,-302,-32766,-336,-32766,-369,-32765,-403,-32765,-436,-32765,-470,-32764,-503,-32764,-537,-32763,-570,-32763,-604,-32762,-637,-32761,-671,-32761,-704,-32760,-738,-32759,-771,-32758,-805,-32758,-838,-32757,-872,-32756,-905,-32755,-939,-32754,-972,-32753,-1006,-32752,-1039,-32751,-1073,-32750,-1106,-32749,-1140,-32748,-1173,-32747,-1207,-32745,-1240,-32744,-1274,-32743,-1307,-32741,-1340,-32740,-1374,-32739,-1407,-32737,-1441,-32736,-1474,-32734,-1508,-32733,-1541,-32731,-1575,-32730,-1608,-32728,-1642,-32726,-1675,-32725,-1709,-32723,-1742,-32721,-1776,-32719,-1809,-32718,-1843,-32716,-1876,-32714,-1909,-32712,-1943,-32710,-1976,-32708,-2010,-32706,-2043,-32704,-2077,-32702,-2110,-32700,-2144,-32697,-2177,-32695,-2210,-32693,-2244,-32691,-2277,-32688,-2311,-32686,-2344,-32684,-2378,-32681,-2411,-32679,-2444,-32676,-2478,-32674,-2511,-32671,-2545,-32669,-2578,-32666,-2611,-32663,-2645,-32661,-2678,-32658,-2712,-32655,-2745,-32652,-2778,-32650,-2812,-32647,-2845,-32644,-2879,-32641,-2912,-32638,-2945,-32635,-2979,-32632,-3012,-32629,-3045,-32626,-3079,-32623,-3112,-32619,-3146,-32616,-3179,-32613,-3212,-32610,-3246,-32606,-3279,-32603,-3312,-32600,-3346,-32596,-3379,-32593,-3412,-32589,-3446,-32586,-3479,-32582,-3512,-32579,-3546,-32575,-3579,-32572,-3612,-32568,-3645,-32564,-3679,-32560,-3712,-32557,-3745,-32553,-3779,-32549,-3812,-32545,-3845,-32541,-3878,-32537,-3912,-32533,-3945,-32529,-3978,-32525,-4012,-32521,-4045,-32517,-4078,-32513,-4111,-32509,-4145,-32504,-4178,-32500,-4211,-32496,-4244,-32492,-4277,-32487,-4311,-32483,-4344,-32478,-4377,-32474,-4410,-32469,-4444,-32465,-4477,-32460,-4510,-32456,-4543,-32451,-4576,-32446,-4609,-32442,-4643,-32437,-4676,-32432,-4709,-32427,-4742,-32423,-4775,-32418,-4808,-32413,-4842,-32408,-4875,-32403,-4908,-32398,-4941,-32393,-4974,-32388,-5007,-32383,-5040,-32378,-5073,-32372,-5107,-32367,-5140,-32362,-5173,-32357,-5206,-32351,-5239,-32346,-5272,-32341,-5305,-32335,-5338,-32330,-5371,-32324,-5404,-32319,-5437,-32313,-5470,-32308,-5503,-32302,-5536,-32296,-5569,-32291,-5602,-32285,-5635,-32279,-5668,-32274,-5701,-32268,-5734,-32262,-5767,-32256,-5800,-32250,-5833,-32244,-5866,-32238,-5899,-32232,-5932,-32226,-5965,-32220,-5998,-32214,-6031,-32208,-6064,-32202,-6097,-32195,-6130,-32189,-6163,-32183,-6196,-32177,-6229,-32170,-6262,-32164,-6294,-32157,-6327,-32151,-6360,-32144,-6393,-32138,-6426,-32131,-6459,-32125,-6492,-32118,-6524,-32111,-6557,-32105,-6590,-32098,-6623,-32091,-6656,-32085,-6689,-32078,-6721,-32071,-6754,-32064,-6787,-32057,-6820,-32050,-6852,-32043,-6885,-32036,-6918,-32029,-6951,-32022,-6983,-32015,-7016,-32008,-7049,-32000,-7082,-31993,-7114,-31986,-7147,-31979,-7180,-31971,-7212,-31964,-7245,-31957,-7278,-31949,-7311,-31942,-7343,-31934,-7376,-31927,-7408,-31919,-7441,-31912,-7474,-31904,-7506,-31896,-7539,-31889,-7572,-31881,-7604,-31873,-7637,-31865,-7669,-31857,-7702,-31850,-7734,-31842,-7767,-31834,-7800,-31826,-7832,-31818,-7865,-31810,-7897,-31802,-7930,-31794,-7962,-31786,-7995,-31777,-8027,-31769,-8060,-31761,-8092,-31753,-8125,-31744,-8157,-31736,-8190,-31728,-8222,-31719,-8254,-31711,-8287,-31702,-8319,-31694,-8352,-31685,-8384,-31677,-8416,-31668,-8449,-31660,-8481,-31651,-8514,-31642,-8546,-31634,-8578,-31625,-8611,-31616,-8643,-31607,-8675,-31598,-8708,-31589,-8740,-31581,-8772,-31572,-8804,-31563,-8837,-31554,-8869,-31545,-8901,-31535,-8933,-31526,-8966,-31517,-8998,-31508,-9030,-31499,-9062,-31490,-9095,-31480,-9127,-31471,-9159,-31462,-9191,-31452,-9223,-31443,-9255,-31433,-9288,-31424,-9320,-31414,-9352,-31405,-9384,-31395,-9416,-31386,-9448,-31376,-9480,-31366,-9512,-31357,-9544,-31347,-9576,-31337,-9608,-31327,-9640,-31317,-9672,-31308,-9704,-31298,-9736,-31288,-9768,-31278,-9800,-31268,-9832,-31258,-9864,-31248,-9896,-31237,-9928,-31227,-9960,-31217,-9992,-31207,-10024,-31197,-10056,-31186,-10088,-31176,-10120,-31166,-10152,-31155,-10183,-31145,-10215,-31135,-10247,-31124,-10279,-31114,-10311,-31103,-10343,-31093,-10374,-31082,-10406,-31071,-10438,-31061,-10470,-31050,-10501,-31039,-10533,-31029,-10565,-31018,-10597,-31007,-10628,-30996,-10660,-30985,-10692,-30974,-10723,-30963,-10755,-30952,-10787,-30941,-10818,-30930,-10850,-30919,-10881,-30908,-10913,-30897,-10945,-30886,-10976,-30875,-11008,-30863,-11039,-30852,-11071,-30841,-11102,-30829,-11134,-30818,-11165,-30807,-11197,-30795,-11228,-30784,-11260,-30772,-11291,-30761,-11323,-30749,-11354,-30738,-11386,-30726,-11417,-30714,-11449,-30703,-11480,-30691,-11511,-30679,-11543,-30667,-11574,-30656,-11605,-30644,-11637,-30632,-11668,-30620,-11699,-30608,-11731,-30596,-11762,-30584,-11793,-30572,-11824,-30560,-11856,-30548,-11887,-30536,-11918,-30523,-11949,-30511,-11981,-30499,-12012,-30487,-12043,-30474,-12074,-30462,-12105,-30450,-12136,-30437,-12167,-30425,-12199,-30412,-12230,-30400,-12261,-30387,-12292,-30375,-12323,-30362,-12354,-30350,-12385,-30337,-12416,-30324,-12447,-30312,-12478,-30299,-12509,-30286,-12540,-30273,-12571,-30260,-12602,-30248,-12633,-30235,-12664,-30222,-12695,-30209,-12725,-30196,-12756,-30183,-12787,-30170,-12818,-30157,-12849,-30143,-12880,-30130,-12910,-30117,-12941,-30104,-12972,-30091,-13003,-30077,-13034,-30064,-13064,-30051,-13095,-30037,-13126,-30024,-13156,-30010,-13187,-29997,-13218,-29984,-13248,-29970,-13279,-29956,-13310,-29943,-13340,-29929,-13371,-29916,-13401,-29902,-13432,-29888,-13463,-29874,-13493,-29861,-13524,-29847,-13554,-29833,-13585,-29819,-13615,-29805,-13646,-29791,-13676,-29777,-13707,-29763,-13737,-29749,-13767,-29735,-13798,-29721,-13828,-29707,-13859,-29693,-13889,-29679,-13919,-29664,-13950,-29650,-13980,-29636,-14010,-29622,-14040,-29607,-14071,-29593,-14101,-29578,-14131,-29564,-14161,-29549,-14192,-29535,-14222,-29520,-14252,-29506,-14282,-29491,-14312,-29477,-14343,-29462,-14373,-29447,-14403,-29433,-14433,-29418,-14463,-29403,-14493,-29388,-14523,-29373,-14553,-29359,-14583,-29344,-14613,-29329,-14643,-29314,-14673,-29299,-14703,-29284,-14733,-29269,-14763,-29254,-14793,-29239,-14823,-29223,-14853,-29208,-14882,-29193,-14912,-29178,-14942,-29163,-14972,-29147,-15002,-29132,-15031,-29117,-15061,-29101,-15091,-29086,-15121,-29070,-15150,-29055,-15180,-29039,-15210,-29024,-15239,-29008,-15269,-28993,-15299,-28977,-15328,-28961,-15358,-28946,-15388,-28930,-15417,-28914,-15447,-28898,-15476,-28883,-15506,-28867,-15535,-28851,-15565,-28835,-15594,-28819,-15624,-28803,-15653,-28787,-15683,-28771,-15712,-28755,-15741,-28739,-15771,-28723,-15800,-28707,-15830,-28691,-15859,-28674,-15888,-28658,-15918,-28642,-15947,-28626,-15976,-28609,-16005,-28593,-16035,-28576,-16064,-28560,-16093,-28544,-16122,-28527,-16151,-28511,-16180,-28494,-16210,-28478,-16239,-28461,-16268,-28444,-16297,-28428,-16326,-28411,-16355,-28394};
-
-
-
-int16_t twb6144[4096] __attribute__((aligned(32))) = {32767,0,32766,-68,32766,-135,32766,-202,32765,-269,32765,-336,32764,-403,32763,-470,32762,-537,32761,-604,32760,-671,32758,-738,32757,-805,32755,-872,32753,-939,32751,-1006,32749,-1073,32747,-1140,32744,-1207,32742,-1274,32739,-1340,32736,-1407,32733,-1474,32730,-1541,32727,-1608,32724,-1675,32720,-1742,32717,-1809,32713,-1876,32709,-1943,32705,-2010,32701,-2077,32696,-2144,32692,-2210,32687,-2277,32683,-2344,32678,-2411,32673,-2478,32668,-2545,32662,-2611,32657,-2678,32651,-2745,32646,-2812,32640,-2879,32634,-2945,32628,-3012,32622,-3079,32615,-3146,32609,-3212,32602,-3279,32595,-3346,32588,-3412,32581,-3479,32574,-3546,32567,-3612,32559,-3679,32552,-3745,32544,-3812,32536,-3878,32528,-3945,32520,-4012,32512,-4078,32503,-4145,32495,-4211,32486,-4277,32477,-4344,32468,-4410,32459,-4477,32450,-4543,32441,-4609,32431,-4676,32422,-4742,32412,-4808,32402,-4875,32392,-4941,32382,-5007,32371,-5073,32361,-5140,32350,-5206,32340,-5272,32329,-5338,32318,-5404,32307,-5470,32295,-5536,32284,-5602,32273,-5668,32261,-5734,32249,-5800,32237,-5866,32225,-5932,32213,-5998,32201,-6064,32188,-6130,32176,-6196,32163,-6262,32150,-6327,32137,-6393,32124,-6459,32110,-6524,32097,-6590,32084,-6656,32070,-6721,32056,-6787,32042,-6852,32028,-6918,32014,-6983,31999,-7049,31985,-7114,31970,-7180,31956,-7245,31941,-7311,31926,-7376,31911,-7441,31895,-7506,31880,-7572,31864,-7637,31849,-7702,31833,-7767,31817,-7832,31801,-7897,31785,-7962,31768,-8027,31752,-8092,31735,-8157,31718,-8222,31701,-8287,31684,-8352,31667,-8416,31650,-8481,31633,-8546,31615,-8611,31597,-8675,31580,-8740,31562,-8804,31544,-8869,31525,-8933,31507,-8998,31489,-9062,31470,-9127,31451,-9191,31432,-9255,31413,-9320,31394,-9384,31375,-9448,31356,-9512,31336,-9576,31316,-9640,31297,-9704,31277,-9768,31257,-9832,31236,-9896,31216,-9960,31196,-10024,31175,-10088,31154,-10152,31134,-10215,31113,-10279,31092,-10343,31070,-10406,31049,-10470,31028,-10533,31006,-10597,30984,-10660,30962,-10723,30940,-10787,30918,-10850,30896,-10913,30874,-10976,30851,-11039,30828,-11102,30806,-11165,30783,-11228,30760,-11291,30737,-11354,30713,-11417,30690,-11480,30666,-11543,30643,-11605,30619,-11668,30595,-11731,30571,-11793,30547,-11856,30522,-11918,30498,-11981,30473,-12043,30449,-12105,30424,-12167,30399,-12230,30374,-12292,30349,-12354,30323,-12416,30298,-12478,30272,-12540,30247,-12602,30221,-12664,30195,-12725,30169,-12787,30142,-12849,30116,-12910,30090,-12972,30063,-13034,30036,-13095,30009,-13156,29983,-13218,29955,-13279,29928,-13340,29901,-13401,29873,-13463,29846,-13524,29818,-13585,29790,-13646,29762,-13707,29734,-13767,29706,-13828,29678,-13889,29649,-13950,29621,-14010,29592,-14071,29563,-14131,29534,-14192,29505,-14252,29476,-14312,29446,-14373,29417,-14433,29387,-14493,29358,-14553,29328,-14613,29298,-14673,29268,-14733,29238,-14793,29207,-14853,29177,-14912,29146,-14972,29116,-15031,29085,-15091,29054,-15150,29023,-15210,28992,-15269,28960,-15328,28929,-15388,28897,-15447,28866,-15506,28834,-15565,28802,-15624,28770,-15683,28738,-15741,28706,-15800,28673,-15859,28641,-15918,28608,-15976,28575,-16035,28543,-16093,28510,-16151,28477,-16210,28443,-16268,28410,-16326,28377,-16384,28343,-16442,28309,-16500,28275,-16558,28242,-16616,28208,-16673,28173,-16731,28139,-16789,28105,-16846,28070,-16904,28036,-16961,28001,-17018,27966,-17075,27931,-17133,27896,-17190,27861,-17247,27825,-17304,27790,-17361,27754,-17417,27719,-17474,27683,-17531,27647,-17587,27611,-17644,27575,-17700,27538,-17757,27502,-17813,27466,-17869,27429,-17925,27392,-17981,27355,-18037,27319,-18093,27281,-18149,27244,-18205,27207,-18261,27170,-18316,27132,-18372,27094,-18427,27057,-18483,27019,-18538,26981,-18593,26943,-18648,26905,-18703,26866,-18758,26828,-18813,26789,-18868,26751,-18923,26712,-18977,26673,-19032,26634,-19087,26595,-19141,26556,-19195,26516,-19250,26477,-19304,26437,-19358,26398,-19412,26358,-19466,26318,-19520,26278,-19574,26238,-19627,26198,-19681,26158,-19734,26117,-19788,26077,-19841,26036,-19895,25995,-19948,25954,-20001,25913,-20054,25872,-20107,25831,-20160,25790,-20213,25749,-20265,25707,-20318,25665,-20370,25624,-20423,25582,-20475,25540,-20528,25498,-20580,25456,-20632,25414,-20684,25371,-20736,25329,-20788,25286,-20839,25243,-20891,25201,-20943,25158,-20994,25115,-21046,25072,-21097,25029,-21148,24985,-21199,24942,-21250,24898,-21301,24855,-21352,24811,-21403,24767,-21454,24723,-21504,24679,-21555,24635,-21605,24591,-21656,24546,-21706,24502,-21756,24457,-21806,24413,-21856,24368,-21906,24323,-21956,24278,-22005,24233,-22055,24188,-22105,24143,-22154,24097,-22203,24052,-22253,24006,-22302,23961,-22351,23915,-22400,23869,-22449,23823,-22497,23777,-22546,23731,-22595,23685,-22643,23638,-22692,23592,-22740,23545,-22788,23499,-22836,23452,-22884,23405,-22932,23358,-22980,23311,-23028,23264,-23075,23217,-23123,23169,-23170,23122,-23218,23074,-23265,23027,-23312,22979,-23359,22931,-23406,22883,-23453,22835,-23500,22787,-23546,22739,-23593,22691,-23639,22642,-23686,22594,-23732,22545,-23778,22496,-23824,22448,-23870,22399,-23916,22350,-23962,22301,-24007,22252,-24053,22202,-24098,22153,-24144,22104,-24189,22054,-24234,22004,-24279,21955,-24324,21905,-24369,21855,-24414,21805,-24458,21755,-24503,21705,-24547,21655,-24592,21604,-24636,21554,-24680,21503,-24724,21453,-24768,21402,-24812,21351,-24856,21300,-24899,21249,-24943,21198,-24986,21147,-25030,21096,-25073,21045,-25116,20993,-25159,20942,-25202,20890,-25244,20838,-25287,20787,-25330,20735,-25372,20683,-25415,20631,-25457,20579,-25499,20527,-25541,20474,-25583,20422,-25625,20369,-25666,20317,-25708,20264,-25750,20212,-25791,20159,-25832,20106,-25873,20053,-25914,20000,-25955,19947,-25996,19894,-26037,19840,-26078,19787,-26118,19733,-26159,19680,-26199,19626,-26239,19573,-26279,19519,-26319,19465,-26359,19411,-26399,19357,-26438,19303,-26478,19249,-26517,19194,-26557,19140,-26596,19086,-26635,19031,-26674,18976,-26713,18922,-26752,18867,-26790,18812,-26829,18757,-26867,18702,-26906,18647,-26944,18592,-26982,18537,-27020,18482,-27058,18426,-27095,18371,-27133,18315,-27171,18260,-27208,18204,-27245,18148,-27282,18092,-27320,18036,-27356,17980,-27393,17924,-27430,17868,-27467,17812,-27503,17756,-27539,17699,-27576,17643,-27612,17586,-27648,17530,-27684,17473,-27720,17416,-27755,17360,-27791,17303,-27826,17246,-27862,17189,-27897,17132,-27932,17074,-27967,17017,-28002,16960,-28037,16903,-28071,16845,-28106,16788,-28140,16730,-28174,16672,-28209,16615,-28243,16557,-28276,16499,-28310,16441,-28344,16383,-28378,16325,-28411,16267,-28444,16209,-28478,16150,-28511,16092,-28544,16034,-28576,15975,-28609,15917,-28642,15858,-28674,15799,-28707,15740,-28739,15682,-28771,15623,-28803,15564,-28835,15505,-28867,15446,-28898,15387,-28930,15327,-28961,15268,-28993,15209,-29024,15149,-29055,15090,-29086,15030,-29117,14971,-29147,14911,-29178,14852,-29208,14792,-29239,14732,-29269,14672,-29299,14612,-29329,14552,-29359,14492,-29388,14432,-29418,14372,-29447,14311,-29477,14251,-29506,14191,-29535,14130,-29564,14070,-29593,14009,-29622,13949,-29650,13888,-29679,13827,-29707,13766,-29735,13706,-29763,13645,-29791,13584,-29819,13523,-29847,13462,-29874,13400,-29902,13339,-29929,13278,-29956,13217,-29984,13155,-30010,13094,-30037,13033,-30064,12971,-30091,12909,-30117,12848,-30143,12786,-30170,12724,-30196,12663,-30222,12601,-30248,12539,-30273,12477,-30299,12415,-30324,12353,-30350,12291,-30375,12229,-30400,12166,-30425,12104,-30450,12042,-30474,11980,-30499,11917,-30523,11855,-30548,11792,-30572,11730,-30596,11667,-30620,11604,-30644,11542,-30667,11479,-30691,11416,-30714,11353,-30738,11290,-30761,11227,-30784,11164,-30807,11101,-30829,11038,-30852,10975,-30875,10912,-30897,10849,-30919,10786,-30941,10722,-30963,10659,-30985,10596,-31007,10532,-31029,10469,-31050,10405,-31071,10342,-31093,10278,-31114,10214,-31135,10151,-31155,10087,-31176,10023,-31197,9959,-31217,9895,-31237,9831,-31258,9767,-31278,9703,-31298,9639,-31317,9575,-31337,9511,-31357,9447,-31376,9383,-31395,9319,-31414,9254,-31433,9190,-31452,9126,-31471,9061,-31490,8997,-31508,8932,-31526,8868,-31545,8803,-31563,8739,-31581,8674,-31598,8610,-31616,8545,-31634,8480,-31651,8415,-31668,8351,-31685,8286,-31702,8221,-31719,8156,-31736,8091,-31753,8026,-31769,7961,-31786,7896,-31802,7831,-31818,7766,-31834,7701,-31850,7636,-31865,7571,-31881,7505,-31896,7440,-31912,7375,-31927,7310,-31942,7244,-31957,7179,-31971,7113,-31986,7048,-32000,6982,-32015,6917,-32029,6851,-32043,6786,-32057,6720,-32071,6655,-32085,6589,-32098,6523,-32111,6458,-32125,6392,-32138,6326,-32151,6261,-32164,6195,-32177,6129,-32189,6063,-32202,5997,-32214,5931,-32226,5865,-32238,5799,-32250,5733,-32262,5667,-32274,5601,-32285,5535,-32296,5469,-32308,5403,-32319,5337,-32330,5271,-32341,5205,-32351,5139,-32362,5072,-32372,5006,-32383,4940,-32393,4874,-32403,4807,-32413,4741,-32423,4675,-32432,4608,-32442,4542,-32451,4476,-32460,4409,-32469,4343,-32478,4276,-32487,4210,-32496,4144,-32504,4077,-32513,4011,-32521,3944,-32529,3877,-32537,3811,-32545,3744,-32553,3678,-32560,3611,-32568,3545,-32575,3478,-32582,3411,-32589,3345,-32596,3278,-32603,3211,-32610,3145,-32616,3078,-32623,3011,-32629,2944,-32635,2878,-32641,2811,-32647,2744,-32652,2677,-32658,2610,-32663,2544,-32669,2477,-32674,2410,-32679,2343,-32684,2276,-32688,2209,-32693,2143,-32697,2076,-32702,2009,-32706,1942,-32710,1875,-32714,1808,-32718,1741,-32721,1674,-32725,1607,-32728,1540,-32731,1473,-32734,1406,-32737,1339,-32740,1273,-32743,1206,-32745,1139,-32748,1072,-32750,1005,-32752,938,-32754,871,-32756,804,-32758,737,-32759,670,-32761,603,-32762,536,-32763,469,-32764,402,-32765,335,-32766,268,-32766,201,-32767,134,-32767,67,-32767,0,-32767,-68,-32767,-135,-32767,-202,-32767,-269,-32766,-336,-32766,-403,-32765,-470,-32764,-537,-32763,-604,-32762,-671,-32761,-738,-32759,-805,-32758,-872,-32756,-939,-32754,-1006,-32752,-1073,-32750,-1140,-32748,-1207,-32745,-1274,-32743,-1340,-32740,-1407,-32737,-1474,-32734,-1541,-32731,-1608,-32728,-1675,-32725,-1742,-32721,-1809,-32718,-1876,-32714,-1943,-32710,-2010,-32706,-2077,-32702,-2144,-32697,-2210,-32693,-2277,-32688,-2344,-32684,-2411,-32679,-2478,-32674,-2545,-32669,-2611,-32663,-2678,-32658,-2745,-32652,-2812,-32647,-2879,-32641,-2945,-32635,-3012,-32629,-3079,-32623,-3146,-32616,-3212,-32610,-3279,-32603,-3346,-32596,-3412,-32589,-3479,-32582,-3546,-32575,-3612,-32568,-3679,-32560,-3745,-32553,-3812,-32545,-3878,-32537,-3945,-32529,-4012,-32521,-4078,-32513,-4145,-32504,-4211,-32496,-4277,-32487,-4344,-32478,-4410,-32469,-4477,-32460,-4543,-32451,-4609,-32442,-4676,-32432,-4742,-32423,-4808,-32413,-4875,-32403,-4941,-32393,-5007,-32383,-5073,-32372,-5140,-32362,-5206,-32351,-5272,-32341,-5338,-32330,-5404,-32319,-5470,-32308,-5536,-32296,-5602,-32285,-5668,-32274,-5734,-32262,-5800,-32250,-5866,-32238,-5932,-32226,-5998,-32214,-6064,-32202,-6130,-32189,-6196,-32177,-6262,-32164,-6327,-32151,-6393,-32138,-6459,-32125,-6524,-32111,-6590,-32098,-6656,-32085,-6721,-32071,-6787,-32057,-6852,-32043,-6918,-32029,-6983,-32015,-7049,-32000,-7114,-31986,-7180,-31971,-7245,-31957,-7311,-31942,-7376,-31927,-7441,-31912,-7506,-31896,-7572,-31881,-7637,-31865,-7702,-31850,-7767,-31834,-7832,-31818,-7897,-31802,-7962,-31786,-8027,-31769,-8092,-31753,-8157,-31736,-8222,-31719,-8287,-31702,-8352,-31685,-8416,-31668,-8481,-31651,-8546,-31634,-8611,-31616,-8675,-31598,-8740,-31581,-8804,-31563,-8869,-31545,-8933,-31526,-8998,-31508,-9062,-31490,-9127,-31471,-9191,-31452,-9255,-31433,-9320,-31414,-9384,-31395,-9448,-31376,-9512,-31357,-9576,-31337,-9640,-31317,-9704,-31298,-9768,-31278,-9832,-31258,-9896,-31237,-9960,-31217,-10024,-31197,-10088,-31176,-10152,-31155,-10215,-31135,-10279,-31114,-10343,-31093,-10406,-31071,-10470,-31050,-10533,-31029,-10597,-31007,-10660,-30985,-10723,-30963,-10787,-30941,-10850,-30919,-10913,-30897,-10976,-30875,-11039,-30852,-11102,-30829,-11165,-30807,-11228,-30784,-11291,-30761,-11354,-30738,-11417,-30714,-11480,-30691,-11543,-30667,-11605,-30644,-11668,-30620,-11731,-30596,-11793,-30572,-11856,-30548,-11918,-30523,-11981,-30499,-12043,-30474,-12105,-30450,-12167,-30425,-12230,-30400,-12292,-30375,-12354,-30350,-12416,-30324,-12478,-30299,-12540,-30273,-12602,-30248,-12664,-30222,-12725,-30196,-12787,-30170,-12849,-30143,-12910,-30117,-12972,-30091,-13034,-30064,-13095,-30037,-13156,-30010,-13218,-29984,-13279,-29956,-13340,-29929,-13401,-29902,-13463,-29874,-13524,-29847,-13585,-29819,-13646,-29791,-13707,-29763,-13767,-29735,-13828,-29707,-13889,-29679,-13950,-29650,-14010,-29622,-14071,-29593,-14131,-29564,-14192,-29535,-14252,-29506,-14312,-29477,-14373,-29447,-14433,-29418,-14493,-29388,-14553,-29359,-14613,-29329,-14673,-29299,-14733,-29269,-14793,-29239,-14853,-29208,-14912,-29178,-14972,-29147,-15031,-29117,-15091,-29086,-15150,-29055,-15210,-29024,-15269,-28993,-15328,-28961,-15388,-28930,-15447,-28898,-15506,-28867,-15565,-28835,-15624,-28803,-15683,-28771,-15741,-28739,-15800,-28707,-15859,-28674,-15918,-28642,-15976,-28609,-16035,-28576,-16093,-28544,-16151,-28511,-16210,-28478,-16268,-28444,-16326,-28411,-16384,-28378,-16442,-28344,-16500,-28310,-16558,-28276,-16616,-28243,-16673,-28209,-16731,-28174,-16789,-28140,-16846,-28106,-16904,-28071,-16961,-28037,-17018,-28002,-17075,-27967,-17133,-27932,-17190,-27897,-17247,-27862,-17304,-27826,-17361,-27791,-17417,-27755,-17474,-27720,-17531,-27684,-17587,-27648,-17644,-27612,-17700,-27576,-17757,-27539,-17813,-27503,-17869,-27467,-17925,-27430,-17981,-27393,-18037,-27356,-18093,-27320,-18149,-27282,-18205,-27245,-18261,-27208,-18316,-27171,-18372,-27133,-18427,-27095,-18483,-27058,-18538,-27020,-18593,-26982,-18648,-26944,-18703,-26906,-18758,-26867,-18813,-26829,-18868,-26790,-18923,-26752,-18977,-26713,-19032,-26674,-19087,-26635,-19141,-26596,-19195,-26557,-19250,-26517,-19304,-26478,-19358,-26438,-19412,-26399,-19466,-26359,-19520,-26319,-19574,-26279,-19627,-26239,-19681,-26199,-19734,-26159,-19788,-26118,-19841,-26078,-19895,-26037,-19948,-25996,-20001,-25955,-20054,-25914,-20107,-25873,-20160,-25832,-20213,-25791,-20265,-25750,-20318,-25708,-20370,-25666,-20423,-25625,-20475,-25583,-20528,-25541,-20580,-25499,-20632,-25457,-20684,-25415,-20736,-25372,-20788,-25330,-20839,-25287,-20891,-25244,-20943,-25202,-20994,-25159,-21046,-25116,-21097,-25073,-21148,-25030,-21199,-24986,-21250,-24943,-21301,-24899,-21352,-24856,-21403,-24812,-21454,-24768,-21504,-24724,-21555,-24680,-21605,-24636,-21656,-24592,-21706,-24547,-21756,-24503,-21806,-24458,-21856,-24414,-21906,-24369,-21956,-24324,-22005,-24279,-22055,-24234,-22105,-24189,-22154,-24144,-22203,-24098,-22253,-24053,-22302,-24007,-22351,-23962,-22400,-23916,-22449,-23870,-22497,-23824,-22546,-23778,-22595,-23732,-22643,-23686,-22692,-23639,-22740,-23593,-22788,-23546,-22836,-23500,-22884,-23453,-22932,-23406,-22980,-23359,-23028,-23312,-23075,-23265,-23123,-23218,-23170,-23170,-23218,-23123,-23265,-23075,-23312,-23028,-23359,-22980,-23406,-22932,-23453,-22884,-23500,-22836,-23546,-22788,-23593,-22740,-23639,-22692,-23686,-22643,-23732,-22595,-23778,-22546,-23824,-22497,-23870,-22449,-23916,-22400,-23962,-22351,-24007,-22302,-24053,-22253,-24098,-22203,-24144,-22154,-24189,-22105,-24234,-22055,-24279,-22005,-24324,-21956,-24369,-21906,-24414,-21856,-24458,-21806,-24503,-21756,-24547,-21706,-24592,-21656,-24636,-21605,-24680,-21555,-24724,-21504,-24768,-21454,-24812,-21403,-24856,-21352,-24899,-21301,-24943,-21250,-24986,-21199,-25030,-21148,-25073,-21097,-25116,-21046,-25159,-20994,-25202,-20943,-25244,-20891,-25287,-20839,-25330,-20788,-25372,-20736,-25415,-20684,-25457,-20632,-25499,-20580,-25541,-20528,-25583,-20475,-25625,-20423,-25666,-20370,-25708,-20318,-25750,-20265,-25791,-20213,-25832,-20160,-25873,-20107,-25914,-20054,-25955,-20001,-25996,-19948,-26037,-19895,-26078,-19841,-26118,-19788,-26159,-19734,-26199,-19681,-26239,-19627,-26279,-19574,-26319,-19520,-26359,-19466,-26399,-19412,-26438,-19358,-26478,-19304,-26517,-19250,-26557,-19195,-26596,-19141,-26635,-19087,-26674,-19032,-26713,-18977,-26752,-18923,-26790,-18868,-26829,-18813,-26867,-18758,-26906,-18703,-26944,-18648,-26982,-18593,-27020,-18538,-27058,-18483,-27095,-18427,-27133,-18372,-27171,-18316,-27208,-18261,-27245,-18205,-27282,-18149,-27320,-18093,-27356,-18037,-27393,-17981,-27430,-17925,-27467,-17869,-27503,-17813,-27539,-17757,-27576,-17700,-27612,-17644,-27648,-17587,-27684,-17531,-27720,-17474,-27755,-17417,-27791,-17361,-27826,-17304,-27862,-17247,-27897,-17190,-27932,-17133,-27967,-17075,-28002,-17018,-28037,-16961,-28071,-16904,-28106,-16846,-28140,-16789,-28174,-16731,-28209,-16673,-28243,-16616,-28276,-16558,-28310,-16500,-28344,-16442,-28378,-16384,-28411,-16326,-28444,-16268,-28478,-16210,-28511,-16151,-28544,-16093,-28576,-16035,-28609,-15976,-28642,-15918,-28674,-15859,-28707,-15800,-28739,-15741,-28771,-15683,-28803,-15624,-28835,-15565,-28867,-15506,-28898,-15447,-28930,-15388,-28961,-15328,-28993,-15269,-29024,-15210,-29055,-15150,-29086,-15091,-29117,-15031,-29147,-14972,-29178,-14912,-29208,-14853,-29239,-14793,-29269,-14733,-29299,-14673,-29329,-14613,-29359,-14553,-29388,-14493,-29418,-14433,-29447,-14373,-29477,-14312,-29506,-14252,-29535,-14192,-29564,-14131,-29593,-14071,-29622,-14010,-29650,-13950,-29679,-13889,-29707,-13828,-29735,-13767,-29763,-13707,-29791,-13646,-29819,-13585,-29847,-13524,-29874,-13463,-29902,-13401,-29929,-13340,-29956,-13279,-29984,-13218,-30010,-13156,-30037,-13095,-30064,-13034,-30091,-12972,-30117,-12910,-30143,-12849,-30170,-12787,-30196,-12725,-30222,-12664,-30248,-12602,-30273,-12540,-30299,-12478,-30324,-12416,-30350,-12354,-30375,-12292,-30400,-12230,-30425,-12167,-30450,-12105,-30474,-12043,-30499,-11981,-30523,-11918,-30548,-11856,-30572,-11793,-30596,-11731,-30620,-11668,-30644,-11605,-30667,-11543,-30691,-11480,-30714,-11417,-30738,-11354,-30761,-11291,-30784,-11228,-30807,-11165,-30829,-11102,-30852,-11039,-30875,-10976,-30897,-10913,-30919,-10850,-30941,-10787,-30963,-10723,-30985,-10660,-31007,-10597,-31029,-10533,-31050,-10470,-31071,-10406,-31093,-10343,-31114,-10279,-31135,-10215,-31155,-10152,-31176,-10088,-31197,-10024,-31217,-9960,-31237,-9896,-31258,-9832,-31278,-9768,-31298,-9704,-31317,-9640,-31337,-9576,-31357,-9512,-31376,-9448,-31395,-9384,-31414,-9320,-31433,-9255,-31452,-9191,-31471,-9127,-31490,-9062,-31508,-8998,-31526,-8933,-31545,-8869,-31563,-8804,-31581,-8740,-31598,-8675,-31616,-8611,-31634,-8546,-31651,-8481,-31668,-8416,-31685,-8352,-31702,-8287,-31719,-8222,-31736,-8157,-31753,-8092,-31769,-8027,-31786,-7962,-31802,-7897,-31818,-7832,-31834,-7767,-31850,-7702,-31865,-7637,-31881,-7572,-31896,-7506,-31912,-7441,-31927,-7376,-31942,-7311,-31957,-7245,-31971,-7180,-31986,-7114,-32000,-7049,-32015,-6983,-32029,-6918,-32043,-6852,-32057,-6787,-32071,-6721,-32085,-6656,-32098,-6590,-32111,-6524,-32125,-6459,-32138,-6393,-32151,-6327,-32164,-6262,-32177,-6196,-32189,-6130,-32202,-6064,-32214,-5998,-32226,-5932,-32238,-5866,-32250,-5800,-32262,-5734,-32274,-5668,-32285,-5602,-32296,-5536,-32308,-5470,-32319,-5404,-32330,-5338,-32341,-5272,-32351,-5206,-32362,-5140,-32372,-5073,-32383,-5007,-32393,-4941,-32403,-4875,-32413,-4808,-32423,-4742,-32432,-4676,-32442,-4609,-32451,-4543,-32460,-4477,-32469,-4410,-32478,-4344,-32487,-4277,-32496,-4211,-32504,-4145,-32513,-4078,-32521,-4012,-32529,-3945,-32537,-3878,-32545,-3812,-32553,-3745,-32560,-3679,-32568,-3612,-32575,-3546,-32582,-3479,-32589,-3412,-32596,-3346,-32603,-3279,-32610,-3212,-32616,-3146,-32623,-3079,-32629,-3012,-32635,-2945,-32641,-2879,-32647,-2812,-32652,-2745,-32658,-2678,-32663,-2611,-32669,-2545,-32674,-2478,-32679,-2411,-32684,-2344,-32688,-2277,-32693,-2210,-32697,-2144,-32702,-2077,-32706,-2010,-32710,-1943,-32714,-1876,-32718,-1809,-32721,-1742,-32725,-1675,-32728,-1608,-32731,-1541,-32734,-1474,-32737,-1407,-32740,-1340,-32743,-1274,-32745,-1207,-32748,-1140,-32750,-1073,-32752,-1006,-32754,-939,-32756,-872,-32758,-805,-32759,-738,-32761,-671,-32762,-604,-32763,-537,-32764,-470,-32765,-403,-32766,-336,-32766,-269,-32767,-202,-32767,-135,-32767,-68,-32767,-1,-32767,67,-32767,134,-32767,201,-32766,268,-32766,335,-32765,402,-32764,469,-32763,536,-32762,603,-32761,670,-32759,737,-32758,804,-32756,871,-32754,938,-32752,1005,-32750,1072,-32748,1139,-32745,1206,-32743,1273,-32740,1339,-32737,1406,-32734,1473,-32731,1540,-32728,1607,-32725,1674,-32721,1741,-32718,1808,-32714,1875,-32710,1942,-32706,2009,-32702,2076,-32697,2143,-32693,2209,-32688,2276,-32684,2343,-32679,2410,-32674,2477,-32669,2544,-32663,2610,-32658,2677,-32652,2744,-32647,2811,-32641,2878,-32635,2944,-32629,3011,-32623,3078,-32616,3145,-32610,3211,-32603,3278,-32596,3345,-32589,3411,-32582,3478,-32575,3545,-32568,3611,-32560,3678,-32553,3744,-32545,3811,-32537,3877,-32529,3944,-32521,4011,-32513,4077,-32504,4144,-32496,4210,-32487,4276,-32478,4343,-32469,4409,-32460,4476,-32451,4542,-32442,4608,-32432,4675,-32423,4741,-32413,4807,-32403,4874,-32393,4940,-32383,5006,-32372,5072,-32362,5139,-32351,5205,-32341,5271,-32330,5337,-32319,5403,-32308,5469,-32296,5535,-32285,5601,-32274,5667,-32262,5733,-32250,5799,-32238,5865,-32226,5931,-32214,5997,-32202,6063,-32189,6129,-32177,6195,-32164,6261,-32151,6326,-32138,6392,-32125,6458,-32111,6523,-32098,6589,-32085,6655,-32071,6720,-32057,6786,-32043,6851,-32029,6917,-32015,6982,-32000,7048,-31986,7113,-31971,7179,-31957,7244,-31942,7310,-31927,7375,-31912,7440,-31896,7505,-31881,7571,-31865,7636,-31850,7701,-31834,7766,-31818,7831,-31802,7896,-31786,7961,-31769,8026,-31753,8091,-31736,8156,-31719,8221,-31702,8286,-31685,8351,-31668,8415,-31651,8480,-31634,8545,-31616,8610,-31598,8674,-31581,8739,-31563,8803,-31545,8868,-31526,8932,-31508,8997,-31490,9061,-31471,9126,-31452,9190,-31433,9254,-31414,9319,-31395,9383,-31376,9447,-31357,9511,-31337,9575,-31317,9639,-31298,9703,-31278,9767,-31258,9831,-31237,9895,-31217,9959,-31197,10023,-31176,10087,-31155,10151,-31135,10214,-31114,10278,-31093,10342,-31071,10405,-31050,10469,-31029,10532,-31007,10596,-30985,10659,-30963,10722,-30941,10786,-30919,10849,-30897,10912,-30875,10975,-30852,11038,-30829,11101,-30807,11164,-30784,11227,-30761,11290,-30738,11353,-30714,11416,-30691,11479,-30667,11542,-30644,11604,-30620,11667,-30596,11730,-30572,11792,-30548,11855,-30523,11917,-30499,11980,-30474,12042,-30450,12104,-30425,12166,-30400,12229,-30375,12291,-30350,12353,-30324,12415,-30299,12477,-30273,12539,-30248,12601,-30222,12663,-30196,12724,-30170,12786,-30143,12848,-30117,12909,-30091,12971,-30064,13033,-30037,13094,-30010,13155,-29984,13217,-29956,13278,-29929,13339,-29902,13400,-29874,13462,-29847,13523,-29819,13584,-29791,13645,-29763,13706,-29735,13766,-29707,13827,-29679,13888,-29650,13949,-29622,14009,-29593,14070,-29564,14130,-29535,14191,-29506,14251,-29477,14311,-29447,14372,-29418,14432,-29388,14492,-29359,14552,-29329,14612,-29299,14672,-29269,14732,-29239,14792,-29208,14852,-29178,14911,-29147,14971,-29117,15030,-29086,15090,-29055,15149,-29024,15209,-28993,15268,-28961,15327,-28930,15387,-28898,15446,-28867,15505,-28835,15564,-28803,15623,-28771,15682,-28739,15740,-28707,15799,-28674,15858,-28642,15917,-28609,15975,-28576,16034,-28544,16092,-28511,16150,-28478,16209,-28444,16267,-28411,16325,-28378,16383,-28344,16441,-28310,16499,-28276,16557,-28243,16615,-28209,16672,-28174,16730,-28140,16788,-28106,16845,-28071,16903,-28037,16960,-28002,17017,-27967,17074,-27932,17132,-27897,17189,-27862,17246,-27826,17303,-27791,17360,-27755,17416,-27720,17473,-27684,17530,-27648,17586,-27612,17643,-27576,17699,-27539,17756,-27503,17812,-27467,17868,-27430,17924,-27393,17980,-27356,18036,-27320,18092,-27282,18148,-27245,18204,-27208,18260,-27171,18315,-27133,18371,-27095,18426,-27058,18482,-27020,18537,-26982,18592,-26944,18647,-26906,18702,-26867,18757,-26829,18812,-26790,18867,-26752,18922,-26713,18976,-26674,19031,-26635,19086,-26596,19140,-26557,19194,-26517,19249,-26478,19303,-26438,19357,-26399,19411,-26359,19465,-26319,19519,-26279,19573,-26239,19626,-26199,19680,-26159,19733,-26118,19787,-26078,19840,-26037,19894,-25996,19947,-25955,20000,-25914,20053,-25873,20106,-25832,20159,-25791,20212,-25750,20264,-25708,20317,-25666,20369,-25625,20422,-25583,20474,-25541,20527,-25499,20579,-25457,20631,-25415,20683,-25372,20735,-25330,20787,-25287,20838,-25244,20890,-25202,20942,-25159,20993,-25116,21045,-25073,21096,-25030,21147,-24986,21198,-24943,21249,-24899,21300,-24856,21351,-24812,21402,-24768,21453,-24724,21503,-24680,21554,-24636,21604,-24592,21655,-24547,21705,-24503,21755,-24458,21805,-24414,21855,-24369,21905,-24324,21955,-24279,22004,-24234,22054,-24189,22104,-24144,22153,-24098,22202,-24053,22252,-24007,22301,-23962,22350,-23916,22399,-23870,22448,-23824,22496,-23778,22545,-23732,22594,-23686,22642,-23639,22691,-23593,22739,-23546,22787,-23500,22835,-23453,22883,-23406,22931,-23359,22979,-23312,23027,-23265,23074,-23218,23122,-23170,23169,-23123,23217,-23075,23264,-23028,23311,-22980,23358,-22932,23405,-22884,23452,-22836,23499,-22788,23545,-22740,23592,-22692,23638,-22643,23685,-22595,23731,-22546,23777,-22497,23823,-22449,23869,-22400,23915,-22351,23961,-22302,24006,-22253,24052,-22203,24097,-22154,24143,-22105,24188,-22055,24233,-22005,24278,-21956,24323,-21906,24368,-21856,24413,-21806,24457,-21756,24502,-21706,24546,-21656,24591,-21605,24635,-21555,24679,-21504,24723,-21454,24767,-21403,24811,-21352,24855,-21301,24898,-21250,24942,-21199,24985,-21148,25029,-21097,25072,-21046,25115,-20994,25158,-20943,25201,-20891,25243,-20839,25286,-20788,25329,-20736,25371,-20684,25414,-20632,25456,-20580,25498,-20528,25540,-20475,25582,-20423,25624,-20370,25665,-20318,25707,-20265,25749,-20213,25790,-20160,25831,-20107,25872,-20054,25913,-20001,25954,-19948,25995,-19895,26036,-19841,26077,-19788,26117,-19734,26158,-19681,26198,-19627,26238,-19574,26278,-19520,26318,-19466,26358,-19412,26398,-19358,26437,-19304,26477,-19250,26516,-19195,26556,-19141,26595,-19087,26634,-19032,26673,-18977,26712,-18923,26751,-18868,26789,-18813,26828,-18758,26866,-18703,26905,-18648,26943,-18593,26981,-18538,27019,-18483,27057,-18427,27094,-18372,27132,-18316,27170,-18261,27207,-18205,27244,-18149,27281,-18093,27319,-18037,27355,-17981,27392,-17925,27429,-17869,27466,-17813,27502,-17757,27538,-17700,27575,-17644,27611,-17587,27647,-17531,27683,-17474,27719,-17417,27754,-17361,27790,-17304,27825,-17247,27861,-17190,27896,-17133,27931,-17075,27966,-17018,28001,-16961,28036,-16904,28070,-16846,28105,-16789,28139,-16731,28173,-16673,28208,-16616,28242,-16558,28275,-16500,28309,-16442,28343};
diff --git a/openair1/PHY/TOOLS/twiddles4096.h b/openair1/PHY/TOOLS/twiddles4096.h
deleted file mode 100644
index af2b6a8887619bd82949cfa72ac54f814d5b83a6..0000000000000000000000000000000000000000
--- a/openair1/PHY/TOOLS/twiddles4096.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The OpenAirInterface Software Alliance licenses this file to You under
- * the OAI Public License, Version 1.1  (the "License"); you may not use this file
- * except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.openairinterface.org/?page_id=698
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *-------------------------------------------------------------------------------
- * For more information about the OpenAirInterface (OAI) Software Alliance:
- *      contact@openairinterface.org
- */
-
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:1023)/4096));
-twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(0:1023)/4096));
-twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(0:1023)/4096));
-twa2 = zeros(1,2*1024);
-twb2 = zeros(1,2*1024);
-twc2 = zeros(1,2*1024);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-twb2(1:2:end) = real(twb);
-twb2(2:2:end) = imag(twb);
-twc2(1:2:end) = real(twc);
-twc2(2:2:end) = imag(twc);
-fd=fopen("twiddle_tmp.txt","w");
-fprintf(fd,"static int16_t tw4096[3*1024*2] = {");
-fprintf(fd,"%d,",twa2);
-fprintf(fd,"%d,",twb2);
-fprintf(fd,"%d,",twc2(1:(1024*2)-1));
-fprintf(fd,"%d};\n",twc2(end));
-fclose(fd);
-*/
-static int16_t tw4096[3*1024*2] = {32767,0,32766,-51,32766,-101,32766,-151,32766,-202,32766,-252,32765,-302,32765,-352,32764,-403,32763,-453,32763,-503,32762,-553,32761,-604,32760,-654,32759,-704,32758,-754,32757,-805,32755,-855,32754,-905,32753,-955,32751,-1006,32750,-1056,32748,-1106,32746,-1156,32744,-1207,32742,-1257,32740,-1307,32738,-1357,32736,-1407,32734,-1458,32732,-1508,32729,-1558,32727,-1608,32725,-1659,32722,-1709,32719,-1759,32717,-1809,32714,-1859,32711,-1909,32708,-1960,32705,-2010,32702,-2060,32699,-2110,32695,-2160,32692,-2210,32688,-2261,32685,-2311,32681,-2361,32678,-2411,32674,-2461,32670,-2511,32666,-2561,32662,-2611,32658,-2662,32654,-2712,32650,-2762,32646,-2812,32641,-2862,32637,-2912,32632,-2962,32628,-3012,32623,-3062,32618,-3112,32614,-3162,32609,-3212,32604,-3262,32599,-3312,32594,-3362,32588,-3412,32583,-3462,32578,-3512,32572,-3562,32567,-3612,32561,-3662,32556,-3712,32550,-3762,32544,-3812,32538,-3862,32532,-3912,32526,-3962,32520,-4012,32514,-4061,32508,-4111,32501,-4161,32495,-4211,32488,-4261,32482,-4311,32475,-4360,32468,-4410,32462,-4460,32455,-4510,32448,-4560,32441,-4609,32434,-4659,32426,-4709,32419,-4759,32412,-4808,32404,-4858,32397,-4908,32389,-4958,32382,-5007,32374,-5057,32366,-5107,32358,-5156,32350,-5206,32342,-5255,32334,-5305,32326,-5355,32318,-5404,32310,-5454,32301,-5503,32293,-5553,32284,-5602,32275,-5652,32267,-5701,32258,-5751,32249,-5800,32240,-5850,32231,-5899,32222,-5949,32213,-5998,32204,-6048,32194,-6097,32185,-6146,32176,-6196,32166,-6245,32156,-6294,32147,-6344,32137,-6393,32127,-6442,32117,-6492,32107,-6541,32097,-6590,32087,-6639,32077,-6689,32066,-6738,32056,-6787,32046,-6836,32035,-6885,32024,-6934,32014,-6983,32003,-7033,31992,-7082,31981,-7131,31970,-7180,31959,-7229,31948,-7278,31937,-7327,31926,-7376,31914,-7425,31903,-7474,31891,-7523,31880,-7572,31868,-7620,31856,-7669,31845,-7718,31833,-7767,31821,-7816,31809,-7865,31797,-7913,31785,-7962,31772,-8011,31760,-8060,31748,-8108,31735,-8157,31723,-8206,31710,-8254,31697,-8303,31684,-8352,31672,-8400,31659,-8449,31646,-8497,31633,-8546,31619,-8594,31606,-8643,31593,-8691,31580,-8740,31566,-8788,31553,-8837,31539,-8885,31525,-8933,31512,-8982,31498,-9030,31484,-9078,31470,-9127,31456,-9175,31442,-9223,31428,-9271,31413,-9320,31399,-9368,31385,-9416,31370,-9464,31356,-9512,31341,-9560,31326,-9608,31311,-9656,31297,-9704,31282,-9752,31267,-9800,31252,-9848,31236,-9896,31221,-9944,31206,-9992,31191,-10040,31175,-10088,31160,-10136,31144,-10183,31128,-10231,31113,-10279,31097,-10327,31081,-10374,31065,-10422,31049,-10470,31033,-10517,31017,-10565,31001,-10612,30984,-10660,30968,-10707,30951,-10755,30935,-10802,30918,-10850,30902,-10897,30885,-10945,30868,-10992,30851,-11039,30834,-11087,30817,-11134,30800,-11181,30783,-11228,30766,-11276,30748,-11323,30731,-11370,30713,-11417,30696,-11464,30678,-11511,30660,-11558,30643,-11605,30625,-11652,30607,-11699,30589,-11746,30571,-11793,30553,-11840,30535,-11887,30516,-11934,30498,-11981,30480,-12027,30461,-12074,30442,-12121,30424,-12167,30405,-12214,30386,-12261,30368,-12307,30349,-12354,30330,-12400,30311,-12447,30291,-12493,30272,-12540,30253,-12586,30234,-12633,30214,-12679,30195,-12725,30175,-12772,30156,-12818,30136,-12864,30116,-12910,30096,-12957,30076,-13003,30056,-13049,30036,-13095,30016,-13141,29996,-13187,29976,-13233,29955,-13279,29935,-13325,29915,-13371,29894,-13417,29873,-13463,29853,-13508,29832,-13554,29811,-13600,29790,-13646,29769,-13691,29748,-13737,29727,-13783,29706,-13828,29685,-13874,29663,-13919,29642,-13965,29621,-14010,29599,-14056,29577,-14101,29556,-14146,29534,-14192,29512,-14237,29490,-14282,29468,-14327,29446,-14373,29424,-14418,29402,-14463,29380,-14508,29358,-14553,29335,-14598,29313,-14643,29290,-14688,29268,-14733,29245,-14778,29222,-14823,29200,-14867,29177,-14912,29154,-14957,29131,-15002,29108,-15046,29085,-15091,29062,-15136,29038,-15180,29015,-15225,28992,-15269,28968,-15314,28945,-15358,28921,-15402,28897,-15447,28874,-15491,28850,-15535,28826,-15580,28802,-15624,28778,-15668,28754,-15712,28730,-15756,28706,-15800,28681,-15844,28657,-15888,28633,-15932,28608,-15976,28584,-16020,28559,-16064,28534,-16108,28510,-16151,28485,-16195,28460,-16239,28435,-16282,28410,-16326,28385,-16369,28360,-16413,28335,-16456,28309,-16500,28284,-16543,28259,-16587,28233,-16630,28208,-16673,28182,-16717,28156,-16760,28131,-16803,28105,-16846,28079,-16889,28053,-16932,28027,-16975,28001,-17018,27975,-17061,27948,-17104,27922,-17147,27896,-17190,27869,-17233,27843,-17275,27816,-17318,27790,-17361,27763,-17403,27736,-17446,27710,-17488,27683,-17531,27656,-17573,27629,-17616,27602,-17658,27575,-17700,27548,-17743,27520,-17785,27493,-17827,27466,-17869,27438,-17911,27411,-17953,27383,-17995,27355,-18037,27328,-18079,27300,-18121,27272,-18163,27244,-18205,27216,-18247,27188,-18288,27160,-18330,27132,-18372,27104,-18413,27076,-18455,27047,-18496,27019,-18538,26990,-18579,26962,-18621,26933,-18662,26905,-18703,26876,-18745,26847,-18786,26818,-18827,26789,-18868,26760,-18909,26731,-18950,26702,-18991,26673,-19032,26644,-19073,26615,-19114,26585,-19155,26556,-19195,26526,-19236,26497,-19277,26467,-19317,26437,-19358,26408,-19398,26378,-19439,26348,-19479,26318,-19520,26288,-19560,26258,-19600,26228,-19641,26198,-19681,26168,-19721,26137,-19761,26107,-19801,26077,-19841,26046,-19881,26016,-19921,25985,-19961,25954,-20001,25924,-20041,25893,-20080,25862,-20120,25831,-20160,25800,-20199,25769,-20239,25738,-20278,25707,-20318,25676,-20357,25645,-20397,25613,-20436,25582,-20475,25550,-20514,25519,-20554,25487,-20593,25456,-20632,25424,-20671,25392,-20710,25361,-20749,25329,-20788,25297,-20826,25265,-20865,25233,-20904,25201,-20943,25169,-20981,25136,-21020,25104,-21058,25072,-21097,25039,-21135,25007,-21174,24974,-21212,24942,-21250,24909,-21289,24877,-21327,24844,-21365,24811,-21403,24778,-21441,24745,-21479,24712,-21517,24679,-21555,24646,-21593,24613,-21630,24580,-21668,24546,-21706,24513,-21744,24480,-21781,24446,-21819,24413,-21856,24379,-21894,24346,-21931,24312,-21968,24278,-22005,24244,-22043,24211,-22080,24177,-22117,24143,-22154,24109,-22191,24075,-22228,24041,-22265,24006,-22302,23972,-22339,23938,-22375,23903,-22412,23869,-22449,23835,-22485,23800,-22522,23766,-22558,23731,-22595,23696,-22631,23661,-22667,23627,-22704,23592,-22740,23557,-22776,23522,-22812,23487,-22848,23452,-22884,23417,-22920,23382,-22956,23346,-22992,23311,-23028,23276,-23063,23240,-23099,23205,-23135,23169,-23170,23134,-23206,23098,-23241,23062,-23277,23027,-23312,22991,-23347,22955,-23383,22919,-23418,22883,-23453,22847,-23488,22811,-23523,22775,-23558,22739,-23593,22703,-23628,22666,-23662,22630,-23697,22594,-23732,22557,-23767,22521,-23801,22484,-23836,22448,-23870,22411,-23904,22374,-23939,22338,-23973,22301,-24007,22264,-24042,22227,-24076,22190,-24110,22153,-24144,22116,-24178,22079,-24212,22042,-24245,22004,-24279,21967,-24313,21930,-24347,21893,-24380,21855,-24414,21818,-24447,21780,-24481,21743,-24514,21705,-24547,21667,-24581,21629,-24614,21592,-24647,21554,-24680,21516,-24713,21478,-24746,21440,-24779,21402,-24812,21364,-24845,21326,-24878,21288,-24910,21249,-24943,21211,-24975,21173,-25008,21134,-25040,21096,-25073,21057,-25105,21019,-25137,20980,-25170,20942,-25202,20903,-25234,20864,-25266,20825,-25298,20787,-25330,20748,-25362,20709,-25393,20670,-25425,20631,-25457,20592,-25488,20553,-25520,20513,-25551,20474,-25583,20435,-25614,20396,-25646,20356,-25677,20317,-25708,20277,-25739,20238,-25770,20198,-25801,20159,-25832,20119,-25863,20079,-25894,20040,-25925,20000,-25955,19960,-25986,19920,-26017,19880,-26047,19840,-26078,19800,-26108,19760,-26138,19720,-26169,19680,-26199,19640,-26229,19599,-26259,19559,-26289,19519,-26319,19478,-26349,19438,-26379,19397,-26409,19357,-26438,19316,-26468,19276,-26498,19235,-26527,19194,-26557,19154,-26586,19113,-26616,19072,-26645,19031,-26674,18990,-26703,18949,-26732,18908,-26761,18867,-26790,18826,-26819,18785,-26848,18744,-26877,18702,-26906,18661,-26934,18620,-26963,18578,-26991,18537,-27020,18495,-27048,18454,-27077,18412,-27105,18371,-27133,18329,-27161,18287,-27189,18246,-27217,18204,-27245,18162,-27273,18120,-27301,18078,-27329,18036,-27356,17994,-27384,17952,-27412,17910,-27439,17868,-27467,17826,-27494,17784,-27521,17742,-27549,17699,-27576,17657,-27603,17615,-27630,17572,-27657,17530,-27684,17487,-27711,17445,-27737,17402,-27764,17360,-27791,17317,-27817,17274,-27844,17232,-27870,17189,-27897,17146,-27923,17103,-27949,17060,-27976,17017,-28002,16974,-28028,16931,-28054,16888,-28080,16845,-28106,16802,-28132,16759,-28157,16716,-28183,16672,-28209,16629,-28234,16586,-28260,16542,-28285,16499,-28310,16455,-28336,16412,-28361,16368,-28386,16325,-28411,16281,-28436,16238,-28461,16194,-28486,16150,-28511,16107,-28535,16063,-28560,16019,-28585,15975,-28609,15931,-28634,15887,-28658,15843,-28682,15799,-28707,15755,-28731,15711,-28755,15667,-28779,15623,-28803,15579,-28827,15534,-28851,15490,-28875,15446,-28898,15401,-28922,15357,-28946,15313,-28969,15268,-28993,15224,-29016,15179,-29039,15135,-29063,15090,-29086,15045,-29109,15001,-29132,14956,-29155,14911,-29178,14866,-29201,14822,-29223,14777,-29246,14732,-29269,14687,-29291,14642,-29314,14597,-29336,14552,-29359,14507,-29381,14462,-29403,14417,-29425,14372,-29447,14326,-29469,14281,-29491,14236,-29513,14191,-29535,14145,-29557,14100,-29578,14055,-29600,14009,-29622,13964,-29643,13918,-29664,13873,-29686,13827,-29707,13782,-29728,13736,-29749,13690,-29770,13645,-29791,13599,-29812,13553,-29833,13507,-29854,13462,-29874,13416,-29895,13370,-29916,13324,-29936,13278,-29956,13232,-29977,13186,-29997,13140,-30017,13094,-30037,13048,-30057,13002,-30077,12956,-30097,12909,-30117,12863,-30137,12817,-30157,12771,-30176,12724,-30196,12678,-30215,12632,-30235,12585,-30254,12539,-30273,12492,-30292,12446,-30312,12399,-30331,12353,-30350,12306,-30369,12260,-30387,12213,-30406,12166,-30425,12120,-30443,12073,-30462,12026,-30481,11980,-30499,11933,-30517,11886,-30536,11839,-30554,11792,-30572,11745,-30590,11698,-30608,11651,-30626,11604,-30644,11557,-30661,11510,-30679,11463,-30697,11416,-30714,11369,-30732,11322,-30749,11275,-30767,11227,-30784,11180,-30801,11133,-30818,11086,-30835,11038,-30852,10991,-30869,10944,-30886,10896,-30903,10849,-30919,10801,-30936,10754,-30952,10706,-30969,10659,-30985,10611,-31002,10564,-31018,10516,-31034,10469,-31050,10421,-31066,10373,-31082,10326,-31098,10278,-31114,10230,-31129,10182,-31145,10135,-31161,10087,-31176,10039,-31192,9991,-31207,9943,-31222,9895,-31237,9847,-31253,9799,-31268,9751,-31283,9703,-31298,9655,-31312,9607,-31327,9559,-31342,9511,-31357,9463,-31371,9415,-31386,9367,-31400,9319,-31414,9270,-31429,9222,-31443,9174,-31457,9126,-31471,9077,-31485,9029,-31499,8981,-31513,8932,-31526,8884,-31540,8836,-31554,8787,-31567,8739,-31581,8690,-31594,8642,-31607,8593,-31620,8545,-31634,8496,-31647,8448,-31660,8399,-31673,8351,-31685,8302,-31698,8253,-31711,8205,-31724,8156,-31736,8107,-31749,8059,-31761,8010,-31773,7961,-31786,7912,-31798,7864,-31810,7815,-31822,7766,-31834,7717,-31846,7668,-31857,7619,-31869,7571,-31881,7522,-31892,7473,-31904,7424,-31915,7375,-31927,7326,-31938,7277,-31949,7228,-31960,7179,-31971,7130,-31982,7081,-31993,7032,-32004,6982,-32015,6933,-32025,6884,-32036,6835,-32047,6786,-32057,6737,-32067,6688,-32078,6638,-32088,6589,-32098,6540,-32108,6491,-32118,6441,-32128,6392,-32138,6343,-32148,6293,-32157,6244,-32167,6195,-32177,6145,-32186,6096,-32195,6047,-32205,5997,-32214,5948,-32223,5898,-32232,5849,-32241,5799,-32250,5750,-32259,5700,-32268,5651,-32276,5601,-32285,5552,-32294,5502,-32302,5453,-32311,5403,-32319,5354,-32327,5304,-32335,5254,-32343,5205,-32351,5155,-32359,5106,-32367,5056,-32375,5006,-32383,4957,-32390,4907,-32398,4857,-32405,4807,-32413,4758,-32420,4708,-32427,4658,-32435,4608,-32442,4559,-32449,4509,-32456,4459,-32463,4409,-32469,4359,-32476,4310,-32483,4260,-32489,4210,-32496,4160,-32502,4110,-32509,4060,-32515,4011,-32521,3961,-32527,3911,-32533,3861,-32539,3811,-32545,3761,-32551,3711,-32557,3661,-32562,3611,-32568,3561,-32573,3511,-32579,3461,-32584,3411,-32589,3361,-32595,3311,-32600,3261,-32605,3211,-32610,3161,-32615,3111,-32619,3061,-32624,3011,-32629,2961,-32633,2911,-32638,2861,-32642,2811,-32647,2761,-32651,2711,-32655,2661,-32659,2610,-32663,2560,-32667,2510,-32671,2460,-32675,2410,-32679,2360,-32682,2310,-32686,2260,-32689,2209,-32693,2159,-32696,2109,-32700,2059,-32703,2009,-32706,1959,-32709,1908,-32712,1858,-32715,1808,-32718,1758,-32720,1708,-32723,1658,-32726,1607,-32728,1557,-32730,1507,-32733,1457,-32735,1406,-32737,1356,-32739,1306,-32741,1256,-32743,1206,-32745,1155,-32747,1105,-32749,1055,-32751,1005,-32752,954,-32754,904,-32755,854,-32756,804,-32758,753,-32759,703,-32760,653,-32761,603,-32762,552,-32763,502,-32764,452,-32764,402,-32765,351,-32766,301,-32766,251,-32767,201,-32767,150,-32767,100,-32767,50,-32767,32767,0,32766,-101,32766,-202,32765,-302,32764,-403,32763,-503,32761,-604,32759,-704,32757,-805,32754,-905,32751,-1006,32748,-1106,32744,-1207,32740,-1307,32736,-1407,32732,-1508,32727,-1608,32722,-1709,32717,-1809,32711,-1909,32705,-2010,32699,-2110,32692,-2210,32685,-2311,32678,-2411,32670,-2511,32662,-2611,32654,-2712,32646,-2812,32637,-2912,32628,-3012,32618,-3112,32609,-3212,32599,-3312,32588,-3412,32578,-3512,32567,-3612,32556,-3712,32544,-3812,32532,-3912,32520,-4012,32508,-4111,32495,-4211,32482,-4311,32468,-4410,32455,-4510,32441,-4609,32426,-4709,32412,-4808,32397,-4908,32382,-5007,32366,-5107,32350,-5206,32334,-5305,32318,-5404,32301,-5503,32284,-5602,32267,-5701,32249,-5800,32231,-5899,32213,-5998,32194,-6097,32176,-6196,32156,-6294,32137,-6393,32117,-6492,32097,-6590,32077,-6689,32056,-6787,32035,-6885,32014,-6983,31992,-7082,31970,-7180,31948,-7278,31926,-7376,31903,-7474,31880,-7572,31856,-7669,31833,-7767,31809,-7865,31785,-7962,31760,-8060,31735,-8157,31710,-8254,31684,-8352,31659,-8449,31633,-8546,31606,-8643,31580,-8740,31553,-8837,31525,-8933,31498,-9030,31470,-9127,31442,-9223,31413,-9320,31385,-9416,31356,-9512,31326,-9608,31297,-9704,31267,-9800,31236,-9896,31206,-9992,31175,-10088,31144,-10183,31113,-10279,31081,-10374,31049,-10470,31017,-10565,30984,-10660,30951,-10755,30918,-10850,30885,-10945,30851,-11039,30817,-11134,30783,-11228,30748,-11323,30713,-11417,30678,-11511,30643,-11605,30607,-11699,30571,-11793,30535,-11887,30498,-11981,30461,-12074,30424,-12167,30386,-12261,30349,-12354,30311,-12447,30272,-12540,30234,-12633,30195,-12725,30156,-12818,30116,-12910,30076,-13003,30036,-13095,29996,-13187,29955,-13279,29915,-13371,29873,-13463,29832,-13554,29790,-13646,29748,-13737,29706,-13828,29663,-13919,29621,-14010,29577,-14101,29534,-14192,29490,-14282,29446,-14373,29402,-14463,29358,-14553,29313,-14643,29268,-14733,29222,-14823,29177,-14912,29131,-15002,29085,-15091,29038,-15180,28992,-15269,28945,-15358,28897,-15447,28850,-15535,28802,-15624,28754,-15712,28706,-15800,28657,-15888,28608,-15976,28559,-16064,28510,-16151,28460,-16239,28410,-16326,28360,-16413,28309,-16500,28259,-16587,28208,-16673,28156,-16760,28105,-16846,28053,-16932,28001,-17018,27948,-17104,27896,-17190,27843,-17275,27790,-17361,27736,-17446,27683,-17531,27629,-17616,27575,-17700,27520,-17785,27466,-17869,27411,-17953,27355,-18037,27300,-18121,27244,-18205,27188,-18288,27132,-18372,27076,-18455,27019,-18538,26962,-18621,26905,-18703,26847,-18786,26789,-18868,26731,-18950,26673,-19032,26615,-19114,26556,-19195,26497,-19277,26437,-19358,26378,-19439,26318,-19520,26258,-19600,26198,-19681,26137,-19761,26077,-19841,26016,-19921,25954,-20001,25893,-20080,25831,-20160,25769,-20239,25707,-20318,25645,-20397,25582,-20475,25519,-20554,25456,-20632,25392,-20710,25329,-20788,25265,-20865,25201,-20943,25136,-21020,25072,-21097,25007,-21174,24942,-21250,24877,-21327,24811,-21403,24745,-21479,24679,-21555,24613,-21630,24546,-21706,24480,-21781,24413,-21856,24346,-21931,24278,-22005,24211,-22080,24143,-22154,24075,-22228,24006,-22302,23938,-22375,23869,-22449,23800,-22522,23731,-22595,23661,-22667,23592,-22740,23522,-22812,23452,-22884,23382,-22956,23311,-23028,23240,-23099,23169,-23170,23098,-23241,23027,-23312,22955,-23383,22883,-23453,22811,-23523,22739,-23593,22666,-23662,22594,-23732,22521,-23801,22448,-23870,22374,-23939,22301,-24007,22227,-24076,22153,-24144,22079,-24212,22004,-24279,21930,-24347,21855,-24414,21780,-24481,21705,-24547,21629,-24614,21554,-24680,21478,-24746,21402,-24812,21326,-24878,21249,-24943,21173,-25008,21096,-25073,21019,-25137,20942,-25202,20864,-25266,20787,-25330,20709,-25393,20631,-25457,20553,-25520,20474,-25583,20396,-25646,20317,-25708,20238,-25770,20159,-25832,20079,-25894,20000,-25955,19920,-26017,19840,-26078,19760,-26138,19680,-26199,19599,-26259,19519,-26319,19438,-26379,19357,-26438,19276,-26498,19194,-26557,19113,-26616,19031,-26674,18949,-26732,18867,-26790,18785,-26848,18702,-26906,18620,-26963,18537,-27020,18454,-27077,18371,-27133,18287,-27189,18204,-27245,18120,-27301,18036,-27356,17952,-27412,17868,-27467,17784,-27521,17699,-27576,17615,-27630,17530,-27684,17445,-27737,17360,-27791,17274,-27844,17189,-27897,17103,-27949,17017,-28002,16931,-28054,16845,-28106,16759,-28157,16672,-28209,16586,-28260,16499,-28310,16412,-28361,16325,-28411,16238,-28461,16150,-28511,16063,-28560,15975,-28609,15887,-28658,15799,-28707,15711,-28755,15623,-28803,15534,-28851,15446,-28898,15357,-28946,15268,-28993,15179,-29039,15090,-29086,15001,-29132,14911,-29178,14822,-29223,14732,-29269,14642,-29314,14552,-29359,14462,-29403,14372,-29447,14281,-29491,14191,-29535,14100,-29578,14009,-29622,13918,-29664,13827,-29707,13736,-29749,13645,-29791,13553,-29833,13462,-29874,13370,-29916,13278,-29956,13186,-29997,13094,-30037,13002,-30077,12909,-30117,12817,-30157,12724,-30196,12632,-30235,12539,-30273,12446,-30312,12353,-30350,12260,-30387,12166,-30425,12073,-30462,11980,-30499,11886,-30536,11792,-30572,11698,-30608,11604,-30644,11510,-30679,11416,-30714,11322,-30749,11227,-30784,11133,-30818,11038,-30852,10944,-30886,10849,-30919,10754,-30952,10659,-30985,10564,-31018,10469,-31050,10373,-31082,10278,-31114,10182,-31145,10087,-31176,9991,-31207,9895,-31237,9799,-31268,9703,-31298,9607,-31327,9511,-31357,9415,-31386,9319,-31414,9222,-31443,9126,-31471,9029,-31499,8932,-31526,8836,-31554,8739,-31581,8642,-31607,8545,-31634,8448,-31660,8351,-31685,8253,-31711,8156,-31736,8059,-31761,7961,-31786,7864,-31810,7766,-31834,7668,-31857,7571,-31881,7473,-31904,7375,-31927,7277,-31949,7179,-31971,7081,-31993,6982,-32015,6884,-32036,6786,-32057,6688,-32078,6589,-32098,6491,-32118,6392,-32138,6293,-32157,6195,-32177,6096,-32195,5997,-32214,5898,-32232,5799,-32250,5700,-32268,5601,-32285,5502,-32302,5403,-32319,5304,-32335,5205,-32351,5106,-32367,5006,-32383,4907,-32398,4807,-32413,4708,-32427,4608,-32442,4509,-32456,4409,-32469,4310,-32483,4210,-32496,4110,-32509,4011,-32521,3911,-32533,3811,-32545,3711,-32557,3611,-32568,3511,-32579,3411,-32589,3311,-32600,3211,-32610,3111,-32619,3011,-32629,2911,-32638,2811,-32647,2711,-32655,2610,-32663,2510,-32671,2410,-32679,2310,-32686,2209,-32693,2109,-32700,2009,-32706,1908,-32712,1808,-32718,1708,-32723,1607,-32728,1507,-32733,1406,-32737,1306,-32741,1206,-32745,1105,-32749,1005,-32752,904,-32755,804,-32758,703,-32760,603,-32762,502,-32764,402,-32765,301,-32766,201,-32767,100,-32767,0,-32767,-101,-32767,-202,-32767,-302,-32766,-403,-32765,-503,-32764,-604,-32762,-704,-32760,-805,-32758,-905,-32755,-1006,-32752,-1106,-32749,-1207,-32745,-1307,-32741,-1407,-32737,-1508,-32733,-1608,-32728,-1709,-32723,-1809,-32718,-1909,-32712,-2010,-32706,-2110,-32700,-2210,-32693,-2311,-32686,-2411,-32679,-2511,-32671,-2611,-32663,-2712,-32655,-2812,-32647,-2912,-32638,-3012,-32629,-3112,-32619,-3212,-32610,-3312,-32600,-3412,-32589,-3512,-32579,-3612,-32568,-3712,-32557,-3812,-32545,-3912,-32533,-4012,-32521,-4111,-32509,-4211,-32496,-4311,-32483,-4410,-32469,-4510,-32456,-4609,-32442,-4709,-32427,-4808,-32413,-4908,-32398,-5007,-32383,-5107,-32367,-5206,-32351,-5305,-32335,-5404,-32319,-5503,-32302,-5602,-32285,-5701,-32268,-5800,-32250,-5899,-32232,-5998,-32214,-6097,-32195,-6196,-32177,-6294,-32157,-6393,-32138,-6492,-32118,-6590,-32098,-6689,-32078,-6787,-32057,-6885,-32036,-6983,-32015,-7082,-31993,-7180,-31971,-7278,-31949,-7376,-31927,-7474,-31904,-7572,-31881,-7669,-31857,-7767,-31834,-7865,-31810,-7962,-31786,-8060,-31761,-8157,-31736,-8254,-31711,-8352,-31685,-8449,-31660,-8546,-31634,-8643,-31607,-8740,-31581,-8837,-31554,-8933,-31526,-9030,-31499,-9127,-31471,-9223,-31443,-9320,-31414,-9416,-31386,-9512,-31357,-9608,-31327,-9704,-31298,-9800,-31268,-9896,-31237,-9992,-31207,-10088,-31176,-10183,-31145,-10279,-31114,-10374,-31082,-10470,-31050,-10565,-31018,-10660,-30985,-10755,-30952,-10850,-30919,-10945,-30886,-11039,-30852,-11134,-30818,-11228,-30784,-11323,-30749,-11417,-30714,-11511,-30679,-11605,-30644,-11699,-30608,-11793,-30572,-11887,-30536,-11981,-30499,-12074,-30462,-12167,-30425,-12261,-30387,-12354,-30350,-12447,-30312,-12540,-30273,-12633,-30235,-12725,-30196,-12818,-30157,-12910,-30117,-13003,-30077,-13095,-30037,-13187,-29997,-13279,-29956,-13371,-29916,-13463,-29874,-13554,-29833,-13646,-29791,-13737,-29749,-13828,-29707,-13919,-29664,-14010,-29622,-14101,-29578,-14192,-29535,-14282,-29491,-14373,-29447,-14463,-29403,-14553,-29359,-14643,-29314,-14733,-29269,-14823,-29223,-14912,-29178,-15002,-29132,-15091,-29086,-15180,-29039,-15269,-28993,-15358,-28946,-15447,-28898,-15535,-28851,-15624,-28803,-15712,-28755,-15800,-28707,-15888,-28658,-15976,-28609,-16064,-28560,-16151,-28511,-16239,-28461,-16326,-28411,-16413,-28361,-16500,-28310,-16587,-28260,-16673,-28209,-16760,-28157,-16846,-28106,-16932,-28054,-17018,-28002,-17104,-27949,-17190,-27897,-17275,-27844,-17361,-27791,-17446,-27737,-17531,-27684,-17616,-27630,-17700,-27576,-17785,-27521,-17869,-27467,-17953,-27412,-18037,-27356,-18121,-27301,-18205,-27245,-18288,-27189,-18372,-27133,-18455,-27077,-18538,-27020,-18621,-26963,-18703,-26906,-18786,-26848,-18868,-26790,-18950,-26732,-19032,-26674,-19114,-26616,-19195,-26557,-19277,-26498,-19358,-26438,-19439,-26379,-19520,-26319,-19600,-26259,-19681,-26199,-19761,-26138,-19841,-26078,-19921,-26017,-20001,-25955,-20080,-25894,-20160,-25832,-20239,-25770,-20318,-25708,-20397,-25646,-20475,-25583,-20554,-25520,-20632,-25457,-20710,-25393,-20788,-25330,-20865,-25266,-20943,-25202,-21020,-25137,-21097,-25073,-21174,-25008,-21250,-24943,-21327,-24878,-21403,-24812,-21479,-24746,-21555,-24680,-21630,-24614,-21706,-24547,-21781,-24481,-21856,-24414,-21931,-24347,-22005,-24279,-22080,-24212,-22154,-24144,-22228,-24076,-22302,-24007,-22375,-23939,-22449,-23870,-22522,-23801,-22595,-23732,-22667,-23662,-22740,-23593,-22812,-23523,-22884,-23453,-22956,-23383,-23028,-23312,-23099,-23241,-23170,-23170,-23241,-23099,-23312,-23028,-23383,-22956,-23453,-22884,-23523,-22812,-23593,-22740,-23662,-22667,-23732,-22595,-23801,-22522,-23870,-22449,-23939,-22375,-24007,-22302,-24076,-22228,-24144,-22154,-24212,-22080,-24279,-22005,-24347,-21931,-24414,-21856,-24481,-21781,-24547,-21706,-24614,-21630,-24680,-21555,-24746,-21479,-24812,-21403,-24878,-21327,-24943,-21250,-25008,-21174,-25073,-21097,-25137,-21020,-25202,-20943,-25266,-20865,-25330,-20788,-25393,-20710,-25457,-20632,-25520,-20554,-25583,-20475,-25646,-20397,-25708,-20318,-25770,-20239,-25832,-20160,-25894,-20080,-25955,-20001,-26017,-19921,-26078,-19841,-26138,-19761,-26199,-19681,-26259,-19600,-26319,-19520,-26379,-19439,-26438,-19358,-26498,-19277,-26557,-19195,-26616,-19114,-26674,-19032,-26732,-18950,-26790,-18868,-26848,-18786,-26906,-18703,-26963,-18621,-27020,-18538,-27077,-18455,-27133,-18372,-27189,-18288,-27245,-18205,-27301,-18121,-27356,-18037,-27412,-17953,-27467,-17869,-27521,-17785,-27576,-17700,-27630,-17616,-27684,-17531,-27737,-17446,-27791,-17361,-27844,-17275,-27897,-17190,-27949,-17104,-28002,-17018,-28054,-16932,-28106,-16846,-28157,-16760,-28209,-16673,-28260,-16587,-28310,-16500,-28361,-16413,-28411,-16326,-28461,-16239,-28511,-16151,-28560,-16064,-28609,-15976,-28658,-15888,-28707,-15800,-28755,-15712,-28803,-15624,-28851,-15535,-28898,-15447,-28946,-15358,-28993,-15269,-29039,-15180,-29086,-15091,-29132,-15002,-29178,-14912,-29223,-14823,-29269,-14733,-29314,-14643,-29359,-14553,-29403,-14463,-29447,-14373,-29491,-14282,-29535,-14192,-29578,-14101,-29622,-14010,-29664,-13919,-29707,-13828,-29749,-13737,-29791,-13646,-29833,-13554,-29874,-13463,-29916,-13371,-29956,-13279,-29997,-13187,-30037,-13095,-30077,-13003,-30117,-12910,-30157,-12818,-30196,-12725,-30235,-12633,-30273,-12540,-30312,-12447,-30350,-12354,-30387,-12261,-30425,-12167,-30462,-12074,-30499,-11981,-30536,-11887,-30572,-11793,-30608,-11699,-30644,-11605,-30679,-11511,-30714,-11417,-30749,-11323,-30784,-11228,-30818,-11134,-30852,-11039,-30886,-10945,-30919,-10850,-30952,-10755,-30985,-10660,-31018,-10565,-31050,-10470,-31082,-10374,-31114,-10279,-31145,-10183,-31176,-10088,-31207,-9992,-31237,-9896,-31268,-9800,-31298,-9704,-31327,-9608,-31357,-9512,-31386,-9416,-31414,-9320,-31443,-9223,-31471,-9127,-31499,-9030,-31526,-8933,-31554,-8837,-31581,-8740,-31607,-8643,-31634,-8546,-31660,-8449,-31685,-8352,-31711,-8254,-31736,-8157,-31761,-8060,-31786,-7962,-31810,-7865,-31834,-7767,-31857,-7669,-31881,-7572,-31904,-7474,-31927,-7376,-31949,-7278,-31971,-7180,-31993,-7082,-32015,-6983,-32036,-6885,-32057,-6787,-32078,-6689,-32098,-6590,-32118,-6492,-32138,-6393,-32157,-6294,-32177,-6196,-32195,-6097,-32214,-5998,-32232,-5899,-32250,-5800,-32268,-5701,-32285,-5602,-32302,-5503,-32319,-5404,-32335,-5305,-32351,-5206,-32367,-5107,-32383,-5007,-32398,-4908,-32413,-4808,-32427,-4709,-32442,-4609,-32456,-4510,-32469,-4410,-32483,-4311,-32496,-4211,-32509,-4111,-32521,-4012,-32533,-3912,-32545,-3812,-32557,-3712,-32568,-3612,-32579,-3512,-32589,-3412,-32600,-3312,-32610,-3212,-32619,-3112,-32629,-3012,-32638,-2912,-32647,-2812,-32655,-2712,-32663,-2611,-32671,-2511,-32679,-2411,-32686,-2311,-32693,-2210,-32700,-2110,-32706,-2010,-32712,-1909,-32718,-1809,-32723,-1709,-32728,-1608,-32733,-1508,-32737,-1407,-32741,-1307,-32745,-1207,-32749,-1106,-32752,-1006,-32755,-905,-32758,-805,-32760,-704,-32762,-604,-32764,-503,-32765,-403,-32766,-302,-32767,-202,-32767,-101,32767,0,32766,-151,32765,-302,32763,-453,32761,-604,32758,-754,32754,-905,32750,-1056,32744,-1207,32738,-1357,32732,-1508,32725,-1659,32717,-1809,32708,-1960,32699,-2110,32688,-2261,32678,-2411,32666,-2561,32654,-2712,32641,-2862,32628,-3012,32614,-3162,32599,-3312,32583,-3462,32567,-3612,32550,-3762,32532,-3912,32514,-4061,32495,-4211,32475,-4360,32455,-4510,32434,-4659,32412,-4808,32389,-4958,32366,-5107,32342,-5255,32318,-5404,32293,-5553,32267,-5701,32240,-5850,32213,-5998,32185,-6146,32156,-6294,32127,-6442,32097,-6590,32066,-6738,32035,-6885,32003,-7033,31970,-7180,31937,-7327,31903,-7474,31868,-7620,31833,-7767,31797,-7913,31760,-8060,31723,-8206,31684,-8352,31646,-8497,31606,-8643,31566,-8788,31525,-8933,31484,-9078,31442,-9223,31399,-9368,31356,-9512,31311,-9656,31267,-9800,31221,-9944,31175,-10088,31128,-10231,31081,-10374,31033,-10517,30984,-10660,30935,-10802,30885,-10945,30834,-11087,30783,-11228,30731,-11370,30678,-11511,30625,-11652,30571,-11793,30516,-11934,30461,-12074,30405,-12214,30349,-12354,30291,-12493,30234,-12633,30175,-12772,30116,-12910,30056,-13049,29996,-13187,29935,-13325,29873,-13463,29811,-13600,29748,-13737,29685,-13874,29621,-14010,29556,-14146,29490,-14282,29424,-14418,29358,-14553,29290,-14688,29222,-14823,29154,-14957,29085,-15091,29015,-15225,28945,-15358,28874,-15491,28802,-15624,28730,-15756,28657,-15888,28584,-16020,28510,-16151,28435,-16282,28360,-16413,28284,-16543,28208,-16673,28131,-16803,28053,-16932,27975,-17061,27896,-17190,27816,-17318,27736,-17446,27656,-17573,27575,-17700,27493,-17827,27411,-17953,27328,-18079,27244,-18205,27160,-18330,27076,-18455,26990,-18579,26905,-18703,26818,-18827,26731,-18950,26644,-19073,26556,-19195,26467,-19317,26378,-19439,26288,-19560,26198,-19681,26107,-19801,26016,-19921,25924,-20041,25831,-20160,25738,-20278,25645,-20397,25550,-20514,25456,-20632,25361,-20749,25265,-20865,25169,-20981,25072,-21097,24974,-21212,24877,-21327,24778,-21441,24679,-21555,24580,-21668,24480,-21781,24379,-21894,24278,-22005,24177,-22117,24075,-22228,23972,-22339,23869,-22449,23766,-22558,23661,-22667,23557,-22776,23452,-22884,23346,-22992,23240,-23099,23134,-23206,23027,-23312,22919,-23418,22811,-23523,22703,-23628,22594,-23732,22484,-23836,22374,-23939,22264,-24042,22153,-24144,22042,-24245,21930,-24347,21818,-24447,21705,-24547,21592,-24647,21478,-24746,21364,-24845,21249,-24943,21134,-25040,21019,-25137,20903,-25234,20787,-25330,20670,-25425,20553,-25520,20435,-25614,20317,-25708,20198,-25801,20079,-25894,19960,-25986,19840,-26078,19720,-26169,19599,-26259,19478,-26349,19357,-26438,19235,-26527,19113,-26616,18990,-26703,18867,-26790,18744,-26877,18620,-26963,18495,-27048,18371,-27133,18246,-27217,18120,-27301,17994,-27384,17868,-27467,17742,-27549,17615,-27630,17487,-27711,17360,-27791,17232,-27870,17103,-27949,16974,-28028,16845,-28106,16716,-28183,16586,-28260,16455,-28336,16325,-28411,16194,-28486,16063,-28560,15931,-28634,15799,-28707,15667,-28779,15534,-28851,15401,-28922,15268,-28993,15135,-29063,15001,-29132,14866,-29201,14732,-29269,14597,-29336,14462,-29403,14326,-29469,14191,-29535,14055,-29600,13918,-29664,13782,-29728,13645,-29791,13507,-29854,13370,-29916,13232,-29977,13094,-30037,12956,-30097,12817,-30157,12678,-30215,12539,-30273,12399,-30331,12260,-30387,12120,-30443,11980,-30499,11839,-30554,11698,-30608,11557,-30661,11416,-30714,11275,-30767,11133,-30818,10991,-30869,10849,-30919,10706,-30969,10564,-31018,10421,-31066,10278,-31114,10135,-31161,9991,-31207,9847,-31253,9703,-31298,9559,-31342,9415,-31386,9270,-31429,9126,-31471,8981,-31513,8836,-31554,8690,-31594,8545,-31634,8399,-31673,8253,-31711,8107,-31749,7961,-31786,7815,-31822,7668,-31857,7522,-31892,7375,-31927,7228,-31960,7081,-31993,6933,-32025,6786,-32057,6638,-32088,6491,-32118,6343,-32148,6195,-32177,6047,-32205,5898,-32232,5750,-32259,5601,-32285,5453,-32311,5304,-32335,5155,-32359,5006,-32383,4857,-32405,4708,-32427,4559,-32449,4409,-32469,4260,-32489,4110,-32509,3961,-32527,3811,-32545,3661,-32562,3511,-32579,3361,-32595,3211,-32610,3061,-32624,2911,-32638,2761,-32651,2610,-32663,2460,-32675,2310,-32686,2159,-32696,2009,-32706,1858,-32715,1708,-32723,1557,-32730,1406,-32737,1256,-32743,1105,-32749,954,-32754,804,-32758,653,-32761,502,-32764,351,-32766,201,-32767,50,-32767,-101,-32767,-252,-32767,-403,-32765,-553,-32763,-704,-32760,-855,-32756,-1006,-32752,-1156,-32747,-1307,-32741,-1458,-32735,-1608,-32728,-1759,-32720,-1909,-32712,-2060,-32703,-2210,-32693,-2361,-32682,-2511,-32671,-2662,-32659,-2812,-32647,-2962,-32633,-3112,-32619,-3262,-32605,-3412,-32589,-3562,-32573,-3712,-32557,-3862,-32539,-4012,-32521,-4161,-32502,-4311,-32483,-4460,-32463,-4609,-32442,-4759,-32420,-4908,-32398,-5057,-32375,-5206,-32351,-5355,-32327,-5503,-32302,-5652,-32276,-5800,-32250,-5949,-32223,-6097,-32195,-6245,-32167,-6393,-32138,-6541,-32108,-6689,-32078,-6836,-32047,-6983,-32015,-7131,-31982,-7278,-31949,-7425,-31915,-7572,-31881,-7718,-31846,-7865,-31810,-8011,-31773,-8157,-31736,-8303,-31698,-8449,-31660,-8594,-31620,-8740,-31581,-8885,-31540,-9030,-31499,-9175,-31457,-9320,-31414,-9464,-31371,-9608,-31327,-9752,-31283,-9896,-31237,-10040,-31192,-10183,-31145,-10327,-31098,-10470,-31050,-10612,-31002,-10755,-30952,-10897,-30903,-11039,-30852,-11181,-30801,-11323,-30749,-11464,-30697,-11605,-30644,-11746,-30590,-11887,-30536,-12027,-30481,-12167,-30425,-12307,-30369,-12447,-30312,-12586,-30254,-12725,-30196,-12864,-30137,-13003,-30077,-13141,-30017,-13279,-29956,-13417,-29895,-13554,-29833,-13691,-29770,-13828,-29707,-13965,-29643,-14101,-29578,-14237,-29513,-14373,-29447,-14508,-29381,-14643,-29314,-14778,-29246,-14912,-29178,-15046,-29109,-15180,-29039,-15314,-28969,-15447,-28898,-15580,-28827,-15712,-28755,-15844,-28682,-15976,-28609,-16108,-28535,-16239,-28461,-16369,-28386,-16500,-28310,-16630,-28234,-16760,-28157,-16889,-28080,-17018,-28002,-17147,-27923,-17275,-27844,-17403,-27764,-17531,-27684,-17658,-27603,-17785,-27521,-17911,-27439,-18037,-27356,-18163,-27273,-18288,-27189,-18413,-27105,-18538,-27020,-18662,-26934,-18786,-26848,-18909,-26761,-19032,-26674,-19155,-26586,-19277,-26498,-19398,-26409,-19520,-26319,-19641,-26229,-19761,-26138,-19881,-26047,-20001,-25955,-20120,-25863,-20239,-25770,-20357,-25677,-20475,-25583,-20593,-25488,-20710,-25393,-20826,-25298,-20943,-25202,-21058,-25105,-21174,-25008,-21289,-24910,-21403,-24812,-21517,-24713,-21630,-24614,-21744,-24514,-21856,-24414,-21968,-24313,-22080,-24212,-22191,-24110,-22302,-24007,-22412,-23904,-22522,-23801,-22631,-23697,-22740,-23593,-22848,-23488,-22956,-23383,-23063,-23277,-23170,-23170,-23277,-23063,-23383,-22956,-23488,-22848,-23593,-22740,-23697,-22631,-23801,-22522,-23904,-22412,-24007,-22302,-24110,-22191,-24212,-22080,-24313,-21968,-24414,-21856,-24514,-21744,-24614,-21630,-24713,-21517,-24812,-21403,-24910,-21289,-25008,-21174,-25105,-21058,-25202,-20943,-25298,-20826,-25393,-20710,-25488,-20593,-25583,-20475,-25677,-20357,-25770,-20239,-25863,-20120,-25955,-20001,-26047,-19881,-26138,-19761,-26229,-19641,-26319,-19520,-26409,-19398,-26498,-19277,-26586,-19155,-26674,-19032,-26761,-18909,-26848,-18786,-26934,-18662,-27020,-18538,-27105,-18413,-27189,-18288,-27273,-18163,-27356,-18037,-27439,-17911,-27521,-17785,-27603,-17658,-27684,-17531,-27764,-17403,-27844,-17275,-27923,-17147,-28002,-17018,-28080,-16889,-28157,-16760,-28234,-16630,-28310,-16500,-28386,-16369,-28461,-16239,-28535,-16108,-28609,-15976,-28682,-15844,-28755,-15712,-28827,-15580,-28898,-15447,-28969,-15314,-29039,-15180,-29109,-15046,-29178,-14912,-29246,-14778,-29314,-14643,-29381,-14508,-29447,-14373,-29513,-14237,-29578,-14101,-29643,-13965,-29707,-13828,-29770,-13691,-29833,-13554,-29895,-13417,-29956,-13279,-30017,-13141,-30077,-13003,-30137,-12864,-30196,-12725,-30254,-12586,-30312,-12447,-30369,-12307,-30425,-12167,-30481,-12027,-30536,-11887,-30590,-11746,-30644,-11605,-30697,-11464,-30749,-11323,-30801,-11181,-30852,-11039,-30903,-10897,-30952,-10755,-31002,-10612,-31050,-10470,-31098,-10327,-31145,-10183,-31192,-10040,-31237,-9896,-31283,-9752,-31327,-9608,-31371,-9464,-31414,-9320,-31457,-9175,-31499,-9030,-31540,-8885,-31581,-8740,-31620,-8594,-31660,-8449,-31698,-8303,-31736,-8157,-31773,-8011,-31810,-7865,-31846,-7718,-31881,-7572,-31915,-7425,-31949,-7278,-31982,-7131,-32015,-6983,-32047,-6836,-32078,-6689,-32108,-6541,-32138,-6393,-32167,-6245,-32195,-6097,-32223,-5949,-32250,-5800,-32276,-5652,-32302,-5503,-32327,-5355,-32351,-5206,-32375,-5057,-32398,-4908,-32420,-4759,-32442,-4609,-32463,-4460,-32483,-4311,-32502,-4161,-32521,-4012,-32539,-3862,-32557,-3712,-32573,-3562,-32589,-3412,-32605,-3262,-32619,-3112,-32633,-2962,-32647,-2812,-32659,-2662,-32671,-2511,-32682,-2361,-32693,-2210,-32703,-2060,-32712,-1909,-32720,-1759,-32728,-1608,-32735,-1458,-32741,-1307,-32747,-1156,-32752,-1006,-32756,-855,-32760,-704,-32763,-553,-32765,-403,-32767,-252,-32767,-101,-32767,50,-32767,201,-32766,351,-32764,502,-32761,653,-32758,804,-32754,954,-32749,1105,-32743,1256,-32737,1406,-32730,1557,-32723,1708,-32715,1858,-32706,2009,-32696,2159,-32686,2310,-32675,2460,-32663,2610,-32651,2761,-32638,2911,-32624,3061,-32610,3211,-32595,3361,-32579,3511,-32562,3661,-32545,3811,-32527,3961,-32509,4110,-32489,4260,-32469,4409,-32449,4559,-32427,4708,-32405,4857,-32383,5006,-32359,5155,-32335,5304,-32311,5453,-32285,5601,-32259,5750,-32232,5898,-32205,6047,-32177,6195,-32148,6343,-32118,6491,-32088,6638,-32057,6786,-32025,6933,-31993,7081,-31960,7228,-31927,7375,-31892,7522,-31857,7668,-31822,7815,-31786,7961,-31749,8107,-31711,8253,-31673,8399,-31634,8545,-31594,8690,-31554,8836,-31513,8981,-31471,9126,-31429,9270,-31386,9415,-31342,9559,-31298,9703,-31253,9847,-31207,9991,-31161,10135,-31114,10278,-31066,10421,-31018,10564,-30969,10706,-30919,10849,-30869,10991,-30818,11133,-30767,11275,-30714,11416,-30661,11557,-30608,11698,-30554,11839,-30499,11980,-30443,12120,-30387,12260,-30331,12399,-30273,12539,-30215,12678,-30157,12817,-30097,12956,-30037,13094,-29977,13232,-29916,13370,-29854,13507,-29791,13645,-29728,13782,-29664,13918,-29600,14055,-29535,14191,-29469,14326,-29403,14462,-29336,14597,-29269,14732,-29201,14866,-29132,15001,-29063,15135,-28993,15268,-28922,15401,-28851,15534,-28779,15667,-28707,15799,-28634,15931,-28560,16063,-28486,16194,-28411,16325,-28336,16455,-28260,16586,-28183,16716,-28106,16845,-28028,16974,-27949,17103,-27870,17232,-27791,17360,-27711,17487,-27630,17615,-27549,17742,-27467,17868,-27384,17994,-27301,18120,-27217,18246,-27133,18371,-27048,18495,-26963,18620,-26877,18744,-26790,18867,-26703,18990,-26616,19113,-26527,19235,-26438,19357,-26349,19478,-26259,19599,-26169,19720,-26078,19840,-25986,19960,-25894,20079,-25801,20198,-25708,20317,-25614,20435,-25520,20553,-25425,20670,-25330,20787,-25234,20903,-25137,21019,-25040,21134,-24943,21249,-24845,21364,-24746,21478,-24647,21592,-24547,21705,-24447,21818,-24347,21930,-24245,22042,-24144,22153,-24042,22264,-23939,22374,-23836,22484,-23732,22594,-23628,22703,-23523,22811,-23418,22919,-23312,23027,-23206,23134,-23099,23240,-22992,23346,-22884,23452,-22776,23557,-22667,23661,-22558,23766,-22449,23869,-22339,23972,-22228,24075,-22117,24177,-22005,24278,-21894,24379,-21781,24480,-21668,24580,-21555,24679,-21441,24778,-21327,24877,-21212,24974,-21097,25072,-20981,25169,-20865,25265,-20749,25361,-20632,25456,-20514,25550,-20397,25645,-20278,25738,-20160,25831,-20041,25924,-19921,26016,-19801,26107,-19681,26198,-19560,26288,-19439,26378,-19317,26467,-19195,26556,-19073,26644,-18950,26731,-18827,26818,-18703,26905,-18579,26990,-18455,27076,-18330,27160,-18205,27244,-18079,27328,-17953,27411,-17827,27493,-17700,27575,-17573,27656,-17446,27736,-17318,27816,-17190,27896,-17061,27975,-16932,28053,-16803,28131,-16673,28208,-16543,28284,-16413,28360,-16282,28435,-16151,28510,-16020,28584,-15888,28657,-15756,28730,-15624,28802,-15491,28874,-15358,28945,-15225,29015,-15091,29085,-14957,29154,-14823,29222,-14688,29290,-14553,29358,-14418,29424,-14282,29490,-14146,29556,-14010,29621,-13874,29685,-13737,29748,-13600,29811,-13463,29873,-13325,29935,-13187,29996,-13049,30056,-12910,30116,-12772,30175,-12633,30234,-12493,30291,-12354,30349,-12214,30405,-12074,30461,-11934,30516,-11793,30571,-11652,30625,-11511,30678,-11370,30731,-11228,30783,-11087,30834,-10945,30885,-10802,30935,-10660,30984,-10517,31033,-10374,31081,-10231,31128,-10088,31175,-9944,31221,-9800,31267,-9656,31311,-9512,31356,-9368,31399,-9223,31442,-9078,31484,-8933,31525,-8788,31566,-8643,31606,-8497,31646,-8352,31684,-8206,31723,-8060,31760,-7913,31797,-7767,31833,-7620,31868,-7474,31903,-7327,31937,-7180,31970,-7033,32003,-6885,32035,-6738,32066,-6590,32097,-6442,32127,-6294,32156,-6146,32185,-5998,32213,-5850,32240,-5701,32267,-5553,32293,-5404,32318,-5255,32342,-5107,32366,-4958,32389,-4808,32412,-4659,32434,-4510,32455,-4360,32475,-4211,32495,-4061,32514,-3912,32532,-3762,32550,-3612,32567,-3462,32583,-3312,32599,-3162,32614,-3012,32628,-2862,32641,-2712,32654,-2561,32666,-2411,32678,-2261,32688,-2110,32699,-1960,32708,-1809,32717,-1659,32725,-1508,32732,-1357,32738,-1207,32744,-1056,32750,-905,32754,-754,32758,-604,32761,-453,32763,-302,32765,-151,32766};
diff --git a/openair1/PHY/TOOLS/twiddles8192.h b/openair1/PHY/TOOLS/twiddles8192.h
deleted file mode 100644
index 6b76619013387f85ddac1292a29fa5b39fff4ecd..0000000000000000000000000000000000000000
--- a/openair1/PHY/TOOLS/twiddles8192.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The OpenAirInterface Software Alliance licenses this file to You under
- * the OAI Public License, Version 1.1  (the "License"); you may not use this file
- * except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.openairinterface.org/?page_id=698
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *-------------------------------------------------------------------------------
- * For more information about the OpenAirInterface (OAI) Software Alliance:
- *      contact@openairinterface.org
- */
-
-/* Twiddles generated with
-twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:4095)/8192));
-twa2 = zeros(1,2*4096);
-twa2(1:2:end) = real(twa);
-twa2(2:2:end) = imag(twa);
-fd=fopen("twiddle_tmp.txt","w");
-fprintf(fd,"static int16_t tw8192[4096*2] = {");
-fprintf(fd,"%d,",twa2(1:(4096*2)-1));
-fprintf(fd,"%d};\n",twa2(end));
-fclose(fd);
-*/
-static int16_t tw8192[4096*2] = {32767,0,32766,-26,32766,-51,32766,-76,32766,-101,32766,-126,32766,-151,32766,-176,32766,-202,32766,-227,32766,-252,32765,-277,32765,-302,32765,-327,32765,-352,32764,-377,32764,-403,32764,-428,32763,-453,32763,-478,32763,-503,32762,-528,32762,-553,32761,-579,32761,-604,32760,-629,32760,-654,32759,-679,32759,-704,32758,-729,32758,-754,32757,-780,32757,-805,32756,-830,32755,-855,32755,-880,32754,-905,32753,-930,32753,-955,32752,-981,32751,-1006,32750,-1031,32750,-1056,32749,-1081,32748,-1106,32747,-1131,32746,-1156,32745,-1181,32744,-1207,32743,-1232,32742,-1257,32741,-1282,32740,-1307,32739,-1332,32738,-1357,32737,-1382,32736,-1407,32735,-1433,32734,-1458,32733,-1483,32732,-1508,32731,-1533,32729,-1558,32728,-1583,32727,-1608,32726,-1633,32725,-1659,32723,-1684,32722,-1709,32721,-1734,32719,-1759,32718,-1784,32717,-1809,32715,-1834,32714,-1859,32712,-1884,32711,-1909,32709,-1935,32708,-1960,32706,-1985,32705,-2010,32703,-2035,32702,-2060,32700,-2085,32699,-2110,32697,-2135,32695,-2160,32694,-2185,32692,-2210,32690,-2236,32688,-2261,32687,-2286,32685,-2311,32683,-2336,32681,-2361,32680,-2386,32678,-2411,32676,-2436,32674,-2461,32672,-2486,32670,-2511,32668,-2536,32666,-2561,32664,-2586,32662,-2611,32660,-2637,32658,-2662,32656,-2687,32654,-2712,32652,-2737,32650,-2762,32648,-2787,32646,-2812,32644,-2837,32641,-2862,32639,-2887,32637,-2912,32635,-2937,32632,-2962,32630,-2987,32628,-3012,32625,-3037,32623,-3062,32621,-3087,32618,-3112,32616,-3137,32614,-3162,32611,-3187,32609,-3212,32606,-3237,32604,-3262,32601,-3287,32599,-3312,32596,-3337,32594,-3362,32591,-3387,32588,-3412,32586,-3437,32583,-3462,32580,-3487,32578,-3512,32575,-3537,32572,-3562,32570,-3587,32567,-3612,32564,-3637,32561,-3662,32558,-3687,32556,-3712,32553,-3737,32550,-3762,32547,-3787,32544,-3812,32541,-3837,32538,-3862,32535,-3887,32532,-3912,32529,-3937,32526,-3962,32523,-3987,32520,-4012,32517,-4036,32514,-4061,32511,-4086,32508,-4111,32504,-4136,32501,-4161,32498,-4186,32495,-4211,32492,-4236,32488,-4261,32485,-4286,32482,-4311,32478,-4336,32475,-4360,32472,-4385,32468,-4410,32465,-4435,32462,-4460,32458,-4485,32455,-4510,32451,-4535,32448,-4560,32444,-4585,32441,-4609,32437,-4634,32434,-4659,32430,-4684,32426,-4709,32423,-4734,32419,-4759,32416,-4784,32412,-4808,32408,-4833,32404,-4858,32401,-4883,32397,-4908,32393,-4933,32389,-4958,32386,-4982,32382,-5007,32378,-5032,32374,-5057,32370,-5082,32366,-5107,32362,-5131,32358,-5156,32354,-5181,32350,-5206,32346,-5231,32342,-5255,32338,-5280,32334,-5305,32330,-5330,32326,-5355,32322,-5379,32318,-5404,32314,-5429,32310,-5454,32305,-5479,32301,-5503,32297,-5528,32293,-5553,32288,-5578,32284,-5602,32280,-5627,32275,-5652,32271,-5677,32267,-5701,32262,-5726,32258,-5751,32254,-5776,32249,-5800,32245,-5825,32240,-5850,32236,-5875,32231,-5899,32227,-5924,32222,-5949,32218,-5973,32213,-5998,32208,-6023,32204,-6048,32199,-6072,32194,-6097,32190,-6122,32185,-6146,32180,-6171,32176,-6196,32171,-6220,32166,-6245,32161,-6270,32156,-6294,32152,-6319,32147,-6344,32142,-6368,32137,-6393,32132,-6418,32127,-6442,32122,-6467,32117,-6492,32112,-6516,32107,-6541,32102,-6565,32097,-6590,32092,-6615,32087,-6639,32082,-6664,32077,-6689,32072,-6713,32066,-6738,32061,-6762,32056,-6787,32051,-6812,32046,-6836,32040,-6861,32035,-6885,32030,-6910,32024,-6934,32019,-6959,32014,-6983,32008,-7008,32003,-7033,31998,-7057,31992,-7082,31987,-7106,31981,-7131,31976,-7155,31970,-7180,31965,-7204,31959,-7229,31954,-7253,31948,-7278,31943,-7302,31937,-7327,31931,-7351,31926,-7376,31920,-7400,31914,-7425,31909,-7449,31903,-7474,31897,-7498,31891,-7523,31886,-7547,31880,-7572,31874,-7596,31868,-7620,31862,-7645,31856,-7669,31851,-7694,31845,-7718,31839,-7743,31833,-7767,31827,-7791,31821,-7816,31815,-7840,31809,-7865,31803,-7889,31797,-7913,31791,-7938,31785,-7962,31778,-7987,31772,-8011,31766,-8035,31760,-8060,31754,-8084,31748,-8108,31741,-8133,31735,-8157,31729,-8181,31723,-8206,31716,-8230,31710,-8254,31704,-8279,31697,-8303,31691,-8327,31684,-8352,31678,-8376,31672,-8400,31665,-8425,31659,-8449,31652,-8473,31646,-8497,31639,-8522,31633,-8546,31626,-8570,31619,-8594,31613,-8619,31606,-8643,31600,-8667,31593,-8691,31586,-8716,31580,-8740,31573,-8764,31566,-8788,31559,-8813,31553,-8837,31546,-8861,31539,-8885,31532,-8909,31525,-8933,31518,-8958,31512,-8982,31505,-9006,31498,-9030,31491,-9054,31484,-9078,31477,-9103,31470,-9127,31463,-9151,31456,-9175,31449,-9199,31442,-9223,31435,-9247,31428,-9271,31420,-9296,31413,-9320,31406,-9344,31399,-9368,31392,-9392,31385,-9416,31377,-9440,31370,-9464,31363,-9488,31356,-9512,31348,-9536,31341,-9560,31334,-9584,31326,-9608,31319,-9632,31311,-9656,31304,-9680,31297,-9704,31289,-9728,31282,-9752,31274,-9776,31267,-9800,31259,-9824,31252,-9848,31244,-9872,31236,-9896,31229,-9920,31221,-9944,31214,-9968,31206,-9992,31198,-10016,31191,-10040,31183,-10064,31175,-10088,31167,-10112,31160,-10136,31152,-10160,31144,-10183,31136,-10207,31128,-10231,31121,-10255,31113,-10279,31105,-10303,31097,-10327,31089,-10350,31081,-10374,31073,-10398,31065,-10422,31057,-10446,31049,-10470,31041,-10493,31033,-10517,31025,-10541,31017,-10565,31009,-10589,31001,-10612,30992,-10636,30984,-10660,30976,-10684,30968,-10707,30960,-10731,30951,-10755,30943,-10779,30935,-10802,30927,-10826,30918,-10850,30910,-10874,30902,-10897,30893,-10921,30885,-10945,30876,-10968,30868,-10992,30860,-11016,30851,-11039,30843,-11063,30834,-11087,30826,-11110,30817,-11134,30809,-11158,30800,-11181,30791,-11205,30783,-11228,30774,-11252,30766,-11276,30757,-11299,30748,-11323,30739,-11346,30731,-11370,30722,-11394,30713,-11417,30705,-11441,30696,-11464,30687,-11488,30678,-11511,30669,-11535,30660,-11558,30652,-11582,30643,-11605,30634,-11629,30625,-11652,30616,-11676,30607,-11699,30598,-11723,30589,-11746,30580,-11770,30571,-11793,30562,-11817,30553,-11840,30544,-11863,30535,-11887,30525,-11910,30516,-11934,30507,-11957,30498,-11981,30489,-12004,30480,-12027,30470,-12051,30461,-12074,30452,-12097,30442,-12121,30433,-12144,30424,-12167,30415,-12191,30405,-12214,30396,-12237,30386,-12261,30377,-12284,30368,-12307,30358,-12331,30349,-12354,30339,-12377,30330,-12400,30320,-12424,30311,-12447,30301,-12470,30291,-12493,30282,-12517,30272,-12540,30263,-12563,30253,-12586,30243,-12610,30234,-12633,30224,-12656,30214,-12679,30205,-12702,30195,-12725,30185,-12749,30175,-12772,30165,-12795,30156,-12818,30146,-12841,30136,-12864,30126,-12887,30116,-12910,30106,-12934,30096,-12957,30086,-12980,30076,-13003,30066,-13026,30056,-13049,30046,-13072,30036,-13095,30026,-13118,30016,-13141,30006,-13164,29996,-13187,29986,-13210,29976,-13233,29966,-13256,29955,-13279,29945,-13302,29935,-13325,29925,-13348,29915,-13371,29904,-13394,29894,-13417,29884,-13440,29873,-13463,29863,-13486,29853,-13508,29842,-13531,29832,-13554,29822,-13577,29811,-13600,29801,-13623,29790,-13646,29780,-13668,29769,-13691,29759,-13714,29748,-13737,29738,-13760,29727,-13783,29717,-13805,29706,-13828,29695,-13851,29685,-13874,29674,-13896,29663,-13919,29653,-13942,29642,-13965,29631,-13987,29621,-14010,29610,-14033,29599,-14056,29588,-14078,29577,-14101,29567,-14124,29556,-14146,29545,-14169,29534,-14192,29523,-14214,29512,-14237,29501,-14260,29490,-14282,29479,-14305,29468,-14327,29457,-14350,29446,-14373,29435,-14395,29424,-14418,29413,-14440,29402,-14463,29391,-14485,29380,-14508,29369,-14531,29358,-14553,29346,-14576,29335,-14598,29324,-14621,29313,-14643,29302,-14666,29290,-14688,29279,-14710,29268,-14733,29256,-14755,29245,-14778,29234,-14800,29222,-14823,29211,-14845,29200,-14867,29188,-14890,29177,-14912,29165,-14935,29154,-14957,29142,-14979,29131,-15002,29119,-15024,29108,-15046,29096,-15069,29085,-15091,29073,-15113,29062,-15136,29050,-15158,29038,-15180,29027,-15202,29015,-15225,29003,-15247,28992,-15269,28980,-15291,28968,-15314,28956,-15336,28945,-15358,28933,-15380,28921,-15402,28909,-15425,28897,-15447,28886,-15469,28874,-15491,28862,-15513,28850,-15535,28838,-15557,28826,-15580,28814,-15602,28802,-15624,28790,-15646,28778,-15668,28766,-15690,28754,-15712,28742,-15734,28730,-15756,28718,-15778,28706,-15800,28694,-15822,28681,-15844,28669,-15866,28657,-15888,28645,-15910,28633,-15932,28620,-15954,28608,-15976,28596,-15998,28584,-16020,28571,-16042,28559,-16064,28547,-16086,28534,-16108,28522,-16129,28510,-16151,28497,-16173,28485,-16195,28472,-16217,28460,-16239,28447,-16261,28435,-16282,28423,-16304,28410,-16326,28397,-16348,28385,-16369,28372,-16391,28360,-16413,28347,-16435,28335,-16456,28322,-16478,28309,-16500,28297,-16522,28284,-16543,28271,-16565,28259,-16587,28246,-16608,28233,-16630,28220,-16652,28208,-16673,28195,-16695,28182,-16717,28169,-16738,28156,-16760,28143,-16781,28131,-16803,28118,-16825,28105,-16846,28092,-16868,28079,-16889,28066,-16911,28053,-16932,28040,-16954,28027,-16975,28014,-16997,28001,-17018,27988,-17040,27975,-17061,27962,-17083,27948,-17104,27935,-17125,27922,-17147,27909,-17168,27896,-17190,27883,-17211,27869,-17233,27856,-17254,27843,-17275,27830,-17297,27816,-17318,27803,-17339,27790,-17361,27777,-17382,27763,-17403,27750,-17424,27736,-17446,27723,-17467,27710,-17488,27696,-17510,27683,-17531,27669,-17552,27656,-17573,27642,-17594,27629,-17616,27615,-17637,27602,-17658,27588,-17679,27575,-17700,27561,-17721,27548,-17743,27534,-17764,27520,-17785,27507,-17806,27493,-17827,27479,-17848,27466,-17869,27452,-17890,27438,-17911,27424,-17932,27411,-17953,27397,-17974,27383,-17995,27369,-18016,27355,-18037,27342,-18058,27328,-18079,27314,-18100,27300,-18121,27286,-18142,27272,-18163,27258,-18184,27244,-18205,27230,-18226,27216,-18247,27202,-18268,27188,-18288,27174,-18309,27160,-18330,27146,-18351,27132,-18372,27118,-18393,27104,-18413,27090,-18434,27076,-18455,27061,-18476,27047,-18496,27033,-18517,27019,-18538,27005,-18559,26990,-18579,26976,-18600,26962,-18621,26948,-18641,26933,-18662,26919,-18683,26905,-18703,26890,-18724,26876,-18745,26861,-18765,26847,-18786,26833,-18806,26818,-18827,26804,-18847,26789,-18868,26775,-18889,26760,-18909,26746,-18930,26731,-18950,26717,-18971,26702,-18991,26688,-19012,26673,-19032,26658,-19052,26644,-19073,26629,-19093,26615,-19114,26600,-19134,26585,-19155,26570,-19175,26556,-19195,26541,-19216,26526,-19236,26512,-19256,26497,-19277,26482,-19297,26467,-19317,26452,-19338,26437,-19358,26423,-19378,26408,-19398,26393,-19419,26378,-19439,26363,-19459,26348,-19479,26333,-19500,26318,-19520,26303,-19540,26288,-19560,26273,-19580,26258,-19600,26243,-19621,26228,-19641,26213,-19661,26198,-19681,26183,-19701,26168,-19721,26153,-19741,26137,-19761,26122,-19781,26107,-19801,26092,-19821,26077,-19841,26061,-19861,26046,-19881,26031,-19901,26016,-19921,26000,-19941,25985,-19961,25970,-19981,25954,-20001,25939,-20021,25924,-20041,25908,-20061,25893,-20080,25878,-20100,25862,-20120,25847,-20140,25831,-20160,25816,-20180,25800,-20199,25785,-20219,25769,-20239,25754,-20259,25738,-20278,25723,-20298,25707,-20318,25691,-20338,25676,-20357,25660,-20377,25645,-20397,25629,-20416,25613,-20436,25598,-20456,25582,-20475,25566,-20495,25550,-20514,25535,-20534,25519,-20554,25503,-20573,25487,-20593,25472,-20612,25456,-20632,25440,-20651,25424,-20671,25408,-20690,25392,-20710,25376,-20729,25361,-20749,25345,-20768,25329,-20788,25313,-20807,25297,-20826,25281,-20846,25265,-20865,25249,-20885,25233,-20904,25217,-20923,25201,-20943,25185,-20962,25169,-20981,25152,-21001,25136,-21020,25120,-21039,25104,-21058,25088,-21078,25072,-21097,25056,-21116,25039,-21135,25023,-21155,25007,-21174,24991,-21193,24974,-21212,24958,-21231,24942,-21250,24926,-21269,24909,-21289,24893,-21308,24877,-21327,24860,-21346,24844,-21365,24827,-21384,24811,-21403,24795,-21422,24778,-21441,24762,-21460,24745,-21479,24729,-21498,24712,-21517,24696,-21536,24679,-21555,24663,-21574,24646,-21593,24630,-21612,24613,-21630,24596,-21649,24580,-21668,24563,-21687,24546,-21706,24530,-21725,24513,-21744,24496,-21762,24480,-21781,24463,-21800,24446,-21819,24430,-21837,24413,-21856,24396,-21875,24379,-21894,24362,-21912,24346,-21931,24329,-21950,24312,-21968,24295,-21987,24278,-22005,24261,-22024,24244,-22043,24228,-22061,24211,-22080,24194,-22098,24177,-22117,24160,-22136,24143,-22154,24126,-22173,24109,-22191,24092,-22210,24075,-22228,24058,-22246,24041,-22265,24023,-22283,24006,-22302,23989,-22320,23972,-22339,23955,-22357,23938,-22375,23921,-22394,23903,-22412,23886,-22430,23869,-22449,23852,-22467,23835,-22485,23817,-22504,23800,-22522,23783,-22540,23766,-22558,23748,-22576,23731,-22595,23714,-22613,23696,-22631,23679,-22649,23661,-22667,23644,-22686,23627,-22704,23609,-22722,23592,-22740,23574,-22758,23557,-22776,23539,-22794,23522,-22812,23504,-22830,23487,-22848,23469,-22866,23452,-22884,23434,-22902,23417,-22920,23399,-22938,23382,-22956,23364,-22974,23346,-22992,23329,-23010,23311,-23028,23293,-23046,23276,-23063,23258,-23081,23240,-23099,23223,-23117,23205,-23135,23187,-23152,23169,-23170,23151,-23188,23134,-23206,23116,-23224,23098,-23241,23080,-23259,23062,-23277,23045,-23294,23027,-23312,23009,-23330,22991,-23347,22973,-23365,22955,-23383,22937,-23400,22919,-23418,22901,-23435,22883,-23453,22865,-23470,22847,-23488,22829,-23505,22811,-23523,22793,-23540,22775,-23558,22757,-23575,22739,-23593,22721,-23610,22703,-23628,22685,-23645,22666,-23662,22648,-23680,22630,-23697,22612,-23715,22594,-23732,22575,-23749,22557,-23767,22539,-23784,22521,-23801,22503,-23818,22484,-23836,22466,-23853,22448,-23870,22429,-23887,22411,-23904,22393,-23922,22374,-23939,22356,-23956,22338,-23973,22319,-23990,22301,-24007,22282,-24024,22264,-24042,22245,-24059,22227,-24076,22209,-24093,22190,-24110,22172,-24127,22153,-24144,22135,-24161,22116,-24178,22097,-24195,22079,-24212,22060,-24229,22042,-24245,22023,-24262,22004,-24279,21986,-24296,21967,-24313,21949,-24330,21930,-24347,21911,-24363,21893,-24380,21874,-24397,21855,-24414,21836,-24431,21818,-24447,21799,-24464,21780,-24481,21761,-24497,21743,-24514,21724,-24531,21705,-24547,21686,-24564,21667,-24581,21648,-24597,21629,-24614,21611,-24631,21592,-24647,21573,-24664,21554,-24680,21535,-24697,21516,-24713,21497,-24730,21478,-24746,21459,-24763,21440,-24779,21421,-24796,21402,-24812,21383,-24828,21364,-24845,21345,-24861,21326,-24878,21307,-24894,21288,-24910,21268,-24927,21249,-24943,21230,-24959,21211,-24975,21192,-24992,21173,-25008,21154,-25024,21134,-25040,21115,-25057,21096,-25073,21077,-25089,21057,-25105,21038,-25121,21019,-25137,21000,-25153,20980,-25170,20961,-25186,20942,-25202,20922,-25218,20903,-25234,20884,-25250,20864,-25266,20845,-25282,20825,-25298,20806,-25314,20787,-25330,20767,-25346,20748,-25362,20728,-25377,20709,-25393,20689,-25409,20670,-25425,20650,-25441,20631,-25457,20611,-25473,20592,-25488,20572,-25504,20553,-25520,20533,-25536,20513,-25551,20494,-25567,20474,-25583,20455,-25599,20435,-25614,20415,-25630,20396,-25646,20376,-25661,20356,-25677,20337,-25692,20317,-25708,20297,-25724,20277,-25739,20258,-25755,20238,-25770,20218,-25786,20198,-25801,20179,-25817,20159,-25832,20139,-25848,20119,-25863,20099,-25879,20079,-25894,20060,-25909,20040,-25925,20020,-25940,20000,-25955,19980,-25971,19960,-25986,19940,-26001,19920,-26017,19900,-26032,19880,-26047,19860,-26062,19840,-26078,19820,-26093,19800,-26108,19780,-26123,19760,-26138,19740,-26154,19720,-26169,19700,-26184,19680,-26199,19660,-26214,19640,-26229,19620,-26244,19599,-26259,19579,-26274,19559,-26289,19539,-26304,19519,-26319,19499,-26334,19478,-26349,19458,-26364,19438,-26379,19418,-26394,19397,-26409,19377,-26424,19357,-26438,19337,-26453,19316,-26468,19296,-26483,19276,-26498,19255,-26513,19235,-26527,19215,-26542,19194,-26557,19174,-26571,19154,-26586,19133,-26601,19113,-26616,19092,-26630,19072,-26645,19051,-26659,19031,-26674,19011,-26689,18990,-26703,18970,-26718,18949,-26732,18929,-26747,18908,-26761,18888,-26776,18867,-26790,18846,-26805,18826,-26819,18805,-26834,18785,-26848,18764,-26862,18744,-26877,18723,-26891,18702,-26906,18682,-26920,18661,-26934,18640,-26949,18620,-26963,18599,-26977,18578,-26991,18558,-27006,18537,-27020,18516,-27034,18495,-27048,18475,-27062,18454,-27077,18433,-27091,18412,-27105,18392,-27119,18371,-27133,18350,-27147,18329,-27161,18308,-27175,18287,-27189,18267,-27203,18246,-27217,18225,-27231,18204,-27245,18183,-27259,18162,-27273,18141,-27287,18120,-27301,18099,-27315,18078,-27329,18057,-27343,18036,-27356,18015,-27370,17994,-27384,17973,-27398,17952,-27412,17931,-27425,17910,-27439,17889,-27453,17868,-27467,17847,-27480,17826,-27494,17805,-27508,17784,-27521,17763,-27535,17742,-27549,17720,-27562,17699,-27576,17678,-27589,17657,-27603,17636,-27616,17615,-27630,17593,-27643,17572,-27657,17551,-27670,17530,-27684,17509,-27697,17487,-27711,17466,-27724,17445,-27737,17423,-27751,17402,-27764,17381,-27778,17360,-27791,17338,-27804,17317,-27817,17296,-27831,17274,-27844,17253,-27857,17232,-27870,17210,-27884,17189,-27897,17167,-27910,17146,-27923,17124,-27936,17103,-27949,17082,-27963,17060,-27976,17039,-27989,17017,-28002,16996,-28015,16974,-28028,16953,-28041,16931,-28054,16910,-28067,16888,-28080,16867,-28093,16845,-28106,16824,-28119,16802,-28132,16780,-28144,16759,-28157,16737,-28170,16716,-28183,16694,-28196,16672,-28209,16651,-28221,16629,-28234,16607,-28247,16586,-28260,16564,-28272,16542,-28285,16521,-28298,16499,-28310,16477,-28323,16455,-28336,16434,-28348,16412,-28361,16390,-28373,16368,-28386,16347,-28398,16325,-28411,16303,-28424,16281,-28436,16260,-28448,16238,-28461,16216,-28473,16194,-28486,16172,-28498,16150,-28511,16128,-28523,16107,-28535,16085,-28548,16063,-28560,16041,-28572,16019,-28585,15997,-28597,15975,-28609,15953,-28621,15931,-28634,15909,-28646,15887,-28658,15865,-28670,15843,-28682,15821,-28695,15799,-28707,15777,-28719,15755,-28731,15733,-28743,15711,-28755,15689,-28767,15667,-28779,15645,-28791,15623,-28803,15601,-28815,15579,-28827,15556,-28839,15534,-28851,15512,-28863,15490,-28875,15468,-28887,15446,-28898,15424,-28910,15401,-28922,15379,-28934,15357,-28946,15335,-28957,15313,-28969,15290,-28981,15268,-28993,15246,-29004,15224,-29016,15201,-29028,15179,-29039,15157,-29051,15135,-29063,15112,-29074,15090,-29086,15068,-29097,15045,-29109,15023,-29120,15001,-29132,14978,-29143,14956,-29155,14934,-29166,14911,-29178,14889,-29189,14866,-29201,14844,-29212,14822,-29223,14799,-29235,14777,-29246,14754,-29257,14732,-29269,14709,-29280,14687,-29291,14665,-29303,14642,-29314,14620,-29325,14597,-29336,14575,-29347,14552,-29359,14530,-29370,14507,-29381,14484,-29392,14462,-29403,14439,-29414,14417,-29425,14394,-29436,14372,-29447,14349,-29458,14326,-29469,14304,-29480,14281,-29491,14259,-29502,14236,-29513,14213,-29524,14191,-29535,14168,-29546,14145,-29557,14123,-29568,14100,-29578,14077,-29589,14055,-29600,14032,-29611,14009,-29622,13986,-29632,13964,-29643,13941,-29654,13918,-29664,13895,-29675,13873,-29686,13850,-29696,13827,-29707,13804,-29718,13782,-29728,13759,-29739,13736,-29749,13713,-29760,13690,-29770,13667,-29781,13645,-29791,13622,-29802,13599,-29812,13576,-29823,13553,-29833,13530,-29843,13507,-29854,13485,-29864,13462,-29874,13439,-29885,13416,-29895,13393,-29905,13370,-29916,13347,-29926,13324,-29936,13301,-29946,13278,-29956,13255,-29967,13232,-29977,13209,-29987,13186,-29997,13163,-30007,13140,-30017,13117,-30027,13094,-30037,13071,-30047,13048,-30057,13025,-30067,13002,-30077,12979,-30087,12956,-30097,12933,-30107,12909,-30117,12886,-30127,12863,-30137,12840,-30147,12817,-30157,12794,-30166,12771,-30176,12748,-30186,12724,-30196,12701,-30206,12678,-30215,12655,-30225,12632,-30235,12609,-30244,12585,-30254,12562,-30264,12539,-30273,12516,-30283,12492,-30292,12469,-30302,12446,-30312,12423,-30321,12399,-30331,12376,-30340,12353,-30350,12330,-30359,12306,-30369,12283,-30378,12260,-30387,12236,-30397,12213,-30406,12190,-30416,12166,-30425,12143,-30434,12120,-30443,12096,-30453,12073,-30462,12050,-30471,12026,-30481,12003,-30490,11980,-30499,11956,-30508,11933,-30517,11909,-30526,11886,-30536,11862,-30545,11839,-30554,11816,-30563,11792,-30572,11769,-30581,11745,-30590,11722,-30599,11698,-30608,11675,-30617,11651,-30626,11628,-30635,11604,-30644,11581,-30653,11557,-30661,11534,-30670,11510,-30679,11487,-30688,11463,-30697,11440,-30706,11416,-30714,11393,-30723,11369,-30732,11345,-30740,11322,-30749,11298,-30758,11275,-30767,11251,-30775,11227,-30784,11204,-30792,11180,-30801,11157,-30810,11133,-30818,11109,-30827,11086,-30835,11062,-30844,11038,-30852,11015,-30861,10991,-30869,10967,-30877,10944,-30886,10920,-30894,10896,-30903,10873,-30911,10849,-30919,10825,-30928,10801,-30936,10778,-30944,10754,-30952,10730,-30961,10706,-30969,10683,-30977,10659,-30985,10635,-30993,10611,-31002,10588,-31010,10564,-31018,10540,-31026,10516,-31034,10492,-31042,10469,-31050,10445,-31058,10421,-31066,10397,-31074,10373,-31082,10349,-31090,10326,-31098,10302,-31106,10278,-31114,10254,-31122,10230,-31129,10206,-31137,10182,-31145,10159,-31153,10135,-31161,10111,-31168,10087,-31176,10063,-31184,10039,-31192,10015,-31199,9991,-31207,9967,-31215,9943,-31222,9919,-31230,9895,-31237,9871,-31245,9847,-31253,9823,-31260,9799,-31268,9775,-31275,9751,-31283,9727,-31290,9703,-31298,9679,-31305,9655,-31312,9631,-31320,9607,-31327,9583,-31335,9559,-31342,9535,-31349,9511,-31357,9487,-31364,9463,-31371,9439,-31378,9415,-31386,9391,-31393,9367,-31400,9343,-31407,9319,-31414,9295,-31421,9270,-31429,9246,-31436,9222,-31443,9198,-31450,9174,-31457,9150,-31464,9126,-31471,9102,-31478,9077,-31485,9053,-31492,9029,-31499,9005,-31506,8981,-31513,8957,-31519,8932,-31526,8908,-31533,8884,-31540,8860,-31547,8836,-31554,8812,-31560,8787,-31567,8763,-31574,8739,-31581,8715,-31587,8690,-31594,8666,-31601,8642,-31607,8618,-31614,8593,-31620,8569,-31627,8545,-31634,8521,-31640,8496,-31647,8472,-31653,8448,-31660,8424,-31666,8399,-31673,8375,-31679,8351,-31685,8326,-31692,8302,-31698,8278,-31705,8253,-31711,8229,-31717,8205,-31724,8180,-31730,8156,-31736,8132,-31742,8107,-31749,8083,-31755,8059,-31761,8034,-31767,8010,-31773,7986,-31779,7961,-31786,7937,-31792,7912,-31798,7888,-31804,7864,-31810,7839,-31816,7815,-31822,7790,-31828,7766,-31834,7742,-31840,7717,-31846,7693,-31852,7668,-31857,7644,-31863,7619,-31869,7595,-31875,7571,-31881,7546,-31887,7522,-31892,7497,-31898,7473,-31904,7448,-31910,7424,-31915,7399,-31921,7375,-31927,7350,-31932,7326,-31938,7301,-31944,7277,-31949,7252,-31955,7228,-31960,7203,-31966,7179,-31971,7154,-31977,7130,-31982,7105,-31988,7081,-31993,7056,-31999,7032,-32004,7007,-32009,6982,-32015,6958,-32020,6933,-32025,6909,-32031,6884,-32036,6860,-32041,6835,-32047,6811,-32052,6786,-32057,6761,-32062,6737,-32067,6712,-32073,6688,-32078,6663,-32083,6638,-32088,6614,-32093,6589,-32098,6564,-32103,6540,-32108,6515,-32113,6491,-32118,6466,-32123,6441,-32128,6417,-32133,6392,-32138,6367,-32143,6343,-32148,6318,-32153,6293,-32157,6269,-32162,6244,-32167,6219,-32172,6195,-32177,6170,-32181,6145,-32186,6121,-32191,6096,-32195,6071,-32200,6047,-32205,6022,-32209,5997,-32214,5972,-32219,5948,-32223,5923,-32228,5898,-32232,5874,-32237,5849,-32241,5824,-32246,5799,-32250,5775,-32255,5750,-32259,5725,-32263,5700,-32268,5676,-32272,5651,-32276,5626,-32281,5601,-32285,5577,-32289,5552,-32294,5527,-32298,5502,-32302,5478,-32306,5453,-32311,5428,-32315,5403,-32319,5378,-32323,5354,-32327,5329,-32331,5304,-32335,5279,-32339,5254,-32343,5230,-32347,5205,-32351,5180,-32355,5155,-32359,5130,-32363,5106,-32367,5081,-32371,5056,-32375,5031,-32379,5006,-32383,4981,-32387,4957,-32390,4932,-32394,4907,-32398,4882,-32402,4857,-32405,4832,-32409,4807,-32413,4783,-32417,4758,-32420,4733,-32424,4708,-32427,4683,-32431,4658,-32435,4633,-32438,4608,-32442,4584,-32445,4559,-32449,4534,-32452,4509,-32456,4484,-32459,4459,-32463,4434,-32466,4409,-32469,4384,-32473,4359,-32476,4335,-32479,4310,-32483,4285,-32486,4260,-32489,4235,-32493,4210,-32496,4185,-32499,4160,-32502,4135,-32505,4110,-32509,4085,-32512,4060,-32515,4035,-32518,4011,-32521,3986,-32524,3961,-32527,3936,-32530,3911,-32533,3886,-32536,3861,-32539,3836,-32542,3811,-32545,3786,-32548,3761,-32551,3736,-32554,3711,-32557,3686,-32559,3661,-32562,3636,-32565,3611,-32568,3586,-32571,3561,-32573,3536,-32576,3511,-32579,3486,-32581,3461,-32584,3436,-32587,3411,-32589,3386,-32592,3361,-32595,3336,-32597,3311,-32600,3286,-32602,3261,-32605,3236,-32607,3211,-32610,3186,-32612,3161,-32615,3136,-32617,3111,-32619,3086,-32622,3061,-32624,3036,-32626,3011,-32629,2986,-32631,2961,-32633,2936,-32636,2911,-32638,2886,-32640,2861,-32642,2836,-32645,2811,-32647,2786,-32649,2761,-32651,2736,-32653,2711,-32655,2686,-32657,2661,-32659,2636,-32661,2610,-32663,2585,-32665,2560,-32667,2535,-32669,2510,-32671,2485,-32673,2460,-32675,2435,-32677,2410,-32679,2385,-32681,2360,-32682,2335,-32684,2310,-32686,2285,-32688,2260,-32689,2235,-32691,2209,-32693,2184,-32695,2159,-32696,2134,-32698,2109,-32700,2084,-32701,2059,-32703,2034,-32704,2009,-32706,1984,-32707,1959,-32709,1934,-32710,1908,-32712,1883,-32713,1858,-32715,1833,-32716,1808,-32718,1783,-32719,1758,-32720,1733,-32722,1708,-32723,1683,-32724,1658,-32726,1632,-32727,1607,-32728,1582,-32729,1557,-32730,1532,-32732,1507,-32733,1482,-32734,1457,-32735,1432,-32736,1406,-32737,1381,-32738,1356,-32739,1331,-32740,1306,-32741,1281,-32742,1256,-32743,1231,-32744,1206,-32745,1180,-32746,1155,-32747,1130,-32748,1105,-32749,1080,-32750,1055,-32751,1030,-32751,1005,-32752,980,-32753,954,-32754,929,-32754,904,-32755,879,-32756,854,-32756,829,-32757,804,-32758,779,-32758,753,-32759,728,-32759,703,-32760,678,-32760,653,-32761,628,-32761,603,-32762,578,-32762,552,-32763,527,-32763,502,-32764,477,-32764,452,-32764,427,-32765,402,-32765,376,-32765,351,-32766,326,-32766,301,-32766,276,-32766,251,-32767,226,-32767,201,-32767,175,-32767,150,-32767,125,-32767,100,-32767,75,-32767,50,-32767,25,-32767,0,-32767,-26,-32767,-51,-32767,-76,-32767,-101,-32767,-126,-32767,-151,-32767,-176,-32767,-202,-32767,-227,-32767,-252,-32767,-277,-32766,-302,-32766,-327,-32766,-352,-32766,-377,-32765,-403,-32765,-428,-32765,-453,-32764,-478,-32764,-503,-32764,-528,-32763,-553,-32763,-579,-32762,-604,-32762,-629,-32761,-654,-32761,-679,-32760,-704,-32760,-729,-32759,-754,-32759,-780,-32758,-805,-32758,-830,-32757,-855,-32756,-880,-32756,-905,-32755,-930,-32754,-955,-32754,-981,-32753,-1006,-32752,-1031,-32751,-1056,-32751,-1081,-32750,-1106,-32749,-1131,-32748,-1156,-32747,-1181,-32746,-1207,-32745,-1232,-32744,-1257,-32743,-1282,-32742,-1307,-32741,-1332,-32740,-1357,-32739,-1382,-32738,-1407,-32737,-1433,-32736,-1458,-32735,-1483,-32734,-1508,-32733,-1533,-32732,-1558,-32730,-1583,-32729,-1608,-32728,-1633,-32727,-1659,-32726,-1684,-32724,-1709,-32723,-1734,-32722,-1759,-32720,-1784,-32719,-1809,-32718,-1834,-32716,-1859,-32715,-1884,-32713,-1909,-32712,-1935,-32710,-1960,-32709,-1985,-32707,-2010,-32706,-2035,-32704,-2060,-32703,-2085,-32701,-2110,-32700,-2135,-32698,-2160,-32696,-2185,-32695,-2210,-32693,-2236,-32691,-2261,-32689,-2286,-32688,-2311,-32686,-2336,-32684,-2361,-32682,-2386,-32681,-2411,-32679,-2436,-32677,-2461,-32675,-2486,-32673,-2511,-32671,-2536,-32669,-2561,-32667,-2586,-32665,-2611,-32663,-2637,-32661,-2662,-32659,-2687,-32657,-2712,-32655,-2737,-32653,-2762,-32651,-2787,-32649,-2812,-32647,-2837,-32645,-2862,-32642,-2887,-32640,-2912,-32638,-2937,-32636,-2962,-32633,-2987,-32631,-3012,-32629,-3037,-32626,-3062,-32624,-3087,-32622,-3112,-32619,-3137,-32617,-3162,-32615,-3187,-32612,-3212,-32610,-3237,-32607,-3262,-32605,-3287,-32602,-3312,-32600,-3337,-32597,-3362,-32595,-3387,-32592,-3412,-32589,-3437,-32587,-3462,-32584,-3487,-32581,-3512,-32579,-3537,-32576,-3562,-32573,-3587,-32571,-3612,-32568,-3637,-32565,-3662,-32562,-3687,-32559,-3712,-32557,-3737,-32554,-3762,-32551,-3787,-32548,-3812,-32545,-3837,-32542,-3862,-32539,-3887,-32536,-3912,-32533,-3937,-32530,-3962,-32527,-3987,-32524,-4012,-32521,-4036,-32518,-4061,-32515,-4086,-32512,-4111,-32509,-4136,-32505,-4161,-32502,-4186,-32499,-4211,-32496,-4236,-32493,-4261,-32489,-4286,-32486,-4311,-32483,-4336,-32479,-4360,-32476,-4385,-32473,-4410,-32469,-4435,-32466,-4460,-32463,-4485,-32459,-4510,-32456,-4535,-32452,-4560,-32449,-4585,-32445,-4609,-32442,-4634,-32438,-4659,-32435,-4684,-32431,-4709,-32427,-4734,-32424,-4759,-32420,-4784,-32417,-4808,-32413,-4833,-32409,-4858,-32405,-4883,-32402,-4908,-32398,-4933,-32394,-4958,-32390,-4982,-32387,-5007,-32383,-5032,-32379,-5057,-32375,-5082,-32371,-5107,-32367,-5131,-32363,-5156,-32359,-5181,-32355,-5206,-32351,-5231,-32347,-5255,-32343,-5280,-32339,-5305,-32335,-5330,-32331,-5355,-32327,-5379,-32323,-5404,-32319,-5429,-32315,-5454,-32311,-5479,-32306,-5503,-32302,-5528,-32298,-5553,-32294,-5578,-32289,-5602,-32285,-5627,-32281,-5652,-32276,-5677,-32272,-5701,-32268,-5726,-32263,-5751,-32259,-5776,-32255,-5800,-32250,-5825,-32246,-5850,-32241,-5875,-32237,-5899,-32232,-5924,-32228,-5949,-32223,-5973,-32219,-5998,-32214,-6023,-32209,-6048,-32205,-6072,-32200,-6097,-32195,-6122,-32191,-6146,-32186,-6171,-32181,-6196,-32177,-6220,-32172,-6245,-32167,-6270,-32162,-6294,-32157,-6319,-32153,-6344,-32148,-6368,-32143,-6393,-32138,-6418,-32133,-6442,-32128,-6467,-32123,-6492,-32118,-6516,-32113,-6541,-32108,-6565,-32103,-6590,-32098,-6615,-32093,-6639,-32088,-6664,-32083,-6689,-32078,-6713,-32073,-6738,-32067,-6762,-32062,-6787,-32057,-6812,-32052,-6836,-32047,-6861,-32041,-6885,-32036,-6910,-32031,-6934,-32025,-6959,-32020,-6983,-32015,-7008,-32009,-7033,-32004,-7057,-31999,-7082,-31993,-7106,-31988,-7131,-31982,-7155,-31977,-7180,-31971,-7204,-31966,-7229,-31960,-7253,-31955,-7278,-31949,-7302,-31944,-7327,-31938,-7351,-31932,-7376,-31927,-7400,-31921,-7425,-31915,-7449,-31910,-7474,-31904,-7498,-31898,-7523,-31892,-7547,-31887,-7572,-31881,-7596,-31875,-7620,-31869,-7645,-31863,-7669,-31857,-7694,-31852,-7718,-31846,-7743,-31840,-7767,-31834,-7791,-31828,-7816,-31822,-7840,-31816,-7865,-31810,-7889,-31804,-7913,-31798,-7938,-31792,-7962,-31786,-7987,-31779,-8011,-31773,-8035,-31767,-8060,-31761,-8084,-31755,-8108,-31749,-8133,-31742,-8157,-31736,-8181,-31730,-8206,-31724,-8230,-31717,-8254,-31711,-8279,-31705,-8303,-31698,-8327,-31692,-8352,-31685,-8376,-31679,-8400,-31673,-8425,-31666,-8449,-31660,-8473,-31653,-8497,-31647,-8522,-31640,-8546,-31634,-8570,-31627,-8594,-31620,-8619,-31614,-8643,-31607,-8667,-31601,-8691,-31594,-8716,-31587,-8740,-31581,-8764,-31574,-8788,-31567,-8813,-31560,-8837,-31554,-8861,-31547,-8885,-31540,-8909,-31533,-8933,-31526,-8958,-31519,-8982,-31513,-9006,-31506,-9030,-31499,-9054,-31492,-9078,-31485,-9103,-31478,-9127,-31471,-9151,-31464,-9175,-31457,-9199,-31450,-9223,-31443,-9247,-31436,-9271,-31429,-9296,-31421,-9320,-31414,-9344,-31407,-9368,-31400,-9392,-31393,-9416,-31386,-9440,-31378,-9464,-31371,-9488,-31364,-9512,-31357,-9536,-31349,-9560,-31342,-9584,-31335,-9608,-31327,-9632,-31320,-9656,-31312,-9680,-31305,-9704,-31298,-9728,-31290,-9752,-31283,-9776,-31275,-9800,-31268,-9824,-31260,-9848,-31253,-9872,-31245,-9896,-31237,-9920,-31230,-9944,-31222,-9968,-31215,-9992,-31207,-10016,-31199,-10040,-31192,-10064,-31184,-10088,-31176,-10112,-31168,-10136,-31161,-10160,-31153,-10183,-31145,-10207,-31137,-10231,-31129,-10255,-31122,-10279,-31114,-10303,-31106,-10327,-31098,-10350,-31090,-10374,-31082,-10398,-31074,-10422,-31066,-10446,-31058,-10470,-31050,-10493,-31042,-10517,-31034,-10541,-31026,-10565,-31018,-10589,-31010,-10612,-31002,-10636,-30993,-10660,-30985,-10684,-30977,-10707,-30969,-10731,-30961,-10755,-30952,-10779,-30944,-10802,-30936,-10826,-30928,-10850,-30919,-10874,-30911,-10897,-30903,-10921,-30894,-10945,-30886,-10968,-30877,-10992,-30869,-11016,-30861,-11039,-30852,-11063,-30844,-11087,-30835,-11110,-30827,-11134,-30818,-11158,-30810,-11181,-30801,-11205,-30792,-11228,-30784,-11252,-30775,-11276,-30767,-11299,-30758,-11323,-30749,-11346,-30740,-11370,-30732,-11394,-30723,-11417,-30714,-11441,-30706,-11464,-30697,-11488,-30688,-11511,-30679,-11535,-30670,-11558,-30661,-11582,-30653,-11605,-30644,-11629,-30635,-11652,-30626,-11676,-30617,-11699,-30608,-11723,-30599,-11746,-30590,-11770,-30581,-11793,-30572,-11817,-30563,-11840,-30554,-11863,-30545,-11887,-30536,-11910,-30526,-11934,-30517,-11957,-30508,-11981,-30499,-12004,-30490,-12027,-30481,-12051,-30471,-12074,-30462,-12097,-30453,-12121,-30443,-12144,-30434,-12167,-30425,-12191,-30416,-12214,-30406,-12237,-30397,-12261,-30387,-12284,-30378,-12307,-30369,-12331,-30359,-12354,-30350,-12377,-30340,-12400,-30331,-12424,-30321,-12447,-30312,-12470,-30302,-12493,-30292,-12517,-30283,-12540,-30273,-12563,-30264,-12586,-30254,-12610,-30244,-12633,-30235,-12656,-30225,-12679,-30215,-12702,-30206,-12725,-30196,-12749,-30186,-12772,-30176,-12795,-30166,-12818,-30157,-12841,-30147,-12864,-30137,-12887,-30127,-12910,-30117,-12934,-30107,-12957,-30097,-12980,-30087,-13003,-30077,-13026,-30067,-13049,-30057,-13072,-30047,-13095,-30037,-13118,-30027,-13141,-30017,-13164,-30007,-13187,-29997,-13210,-29987,-13233,-29977,-13256,-29967,-13279,-29956,-13302,-29946,-13325,-29936,-13348,-29926,-13371,-29916,-13394,-29905,-13417,-29895,-13440,-29885,-13463,-29874,-13486,-29864,-13508,-29854,-13531,-29843,-13554,-29833,-13577,-29823,-13600,-29812,-13623,-29802,-13646,-29791,-13668,-29781,-13691,-29770,-13714,-29760,-13737,-29749,-13760,-29739,-13783,-29728,-13805,-29718,-13828,-29707,-13851,-29696,-13874,-29686,-13896,-29675,-13919,-29664,-13942,-29654,-13965,-29643,-13987,-29632,-14010,-29622,-14033,-29611,-14056,-29600,-14078,-29589,-14101,-29578,-14124,-29568,-14146,-29557,-14169,-29546,-14192,-29535,-14214,-29524,-14237,-29513,-14260,-29502,-14282,-29491,-14305,-29480,-14327,-29469,-14350,-29458,-14373,-29447,-14395,-29436,-14418,-29425,-14440,-29414,-14463,-29403,-14485,-29392,-14508,-29381,-14531,-29370,-14553,-29359,-14576,-29347,-14598,-29336,-14621,-29325,-14643,-29314,-14666,-29303,-14688,-29291,-14710,-29280,-14733,-29269,-14755,-29257,-14778,-29246,-14800,-29235,-14823,-29223,-14845,-29212,-14867,-29201,-14890,-29189,-14912,-29178,-14935,-29166,-14957,-29155,-14979,-29143,-15002,-29132,-15024,-29120,-15046,-29109,-15069,-29097,-15091,-29086,-15113,-29074,-15136,-29063,-15158,-29051,-15180,-29039,-15202,-29028,-15225,-29016,-15247,-29004,-15269,-28993,-15291,-28981,-15314,-28969,-15336,-28957,-15358,-28946,-15380,-28934,-15402,-28922,-15425,-28910,-15447,-28898,-15469,-28887,-15491,-28875,-15513,-28863,-15535,-28851,-15557,-28839,-15580,-28827,-15602,-28815,-15624,-28803,-15646,-28791,-15668,-28779,-15690,-28767,-15712,-28755,-15734,-28743,-15756,-28731,-15778,-28719,-15800,-28707,-15822,-28695,-15844,-28682,-15866,-28670,-15888,-28658,-15910,-28646,-15932,-28634,-15954,-28621,-15976,-28609,-15998,-28597,-16020,-28585,-16042,-28572,-16064,-28560,-16086,-28548,-16108,-28535,-16129,-28523,-16151,-28511,-16173,-28498,-16195,-28486,-16217,-28473,-16239,-28461,-16261,-28448,-16282,-28436,-16304,-28424,-16326,-28411,-16348,-28398,-16369,-28386,-16391,-28373,-16413,-28361,-16435,-28348,-16456,-28336,-16478,-28323,-16500,-28310,-16522,-28298,-16543,-28285,-16565,-28272,-16587,-28260,-16608,-28247,-16630,-28234,-16652,-28221,-16673,-28209,-16695,-28196,-16717,-28183,-16738,-28170,-16760,-28157,-16781,-28144,-16803,-28132,-16825,-28119,-16846,-28106,-16868,-28093,-16889,-28080,-16911,-28067,-16932,-28054,-16954,-28041,-16975,-28028,-16997,-28015,-17018,-28002,-17040,-27989,-17061,-27976,-17083,-27963,-17104,-27949,-17125,-27936,-17147,-27923,-17168,-27910,-17190,-27897,-17211,-27884,-17233,-27870,-17254,-27857,-17275,-27844,-17297,-27831,-17318,-27817,-17339,-27804,-17361,-27791,-17382,-27778,-17403,-27764,-17424,-27751,-17446,-27737,-17467,-27724,-17488,-27711,-17510,-27697,-17531,-27684,-17552,-27670,-17573,-27657,-17594,-27643,-17616,-27630,-17637,-27616,-17658,-27603,-17679,-27589,-17700,-27576,-17721,-27562,-17743,-27549,-17764,-27535,-17785,-27521,-17806,-27508,-17827,-27494,-17848,-27480,-17869,-27467,-17890,-27453,-17911,-27439,-17932,-27425,-17953,-27412,-17974,-27398,-17995,-27384,-18016,-27370,-18037,-27356,-18058,-27343,-18079,-27329,-18100,-27315,-18121,-27301,-18142,-27287,-18163,-27273,-18184,-27259,-18205,-27245,-18226,-27231,-18247,-27217,-18268,-27203,-18288,-27189,-18309,-27175,-18330,-27161,-18351,-27147,-18372,-27133,-18393,-27119,-18413,-27105,-18434,-27091,-18455,-27077,-18476,-27062,-18496,-27048,-18517,-27034,-18538,-27020,-18559,-27006,-18579,-26991,-18600,-26977,-18621,-26963,-18641,-26949,-18662,-26934,-18683,-26920,-18703,-26906,-18724,-26891,-18745,-26877,-18765,-26862,-18786,-26848,-18806,-26834,-18827,-26819,-18847,-26805,-18868,-26790,-18889,-26776,-18909,-26761,-18930,-26747,-18950,-26732,-18971,-26718,-18991,-26703,-19012,-26689,-19032,-26674,-19052,-26659,-19073,-26645,-19093,-26630,-19114,-26616,-19134,-26601,-19155,-26586,-19175,-26571,-19195,-26557,-19216,-26542,-19236,-26527,-19256,-26513,-19277,-26498,-19297,-26483,-19317,-26468,-19338,-26453,-19358,-26438,-19378,-26424,-19398,-26409,-19419,-26394,-19439,-26379,-19459,-26364,-19479,-26349,-19500,-26334,-19520,-26319,-19540,-26304,-19560,-26289,-19580,-26274,-19600,-26259,-19621,-26244,-19641,-26229,-19661,-26214,-19681,-26199,-19701,-26184,-19721,-26169,-19741,-26154,-19761,-26138,-19781,-26123,-19801,-26108,-19821,-26093,-19841,-26078,-19861,-26062,-19881,-26047,-19901,-26032,-19921,-26017,-19941,-26001,-19961,-25986,-19981,-25971,-20001,-25955,-20021,-25940,-20041,-25925,-20061,-25909,-20080,-25894,-20100,-25879,-20120,-25863,-20140,-25848,-20160,-25832,-20180,-25817,-20199,-25801,-20219,-25786,-20239,-25770,-20259,-25755,-20278,-25739,-20298,-25724,-20318,-25708,-20338,-25692,-20357,-25677,-20377,-25661,-20397,-25646,-20416,-25630,-20436,-25614,-20456,-25599,-20475,-25583,-20495,-25567,-20514,-25551,-20534,-25536,-20554,-25520,-20573,-25504,-20593,-25488,-20612,-25473,-20632,-25457,-20651,-25441,-20671,-25425,-20690,-25409,-20710,-25393,-20729,-25377,-20749,-25362,-20768,-25346,-20788,-25330,-20807,-25314,-20826,-25298,-20846,-25282,-20865,-25266,-20885,-25250,-20904,-25234,-20923,-25218,-20943,-25202,-20962,-25186,-20981,-25170,-21001,-25153,-21020,-25137,-21039,-25121,-21058,-25105,-21078,-25089,-21097,-25073,-21116,-25057,-21135,-25040,-21155,-25024,-21174,-25008,-21193,-24992,-21212,-24975,-21231,-24959,-21250,-24943,-21269,-24927,-21289,-24910,-21308,-24894,-21327,-24878,-21346,-24861,-21365,-24845,-21384,-24828,-21403,-24812,-21422,-24796,-21441,-24779,-21460,-24763,-21479,-24746,-21498,-24730,-21517,-24713,-21536,-24697,-21555,-24680,-21574,-24664,-21593,-24647,-21612,-24631,-21630,-24614,-21649,-24597,-21668,-24581,-21687,-24564,-21706,-24547,-21725,-24531,-21744,-24514,-21762,-24497,-21781,-24481,-21800,-24464,-21819,-24447,-21837,-24431,-21856,-24414,-21875,-24397,-21894,-24380,-21912,-24363,-21931,-24347,-21950,-24330,-21968,-24313,-21987,-24296,-22005,-24279,-22024,-24262,-22043,-24245,-22061,-24229,-22080,-24212,-22098,-24195,-22117,-24178,-22136,-24161,-22154,-24144,-22173,-24127,-22191,-24110,-22210,-24093,-22228,-24076,-22246,-24059,-22265,-24042,-22283,-24024,-22302,-24007,-22320,-23990,-22339,-23973,-22357,-23956,-22375,-23939,-22394,-23922,-22412,-23904,-22430,-23887,-22449,-23870,-22467,-23853,-22485,-23836,-22504,-23818,-22522,-23801,-22540,-23784,-22558,-23767,-22576,-23749,-22595,-23732,-22613,-23715,-22631,-23697,-22649,-23680,-22667,-23662,-22686,-23645,-22704,-23628,-22722,-23610,-22740,-23593,-22758,-23575,-22776,-23558,-22794,-23540,-22812,-23523,-22830,-23505,-22848,-23488,-22866,-23470,-22884,-23453,-22902,-23435,-22920,-23418,-22938,-23400,-22956,-23383,-22974,-23365,-22992,-23347,-23010,-23330,-23028,-23312,-23046,-23294,-23063,-23277,-23081,-23259,-23099,-23241,-23117,-23224,-23135,-23206,-23152,-23188,-23170,-23170,-23188,-23152,-23206,-23135,-23224,-23117,-23241,-23099,-23259,-23081,-23277,-23063,-23294,-23046,-23312,-23028,-23330,-23010,-23347,-22992,-23365,-22974,-23383,-22956,-23400,-22938,-23418,-22920,-23435,-22902,-23453,-22884,-23470,-22866,-23488,-22848,-23505,-22830,-23523,-22812,-23540,-22794,-23558,-22776,-23575,-22758,-23593,-22740,-23610,-22722,-23628,-22704,-23645,-22686,-23662,-22667,-23680,-22649,-23697,-22631,-23715,-22613,-23732,-22595,-23749,-22576,-23767,-22558,-23784,-22540,-23801,-22522,-23818,-22504,-23836,-22485,-23853,-22467,-23870,-22449,-23887,-22430,-23904,-22412,-23922,-22394,-23939,-22375,-23956,-22357,-23973,-22339,-23990,-22320,-24007,-22302,-24024,-22283,-24042,-22265,-24059,-22246,-24076,-22228,-24093,-22210,-24110,-22191,-24127,-22173,-24144,-22154,-24161,-22136,-24178,-22117,-24195,-22098,-24212,-22080,-24229,-22061,-24245,-22043,-24262,-22024,-24279,-22005,-24296,-21987,-24313,-21968,-24330,-21950,-24347,-21931,-24363,-21912,-24380,-21894,-24397,-21875,-24414,-21856,-24431,-21837,-24447,-21819,-24464,-21800,-24481,-21781,-24497,-21762,-24514,-21744,-24531,-21725,-24547,-21706,-24564,-21687,-24581,-21668,-24597,-21649,-24614,-21630,-24631,-21612,-24647,-21593,-24664,-21574,-24680,-21555,-24697,-21536,-24713,-21517,-24730,-21498,-24746,-21479,-24763,-21460,-24779,-21441,-24796,-21422,-24812,-21403,-24828,-21384,-24845,-21365,-24861,-21346,-24878,-21327,-24894,-21308,-24910,-21289,-24927,-21269,-24943,-21250,-24959,-21231,-24975,-21212,-24992,-21193,-25008,-21174,-25024,-21155,-25040,-21135,-25057,-21116,-25073,-21097,-25089,-21078,-25105,-21058,-25121,-21039,-25137,-21020,-25153,-21001,-25170,-20981,-25186,-20962,-25202,-20943,-25218,-20923,-25234,-20904,-25250,-20885,-25266,-20865,-25282,-20846,-25298,-20826,-25314,-20807,-25330,-20788,-25346,-20768,-25362,-20749,-25377,-20729,-25393,-20710,-25409,-20690,-25425,-20671,-25441,-20651,-25457,-20632,-25473,-20612,-25488,-20593,-25504,-20573,-25520,-20554,-25536,-20534,-25551,-20514,-25567,-20495,-25583,-20475,-25599,-20456,-25614,-20436,-25630,-20416,-25646,-20397,-25661,-20377,-25677,-20357,-25692,-20338,-25708,-20318,-25724,-20298,-25739,-20278,-25755,-20259,-25770,-20239,-25786,-20219,-25801,-20199,-25817,-20180,-25832,-20160,-25848,-20140,-25863,-20120,-25879,-20100,-25894,-20080,-25909,-20061,-25925,-20041,-25940,-20021,-25955,-20001,-25971,-19981,-25986,-19961,-26001,-19941,-26017,-19921,-26032,-19901,-26047,-19881,-26062,-19861,-26078,-19841,-26093,-19821,-26108,-19801,-26123,-19781,-26138,-19761,-26154,-19741,-26169,-19721,-26184,-19701,-26199,-19681,-26214,-19661,-26229,-19641,-26244,-19621,-26259,-19600,-26274,-19580,-26289,-19560,-26304,-19540,-26319,-19520,-26334,-19500,-26349,-19479,-26364,-19459,-26379,-19439,-26394,-19419,-26409,-19398,-26424,-19378,-26438,-19358,-26453,-19338,-26468,-19317,-26483,-19297,-26498,-19277,-26513,-19256,-26527,-19236,-26542,-19216,-26557,-19195,-26571,-19175,-26586,-19155,-26601,-19134,-26616,-19114,-26630,-19093,-26645,-19073,-26659,-19052,-26674,-19032,-26689,-19012,-26703,-18991,-26718,-18971,-26732,-18950,-26747,-18930,-26761,-18909,-26776,-18889,-26790,-18868,-26805,-18847,-26819,-18827,-26834,-18806,-26848,-18786,-26862,-18765,-26877,-18745,-26891,-18724,-26906,-18703,-26920,-18683,-26934,-18662,-26949,-18641,-26963,-18621,-26977,-18600,-26991,-18579,-27006,-18559,-27020,-18538,-27034,-18517,-27048,-18496,-27062,-18476,-27077,-18455,-27091,-18434,-27105,-18413,-27119,-18393,-27133,-18372,-27147,-18351,-27161,-18330,-27175,-18309,-27189,-18288,-27203,-18268,-27217,-18247,-27231,-18226,-27245,-18205,-27259,-18184,-27273,-18163,-27287,-18142,-27301,-18121,-27315,-18100,-27329,-18079,-27343,-18058,-27356,-18037,-27370,-18016,-27384,-17995,-27398,-17974,-27412,-17953,-27425,-17932,-27439,-17911,-27453,-17890,-27467,-17869,-27480,-17848,-27494,-17827,-27508,-17806,-27521,-17785,-27535,-17764,-27549,-17743,-27562,-17721,-27576,-17700,-27589,-17679,-27603,-17658,-27616,-17637,-27630,-17616,-27643,-17594,-27657,-17573,-27670,-17552,-27684,-17531,-27697,-17510,-27711,-17488,-27724,-17467,-27737,-17446,-27751,-17424,-27764,-17403,-27778,-17382,-27791,-17361,-27804,-17339,-27817,-17318,-27831,-17297,-27844,-17275,-27857,-17254,-27870,-17233,-27884,-17211,-27897,-17190,-27910,-17168,-27923,-17147,-27936,-17125,-27949,-17104,-27963,-17083,-27976,-17061,-27989,-17040,-28002,-17018,-28015,-16997,-28028,-16975,-28041,-16954,-28054,-16932,-28067,-16911,-28080,-16889,-28093,-16868,-28106,-16846,-28119,-16825,-28132,-16803,-28144,-16781,-28157,-16760,-28170,-16738,-28183,-16717,-28196,-16695,-28209,-16673,-28221,-16652,-28234,-16630,-28247,-16608,-28260,-16587,-28272,-16565,-28285,-16543,-28298,-16522,-28310,-16500,-28323,-16478,-28336,-16456,-28348,-16435,-28361,-16413,-28373,-16391,-28386,-16369,-28398,-16348,-28411,-16326,-28424,-16304,-28436,-16282,-28448,-16261,-28461,-16239,-28473,-16217,-28486,-16195,-28498,-16173,-28511,-16151,-28523,-16129,-28535,-16108,-28548,-16086,-28560,-16064,-28572,-16042,-28585,-16020,-28597,-15998,-28609,-15976,-28621,-15954,-28634,-15932,-28646,-15910,-28658,-15888,-28670,-15866,-28682,-15844,-28695,-15822,-28707,-15800,-28719,-15778,-28731,-15756,-28743,-15734,-28755,-15712,-28767,-15690,-28779,-15668,-28791,-15646,-28803,-15624,-28815,-15602,-28827,-15580,-28839,-15557,-28851,-15535,-28863,-15513,-28875,-15491,-28887,-15469,-28898,-15447,-28910,-15425,-28922,-15402,-28934,-15380,-28946,-15358,-28957,-15336,-28969,-15314,-28981,-15291,-28993,-15269,-29004,-15247,-29016,-15225,-29028,-15202,-29039,-15180,-29051,-15158,-29063,-15136,-29074,-15113,-29086,-15091,-29097,-15069,-29109,-15046,-29120,-15024,-29132,-15002,-29143,-14979,-29155,-14957,-29166,-14935,-29178,-14912,-29189,-14890,-29201,-14867,-29212,-14845,-29223,-14823,-29235,-14800,-29246,-14778,-29257,-14755,-29269,-14733,-29280,-14710,-29291,-14688,-29303,-14666,-29314,-14643,-29325,-14621,-29336,-14598,-29347,-14576,-29359,-14553,-29370,-14531,-29381,-14508,-29392,-14485,-29403,-14463,-29414,-14440,-29425,-14418,-29436,-14395,-29447,-14373,-29458,-14350,-29469,-14327,-29480,-14305,-29491,-14282,-29502,-14260,-29513,-14237,-29524,-14214,-29535,-14192,-29546,-14169,-29557,-14146,-29568,-14124,-29578,-14101,-29589,-14078,-29600,-14056,-29611,-14033,-29622,-14010,-29632,-13987,-29643,-13965,-29654,-13942,-29664,-13919,-29675,-13896,-29686,-13874,-29696,-13851,-29707,-13828,-29718,-13805,-29728,-13783,-29739,-13760,-29749,-13737,-29760,-13714,-29770,-13691,-29781,-13668,-29791,-13646,-29802,-13623,-29812,-13600,-29823,-13577,-29833,-13554,-29843,-13531,-29854,-13508,-29864,-13486,-29874,-13463,-29885,-13440,-29895,-13417,-29905,-13394,-29916,-13371,-29926,-13348,-29936,-13325,-29946,-13302,-29956,-13279,-29967,-13256,-29977,-13233,-29987,-13210,-29997,-13187,-30007,-13164,-30017,-13141,-30027,-13118,-30037,-13095,-30047,-13072,-30057,-13049,-30067,-13026,-30077,-13003,-30087,-12980,-30097,-12957,-30107,-12934,-30117,-12910,-30127,-12887,-30137,-12864,-30147,-12841,-30157,-12818,-30166,-12795,-30176,-12772,-30186,-12749,-30196,-12725,-30206,-12702,-30215,-12679,-30225,-12656,-30235,-12633,-30244,-12610,-30254,-12586,-30264,-12563,-30273,-12540,-30283,-12517,-30292,-12493,-30302,-12470,-30312,-12447,-30321,-12424,-30331,-12400,-30340,-12377,-30350,-12354,-30359,-12331,-30369,-12307,-30378,-12284,-30387,-12261,-30397,-12237,-30406,-12214,-30416,-12191,-30425,-12167,-30434,-12144,-30443,-12121,-30453,-12097,-30462,-12074,-30471,-12051,-30481,-12027,-30490,-12004,-30499,-11981,-30508,-11957,-30517,-11934,-30526,-11910,-30536,-11887,-30545,-11863,-30554,-11840,-30563,-11817,-30572,-11793,-30581,-11770,-30590,-11746,-30599,-11723,-30608,-11699,-30617,-11676,-30626,-11652,-30635,-11629,-30644,-11605,-30653,-11582,-30661,-11558,-30670,-11535,-30679,-11511,-30688,-11488,-30697,-11464,-30706,-11441,-30714,-11417,-30723,-11394,-30732,-11370,-30740,-11346,-30749,-11323,-30758,-11299,-30767,-11276,-30775,-11252,-30784,-11228,-30792,-11205,-30801,-11181,-30810,-11158,-30818,-11134,-30827,-11110,-30835,-11087,-30844,-11063,-30852,-11039,-30861,-11016,-30869,-10992,-30877,-10968,-30886,-10945,-30894,-10921,-30903,-10897,-30911,-10874,-30919,-10850,-30928,-10826,-30936,-10802,-30944,-10779,-30952,-10755,-30961,-10731,-30969,-10707,-30977,-10684,-30985,-10660,-30993,-10636,-31002,-10612,-31010,-10589,-31018,-10565,-31026,-10541,-31034,-10517,-31042,-10493,-31050,-10470,-31058,-10446,-31066,-10422,-31074,-10398,-31082,-10374,-31090,-10350,-31098,-10327,-31106,-10303,-31114,-10279,-31122,-10255,-31129,-10231,-31137,-10207,-31145,-10183,-31153,-10160,-31161,-10136,-31168,-10112,-31176,-10088,-31184,-10064,-31192,-10040,-31199,-10016,-31207,-9992,-31215,-9968,-31222,-9944,-31230,-9920,-31237,-9896,-31245,-9872,-31253,-9848,-31260,-9824,-31268,-9800,-31275,-9776,-31283,-9752,-31290,-9728,-31298,-9704,-31305,-9680,-31312,-9656,-31320,-9632,-31327,-9608,-31335,-9584,-31342,-9560,-31349,-9536,-31357,-9512,-31364,-9488,-31371,-9464,-31378,-9440,-31386,-9416,-31393,-9392,-31400,-9368,-31407,-9344,-31414,-9320,-31421,-9296,-31429,-9271,-31436,-9247,-31443,-9223,-31450,-9199,-31457,-9175,-31464,-9151,-31471,-9127,-31478,-9103,-31485,-9078,-31492,-9054,-31499,-9030,-31506,-9006,-31513,-8982,-31519,-8958,-31526,-8933,-31533,-8909,-31540,-8885,-31547,-8861,-31554,-8837,-31560,-8813,-31567,-8788,-31574,-8764,-31581,-8740,-31587,-8716,-31594,-8691,-31601,-8667,-31607,-8643,-31614,-8619,-31620,-8594,-31627,-8570,-31634,-8546,-31640,-8522,-31647,-8497,-31653,-8473,-31660,-8449,-31666,-8425,-31673,-8400,-31679,-8376,-31685,-8352,-31692,-8327,-31698,-8303,-31705,-8279,-31711,-8254,-31717,-8230,-31724,-8206,-31730,-8181,-31736,-8157,-31742,-8133,-31749,-8108,-31755,-8084,-31761,-8060,-31767,-8035,-31773,-8011,-31779,-7987,-31786,-7962,-31792,-7938,-31798,-7913,-31804,-7889,-31810,-7865,-31816,-7840,-31822,-7816,-31828,-7791,-31834,-7767,-31840,-7743,-31846,-7718,-31852,-7694,-31857,-7669,-31863,-7645,-31869,-7620,-31875,-7596,-31881,-7572,-31887,-7547,-31892,-7523,-31898,-7498,-31904,-7474,-31910,-7449,-31915,-7425,-31921,-7400,-31927,-7376,-31932,-7351,-31938,-7327,-31944,-7302,-31949,-7278,-31955,-7253,-31960,-7229,-31966,-7204,-31971,-7180,-31977,-7155,-31982,-7131,-31988,-7106,-31993,-7082,-31999,-7057,-32004,-7033,-32009,-7008,-32015,-6983,-32020,-6959,-32025,-6934,-32031,-6910,-32036,-6885,-32041,-6861,-32047,-6836,-32052,-6812,-32057,-6787,-32062,-6762,-32067,-6738,-32073,-6713,-32078,-6689,-32083,-6664,-32088,-6639,-32093,-6615,-32098,-6590,-32103,-6565,-32108,-6541,-32113,-6516,-32118,-6492,-32123,-6467,-32128,-6442,-32133,-6418,-32138,-6393,-32143,-6368,-32148,-6344,-32153,-6319,-32157,-6294,-32162,-6270,-32167,-6245,-32172,-6220,-32177,-6196,-32181,-6171,-32186,-6146,-32191,-6122,-32195,-6097,-32200,-6072,-32205,-6048,-32209,-6023,-32214,-5998,-32219,-5973,-32223,-5949,-32228,-5924,-32232,-5899,-32237,-5875,-32241,-5850,-32246,-5825,-32250,-5800,-32255,-5776,-32259,-5751,-32263,-5726,-32268,-5701,-32272,-5677,-32276,-5652,-32281,-5627,-32285,-5602,-32289,-5578,-32294,-5553,-32298,-5528,-32302,-5503,-32306,-5479,-32311,-5454,-32315,-5429,-32319,-5404,-32323,-5379,-32327,-5355,-32331,-5330,-32335,-5305,-32339,-5280,-32343,-5255,-32347,-5231,-32351,-5206,-32355,-5181,-32359,-5156,-32363,-5131,-32367,-5107,-32371,-5082,-32375,-5057,-32379,-5032,-32383,-5007,-32387,-4982,-32390,-4958,-32394,-4933,-32398,-4908,-32402,-4883,-32405,-4858,-32409,-4833,-32413,-4808,-32417,-4784,-32420,-4759,-32424,-4734,-32427,-4709,-32431,-4684,-32435,-4659,-32438,-4634,-32442,-4609,-32445,-4585,-32449,-4560,-32452,-4535,-32456,-4510,-32459,-4485,-32463,-4460,-32466,-4435,-32469,-4410,-32473,-4385,-32476,-4360,-32479,-4336,-32483,-4311,-32486,-4286,-32489,-4261,-32493,-4236,-32496,-4211,-32499,-4186,-32502,-4161,-32505,-4136,-32509,-4111,-32512,-4086,-32515,-4061,-32518,-4036,-32521,-4012,-32524,-3987,-32527,-3962,-32530,-3937,-32533,-3912,-32536,-3887,-32539,-3862,-32542,-3837,-32545,-3812,-32548,-3787,-32551,-3762,-32554,-3737,-32557,-3712,-32559,-3687,-32562,-3662,-32565,-3637,-32568,-3612,-32571,-3587,-32573,-3562,-32576,-3537,-32579,-3512,-32581,-3487,-32584,-3462,-32587,-3437,-32589,-3412,-32592,-3387,-32595,-3362,-32597,-3337,-32600,-3312,-32602,-3287,-32605,-3262,-32607,-3237,-32610,-3212,-32612,-3187,-32615,-3162,-32617,-3137,-32619,-3112,-32622,-3087,-32624,-3062,-32626,-3037,-32629,-3012,-32631,-2987,-32633,-2962,-32636,-2937,-32638,-2912,-32640,-2887,-32642,-2862,-32645,-2837,-32647,-2812,-32649,-2787,-32651,-2762,-32653,-2737,-32655,-2712,-32657,-2687,-32659,-2662,-32661,-2637,-32663,-2611,-32665,-2586,-32667,-2561,-32669,-2536,-32671,-2511,-32673,-2486,-32675,-2461,-32677,-2436,-32679,-2411,-32681,-2386,-32682,-2361,-32684,-2336,-32686,-2311,-32688,-2286,-32689,-2261,-32691,-2236,-32693,-2210,-32695,-2185,-32696,-2160,-32698,-2135,-32700,-2110,-32701,-2085,-32703,-2060,-32704,-2035,-32706,-2010,-32707,-1985,-32709,-1960,-32710,-1935,-32712,-1909,-32713,-1884,-32715,-1859,-32716,-1834,-32718,-1809,-32719,-1784,-32720,-1759,-32722,-1734,-32723,-1709,-32724,-1684,-32726,-1659,-32727,-1633,-32728,-1608,-32729,-1583,-32730,-1558,-32732,-1533,-32733,-1508,-32734,-1483,-32735,-1458,-32736,-1433,-32737,-1407,-32738,-1382,-32739,-1357,-32740,-1332,-32741,-1307,-32742,-1282,-32743,-1257,-32744,-1232,-32745,-1207,-32746,-1181,-32747,-1156,-32748,-1131,-32749,-1106,-32750,-1081,-32751,-1056,-32751,-1031,-32752,-1006,-32753,-981,-32754,-955,-32754,-930,-32755,-905,-32756,-880,-32756,-855,-32757,-830,-32758,-805,-32758,-780,-32759,-754,-32759,-729,-32760,-704,-32760,-679,-32761,-654,-32761,-629,-32762,-604,-32762,-579,-32763,-553,-32763,-528,-32764,-503,-32764,-478,-32764,-453,-32765,-428,-32765,-403,-32765,-377,-32766,-352,-32766,-327,-32766,-302,-32766,-277,-32767,-252,-32767,-227,-32767,-202,-32767,-176,-32767,-151,-32767,-126,-32767,-101,-32767,-76,-32767,-51,-32767,-26};
diff --git a/openair1/PHY/defs_common.h b/openair1/PHY/defs_common.h
index 1387c789956ac56df53b16806f6db1ecfe4bedd2..fce7f1b8851ae473ab0037fdcf47845b88a21da9 100644
--- a/openair1/PHY/defs_common.h
+++ b/openair1/PHY/defs_common.h
@@ -930,7 +930,7 @@ typedef enum {
 
 void exit_fun(const char* s);
 
-#include "UTIL/LOG/log_extern.h"
+#include "common/utils/LOG/log_extern.h"
 extern pthread_cond_t sync_cond;
 extern pthread_mutex_t sync_mutex;
 extern int sync_var;
diff --git a/openair1/PHY/defs_eNB.h b/openair1/PHY/defs_eNB.h
index df3c1e449770221d919851dcd63080b8fbcdf43b..c58fffe0ef2ebe8fa890dbac762dcd4e9bb2a56f 100644
--- a/openair1/PHY/defs_eNB.h
+++ b/openair1/PHY/defs_eNB.h
@@ -194,11 +194,11 @@ typedef struct RU_proc_t_s {
   pthread_cond_t cond_synch;
   /// condition variable for asynch RX/TX thread
   pthread_cond_t cond_asynch_rxtx;
-  /// condition varible for RU RX FEP thread
+  /// condition variable for RU RX FEP thread
   pthread_cond_t cond_fep;
-  /// condition varible for RU TX FEP thread
+  /// condition variable for RU TX FEP thread
   pthread_cond_t cond_feptx;
-  /// condition varible for emulated RF
+  /// condition variable for emulated RF
   pthread_cond_t cond_emulateRF;
   /// condition variable for eNB signal
   pthread_cond_t cond_eNBs;
@@ -260,6 +260,7 @@ typedef struct RU_proc_t_s {
   /// pipeline ready state
   int ru_rx_ready;
   int ru_tx_ready;
+  int emulate_rf_busy;
 } RU_proc_t;
 
 typedef enum {
diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c
index 8840d065ecef45ec85e575d2dd5cd1b20c564b50..ad72c3d9f5f6a2cf8a17933135b63a0399b62985 100644
--- a/openair1/SCHED/fapi_l1.c
+++ b/openair1/SCHED/fapi_l1.c
@@ -668,7 +668,6 @@ void schedule_response(Sched_Rsp_t *Sched_INFO)
   AssertFatal(RC.eNB[Mod_id][CC_id]!=NULL,"RC.eNB[%d][%d] is null\n",Mod_id,CC_id);
 
 
-
   eNB         = RC.eNB[Mod_id][CC_id];
   fp          = &eNB->frame_parms;
   proc        = &eNB->proc.proc_rxtx[0];
diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c
index 08b7b28fa4edd5f75accc2e94b12c4a4d1d7c926..a6a44c66e27913e30afa90b6b5ac04fd867622f5 100644
--- a/openair1/SCHED/phy_procedures_lte_eNb.c
+++ b/openair1/SCHED/phy_procedures_lte_eNb.c
@@ -37,10 +37,8 @@
 #include "PHY/LTE_ESTIMATION/lte_estimation.h"
 #include "nfapi_interface.h"
 #include "fapi_l1.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
-
-#include "T.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
 #include "assertions.h"
 #include "msc.h"
@@ -324,7 +322,6 @@ void pdsch_procedures(PHY_VARS_eNB *eNB,
   int frame=proc->frame_tx;
   int subframe=proc->subframe_tx;
   LTE_DL_eNB_HARQ_t *dlsch_harq=dlsch->harq_processes[harq_pid];
-  int input_buffer_length = dlsch_harq->TBS/8;
   LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms;
 
   if (dlsch->rnti == 0x02) {//frame < 200) {
@@ -332,7 +329,7 @@ void pdsch_procedures(PHY_VARS_eNB *eNB,
     LOG_D(PHY,
 	  "[eNB %"PRIu8"][PDSCH %"PRIx16"/%"PRIu8"] Frame %d, subframe %d: Generating PDSCH/DLSCH with input size = %"PRIu16", pdsch_start %d, G %d, nb_rb %"PRIu16", rb0 %x, rb1 %x, TBS %"PRIu16", pmi_alloc %"PRIx64", rv %"PRIu8" (round %"PRIu8")\n",
 	  eNB->Mod_id, dlsch->rnti,harq_pid,
-	  frame, subframe, input_buffer_length, dlsch_harq->pdsch_start,
+	  frame, subframe, dlsch_harq->TBS/8, dlsch_harq->pdsch_start,
 	  get_G(fp,
 		dlsch_harq->nb_rb,
 		dlsch_harq->rb_alloc,
@@ -356,7 +353,7 @@ void pdsch_procedures(PHY_VARS_eNB *eNB,
 		     NULL,0,
 		     "%05u:%02u PDSCH/DLSCH input size = %"PRIu16", G %d, nb_rb %"PRIu16", TBS %"PRIu16", pmi_alloc %"PRIx16", rv %"PRIu8" (round %"PRIu8")",
 		     frame, subframe,
-		     input_buffer_length,
+		     dlsch_harq->TBS/8,
 		     get_G(fp,
 			   dlsch_harq->nb_rb,
 			   dlsch_harq->rb_alloc,
@@ -415,7 +412,6 @@ void pdsch_procedures(PHY_VARS_eNB *eNB,
       &eNB->dlsch_turbo_encoding_wakeup_stats1,
 	  &eNB->dlsch_interleaving_stats);
     stop_meas(&eNB->dlsch_encoding_stats);
-  //////////////////////////////////////////////////*******************************************
   if(eNB->dlsch_encoding_stats.diff_now>500*3000 && opp_enabled == 1)
   {
     print_meas_now(&eNB->dlsch_encoding_stats,"total coding",stderr);
@@ -482,12 +478,11 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
   LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms;
   LTE_UL_eNB_HARQ_t *ulsch_harq;
 
-  int offset = eNB->CC_id;//proc == &eNB->proc.proc_rxtx[0] ? 0 : 1;
 
 
   if ((fp->frame_type == TDD) && (subframe_select(fp,subframe)==SF_UL)) return;
 
-  VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX+offset,1);
+  VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX+(eNB->CC_id),1);
   if (do_meas==1) start_meas(&eNB->phy_proc_tx);
 
   // clear the transmit data array for the current subframe
@@ -649,7 +644,7 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
 		     AMP);
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_GENERATE_PHICH,0);
 
-  VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX+offset,0);
+  VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX+(eNB->CC_id),0);
   if (do_meas==1) stop_meas(&eNB->phy_proc_tx);
   
 }
@@ -1505,7 +1500,7 @@ void init_te_thread(PHY_VARS_eNB *eNB) {
     pthread_cond_init( &proc->tep[i].cond_te, NULL);
     pthread_attr_init( &proc->tep[i].attr_te);
     
-    printf("Creating te_thread 0\n");
+    LOG_I(PHY,"Creating te_thread %d\n",i);
     pthread_create(&proc->tep[i].pthread_te, &proc->tep[i].attr_te, te_thread, (void*)&proc->tep[i]);
   }
 }
diff --git a/openair1/SCHED/prach_procedures.c b/openair1/SCHED/prach_procedures.c
index 0bdbb6060d5c978a936394ad7143eee523692873..0c45b9ad8078a114530195868bb0cbad587805f1 100644
--- a/openair1/SCHED/prach_procedures.c
+++ b/openair1/SCHED/prach_procedures.c
@@ -36,10 +36,9 @@
 #include "nfapi_interface.h"
 #include "fapi_l1.h"
 #include "nfapi_pnf.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
-#include "T.h"
 
 #include "assertions.h"
 #include "msc.h"
@@ -125,14 +124,11 @@ void prach_procedures(PHY_VARS_eNB *eNB
 #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
   if (br_flag==1) {
 
-    int prach_mask;
-      
-    prach_mask = is_prach_subframe(&eNB->frame_parms,eNB->proc.frame_prach_br,eNB->proc.subframe_prach_br);
-    
     eNB->UL_INFO.rach_ind_br.rach_indication_body.preamble_list                              = eNB->preamble_list_br;
     int ind=0;
     int ce_level=0;
-    /* Save for later, it doesn't work    
+    /* Save for later, it doesn't work 
+    int prach_mask = is_prach_subframe(&eNB->frame_parms,eNB->proc.frame_prach_br,eNB->proc.subframe_prach_br);   
     for (int ind=0,ce_level=0;ce_level<4;ce_level++) {
       
       if ((eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[ce_level]==1)&&
@@ -154,7 +150,7 @@ void prach_procedures(PHY_VARS_eNB *eNB
 	LOG_D(PHY,"Filling NFAPI indication for RACH %d CELevel %d (mask %x) : TA %d, Preamble %d, rnti %x, rach_resource_type %d\n",
 	      ind,
 	      ce_level,
-	      prach_mask,
+	      is_prach_subframe(&eNB->frame_parms,eNB->proc.frame_prach_br,eNB->proc.subframe_prach_br),
 	      eNB->preamble_list_br[ind].preamble_rel8.timing_advance,
 	      eNB->preamble_list_br[ind].preamble_rel8.preamble,
 	      eNB->preamble_list_br[ind].preamble_rel8.rnti,
diff --git a/openair1/SCHED/ru_procedures.c b/openair1/SCHED/ru_procedures.c
index 6d0ceedf4f1dd31e91df13124083e9c680ae3d84..6272650f72b56b8af9b6cdf78af68603e85e9351 100644
--- a/openair1/SCHED/ru_procedures.c
+++ b/openair1/SCHED/ru_procedures.c
@@ -39,10 +39,9 @@
 #include "PHY/LTE_TRANSPORT/transport_common_proto.h"
 
 #include "LAYER2/MAC/mac.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
-#include "T.h"
 
 #include "assertions.h"
 #include "msc.h"
@@ -151,6 +150,7 @@ static void *feptx_thread(void *param) {
   while (!oai_exit) {
 
     if (wait_on_condition(&proc->mutex_feptx,&proc->cond_feptx,&proc->instance_cnt_feptx,"feptx thread")<0) break;  
+    if (oai_exit) break;
     //stop_meas(&ru->ofdm_mod_wakeup_stats);
     feptx0(ru,1);
     if (release_thread(&proc->mutex_feptx,&proc->instance_cnt_feptx,"feptx thread")<0) break;
@@ -248,7 +248,6 @@ void feptx_ofdm(RU_t *ru) {
 //  int CC_id = ru->proc.CC_id;
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM , 1 );
-
   slot_offset_F = 0;
 
   slot_offset = subframe*fp->samples_per_tti;
@@ -456,6 +455,7 @@ static void *fep_thread(void *param) {
   while (!oai_exit) {
 
     if (wait_on_condition(&proc->mutex_fep,&proc->cond_fep,&proc->instance_cnt_fep,"fep thread")<0) break; 
+    if (oai_exit) break;
 	//stop_meas(&ru->ofdm_demod_wakeup_stats);
 	VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX1, 1 ); 
     fep0(ru,0);
@@ -505,6 +505,33 @@ void init_fep_thread(RU_t *ru,pthread_attr_t *attr_fep) {
 
 
 }
+
+extern void kill_fep_thread(RU_t *ru)
+{
+  RU_proc_t *proc = &ru->proc;
+  pthread_mutex_lock( &proc->mutex_fep );
+  proc->instance_cnt_fep         = 0;
+  pthread_cond_signal(&proc->cond_fep);
+  pthread_mutex_unlock( &proc->mutex_fep );
+  LOG_D(PHY, "Joining pthread_fep\n");
+  pthread_join(proc->pthread_fep, NULL);
+  pthread_mutex_destroy( &proc->mutex_fep );
+  pthread_cond_destroy( &proc->cond_fep );
+}
+
+extern void kill_feptx_thread(RU_t *ru)
+{
+  RU_proc_t *proc = &ru->proc;
+  pthread_mutex_lock( &proc->mutex_feptx );
+  proc->instance_cnt_feptx         = 0;
+  pthread_cond_signal(&proc->cond_feptx);
+  pthread_mutex_unlock( &proc->mutex_feptx );
+  LOG_D(PHY, "Joining pthread_feptx\n");
+  pthread_join(proc->pthread_feptx, NULL);
+  pthread_mutex_destroy( &proc->mutex_feptx );
+  pthread_cond_destroy( &proc->cond_feptx );
+}
+
 void ru_fep_full_2thread(RU_t *ru) {
 
   RU_proc_t *proc = &ru->proc;
diff --git a/openair1/SCHED_UE/phy_procedures_lte_ue.c b/openair1/SCHED_UE/phy_procedures_lte_ue.c
index fc095f49a947b6677bee6a14eda16ecfc0d98594..ed258ed47c6f0ab6875d15582d5b8879c4b29395 100644
--- a/openair1/SCHED_UE/phy_procedures_lte_ue.c
+++ b/openair1/SCHED_UE/phy_procedures_lte_ue.c
@@ -43,16 +43,15 @@
 #include "PHY/MODULATION/modulation_UE.h"
 #include "PHY/LTE_ESTIMATION/lte_estimation.h"
 
-//#define DEBUG_PHY_PROC
 
 #ifndef PUCCH
 #define PUCCH
 #endif
 
 #include "LAYER2/MAC/mac.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "UTIL/OPT/opt.h"
 
 #if defined(ENABLE_ITTI)
@@ -81,23 +80,37 @@ void Msg3_transmitted(module_id_t module_idP,uint8_t CC_id,frame_t frameP, uint8
 extern uint32_t downlink_frequency[MAX_NUM_CCs][4];
 #endif
 
+void get_dumpparam(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id, uint8_t nb_rb,
+                   uint32_t *alloc_even, uint8_t subframe,uint32_t Qm, uint32_t Nl, uint32_t tm,
+                   uint8_t *nsymb, uint32_t *coded_bits_per_codeword) {
 
-//#define UE_DEBUG_TRACE 1
+  *nsymb = (ue->frame_parms.Ncp == 0) ? 14 : 12;
+
+  *coded_bits_per_codeword = get_G(&ue->frame_parms,
+                                  nb_rb,
+                                  alloc_even,
+                                  Qm,
+                                  Nl,
+                                  ue->pdcch_vars[0%RX_NB_TH][eNB_id]->num_pdcch_symbols,
+                                  proc->frame_rx,
+                                  subframe,
+                                  tm);
+}
 
 void dump_dlsch(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t subframe,uint8_t harq_pid)
 {
+LOG_M_BEGIN(DEBUG_UE_PHYPROC)
   unsigned int coded_bits_per_codeword;
-  uint8_t nsymb = (ue->frame_parms.Ncp == 0) ? 14 : 12;
+  uint8_t nsymb ;
 
-  coded_bits_per_codeword = get_G(&ue->frame_parms,
-                                  ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->nb_rb,
-                                  ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->rb_alloc_even,
-                                  ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->Qm,
-                                  ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->Nl,
-                                  ue->pdcch_vars[0%RX_NB_TH][eNB_id]->num_pdcch_symbols,
-                                  proc->frame_rx,
-          subframe,
-          ue->transmission_mode[eNB_id]<7?0:ue->transmission_mode[eNB_id]);
+  get_dumpparam(ue, proc, eNB_id, 
+                ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->nb_rb ,
+                ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->rb_alloc_even,
+                subframe,
+                ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->Qm,
+                ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->Nl,                
+                ue->transmission_mode[eNB_id]<7?0:ue->transmission_mode[eNB_id],
+                &nsymb, &coded_bits_per_codeword);
 
   LOG_M("rxsigF0.m","rxsF0", ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF[0],2*nsymb*ue->frame_parms.ofdm_symbol_size,2,1);
   LOG_M("rxsigF0_ext.m","rxsF0_ext", ue->pdsch_vars[ue->current_thread_id[subframe]][0]->rxdataF_ext[0],2*nsymb*ue->frame_parms.ofdm_symbol_size,1,1);
@@ -113,26 +126,25 @@ void dump_dlsch(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t subf
 
   LOG_M("dlsch_mag1.m","dlschmag1",ue->pdsch_vars[ue->current_thread_id[subframe]][0]->dl_ch_mag0,300*12,1,1);
   LOG_M("dlsch_mag2.m","dlschmag2",ue->pdsch_vars[ue->current_thread_id[subframe]][0]->dl_ch_magb0,300*12,1,1);
+LOG_M_END
 }
 
 void dump_dlsch_SI(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t subframe)
 {
+LOG_M_BEGIN(DEBUG_UE_PHYPROC)
   unsigned int coded_bits_per_codeword;
-  uint8_t nsymb = ((ue->frame_parms.Ncp == 0) ? 14 : 12);
+  uint8_t nsymb;
+
+  get_dumpparam(ue, proc, eNB_id,
+                ue->dlsch_SI[eNB_id]->harq_processes[0]->nb_rb,
+                ue->dlsch_SI[eNB_id]->harq_processes[0]->rb_alloc_even,
+                subframe,2,1,0,
+                &nsymb, &coded_bits_per_codeword);
 
-  coded_bits_per_codeword = get_G(&ue->frame_parms,
-                                  ue->dlsch_SI[eNB_id]->harq_processes[0]->nb_rb,
-                                  ue->dlsch_SI[eNB_id]->harq_processes[0]->rb_alloc_even,
-                                  2,
-                                  1,
-                                  ue->pdcch_vars[0%RX_NB_TH][eNB_id]->num_pdcch_symbols,
-                                  proc->frame_rx,
-          subframe,
-          0);
   LOG_D(PHY,"[UE %d] Dumping dlsch_SI : ofdm_symbol_size %d, nsymb %d, nb_rb %d, mcs %d, nb_rb %d, num_pdcch_symbols %d,G %d\n",
         ue->Mod_id,
-  ue->frame_parms.ofdm_symbol_size,
-  nsymb,
+        ue->frame_parms.ofdm_symbol_size,
+        nsymb,
         ue->dlsch_SI[eNB_id]->harq_processes[0]->nb_rb,
         ue->dlsch_SI[eNB_id]->harq_processes[0]->mcs,
         ue->dlsch_SI[eNB_id]->harq_processes[0]->nb_rb,
@@ -157,6 +169,7 @@ void dump_dlsch_SI(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t s
   LOG_M("dlsch_mag2.m","dlschmag2",ue->pdsch_vars_SI[0]->dl_ch_magb0,300*nsymb,1,1);
   sleep(1);
   exit(-1);
+LOG_M_END
 }
 
 #if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR)
@@ -221,18 +234,17 @@ unsigned int get_tx_amp(int power_dBm, int power_max_dBm, int N_RB_UL, int nb_rb
 
 void dump_dlsch_ra(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t subframe)
 {
+LOG_M_BEGIN(DEBUG_UE_PHYPROC)
   unsigned int coded_bits_per_codeword;
-  uint8_t nsymb = ((ue->frame_parms.Ncp == 0) ? 14 : 12);
+  uint8_t nsymb ;
+
+
+  get_dumpparam(ue, proc, eNB_id,
+                ue->dlsch_SI[eNB_id]->harq_processes[0]->nb_rb,
+                ue->dlsch_SI[eNB_id]->harq_processes[0]->rb_alloc_even, 
+                subframe,2,1,0,
+                &nsymb, &coded_bits_per_codeword);
 
-  coded_bits_per_codeword = get_G(&ue->frame_parms,
-                                  ue->dlsch_ra[eNB_id]->harq_processes[0]->nb_rb,
-                                  ue->dlsch_ra[eNB_id]->harq_processes[0]->rb_alloc_even,
-                                  2,
-                                  1,
-                                  ue->pdcch_vars[0%RX_NB_TH][eNB_id]->num_pdcch_symbols,
-                                  proc->frame_rx,
-          subframe,
-          0);
   LOG_D(PHY,"[UE %d] Dumping dlsch_ra : nb_rb %d, mcs %d, nb_rb %d, num_pdcch_symbols %d,G %d\n",
         ue->Mod_id,
         ue->dlsch_ra[eNB_id]->harq_processes[0]->nb_rb,
@@ -255,6 +267,7 @@ void dump_dlsch_ra(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t s
 
   LOG_M("dlsch_mag1.m","dlschmag1",ue->pdsch_vars_ra[0]->dl_ch_mag0,300*nsymb,1,1);
   LOG_M("dlsch_mag2.m","dlschmag2",ue->pdsch_vars_ra[0]->dl_ch_magb0,300*nsymb,1,1);
+LOG_M_END
 }
 
 void phy_reset_ue(module_id_t Mod_id,uint8_t CC_id,uint8_t eNB_index)
@@ -349,11 +362,11 @@ void process_timing_advance_rar(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint16_t ti
   ue->timing_advance = timing_advance*4;
 
 
-#ifdef DEBUG_PHY_PROC
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
   /* TODO: fix this log, what is 'HW timing advance'? */
   /*LOG_I(PHY,"[UE %d] AbsoluteSubFrame %d.%d, received (rar) timing_advance %d, HW timing advance %d\n",ue->Mod_id,proc->frame_rx, proc->subframe_rx, ue->timing_advance);*/
   LOG_I(PHY,"[UE %d] AbsoluteSubFrame %d.%d, received (rar) timing_advance %d\n",ue->Mod_id,proc->frame_rx, proc->subframe_rx, ue->timing_advance);
-#endif
+LOG_DEBUG_END
 
 }
 
@@ -727,7 +740,7 @@ uint16_t get_n1_pucch(PHY_VARS_UE *ue,
   } else {
 
     bundling_flag = ue->pucch_config_dedicated[eNB_id].tdd_AckNackFeedbackMode;
-#ifdef DEBUG_PHY_PROC
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
 
     if (bundling_flag==bundling) {
       LOG_D(PHY,"[UE%d] Frame %d subframe %d : get_n1_pucch, bundling, SR %d/%d\n",ue->Mod_id,proc->frame_tx,subframe,SR,
@@ -737,7 +750,7 @@ uint16_t get_n1_pucch(PHY_VARS_UE *ue,
             ue->scheduling_request_config[eNB_id].sr_PUCCH_ResourceIndex);
     }
 
-#endif
+LOG_DEBUG_END
 
     switch (frame_parms->tdd_config) {
     case 1:  // DL:S:UL:UL:DL:DL:S:UL:UL:DL
@@ -1205,7 +1218,6 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt
 
   int nsymb;
   int subframe_tx = proc->subframe_tx;
-  int frame_tx = proc->frame_tx;
   int ulsch_start;
   int overflow=0;
 #if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR)
@@ -1214,9 +1226,9 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt
 #endif
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX_ULSCH_COMMON,VCD_FUNCTION_IN);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
   start_meas(&ue->ofdm_mod_stats);
-#endif
+LOG_DEBUG_END
   nsymb = (frame_parms->Ncp == 0) ? 14 : 12;
 
 #if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR)//this is the EXPRESS MIMO case
@@ -1237,10 +1249,8 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt
   ulsch_start = (frame_parms->samples_per_tti*subframe_tx)-ue->N_TA_offset; //-ue->timing_advance;
 #endif //else EXMIMO
 
-//#if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR)
   if (empty_subframe)
   {
-//#if 1
     overflow = ulsch_start - 9*frame_parms->samples_per_tti;
     for (aa=0; aa<frame_parms->nb_antennas_tx; aa++) {
       
@@ -1254,35 +1264,8 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt
 	  memset(&ue->common_vars.txdata[aa][ulsch_start],0,4*frame_parms->samples_per_tti);
 	}
     }
-    /*#else
-      overflow = ulsch_start - 9*frame_parms->samples_per_tti;
-      for (aa=0; aa<frame_parms->nb_antennas_tx; aa++) {
-      for (k=ulsch_start; k<cmin(frame_parms->samples_per_tti*LTE_NUMBER_OF_SUBFRAMES_PER_FRAME,ulsch_start+frame_parms->samples_per_tti); k++) {
-      ((short*)ue->common_vars.txdata[aa])[2*k] = 0;
-      ((short*)ue->common_vars.txdata[aa])[2*k+1] = 0;
-      }
-      
-      for (k=0; k<overflow; k++) {
-      ((short*)ue->common_vars.txdata[aa])[2*k] = 0;
-      ((short*)ue->common_vars.txdata[aa])[2*k+1] = 0;
-      }
-      }
-      #endif*/
     return;
   }
-//#endif
-
-/*
-    LOG_D(PHY,"[UE %d] Frame %d, subframe %d: ulsch_start = %d (rxoff %d, HW TA %d, timing advance %d, TA_offset %d, signal energy %d dB\n",
-	  ue->Mod_id,frame_tx,subframe_tx,
-	  ulsch_start,
-	  ue->rx_offset,
-	  ue->hw_timing_advance,
-	  ue->timing_advance,
-	  ue->N_TA_offset,
-	  dB_fixed(signal_energy(&ue->common_vars.txdataF[aa][subframe_tx*nsymb*frame_parms->ofdm_symbol_size],
-				 nsymb*frame_parms->ofdm_symbol_size)));
-*/
 
   for (aa=0; aa<frame_parms->nb_antennas_tx; aa++) {
     if (frame_parms->Ncp == 1)
@@ -1362,9 +1345,9 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt
 
   } //nb_antennas_tx
 
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
       stop_meas(&ue->ofdm_mod_stats);
-#endif
+LOG_DEBUG_END
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX_ULSCH_COMMON,VCD_FUNCTION_OUT);
 
@@ -1374,7 +1357,7 @@ void ue_prach_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
 
   int frame_tx = proc->frame_tx;
   int subframe_tx = proc->subframe_tx;
-  int prach_power;
+  LOG_USEDINLOG_VAR(int, prach_power);
   PRACH_RESOURCES_t prach_resources_local;
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX_PRACH, VCD_FUNCTION_IN);
@@ -1651,7 +1634,7 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
       }
 
 
-#if T_TRACER
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
     if(ue->ulsch[eNB_id]->o_ACK[0])
     {
     	LOG_I(PHY,"PUSCH ACK\n");
@@ -1664,19 +1647,17 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
         T(T_UE_PHY_DLSCH_UE_NACK, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx), T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->rnti),
                       T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->current_harq_pid));
     }
-#endif
-#ifdef UE_DEBUG_TRACE
       LOG_I(PHY,"[UE  %d][PDSCH %x] AbsSubFrame %d.%d Generating ACK (%d,%d) for %d bits on PUSCH\n",
         Mod_id,
         ue->ulsch[eNB_id]->rnti,
         frame_tx%1024,subframe_tx,
         ue->ulsch[eNB_id]->o_ACK[0],ue->ulsch[eNB_id]->o_ACK[1],
         ue->ulsch[eNB_id]->harq_processes[harq_pid]->O_ACK);
-#endif
+LOG_DEBUG_END
     }
 
 
-#ifdef UE_DEBUG_TRACE
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
         LOG_D(PHY,
               "[UE  %d][PUSCH %d] AbsSubframe %d.%d Generating PUSCH : first_rb %d, nb_rb %d, round %d, mcs %d, rv %d, "
               "cyclic_shift %d (cyclic_shift_common %d,n_DMRS2 %d,n_PRS %d), ACK (%d,%d), O_ACK %d, ack_status_cw0 %d ack_status_cw1 %d bundling %d, Nbundled %d, CQI %d, RI %d\n",
@@ -1698,7 +1679,7 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
           ue->ulsch[eNB_id]->bundling, Nbundled,
           cqi_status,
           ri_status);
-#endif
+LOG_DEBUG_END
 
 
 
@@ -1720,9 +1701,9 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
 	    ue->prach_resources[eNB_id]->Msg3[6],
 	    ue->prach_resources[eNB_id]->Msg3[7],
 	    ue->prach_resources[eNB_id]->Msg3[8]);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
       start_meas(&ue->ulsch_encoding_stats);
-#endif
+LOG_DEBUG_END
       
       AssertFatal(ulsch_encoding(ue->prach_resources[eNB_id]->Msg3,
 				 ue,
@@ -1732,14 +1713,12 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
 				 ue->transmission_mode[eNB_id],0,0)==0,
 		  "ulsch_coding.c: FATAL ERROR: returning\n");
       
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
       stop_meas(&ue->phy_proc_tx);
-      printf("------FULL TX PROC : %5.2f ------\n",ue->phy_proc_tx.p_time/(cpuf*1000.0));
-#endif
-
-#if UE_TIMING_TRACE
+      LOG_UI(PHY,"------FULL TX PROC : %5.2f ------\n",ue->phy_proc_tx.p_time/(cpuf*1000.0));
       stop_meas(&ue->ulsch_encoding_stats);
-#endif
+LOG_DEBUG_END
+
       if (ue->mac_enabled == 1) {
 
 	// signal MAC that Msg3 was sent
@@ -1773,16 +1752,14 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
       
 
 	
-#ifdef DEBUG_PHY_PROC
-#ifdef DEBUG_ULSCH
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
 	LOG_D(PHY,"[UE] Frame %d, subframe %d : ULSCH SDU (TX harq_pid %d)  (%d bytes) : \n",frame_tx,subframe_tx,harq_pid, ue->ulsch[eNB_id]->harq_processes[harq_pid]->TBS>>3);
 	
 	for (i=0; i<ue->ulsch[eNB_id]->harq_processes[harq_pid]->TBS>>3; i++)
 	  LOG_T(PHY,"%x.",ulsch_input_buffer[i]);
 	
 	LOG_T(PHY,"\n");
-#endif
-#endif
+LOG_DEBUG_END
       }
       else {
 	unsigned int taus(void);
@@ -1792,9 +1769,9 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
 	
       }
       
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
       start_meas(&ue->ulsch_encoding_stats);
-#endif
+LOG_DEBUG_END
       if (abstraction_flag==0) {
 	
 	if (ulsch_encoding(ulsch_input_buffer,
@@ -1806,16 +1783,16 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
 			   Nbundled)!=0) {
 	  LOG_E(PHY,"ulsch_coding.c: FATAL ERROR: returning\n");
 	  VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX, VCD_FUNCTION_OUT);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
 	  stop_meas(&ue->phy_proc_tx);
-#endif
+LOG_DEBUG_END
 	  return;
 	}
       }
       
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
       stop_meas(&ue->ulsch_encoding_stats);
-#endif
+LOG_DEBUG_END
     }
     
     if (abstraction_flag == 0) {
@@ -1840,14 +1817,13 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
     T(T_UE_PHY_PUSCH_TX_POWER, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx),T_INT(ue->tx_power_dBm[subframe_tx]),
       T_INT(tx_amp),T_INT(ue->ulsch[eNB_id]->f_pusch),T_INT(get_PL(Mod_id,0,eNB_id)),T_INT(nb_rb));
 
-#ifdef UE_DEBUG_TRACE
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
     LOG_D(PHY,"[UE  %d][PUSCH %d] AbsSubFrame %d.%d, generating PUSCH, Po_PUSCH: %d dBm (max %d dBm), amp %d\n",
 	  Mod_id,harq_pid,frame_tx%1024,subframe_tx,ue->tx_power_dBm[subframe_tx],ue->tx_power_max_dBm, tx_amp);
-#endif
-#if UE_TIMING_TRACE
-    
+LOG_DEBUG_END
+LOG_DEBUG_BEGIN(UE_TIMING)
     start_meas(&ue->ulsch_modulation_stats);
-#endif
+LOG_DEBUG_END
     ulsch_modulation(ue->common_vars.txdataF,
 		     tx_amp,
 		     frame_tx,
@@ -1863,9 +1839,10 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
 			 first_rb,
 			 nb_rb,
 			 aa);
-#if UE_TIMING_TRACE
+
+LOG_DEBUG_BEGIN(UE_TIMING)
     stop_meas(&ue->ulsch_modulation_stats);
-#endif
+LOG_DEBUG_END
 
     }
     
@@ -2196,12 +2173,10 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
 #else
     tx_amp = AMP;
 #endif
-#if T_TRACER
+
     T(T_UE_PHY_PUCCH_TX_POWER, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx),T_INT(ue->tx_power_dBm[subframe_tx]),
       T_INT(tx_amp),T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->g_pucch),T_INT(get_PL(ue->Mod_id,ue->CC_id,eNB_id)));
-#endif
     
-    //#ifdef UE_DEBUG_TRACE
       if(format == pucch_format1)
 	{
           LOG_D(PHY,"[UE  %d][SR %x] AbsSubframe %d.%d Generating PUCCH 1 (SR for PUSCH), an_srs_simultanous %d, shorten_pucch %d, n1_pucch %d, Po_PUCCH %d\n",
@@ -2242,9 +2217,9 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
                               tx_amp);
           }
       }
-      //#endif
 
-#if T_TRACER
+
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
       if(pucch_payload[0])
       {
           T(T_UE_PHY_DLSCH_UE_ACK, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx), T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->rnti),
@@ -2255,7 +2230,7 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
           T(T_UE_PHY_DLSCH_UE_NACK, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx), T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->rnti),
                   T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->current_harq_pid));
       }
-#endif
+LOG_DEBUG_END
 
       generate_pucch1x(ue->common_vars.txdataF,
 		       &ue->frame_parms,
@@ -2291,11 +2266,9 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
 #else
       tx_amp = AMP;
 #endif
-#if T_TRACER
       T(T_UE_PHY_PUCCH_TX_POWER, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx),T_INT(ue->tx_power_dBm[subframe_tx]),
               T_INT(tx_amp),T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->g_pucch),T_INT(get_PL(ue->Mod_id,ue->CC_id,eNB_id)));
-#endif
-#ifdef UE_DEBUG_TRACE
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
       LOG_D(PHY,"[UE  %d][RNTI %x] AbsSubFrame %d.%d Generating PUCCH 2 (RI or CQI), Po_PUCCH %d, isShortenPucch %d, amp %d\n",
               Mod_id,
               ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->rnti,
@@ -2303,7 +2276,7 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
               Po_PUCCH,
               isShortenPucch,
               tx_amp);
-#endif
+LOG_DEBUG_END
       generate_pucch2x(ue->common_vars.txdataF,
               &ue->frame_parms,
               ue->ncs_cell,
@@ -2376,14 +2349,14 @@ void phy_procedures_UE_TX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,ui
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX,VCD_FUNCTION_IN);
 
   LOG_D(PHY,"****** start TX-Chain for AbsSubframe %d.%d ******\n", frame_tx, subframe_tx);
-#if T_TRACER
+
   T(T_UE_PHY_UL_TICK, T_INT(ue->Mod_id), T_INT(frame_tx%1024), T_INT(subframe_tx));
-#endif
+
 
   ue->generate_ul_signal[eNB_id] = 0;
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
   start_meas(&ue->phy_proc_tx);
-#endif
+LOG_DEBUG_END
 
   ue->tx_power_dBm[subframe_tx]=-127;
 
@@ -2476,9 +2449,9 @@ void phy_procedures_UE_TX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,ui
   LOG_D(PHY,"****** end TX-Chain for AbsSubframe %d.%d ******\n", frame_tx, subframe_tx);
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX, VCD_FUNCTION_OUT);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
   stop_meas(&ue->phy_proc_tx);
-#endif
+LOG_DEBUG_END
 }
 
 void phy_procedures_UE_S_TX(PHY_VARS_UE *ue,uint8_t eNB_id,uint8_t abstraction_flag)
@@ -2531,7 +2504,7 @@ void ue_measurement_procedures(
 			  0,
 			  subframe_rx);
       
-#if T_TRACER
+
       if(slot == 0)
 	T(T_UE_PHY_MEAS, T_INT(eNB_id), T_INT(proc->frame_rx%1024), T_INT(proc->subframe_rx),
 	  T_INT((int)(10*log10(ue->measurements.rsrp[0])-ue->rx_total_gain_dB)),
@@ -2541,7 +2514,6 @@ void ue_measurement_procedures(
 	  T_INT((int)ue->measurements.n0_power_avg_dB),
 	  T_INT((int)ue->measurements.wideband_cqi_avg[0]),
 	  T_INT((int)ue->common_vars.freq_offset));
-#endif
   }
 
   if (l==(6-ue->frame_parms.Ncp)) {
@@ -2721,9 +2693,9 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin
 
     }
 
-#ifdef DEBUG_PHY_PROC
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
 
-    LOG_D(PHY,"[UE %d] frame %d, subframe %d, Received PBCH (MIB): nb_antenna_ports_eNB %d, tx_ant %d, frame_tx %d. N_RB_DL %d, phich_duration %d, phich_resource %d/6!\n",
+    LOG_UI(PHY,"[UE %d] frame %d, subframe %d, Received PBCH (MIB): nb_antenna_ports_eNB %d, tx_ant %d, frame_tx %d. N_RB_DL %d, phich_duration %d, phich_resource %d/6!\n",
 	  ue->Mod_id,
 	  frame_rx,
 	  subframe_rx,
@@ -2733,7 +2705,7 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin
 	  ue->frame_parms.N_RB_DL,
 	  ue->frame_parms.phich_config_common.phich_duration,
 	  ue->frame_parms.phich_config_common.phich_resource);
-#endif
+LOG_DEBUG_END
 
   } else { 
 
@@ -2770,12 +2742,12 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin
     ue->pbch_vars[eNB_id]->pdu_errors_last = ue->pbch_vars[eNB_id]->pdu_errors;
   }
 
-#ifdef DEBUG_PHY_PROC
-  LOG_D(PHY,"[UE %d] frame %d, slot %d, PBCH errors = %d, consecutive errors = %d!\n",
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
+  LOG_UI(PHY,"[UE %d] frame %d, slot %d, PBCH errors = %d, consecutive errors = %d!\n",
   ue->Mod_id,frame_rx, subframe_rx,
   ue->pbch_vars[eNB_id]->pdu_errors,
   ue->pbch_vars[eNB_id]->pdu_errors_conseq);
-#endif
+LOG_DEBUG_END
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_PBCH_PROCEDURES, VCD_FUNCTION_OUT);
 }
 
@@ -2795,9 +2767,9 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
 
   LOG_D(PHY,"DCI Decoding procedure in %d.%d\n",frame_rx,subframe_rx);
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_PDCCH_PROCEDURES, VCD_FUNCTION_IN);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
   start_meas(&ue->dlsch_rx_pdcch_stats);
-#endif
+LOG_DEBUG_END
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RX_PDCCH, VCD_FUNCTION_IN);
   rx_pdcch(ue,
@@ -2924,17 +2896,17 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
 	
 	ue->dlsch_received[eNB_id]++;
 	
-#ifdef DEBUG_PHY_PROC
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
 	LOG_D(PHY,"[UE  %d] Generated UE DLSCH C_RNTI format %d\n",ue->Mod_id,dci_alloc_rx[i].format);
 	dump_dci(&ue->frame_parms, &dci_alloc_rx[i]);
 	LOG_D(PHY,"[UE %d] *********** dlsch->active in subframe %d=> %d\n",ue->Mod_id,subframe_rx,ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->active);
-#endif
+LOG_DEBUG_END
 	
 	// we received a CRNTI, so we're in PUSCH
 	if (ue->UE_mode[eNB_id] != PUSCH) {
-#ifdef DEBUG_PHY_PROC
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
 	  LOG_D(PHY,"[UE  %d] Frame %d, subframe %d: Received DCI with CRNTI %x => Mode PUSCH\n",ue->Mod_id,frame_rx,subframe_rx,ue->pdcch_vars[subframe_rx&1][eNB_id]->crnti);
-#endif
+LOG_DEBUG_END
 	  
 	  //dump_dci(&ue->frame_parms, &dci_alloc_rx[i]);
 	  ue->UE_mode[eNB_id] = PUSCH;
@@ -2949,9 +2921,9 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
 	       ((dci_alloc_rx[i].format == format1A) || (dci_alloc_rx[i].format == format1C))) {
 
 
-#ifdef DEBUG_PHY_PROC
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
 	LOG_D(PHY,"[UE  %d] subframe %d: Found rnti %x, format 1%s, dci_cnt %d\n",ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,dci_alloc_rx[i].format==format1A?"A":"C",i);
-#endif
+LOG_DEBUG_END
 	
 	if (generate_ue_dlsch_params_from_dci(frame_rx,
 					      subframe_rx,
@@ -2980,9 +2952,9 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
     else if ((dci_alloc_rx[i].rnti == P_RNTI) &&
        ((dci_alloc_rx[i].format == format1A) || (dci_alloc_rx[i].format == format1C))) {
 
-#ifdef DEBUG_PHY_PROC
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
       LOG_D(PHY,"[UE  %d] subframe %d: Found rnti %x, format 1%s, dci_cnt %d\n",ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,dci_alloc_rx[i].format==format1A?"A":"C",i);
-#endif
+LOG_DEBUG_END
 
 
       if (generate_ue_dlsch_params_from_dci(frame_rx,
@@ -3012,9 +2984,9 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
        (dci_alloc_rx[i].rnti == ue->prach_resources[eNB_id]->ra_RNTI) &&
        (dci_alloc_rx[i].format == format1A)) {
 
-#ifdef DEBUG_PHY_PROC
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
       LOG_D(PHY,"[UE  %d][RAPROC] subframe %d: Found RA rnti %x, format 1A, dci_cnt %d\n",ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,i);
-#endif
+LOG_DEBUG_END
 
 
       if (generate_ue_dlsch_params_from_dci(frame_rx,
@@ -3035,18 +3007,18 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
 	
   ue->dlsch_ra_received[eNB_id]++;
 
-#ifdef DEBUG_PHY_PROC
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
   LOG_D(PHY,"[UE  %d] Generate UE DLSCH RA_RNTI format 1A, rb_alloc %x, dlsch_ra[eNB_id] %p\n",
         ue->Mod_id,ue->dlsch_ra[eNB_id]->harq_processes[0]->rb_alloc_even[0],ue->dlsch_ra[eNB_id]);
-#endif
+LOG_DEBUG_END
       }
     } else if( (dci_alloc_rx[i].rnti == ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->crnti) &&
 	       (dci_alloc_rx[i].format == format0)) {
 
-#ifdef DEBUG_PHY_PROC
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
       LOG_D(PHY,"[UE  %d][PUSCH] Frame %d subframe %d: Found rnti %x, format 0, dci_cnt %d\n",
       ue->Mod_id,frame_rx,subframe_rx,dci_alloc_rx[i].rnti,i);
-#endif
+LOG_DEBUG_END
 
       ue->ulsch_no_allocation_counter[eNB_id] = 0;
       //dump_dci(&ue->frame_parms,&dci_alloc_rx[i]);
@@ -3064,37 +3036,36 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
 					     CBA_RNTI,
 					     eNB_id,
 					     0)==0)) {
-#if T_TRACER
-    LTE_DL_FRAME_PARMS *frame_parms = &ue->frame_parms;
-    uint8_t harq_pid = subframe2harq_pid(frame_parms,
-                                 pdcch_alloc2ul_frame(frame_parms,proc->frame_rx,proc->subframe_rx),
-                                 pdcch_alloc2ul_subframe(frame_parms,proc->subframe_rx));
-
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
+   
+    LOG_USEDINLOG_VAR(int8_t,harq_pid) = subframe2harq_pid(&ue->frame_parms,
+                              pdcch_alloc2ul_frame(&ue->frame_parms,proc->frame_rx,proc->subframe_rx),
+                              pdcch_alloc2ul_subframe(&ue->frame_parms,proc->subframe_rx));
     T(T_UE_PHY_ULSCH_UE_DCI, T_INT(eNB_id), T_INT(proc->frame_rx%1024), T_INT(proc->subframe_rx),
-      T_INT(dci_alloc_rx[i].rnti), T_INT(harq_pid),
+      T_INT(dci_alloc_rx[i].rnti), 
+      T_INT(harq_pid),
       T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->mcs),
       T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->round),
       T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->first_rb),
       T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->nb_rb),
       T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->TBS));
-#endif
-#ifdef DEBUG_PHY_PROC
+
       LOG_D(PHY,"[UE  %d] Generate UE ULSCH C_RNTI format 0 (subframe %d)\n",ue->Mod_id,subframe_rx);
-#endif
+LOG_DEBUG_END
 
       }
     } else if( (dci_alloc_rx[i].rnti == ue->ulsch[eNB_id]->cba_rnti[0]) &&
          (dci_alloc_rx[i].format == format0)) {
       // UE could belong to more than one CBA group
       // ue->Mod_id%ue->ulsch[eNB_id]->num_active_cba_groups]
-#ifdef DEBUG_PHY_PROC
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
       LOG_D(PHY,"[UE  %d][PUSCH] Frame %d subframe %d: Found cba rnti %x, format 0, dci_cnt %d\n",
       ue->Mod_id,frame_rx,subframe_rx,dci_alloc_rx[i].rnti,i);
       /*
   if (((frame_rx%100) == 0) || (frame_rx < 20))
   dump_dci(&ue->frame_parms, &dci_alloc_rx[i]);
       */
-#endif
+LOG_DEBUG_END
 
       ue->ulsch_no_allocation_counter[eNB_id] = 0;
       //dump_dci(&ue->frame_parms,&dci_alloc_rx[i]);
@@ -3113,28 +3084,28 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
                eNB_id,
                0)==0)) {
 
-#ifdef DEBUG_PHY_PROC
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
   LOG_D(PHY,"[UE  %d] Generate UE ULSCH CBA_RNTI format 0 (subframe %d)\n",ue->Mod_id,subframe_rx);
-#endif
+LOG_DEBUG_END
   ue->ulsch[eNB_id]->num_cba_dci[(subframe_rx+4)%10]++;
       }
     }
 
     else {
-#ifdef DEBUG_PHY_PROC
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
       LOG_D(PHY,"[UE  %d] frame %d, subframe %d: received DCI %d with RNTI=%x (C-RNTI:%x, CBA_RNTI %x) and format %d!\n",ue->Mod_id,frame_rx,subframe_rx,i,dci_alloc_rx[i].rnti,
 	    ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->crnti,
 	    ue->ulsch[eNB_id]->cba_rnti[0],
 	    dci_alloc_rx[i].format);
 
       //      dump_dci(&ue->frame_parms, &dci_alloc_rx[i]);
-#endif
+LOG_DEBUG_END
     }
 
   }
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
   stop_meas(&ue->dlsch_rx_pdcch_stats);
-#endif
+LOG_DEBUG_END
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_PDCCH_PROCEDURES, VCD_FUNCTION_OUT);
   return(0);
 }
@@ -3236,14 +3207,14 @@ void ue_pmch_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc,int eNB_id,int abs
 	      ue->dlsch_MCH[0]->max_turbo_iterations,
 	      ue->dlsch_MCH[0]->harq_processes[0]->G);
 	dump_mch(ue,0,ue->dlsch_MCH[0]->harq_processes[0]->G,subframe_rx);
-#ifdef DEBUG_DLSCH
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
 	
 	for (int i=0; i<ue->dlsch_MCH[0]->harq_processes[0]->TBS>>3; i++) {
 	  LOG_T(PHY,"%02x.",ue->dlsch_MCH[0]->harq_processes[0]->c[0][i]);
 	}
 	
 	LOG_T(PHY,"\n");
-#endif
+LOG_DEBUG_END
 	
 	
 	//	if (subframe_rx==9)
@@ -3373,12 +3344,13 @@ void ue_pdsch_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, int eNB_id, PDSC
           first_symbol_flag = 1;
       else
           first_symbol_flag = 0;
-#if UE_TIMING_TRACE
+
+LOG_DEBUG_BEGIN(UE_TIMING)
       uint8_t slot = 0;
       if(m >= ue->frame_parms.symbols_per_tti>>1)
         slot = 1;
       start_meas(&ue->dlsch_llr_stats_parallelization[ue->current_thread_id[subframe_rx]][slot]);
-#endif
+LOG_DEBUG_END
       // process DLSCH received in first slot
       rx_pdsch(ue,
 	       pdsch,
@@ -3391,14 +3363,14 @@ void ue_pdsch_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, int eNB_id, PDSC
 	       dual_stream_UE,
 	       i_mod,
 	       dlsch0->current_harq_pid);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
+      uint8_t slot = 0;
+      if(m >= ue->frame_parms.symbols_per_tti>>1)
+        slot = 1;
       stop_meas(&ue->dlsch_llr_stats_parallelization[ue->current_thread_id[subframe_rx]][slot]);
-#if DISABLE_LOG_X
-    printf("[AbsSFN %d.%d] LLR Computation Symbol %d %5.2f \n",proc->frame_rx,subframe_rx,m,ue->dlsch_llr_stats_parallelization[ue->current_thread_id[subframe_rx]][slot].p_time/(cpuf*1000.0));
-#else
-    LOG_D(PHY, "[AbsSFN %d.%d] LLR Computation Symbol %d %5.2f \n",proc->frame_rx,subframe_rx,m,ue->dlsch_llr_stats_parallelization[ue->current_thread_id[subframe_rx]][slot].p_time/(cpuf*1000.0));
-#endif
-#endif
+      LOG_UI(PHY, "[AbsSFN %d.%d] LLR Computation Symbol %d %5.2f \n",proc->frame_rx,subframe_rx,m,ue->dlsch_llr_stats_parallelization[ue->current_thread_id[subframe_rx]][slot].p_time/(cpuf*1000.0));
+LOG_DEBUG_END
+
 
 
       if(first_symbol_flag)
@@ -3592,9 +3564,9 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
 						  frame_rx,
 						  subframe_rx,
 						  ue->transmission_mode[eNB_id]<7?0:ue->transmission_mode[eNB_id]);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
       start_meas(&ue->dlsch_unscrambling_stats);
-#endif
+LOG_DEBUG_END
       dlsch_unscrambling(&ue->frame_parms,
 			 0,
 			 dlsch0,
@@ -3602,9 +3574,9 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
 			 pdsch_vars->llr[0],
 			 0,
 			 subframe_rx<<1);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
       stop_meas(&ue->dlsch_unscrambling_stats);
-#endif
+LOG_DEBUG_END
       
       LOG_D(PHY," ------ start turbo decoder for AbsSubframe %d.%d / %d  ------  \n", frame_rx, subframe_rx, harq_pid);
       LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> nb_rb %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->nb_rb);
@@ -3615,9 +3587,9 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
       LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d  --> Kmimo  %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->Kmimo);
       LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d  --> Pdcch Sym  %d \n", frame_rx, subframe_rx, harq_pid, ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->num_pdcch_symbols);
       
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
       start_meas(&ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]]);
-#endif
+LOG_DEBUG_END
       ret = dlsch_decoding(ue,
 			   pdsch_vars->llr[0],
 			   &ue->frame_parms,
@@ -3629,21 +3601,14 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
 			   pdsch==PDSCH?1:0,
 			   dlsch0->harq_processes[harq_pid]->TBS>256?1:0);
       
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
       stop_meas(&ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]]);
-#if DISABLE_LOG_X
-      printf(" --> Unscrambling for CW0 %5.3f\n",
-	     (ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0));
-      printf("AbsSubframe %d.%d --> Turbo Decoding for CW0 %5.3f\n",
-	     frame_rx%1024, subframe_rx,(ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]].p_time)/(cpuf*1000.0));
-#else
-      LOG_D(PHY, " --> Unscrambling for CW0 %5.3f\n",
+      LOG_UI(PHY, " --> Unscrambling for CW0 %5.3f\n",
 	    (ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0));
-      LOG_D(PHY, "AbsSubframe %d.%d --> Turbo Decoding for CW0 %5.3f\n",
+      LOG_UI(PHY, "AbsSubframe %d.%d --> Turbo Decoding for CW0 %5.3f\n",
 	    frame_rx%1024, subframe_rx,(ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]].p_time)/(cpuf*1000.0));
-#endif
       
-#endif
+LOG_DEBUG_END
       if(is_cw1_active)
 	{
           // start turbo decode for CW 1
@@ -3656,9 +3621,9 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
 						      frame_rx,
 						      subframe_rx,
 						      ue->transmission_mode[eNB_id]<7?0:ue->transmission_mode[eNB_id]);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
           start_meas(&ue->dlsch_unscrambling_stats);
-#endif
+LOG_DEBUG_END
           dlsch_unscrambling(&ue->frame_parms,
 			     0,
 			     dlsch1,
@@ -3666,9 +3631,9 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
 			     pdsch_vars->llr[1],
 			     1,
 			     subframe_rx<<1);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
           stop_meas(&ue->dlsch_unscrambling_stats);
-#endif
+LOG_DEBUG_END
 	  
           LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> nb_rb %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->nb_rb);
           LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d  --> rb_alloc_even %x \n", frame_rx, subframe_rx, harq_pid, (uint16_t)((intptr_t)dlsch1->harq_processes[harq_pid]->rb_alloc_even));
@@ -3678,9 +3643,9 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
           LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d  --> Kmimo  %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->Kmimo);
           LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d  --> Pdcch Sym  %d \n", frame_rx, subframe_rx, harq_pid, ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->num_pdcch_symbols);
 	  
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
           start_meas(&ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]]);
-#endif
+LOG_DEBUG_END
 	  
           ret1 = dlsch_decoding(ue,
 				pdsch_vars->llr[1],
@@ -3693,21 +3658,14 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
 				pdsch==PDSCH?1:0,
 				dlsch1->harq_processes[harq_pid]->TBS>256?1:0);
 	  
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
           stop_meas(&ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]]);
-#if DISABLE_LOG_X
-          printf(" --> Unscrambling for CW1 %5.3f\n",
-		 (ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0));
-          printf("AbsSubframe %d.%d --> Turbo Decoding for CW1 %5.3f\n",
-		 frame_rx%1024, subframe_rx,(ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]].p_time)/(cpuf*1000.0));
-#else
-          LOG_D(PHY, " --> Unscrambling for CW1 %5.3f\n",
+          LOG_UI(PHY, " --> Unscrambling for CW1 %5.3f\n",
 		(ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0));
-          LOG_D(PHY, "AbsSubframe %d.%d --> Turbo Decoding for CW1 %5.3f\n",
+          LOG_UI(PHY, "AbsSubframe %d.%d --> Turbo Decoding for CW1 %5.3f\n",
 		frame_rx%1024, subframe_rx,(ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]].p_time)/(cpuf*1000.0));
-#endif
-	  
-#endif
+LOG_DEBUG_END
+
           LOG_D(PHY,"AbsSubframe %d.%d --> Turbo Decoding for CW1 %5.3f\n",
 		frame_rx%1024, subframe_rx,(ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]].p_time)/(cpuf*1000.0));
 	}
@@ -3745,7 +3703,7 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
             dlsch0->harq_processes[harq_pid]->TBS);
         }
 
-#ifdef DEBUG_DLSCH
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
       int j;
       LOG_D(PHY,"dlsch harq_pid %d (rx): \n",dlsch0->current_harq_pid);
 
@@ -3753,7 +3711,7 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
   LOG_T(PHY,"%x.",dlsch0->harq_processes[dlsch0->current_harq_pid]->b[j]);
 
       LOG_T(PHY,"\n");
-#endif
+LOG_DEBUG_END
 
 
       if (ue->mac_enabled == 1) {
@@ -3846,7 +3804,7 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
         }
       }
     
-#ifdef DEBUG_PHY_PROC
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
     LOG_D(PHY,"[UE  %d][PDSCH %x/%d] Frame %d subframe %d: PDSCH/DLSCH decoding iter %d (mcs %d, rv %d, TBS %d)\n",
 	  ue->Mod_id,
 	  dlsch0->rnti,harq_pid,
@@ -3865,7 +3823,7 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
 	    ue->measurements.wideband_cqi_tot[eNB_id]);
     }
     
-#endif
+LOG_DEBUG_END
     
   }
   
@@ -3951,9 +3909,9 @@ void *UE_thread_slot1_dl_processing(void *arg) {
         }
 
         /**** Slot1 FE Processing ****/
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
         start_meas(&ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][1]);
-#endif
+LOG_DEBUG_END
         // I- start dl slot1 processing
         // do first symbol of next downlink subframe for channel estimation
         /*
@@ -3978,9 +3936,9 @@ void *UE_thread_slot1_dl_processing(void *arg) {
         {
             //if( (l != pilot0) && (l != pilot1))
             {
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
                 start_meas(&ue->ofdm_demod_stats);
-#endif
+LOG_DEBUG_END
                 VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_IN);
                 //printf("AbsSubframe %d.%d FFT slot %d, symbol %d\n", frame_rx,subframe_rx,slot1,l);
                 front_end_fft(ue,
@@ -3989,9 +3947,9 @@ void *UE_thread_slot1_dl_processing(void *arg) {
                         0,
                         0);
                 VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_OUT);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
                 stop_meas(&ue->ofdm_demod_stats);
-#endif
+LOG_DEBUG_END
             }
         } // for l=1..l2
 
@@ -4044,15 +4002,11 @@ void *UE_thread_slot1_dl_processing(void *arg) {
         //printf(" [slot1 dl processing] ==> Start LLR Comuptation slot1 for AbsSubframe %d.%d \n", proc->frame_rx, proc->subframe_rx);
 
 
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
         stop_meas(&ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][1]);
-#if DISABLE_LOG_X
-        printf("[AbsSFN %d.%d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][1].p_time/(cpuf*1000.0));
-#else
-        LOG_D(PHY, "[AbsSFN %d.%d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][1].p_time/(cpuf*1000.0));
-#endif
+        LOG_UI(PHY, "[AbsSFN %d.%d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][1].p_time/(cpuf*1000.0));
 
-#endif
+LOG_DEBUG_END
 
 
     //wait until pdcch is decoded
@@ -4071,9 +4025,9 @@ void *UE_thread_slot1_dl_processing(void *arg) {
     //printf("AbsSubframe %d.%d Pdsch Procedure (slot1)\n",frame_rx,subframe_rx);
 
 
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
     start_meas(&ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][1]);
-#endif
+LOG_DEBUG_END
     // start slave thread for Pdsch Procedure (slot1)
     // do procedures for C-RNTI
     uint8_t eNB_id = 0;
@@ -4143,14 +4097,10 @@ void *UE_thread_slot1_dl_processing(void *arg) {
     proc->llr_slot1_available=1;
     //printf("Set available LLR slot1 to 1 AbsSubframe %d.%d \n",frame_rx,subframe_rx);
 
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
     stop_meas(&ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][1]);
-#if DISABLE_LOG_X
-    printf("[AbsSFN %d.%d] Slot1: LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][1].p_time/(cpuf*1000.0));
-#else
-    LOG_D(PHY, "[AbsSFN %d.%d] Slot1: LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][1].p_time/(cpuf*1000.0));
-#endif
-#endif
+    LOG_UI(PHY, "[AbsSFN %d.%d] Slot1: LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][1].p_time/(cpuf*1000.0));
+LOG_DEBUG_END
 
 
         if (pthread_mutex_lock(&proc->mutex_slot1_dl_processing) != 0) {
@@ -4185,23 +4135,23 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr
 
     VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX, VCD_FUNCTION_IN);
 
-#if T_TRACER
+
     T(T_UE_PHY_DL_TICK, T_INT(ue->Mod_id), T_INT(frame_rx%1024), T_INT(subframe_rx));
 
     T(T_UE_PHY_INPUT_SIGNAL, T_INT(ue->Mod_id), T_INT(frame_rx%1024), T_INT(subframe_rx), T_INT(0),
             T_BUFFER(&ue->common_vars.rxdata[0][subframe_rx*ue->frame_parms.samples_per_tti],
                     ue->frame_parms.samples_per_tti * 4));
-#endif
+
 
     // start timers
-#ifdef UE_DEBUG_TRACE
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
     LOG_D(PHY," ****** start RX-Chain for AbsSubframe %d.%d ******  \n", frame_rx%1024, subframe_rx);
-#endif
+LOG_DEBUG_END
 
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
     start_meas(&ue->phy_proc_rx[ue->current_thread_id[subframe_rx]]);
     start_meas(&ue->ue_front_end_stat[ue->current_thread_id[subframe_rx]]);
-#endif
+LOG_DEBUG_END
 
     pmch_flag = is_pmch_subframe(frame_rx,subframe_rx,&ue->frame_parms) ? 1 : 0;
 
@@ -4220,10 +4170,10 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr
             ue->dlsch_ra[eNB_id]->active = 0;
     }
 
-#ifdef DEBUG_PHY_PROC
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
     LOG_D(PHY,"[UE %d] Frame %d subframe %d: Doing phy_procedures_UE_RX\n",
                     ue->Mod_id,frame_rx, subframe_rx);
-#endif
+LOG_DEBUG_END
 
 
 
@@ -4297,9 +4247,9 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr
 
     /**** Slot0 FE Processing ****/
     // I- start main thread for FFT/ChanEst symbol: 0/1 --> 7
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
     start_meas(&ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0]);
-#endif
+LOG_DEBUG_END
     // 1- perform FFT for pilot ofdm symbols first (ofdmSym7 ofdmSym4 or (ofdmSym6 ofdmSym3))
     //printf("AbsSubframe %d.%d FFT slot %d, symbol %d\n", frame_rx,subframe_rx,slot1,pilot0);
     front_end_fft(ue,
@@ -4332,9 +4282,9 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr
         if( (l != pilot0) && (l != pilot1))
         {
             //printf("AbsSubframe %d.%d FFT slot %d, symbol %d\n", frame_rx,subframe_rx,slot0,l);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
             start_meas(&ue->ofdm_demod_stats);
-#endif
+LOG_DEBUG_END
             VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_IN);
             front_end_fft(ue,
                     l,
@@ -4342,9 +4292,9 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr
                     0,
                     0);
             VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_OUT);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
             stop_meas(&ue->ofdm_demod_stats);
-#endif
+LOG_DEBUG_END
         }
     } // for l=1..l2
 
@@ -4363,44 +4313,32 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr
     }
 
     if (do_pdcch_flag) {
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
         start_meas(&ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]]);
-#endif
+LOG_DEBUG_END
         if (ue_pdcch_procedures(eNB_id,ue,proc,abstraction_flag) == -1) {
             LOG_E(PHY,"[UE  %d] Frame %d, subframe %d: Error in pdcch procedures\n",ue->Mod_id,frame_rx,subframe_rx);
-#if UE_TIMING_TRACE
-            stop_meas(&ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]]);
-#if DISABLE_LOG_X
-            printf("[AbsSFN %d.%d] Slot0: PDCCH %5.2f \n",frame_rx,subframe_rx,ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-#else
-            LOG_D(PHY, "[AbsSFN %d.%d] Slot0: PDCCH %5.2f \n",frame_rx,subframe_rx,ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-#endif
-#endif
+LOG_DEBUG_BEGIN(UE_TIMING)
+            LOG_UI(PHY, "[AbsSFN %d.%d] Slot0: PDCCH %5.2f \n",frame_rx,subframe_rx,ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
+LOG_DEBUG_END
+
             //proc->dci_slot0_available = 1;
             return(-1);
         }
         //proc->dci_slot0_available=1;
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
         stop_meas(&ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]]);
-#if DISABLE_LOG_X
-        printf("[AbsSFN %d.%d] Slot0: PDCCH %5.2f \n",frame_rx,subframe_rx,ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-#else
-        LOG_D(PHY, "[AbsSFN %d.%d] Slot0: PDCCH %5.2f \n",frame_rx,subframe_rx,ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-#endif
-#endif
+        LOG_UI(PHY, "[AbsSFN %d.%d] Slot0: PDCCH %5.2f \n",frame_rx,subframe_rx,ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
+LOG_DEBUG_END
     }
 
     //printf("num_pdcch_symbols %d\n",ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->num_pdcch_symbols);
 
     // first slot has been processed (FFTs + Channel Estimation, PCFICH/PHICH/PDCCH)
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
     stop_meas(&ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0]);
-#if DISABLE_LOG_X
-    printf("[AbsSFN %d.%d] Slot0: FFT + Channel Estimate + PCFICH/PHICH/PDCCH %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0));
-#else
-    LOG_D(PHY, "[AbsSFN %d.%d] Slot0: FFT + Channel Estimate + PCFICH/PHICH/PDCCH %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0));
-#endif
-#endif
+    LOG_UI(PHY, "[AbsSFN %d.%d] Slot0: FFT + Channel Estimate + PCFICH/PHICH/PDCCH %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0));
+LOG_DEBUG_END
 
     //wait until slot1 FE is done
     uint32_t wait = 0;
@@ -4410,14 +4348,10 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr
         wait++;
     }
 
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
     stop_meas(&ue->ue_front_end_stat[ue->current_thread_id[subframe_rx]]);
-#if DISABLE_LOG_X
-    printf("[AbsSFN %d.%d] FULL FE Processing %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0));
-#else
-    LOG_D(PHY, "[AbsSFN %d.%d] FULL FE Processing %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0));
-#endif
-#endif
+    LOG_UI(PHY, "[AbsSFN %d.%d] FULL FE Processing %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0));
+LOG_DEBUG_END
     /**** End Subframe FE Processing ****/
 
 
@@ -4431,13 +4365,13 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr
     //printf("AbsSubframe %d.%d Pdsch Procedure (slot0)\n",frame_rx%1024,subframe_rx);
     //printf("AbsSubframe %d.%d Pdsch Procedure PDSCH Active %d \n",frame_rx%1024,subframe_rx, ue->dlsch[ue->current_thread_id[subframe_rx]][0][0]->active);
 
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
     start_meas(&ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
-#endif
+LOG_DEBUG_END
 
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
     start_meas(&ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][0]);
-#endif
+LOG_DEBUG_END
     if (ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->active == 1) {
         VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_IN);
         ue_pdsch_procedures(ue,
@@ -4498,20 +4432,15 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr
         VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_RA, VCD_FUNCTION_OUT);
     }
 
-#if 1
     // LLR linear
     proc->dci_slot0_available=1;
     //printf("Set available dci slot0 to 1 AbsSubframe %d.%d \n",frame_rx%1024,subframe_rx);
-#endif
 
-#if UE_TIMING_TRACE
+
+LOG_DEBUG_BEGIN(UE_TIMING)
     stop_meas(&ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][0]);
-#if DISABLE_LOG_X
-    printf("[AbsSFN %d.%d] Slot0: LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0));
-#else
-    LOG_D(PHY, "[AbsSFN %d.%d] Slot0: LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0));
-#endif
-#endif
+    LOG_UI(PHY, "[AbsSFN %d.%d] Slot0: LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0));
+LOG_DEBUG_END
 
 
     //wait until LLR Slot1 is done
@@ -4524,21 +4453,16 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr
 
 
 
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
     stop_meas(&ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
-#if DISABLE_LOG_X
-    printf("[AbsSFN %d.%d] Full LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-#else
-    LOG_D(PHY, "[AbsSFN %d.%d] Full LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-#endif
-#endif
-    //printf("[slot0 dl processing] AbsSubframe %d.%d Channel Decoder Start wait %d\n",frame_rx,subframe_rx,wait);
+    LOG_UI(PHY, "[AbsSFN %d.%d] Full LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
+LOG_DEBUG_END
 
 
     //=====================================================================//
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
     start_meas(&ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
-#endif
+LOG_DEBUG_END
 
     LOG_D(PHY,"==> Start Turbo Decoder active dlsch %d SI %d RA %d \n",ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->active,
     		ue->dlsch_SI[eNB_id]->active,
@@ -4600,15 +4524,10 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr
         ue->dlsch_ra[eNB_id]->active = 0;
     }
 
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
         stop_meas(&ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
-#if DISABLE_LOG_X
-        printf("[AbsSFN %d.%d] Channel Decoder: %5.2f \n",frame_rx,subframe_rx,ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-#else
-        LOG_D(PHY, "[AbsSFN %d.%d] Channel Decoder: %5.2f \n",frame_rx,subframe_rx,ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-#endif
-
-#endif
+        LOG_UI(PHY, "[AbsSFN %d.%d] Channel Decoder: %5.2f \n",frame_rx,subframe_rx,ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
+LOG_DEBUG_END
 
         // duplicate harq structure
         uint8_t          current_harq_pid        = ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->current_harq_pid;
@@ -4668,19 +4587,15 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr
 
     VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX, VCD_FUNCTION_OUT);
 
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
     stop_meas(&ue->phy_proc_rx[ue->current_thread_id[subframe_rx]]);
-#if DISABLE_LOG_X
-    printf("------FULL RX PROC [AbsSFN %d.%d]: %5.2f ------\n",frame_rx,subframe_rx,ue->phy_proc_rx[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-#else
-    LOG_D(PHY, "------FULL RX PROC [AbsSFN %d.%d]: %5.2f ------\n",frame_rx,subframe_rx,ue->phy_proc_rx[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-#endif
-#endif
+    LOG_UI(PHY, "------FULL RX PROC [AbsSFN %d.%d]: %5.2f ------\n",frame_rx,subframe_rx,ue->phy_proc_rx[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
+LOG_DEBUG_END
 
     LOG_D(PHY," ****** end RX-Chain  for AbsSubframe %d.%d ******  \n", frame_rx%1024, subframe_rx);
     return (0);
 }
-#endif
+#endif /*UE_SLOT_PARALLELISATION */
 
 
 void phy_procedures_UE_SL_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc) {
@@ -4702,23 +4617,23 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX, VCD_FUNCTION_IN);
 
-#if T_TRACER
+
   T(T_UE_PHY_DL_TICK, T_INT(ue->Mod_id), T_INT(frame_rx%1024), T_INT(subframe_rx));
 
   T(T_UE_PHY_INPUT_SIGNAL, T_INT(ue->Mod_id), T_INT(frame_rx%1024), T_INT(subframe_rx), T_INT(0),
     T_BUFFER(&ue->common_vars.rxdata[0][subframe_rx*ue->frame_parms.samples_per_tti],
              ue->frame_parms.samples_per_tti * 4));
-#endif
+
 
   // start timers
-#ifdef UE_DEBUG_TRACE
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
   LOG_I(PHY," ****** start RX-Chain for AbsSubframe %d.%d ******  \n", frame_rx%1024, subframe_rx);
-#endif
+LOG_DEBUG_END
 
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
   start_meas(&ue->phy_proc_rx[ue->current_thread_id[subframe_rx]]);
   start_meas(&ue->generic_stat);
-#endif
+LOG_DEBUG_END
 
   pmch_flag = is_pmch_subframe(frame_rx,subframe_rx,&ue->frame_parms) ? 1 : 0;
 
@@ -4737,10 +4652,10 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
     ue->dlsch_ra[eNB_id]->active = 0;
   }
 
-#ifdef DEBUG_PHY_PROC
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
   LOG_D(PHY,"[UE %d] Frame %d subframe %d: Doing phy_procedures_UE_RX\n",
   ue->Mod_id,frame_rx, subframe_rx);
-#endif
+LOG_DEBUG_END
 
   if (ue->frame_parms.Ncp == 0) {  // normal prefix
     pilot1 = 4;
@@ -4774,9 +4689,9 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
   LOG_D(PHY," ------  --> FFT/ChannelEst/PDCCH slot 0: AbsSubframe %d.%d ------  \n", frame_rx%1024, subframe_rx);
   for (; l<=l2; l++) {
     if (abstraction_flag == 0) {
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
         start_meas(&ue->ofdm_demod_stats);
-#endif
+LOG_DEBUG_END
       VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_IN);
       slot_fep(ue,
          l,
@@ -4785,9 +4700,9 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
          0,
          0);
       VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_OUT);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
       stop_meas(&ue->ofdm_demod_stats);
-#endif
+LOG_DEBUG_END
     }
 
     ue_measurement_procedures(l-1,ue,proc,eNB_id,(subframe_rx<<1),abstraction_flag,mode);
@@ -4828,20 +4743,16 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
      0);
 
   // first slot has been processed (FFTs + Channel Estimation, PCFICH/PHICH/PDCCH)
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
   stop_meas(&ue->generic_stat);
-#if DISABLE_LOG_X
-  printf("[SFN %d] Slot0: FFT + Channel Estimate + PCFICH/PHICH/PDCCH %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0));
-#else
-  LOG_D(PHY, "[SFN %d] Slot0: FFT + Channel Estimate + PCFICH/PHICH/PDCCH %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0));
-#endif
+  LOG_UI(PHY, "[SFN %d] Slot0: FFT + Channel Estimate + PCFICH/PHICH/PDCCH %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0));
+LOG_DEBUG_END
 
-#endif
 
   LOG_D(PHY," ------ --> PDSCH ChannelComp/LLR slot 0: AbsSubframe %d.%d ------  \n", frame_rx%1024, subframe_rx);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
   start_meas(&ue->generic_stat);
-#endif
+LOG_DEBUG_END
   // do procedures for C-RNTI
   if (ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->active == 1) {
     VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_IN);
@@ -4911,9 +4822,9 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
   if (subframe_select(&ue->frame_parms,subframe_rx) != SF_S) {  // do front-end processing for second slot, and first symbol of next subframe
     for (l=1; l<ue->frame_parms.symbols_per_tti>>1; l++) {
       if (abstraction_flag == 0) {
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
           start_meas(&ue->ofdm_demod_stats);
-#endif
+LOG_DEBUG_END
 	VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_IN);
 	slot_fep(ue,
 		 l,
@@ -4922,9 +4833,9 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
 		 0,
 		 0);
 	VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_OUT);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
     stop_meas(&ue->ofdm_demod_stats);
-#endif
+LOG_DEBUG_END
       }
 
       ue_measurement_procedures(l-1,ue,proc,eNB_id,1+(subframe_rx<<1),abstraction_flag,mode);
@@ -4943,15 +4854,10 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
          0);
     }
   } // not an S-subframe
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
   stop_meas(&ue->generic_stat);
-#if DISABLE_LOG_X
-  printf("[SFN %d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0));
-#else
-  LOG_D(PHY, "[SFN %d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0));
-#endif
-
-#endif
+  LOG_UI(PHY, "[SFN %d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0));
+LOG_DEBUG_END
 
   LOG_D(PHY," ------  end FFT/ChannelEst/PDCCH slot 1: AbsSubframe %d.%d ------  \n", frame_rx%1024, subframe_rx);
 
@@ -4966,9 +4872,9 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
   LOG_D(PHY," ------ --> PDSCH ChannelComp/LLR slot 0: AbsSubframe %d.%d ------  \n", frame_rx%1024, subframe_rx);
   if (ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->active == 1) {
     VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_IN);
-#if UE_TIMING_TRACE
-    start_meas(&ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]);
-#endif
+LOG_DEBUG_BEGIN(UE_TIMING)
+    start_meas(&ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
+LOG_DEBUG_END
     ue_pdsch_procedures(ue,
 			proc,
 			eNB_id,
@@ -4980,10 +4886,10 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
 			abstraction_flag);
     LOG_D(PHY," ------ end PDSCH ChannelComp/LLR slot 0: AbsSubframe %d.%d ------  \n", frame_rx%1024, subframe_rx);
     LOG_D(PHY," ------ --> PDSCH Turbo Decoder slot 0/1: AbsSubframe %d.%d ------  \n", frame_rx%1024, subframe_rx);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
     stop_meas(&ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
     start_meas(&ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
-#endif
+LOG_DEBUG_END
     ue_dlsch_procedures(ue,
 			proc,
 			eNB_id,
@@ -4993,26 +4899,20 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
 			&ue->dlsch_errors[eNB_id],
 			mode,
 			abstraction_flag);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
     stop_meas(&ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
-#if DISABLE_LOG_X
-    printf("[SFN %d] Slot1:       Pdsch Proc %5.2f\n",subframe_rx,ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-    printf("[SFN %d] Slot0 Slot1: Dlsch Proc %5.2f\n",subframe_rx,ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-#else
-    LOG_D(PHY, "[SFN %d] Slot1:       Pdsch Proc %5.2f\n",subframe_rx,ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-    LOG_D(PHY, "[SFN %d] Slot0 Slot1: Dlsch Proc %5.2f\n",subframe_rx,ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-#endif
-
-#endif
+    LOG_UI(PHY, "[SFN %d] Slot1:       Pdsch Proc %5.2f\n",subframe_rx,ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
+    LOG_UI(PHY, "[SFN %d] Slot0 Slot1: Dlsch Proc %5.2f\n",subframe_rx,ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
+LOG_DEBUG_END
 
     VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_OUT);
 
   }
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
   start_meas(&ue->generic_stat);
-#endif
+LOG_DEBUG_END
 
-#if 0
+LOG_M_BEGIN(DEBUG_UE_PHYPROC)
   if(subframe_rx==5 &&  ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->harq_processes[ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->current_harq_pid]->nb_rb > 20){
        //LOG_M("decoder_llr.m","decllr",dlsch_llr,G,1,0);
        //LOG_M("llr.m","llr",  &ue->pdsch_vars[eNB_id]->llr[0][0],(14*nb_rb*12*dlsch1_harq->Qm) - 4*(nb_rb*4*dlsch1_harq->Qm),1,0);
@@ -5030,7 +4930,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
 
        AssertFatal (0,"");
   }
-#endif
+LOG_M_END
 
   // do procedures for SI-RNTI
   if ((ue->dlsch_SI[eNB_id]) && (ue->dlsch_SI[eNB_id]->active == 1)) {
@@ -5135,29 +5035,25 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
     ue->Mod_id,frame_rx,ue->total_TBS[eNB_id],
     ue->total_TBS_last[eNB_id],(float) ue->bitrate[eNB_id]/1000.0);
 
-  #if UE_AUTOTEST_TRACE
+LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
     if ((frame_rx % 100 == 0)) {
       LOG_I(PHY,"[UE  %d] AUTOTEST Metric : UE_DLSCH_BITRATE = %5.2f kbps (frame = %d) \n", ue->Mod_id, (float) ue->bitrate[eNB_id]/1000.0, frame_rx);
     }
-  #endif
+LOG_DEBUG_END
 
   }
 
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
   stop_meas(&ue->generic_stat);
   printf("after tubo until end of Rx %5.2f \n",ue->generic_stat.p_time/(cpuf*1000.0));
-#endif
+LOG_DEBUG_END
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX, VCD_FUNCTION_OUT);
 
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
   stop_meas(&ue->phy_proc_rx[ue->current_thread_id[subframe_rx]]);
-#if DISABLE_LOG_X
-  printf("------FULL RX PROC [SFN %d]: %5.2f ------\n",subframe_rx,ue->phy_proc_rx[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-#else
-  LOG_D(PHY, "------FULL RX PROC [SFN %d]: %5.2f ------\n",subframe_rx,ue->phy_proc_rx[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-#endif
-#endif
+  LOG_UI(PHY, "------FULL RX PROC [SFN %d]: %5.2f ------\n",subframe_rx,ue->phy_proc_rx[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
+LOG_DEBUG_END
 
   LOG_D(PHY," ****** end RX-Chain  for AbsSubframe %d.%d ******  \n", frame_rx%1024, subframe_rx);
   return (0);
@@ -5169,9 +5065,6 @@ void phy_procedures_UE_lte(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,u
 {
 #if defined(ENABLE_ITTI)
   MessageDef   *msg_p;
-  const char   *msg_name;
-  instance_t    instance;
-  unsigned int  Mod_id;
   int           result;
 #endif
 
@@ -5179,7 +5072,7 @@ void phy_procedures_UE_lte(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,u
   int           frame_tx = proc->frame_tx;
   int           subframe_rx = proc->subframe_rx;
   int           subframe_tx = proc->subframe_tx;
-#undef DEBUG_PHY_PROC
+
 
   UE_L2_STATE_t ret;
   int slot;
@@ -5190,9 +5083,10 @@ void phy_procedures_UE_lte(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,u
 
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_LTE,1);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
   start_meas(&ue->phy_proc[ue->current_thread_id[subframe_rx]]);
-#endif
+LOG_DEBUG_END
+
 #if defined(ENABLE_ITTI)
 
   do {
@@ -5200,19 +5094,15 @@ void phy_procedures_UE_lte(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,u
     itti_poll_msg (TASK_PHY_UE, &msg_p);
 
     if (msg_p != NULL) {
-      msg_name = ITTI_MSG_NAME (msg_p);
-      instance = ITTI_MSG_INSTANCE (msg_p);
-      Mod_id = instance - NB_eNB_INST;
-
       switch (ITTI_MSG_ID(msg_p)) {
       case PHY_FIND_CELL_REQ:
-  LOG_I(PHY, "[UE %d] Received %s\n", Mod_id, msg_name);
+  LOG_I(PHY, "[UE %d] Received %s\n", ITTI_MSG_INSTANCE (msg_p) - NB_eNB_INST, ITTI_MSG_NAME (msg_p));
 
   /* TODO process the message */
   break;
 
       default:
-  LOG_E(PHY, "[UE %d] Received unexpected message %s\n", Mod_id, msg_name);
+  LOG_E(PHY, "[UE %d] Received unexpected message %s\n", ITTI_MSG_INSTANCE (msg_p) - NB_eNB_INST, ITTI_MSG_NAME (msg_p));
   break;
       }
 
@@ -5278,9 +5168,9 @@ void phy_procedures_UE_lte(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,u
     }
     
     VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_LTE,0);
-#if UE_TIMING_TRACE
+LOG_DEBUG_BEGIN(UE_TIMING)
     stop_meas(&ue->phy_proc[ue->current_thread_id[subframe_rx]]);
-#endif
+LOG_DEBUG_END
   } // slot
 }
 
diff --git a/openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c b/openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c
index fa4ffcc6da083eeaac82e2e32f7e988dc52a907a..5ffea3d36e456337391d9c0657a1c77a3301040e 100644
--- a/openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c
+++ b/openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c
@@ -54,7 +54,7 @@
 #include "socket.h"
 #include "multicast_link.h"
 
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 
 extern unsigned short Master_id;
 
diff --git a/openair1/SIMULATION/LTE_PHY/dlsim.c b/openair1/SIMULATION/LTE_PHY/dlsim.c
index 909c40512d2d6a7e87226101a94f329b5012121a..7e2f1ad2e02f4e3e694f96483c227bcaf2a74275 100644
--- a/openair1/SIMULATION/LTE_PHY/dlsim.c
+++ b/openair1/SIMULATION/LTE_PHY/dlsim.c
@@ -47,7 +47,7 @@
 #include "LAYER2/MAC/mac_vars.h"
 
 #include "OCG_vars.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "UTIL/LISTS/list.h"
 
 #include "unitary_defs.h"
@@ -67,6 +67,7 @@
 #include "common/config/config_load_configmodule.h"
 #include "PHY/INIT/phy_init.h"
 
+
 void feptx_ofdm(RU_t *ru);
 void feptx_prec(RU_t *ru);
 
@@ -83,6 +84,8 @@ int n_rx_dropped = 0; /*!< \brief initial max process time for rx */
 
 int codingw = 0;
 
+int emulate_rf = 0;
+
 void handler(int sig)
 {
   void *array[10];
@@ -647,7 +650,6 @@ int main(int argc, char **argv)
   int two_thread_flag=0;
   int DLSCH_RB_ALLOC = 0;
 
-  int log_level = LOG_ERR;
   int dci_received;
   PHY_VARS_eNB *eNB;
   RU_t *ru;
@@ -999,7 +1001,7 @@ int main(int argc, char **argv)
       break;
 
     case 'L':
-      log_level=atoi(optarg);
+      set_glog(atoi(optarg));
       break;
 
     case 'h':
@@ -1047,8 +1049,7 @@ int main(int argc, char **argv)
 	      "cannot load configuration module, exiting\n");
   logInit();
   // enable these lines if you need debug info
-  set_comp_log(PHY,LOG_INFO,LOG_HIGH,1);
-  set_glog(log_level,LOG_HIGH);
+  set_glog(LOG_DEBUG);
   // moreover you need to init itti with the following line
   // however itti will catch all signals, so ctrl-c won't work anymore
   // alternatively you can disable ITTI completely in CMakeLists.txt
diff --git a/openair1/SIMULATION/LTE_PHY/ulsim.c b/openair1/SIMULATION/LTE_PHY/ulsim.c
index c4ea5d5ffbb8c3634a4d25864637e50473b457aa..ab7a29b096c0a292583b43d8e0a97f56b7e48021 100644
--- a/openair1/SIMULATION/LTE_PHY/ulsim.c
+++ b/openair1/SIMULATION/LTE_PHY/ulsim.c
@@ -1143,6 +1143,10 @@ int main(int argc, char **argv)
 	  if (mcs < 11)      modulation_type = 2;
 	  else if (mcs < 21) modulation_type = 4;
 	  else if (mcs < 29) modulation_type = 6;
+          else {
+             LOG_E(SIM,"mcs %i is not valid\n",mcs);
+             exit(-1);
+          }
 
 	  fill_ulsch_dci(eNB,proc_rxtx->frame_rx,subframe,&sched_resp,14,(void*)&UL_alloc_pdu,first_rb,nb_rb,(round==0)?mcs:(28+rvidx[round]),modulation_type,ndi,get_TBS_UL(mcs,nb_rb),cqi_flag,beta_CQI,beta_RI,cqi_size);
 
@@ -1488,23 +1492,23 @@ int main(int argc, char **argv)
 
       if (dump_table == 1 ) {
         int n;
-        set_component_filelog(USIM); // file located in /tmp/usim.txt
-        LOG_F(USIM,"The transmitter raw data: \n");
+        set_component_filelog(SIM); // file located in /tmp/usim.txt
+        LOG_F(SIM,"The transmitter raw data: \n");
 
         for (n=0; n< time_vector_tx.size; n++) {
           //   printf("%f ", table_tx[n]);
-          LOG_F(USIM,"%f ", table_tx[n]);
+          LOG_F(SIM,"%f ", table_tx[n]);
         }
 
-        LOG_F(USIM,"\n");
-        LOG_F(USIM,"The receiver raw data: \n");
+        LOG_F(SIM,"\n");
+        LOG_F(SIM,"The receiver raw data: \n");
 
         for (n=0; n< time_vector_rx.size; n++) {
           // printf("%f ", table_rx[n]);
-          LOG_F(USIM,"%f ", table_rx[n]);
+          LOG_F(SIM,"%f ", table_rx[n]);
         }
 
-        LOG_F(USIM,"\n");
+        LOG_F(SIM,"\n");
       }
 
       double tx_median = table_tx[time_vector_tx.size/2];
diff --git a/openair1/SIMULATION/TOOLS/channel_sim.c b/openair1/SIMULATION/TOOLS/channel_sim.c
index 2471a08604d3bf0131e10b9f10488587193d21d9..d6d63bfc6c705889b09787960d8aea7d62449327 100644
--- a/openair1/SIMULATION/TOOLS/channel_sim.c
+++ b/openair1/SIMULATION/TOOLS/channel_sim.c
@@ -35,8 +35,7 @@
 
 #include "LAYER2/MAC/mac.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log_if.h"
-#include "UTIL/LOG/log_extern.h"
+#include "common/utils/LOG/log.h"
 #include "RRC/LTE/rrc_extern.h"
 #include "PHY_INTERFACE/phy_interface_extern.h"
 #include "UTIL/OCG/OCG.h"
@@ -45,10 +44,6 @@
 #include "UTIL/FIFO/types.h"
 
 #define RF
-//#define DEBUG_SIM
-
-//#undef LOG_D
-//#define LOG_D(A,B,C...) printf(B,C)
 
 
 
diff --git a/openair1/SIMULATION/TOOLS/random_channel.c b/openair1/SIMULATION/TOOLS/random_channel.c
index dc8df153159c58cd75506054941237c4701439fe..8341c574da2968b8a361cdc82c3801bf8a91b998 100644
--- a/openair1/SIMULATION/TOOLS/random_channel.c
+++ b/openair1/SIMULATION/TOOLS/random_channel.c
@@ -29,7 +29,7 @@
 #include "PHY/TOOLS/tools_defs.h"
 #include "sim.h"
 #include "scm_corrmat.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 //#define DEBUG_CH
 
 #include "assertions.h"
diff --git a/openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc.c b/openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc.c
index 43951ee95afb6adfb2dfd8febb70aa4326198f5e..e5e242232ced64c83f8d021fd99c0a4c16aba3cb 100644
--- a/openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc.c
+++ b/openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc.c
@@ -49,7 +49,7 @@ void flexran_agent_ue_state_change(mid_t mod_id, uint32_t rnti, uint8_t state_ch
   Protocol__FlexHeader *header = NULL;
   void *data;
   int priority = 0;
-  err_code_t err_code;
+  err_code_t err_code=0;
 
   int xid = 0;
 
@@ -241,7 +241,8 @@ void flexran_agent_ue_state_change(mid_t mod_id, uint32_t rnti, uint8_t state_ch
   LOG_D(FLEXRAN_AGENT,"sent message with size %d\n", size);
   return;
  error:
-  LOG_E(FLEXRAN_AGENT, "Could not send UE state message becasue of %d \n",err_code);
+  if (err_code != 0)
+     LOG_E(FLEXRAN_AGENT, "Could not send UE state message becasue of %d \n",err_code);
 }
 
 
diff --git a/openair2/ENB_APP/RRC_config_tools.c b/openair2/ENB_APP/RRC_config_tools.c
index 17fbad1e18c542a38fe72c0b8f68f4a7078116c0..c7c75c13d4314c2969ce8d11e6fe5da28fe0cd8e 100644
--- a/openair2/ENB_APP/RRC_config_tools.c
+++ b/openair2/ENB_APP/RRC_config_tools.c
@@ -31,8 +31,7 @@
 #include <string.h>
 #include <inttypes.h>
 
-#include "log.h"
-#include "log_extern.h"
+#include "common/utils/LOG/log.h"
 #include "assertions.h"
 #if defined(ENABLE_ITTI)
 # include "intertask_interface.h"
diff --git a/openair2/ENB_APP/enb_app.c b/openair2/ENB_APP/enb_app.c
index b3471d2637193b5be594ede68816fecf78cb5dc6..40c6aeac447c98206d23b82da6fcb64579cbd0d2 100644
--- a/openair2/ENB_APP/enb_app.c
+++ b/openair2/ENB_APP/enb_app.c
@@ -113,8 +113,6 @@ static uint32_t eNB_app_register(uint32_t enb_id_start, uint32_t enb_id_end)//,
 
   for (enb_id = enb_id_start; (enb_id < enb_id_end) ; enb_id++) {
     {
-      s1ap_register_enb_req_t *s1ap_register_eNB;
-
       /* note:  there is an implicit relationship between the data structure and the message name */
       msg_p = itti_alloc_new_message (TASK_ENB_APP, S1AP_REGISTER_ENB_REQ);
 
@@ -122,8 +120,7 @@ static uint32_t eNB_app_register(uint32_t enb_id_start, uint32_t enb_id_end)//,
 
       if (enb_id == 0) RCconfig_gtpu();
 
-      s1ap_register_eNB = &S1AP_REGISTER_ENB_REQ(msg_p);
-      LOG_I(ENB_APP,"default drx %d\n",s1ap_register_eNB->default_drx);
+      LOG_I(ENB_APP,"default drx %d\n",((S1AP_REGISTER_ENB_REQ(msg_p)).default_drx));
 
       LOG_I(ENB_APP,"[eNB %d] eNB_app_register for instance %d\n", enb_id, ENB_MODULE_ID_TO_INSTANCE(enb_id));
 
@@ -152,7 +149,6 @@ void *eNB_app_task(void *args_p)
 # endif
   uint32_t                        enb_id;
   MessageDef                     *msg_p           = NULL;
-  const char                     *msg_name        = NULL;
   instance_t                      instance;
   int                             result;
   /* for no gcc warnings */
@@ -200,7 +196,6 @@ void *eNB_app_task(void *args_p)
     // Wait for a message
     itti_receive_msg (TASK_ENB_APP, &msg_p);
 
-    msg_name = ITTI_MSG_NAME (msg_p);
     instance = ITTI_MSG_INSTANCE (msg_p);
 
     switch (ITTI_MSG_ID(msg_p)) {
@@ -216,7 +211,7 @@ void *eNB_app_task(void *args_p)
 # if defined(ENABLE_USE_MME)
 
     case S1AP_REGISTER_ENB_CNF:
-      LOG_I(ENB_APP, "[eNB %d] Received %s: associated MME %d\n", instance, msg_name,
+      LOG_I(ENB_APP, "[eNB %d] Received %s: associated MME %d\n", instance, ITTI_MSG_NAME (msg_p),
             S1AP_REGISTER_ENB_CNF(msg_p).nb_mme);
 
       DevAssert(register_enb_pending > 0);
@@ -237,10 +232,8 @@ void *eNB_app_task(void *args_p)
           itti_send_msg_to_task (TASK_L2L1, INSTANCE_DEFAULT, msg_init_p);
 
         } else {
-          uint32_t not_associated = enb_nb - registered_enb;
-
-          LOG_W(ENB_APP, " %d eNB %s not associated with a MME, retrying registration in %d seconds ...\n",
-                not_associated, not_associated > 1 ? "are" : "is", ENB_REGISTER_RETRY_DELAY);
+          LOG_W(ENB_APP, " %d eNB not associated with a MME, retrying registration in %d seconds ...\n",
+                enb_nb - registered_enb,  ENB_REGISTER_RETRY_DELAY);
 
           /* Restart the eNB registration process in ENB_REGISTER_RETRY_DELAY seconds */
           if (timer_setup (ENB_REGISTER_RETRY_DELAY, 0, TASK_ENB_APP, INSTANCE_DEFAULT, TIMER_ONE_SHOT,
@@ -258,14 +251,14 @@ void *eNB_app_task(void *args_p)
       break;
 
     case S1AP_DEREGISTERED_ENB_IND:
-      LOG_W(ENB_APP, "[eNB %d] Received %s: associated MME %d\n", instance, msg_name,
+      LOG_W(ENB_APP, "[eNB %d] Received %s: associated MME %d\n", instance, ITTI_MSG_NAME (msg_p),
             S1AP_DEREGISTERED_ENB_IND(msg_p).nb_mme);
 
       /* TODO handle recovering of registration */
       break;
 
     case TIMER_HAS_EXPIRED:
-      LOG_I(ENB_APP, " Received %s: timer_id %ld\n", msg_name, TIMER_HAS_EXPIRED(msg_p).timer_id);
+      LOG_I(ENB_APP, " Received %s: timer_id %ld\n", ITTI_MSG_NAME (msg_p), TIMER_HAS_EXPIRED(msg_p).timer_id);
 
       if (TIMER_HAS_EXPIRED (msg_p).timer_id == enb_register_retry_timer_id) {
         /* Restart the registration process */
@@ -277,7 +270,7 @@ void *eNB_app_task(void *args_p)
 # endif
 
     default:
-      LOG_E(ENB_APP, "Received unexpected message %s\n", msg_name);
+      LOG_E(ENB_APP, "Received unexpected message %s\n", ITTI_MSG_NAME (msg_p));
       break;
     }
 
diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c
index 345ad599c858f628bdda9bd3f7460c2edbf455a8..2b6931effa66453a2df29a73b0342053d4fccf4e 100644
--- a/openair2/ENB_APP/enb_config.c
+++ b/openair2/ENB_APP/enb_config.c
@@ -30,8 +30,7 @@
 #include <string.h>
 #include <inttypes.h>
 
-#include "log.h"
-#include "log_extern.h"
+#include "common/utils/LOG/log.h"
 #include "assertions.h"
 #include "enb_config.h"
 #include "UTIL/OTG/otg.h"
@@ -410,7 +409,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
 
   int               num_enbs                      = 0;
  
-  int               num_component_carriers        = 0;
   int               j,k                           = 0;
   int32_t     enb_id                        = 0;
   int               nb_cc                         = 0;
@@ -704,17 +702,10 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
 	  sprintf(enbpath,"%s.[%i]",ENB_CONFIG_STRING_ENB_LIST,k),
 	  config_getlist( &CCsParamList,NULL,0,enbpath); 
 	  
-	  LOG_I(RRC,"num component carriers %d \n", num_component_carriers);  
+	  LOG_I(RRC,"num component carriers %d \n",CCsParamList.numelt);  
 	  if ( CCsParamList.numelt> 0) {
 	    char ccspath[MAX_OPTNAME_SIZE*2 + 16];
 	    
-
-	    
-
-	    
-	    //enb_properties_loc.properties[enb_properties_loc_index]->nb_cc = num_component_carriers;
-
-
 	    for (j = 0; j < CCsParamList.numelt ;j++) { 
 
 	      sprintf(ccspath,"%s.%s.[%i]",enbpath,ENB_CONFIG_STRING_COMPONENT_CARRIERS,j);
diff --git a/openair2/ENB_APP/flexran_agent.c b/openair2/ENB_APP/flexran_agent.c
index 8d5cdbc06bd396b68e1e7c43fa11bfdabcf9476a..9c0af82e900e0965a75319dd8501841d49f51f62 100644
--- a/openair2/ENB_APP/flexran_agent.c
+++ b/openair2/ENB_APP/flexran_agent.c
@@ -47,11 +47,10 @@ void *flexran_agent_task(void *args){
   Protocol__FlexranMessage *msg;
   void *data;
   int size;
-  err_code_t err_code;
+  err_code_t err_code=0;
   int                   priority = 0;
 
   MessageDef                     *msg_p           = NULL;
-  const char                     *msg_name        = NULL;
   int                             result;
   struct flexran_agent_timer_element_s * elem = NULL;
 
@@ -61,7 +60,6 @@ void *flexran_agent_task(void *args){
     // Wait for a message
     itti_receive_msg (TASK_FLEXRAN_AGENT, &msg_p);
     DevAssert(msg_p != NULL);
-    msg_name = ITTI_MSG_NAME (msg_p);
 
     switch (ITTI_MSG_ID(msg_p)) {
     case TERMINATE_MESSAGE:
@@ -88,7 +86,7 @@ void *flexran_agent_task(void *args){
       break;
 
     default:
-      LOG_E(FLEXRAN_AGENT, "Received unexpected message %s\n", msg_name);
+      LOG_E(FLEXRAN_AGENT, "Received unexpected message %s\n", ITTI_MSG_NAME (msg_p));
       break;
     }
 
@@ -96,7 +94,8 @@ void *flexran_agent_task(void *args){
     AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result);
     continue;
   error:
-    LOG_E(FLEXRAN_AGENT,"flexran_agent_task: error %d occured\n",err_code);
+    if (err_code != 0)
+      LOG_E(FLEXRAN_AGENT,"flexran_agent_task: error %d occured\n",err_code);
   } while (1);
 
   return NULL;
@@ -108,7 +107,7 @@ void *receive_thread(void *args) {
   void                  *data;
   int                   size;
   int                   priority;
-  err_code_t             err_code;
+  err_code_t             err_code=0;
 
   Protocol__FlexranMessage *msg;
   
@@ -140,7 +139,8 @@ void *receive_thread(void *args) {
   return NULL;
 
 error:
-  LOG_E(FLEXRAN_AGENT,"receive_thread: error %d occured\n",err_code);
+  if (err_code != 0)
+     LOG_E(FLEXRAN_AGENT,"receive_thread: error %d occured\n",err_code);
   return NULL;
 }
 
@@ -299,7 +299,7 @@ Protocol__FlexranMessage *flexran_agent_timeout(void* args){
   //memcpy (timer_args, args, sizeof(*timer_args));
   flexran_agent_timer_args_t *timer_args = (flexran_agent_timer_args_t *) args;
   
-  LOG_I(FLEXRAN_AGENT, "flexran_agent %d timeout\n", timer_args->mod_id);
+  LOG_UI(FLEXRAN_AGENT, "flexran_agent %d timeout\n", timer_args->mod_id);
   //LOG_I(FLEXRAN_AGENT, "eNB action %d ENB flags %d \n", timer_args->cc_actions,timer_args->cc_report_flags);
   //LOG_I(FLEXRAN_AGENT, "UE action %d UE flags %d \n", timer_args->ue_actions,timer_args->ue_report_flags);
   
diff --git a/openair2/ENB_APP/flexran_agent_async.c b/openair2/ENB_APP/flexran_agent_async.c
index 9e099fc21c31dd1b2ecaf39fc389f46e5770c90f..88be77d5bb2c93fb9c1501f7ace1222c1119478d 100644
--- a/openair2/ENB_APP/flexran_agent_async.c
+++ b/openair2/ENB_APP/flexran_agent_async.c
@@ -29,7 +29,7 @@
 #include "flexran_agent_async.h"
 #include "flexran_agent_defs.h"
 
-#include "log.h"
+#include "common/utils/LOG/log.h"
 
 flexran_agent_async_channel_t * flexran_agent_async_channel_info(mid_t mod_id, char *dst_ip, uint16_t dst_port) {
 
diff --git a/openair2/ENB_APP/flexran_agent_handler.c b/openair2/ENB_APP/flexran_agent_handler.c
index 6c20c635a19365df6e6541306c88b2ab0fbe57c2..d4c82e4dff127b12828c1a72ed6779705cf73714 100644
--- a/openair2/ENB_APP/flexran_agent_handler.c
+++ b/openair2/ENB_APP/flexran_agent_handler.c
@@ -130,16 +130,15 @@ void * flexran_agent_pack_message(Protocol__FlexranMessage *msg,
 				  int * size){
 
   void * buffer;
-  err_code_t err_code = PROTOCOL__FLEXRAN_ERR__NO_ERR;
   
   if (flexran_agent_serialize_message(msg, &buffer, size) < 0 ) {
-    err_code = PROTOCOL__FLEXRAN_ERR__MSG_ENCODING;
+    LOG_E(FLEXRAN_AGENT,"errno %d occured\n",PROTOCOL__FLEXRAN_ERR__MSG_ENCODING);
     goto error;
   }
   
   // free the msg --> later keep this in the data struct and just update the values
   //TODO call proper destroy function
-  err_code = ((*message_destruction_callback[msg->msg_case-1])(msg));
+  ((*message_destruction_callback[msg->msg_case-1])(msg));
   
   DevAssert(buffer !=NULL);
   
@@ -148,8 +147,6 @@ void * flexran_agent_pack_message(Protocol__FlexranMessage *msg,
   return buffer;
   
  error : 
-  LOG_E(FLEXRAN_AGENT,"errno %d occured\n",err_code);
-  
   return NULL;   
 }
 
diff --git a/openair2/ENB_APP/flexran_agent_net_comm.c b/openair2/ENB_APP/flexran_agent_net_comm.c
index 6971c2975048fae72be383fa2a9ab38d00fe7579..d5142e5456eeb10b86c6f7cd944929c0fdaf0804 100644
--- a/openair2/ENB_APP/flexran_agent_net_comm.c
+++ b/openair2/ENB_APP/flexran_agent_net_comm.c
@@ -27,7 +27,7 @@
  */
 
 #include "flexran_agent_net_comm.h"
-#include "log.h"
+#include "common/utils/LOG/log.h"
 
 flexran_agent_channel_t *agent_channel[NUM_MAX_ENB][FLEXRAN_AGENT_MAX];
 flexran_agent_channel_instance_t channel_instance;
diff --git a/openair2/LAYER2/MAC/config.c b/openair2/LAYER2/MAC/config.c
index 929c0fad245fac3222ba55991aeaf7e4c3f0513d..8fd85e78118f497a215eff748b1ffbbadb975d34 100644
--- a/openair2/LAYER2/MAC/config.c
+++ b/openair2/LAYER2/MAC/config.c
@@ -45,8 +45,8 @@
 #include "mac.h"
 #include "mac_proto.h"
 #include "mac_extern.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
 #include "common/ran_context.h"
 #if (RRC_VERSION >= MAKE_VERSION(9, 0, 0))
diff --git a/openair2/LAYER2/MAC/config_ue.c b/openair2/LAYER2/MAC/config_ue.c
index c837304d9cd81a851bbe1291d1ecaeafa102473b..c38c32a4de7706544112b277d8e0ffbd45d5ce61 100644
--- a/openair2/LAYER2/MAC/config_ue.c
+++ b/openair2/LAYER2/MAC/config_ue.c
@@ -46,8 +46,8 @@
 #include "mac.h"
 #include "mac_proto.h"
 #include "mac_extern.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "PHY/INIT/phy_init.h"
 
 #include "common/ran_context.h"
diff --git a/openair2/LAYER2/MAC/eNB_scheduler.c b/openair2/LAYER2/MAC/eNB_scheduler.c
index c108a141d8e544a0194c16caf5c4efff9c50e3b9..dc7cbd409c4db13361bf2e1b7f1137179f7fcb48 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler.c
@@ -35,8 +35,8 @@
 #include "LAYER2/MAC/mac_extern.h"
 
 #include "LAYER2/MAC/mac_proto.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "UTIL/OPT/opt.h"
 #include "OCG.h"
 #include "OCG_extern.h"
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c
index a04ad64a1ff639921b194656d9d19348947d131d..35590ec896716ca9777c774fbe215690a36ae04e 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c
@@ -40,8 +40,8 @@
 #include "LAYER2/MAC/mac_extern.h"
 
 #include "LAYER2/MAC/mac_proto.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "UTIL/OPT/opt.h"
 #include "OCG.h"
 #include "OCG_extern.h"
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_bch.c b/openair2/LAYER2/MAC/eNB_scheduler_bch.c
index 7aabc30b8194fe7776f7dcae7db8ac44eca51bf9..d965bc811bf1c07ccf84c5e816a63ce5ffbe1a01 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_bch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_bch.c
@@ -33,8 +33,8 @@
 #include "LAYER2/MAC/mac.h"
 #include "LAYER2/MAC/mac_proto.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "UTIL/OPT/opt.h"
 #include "OCG.h"
 #include "OCG_extern.h"
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
index e498b62a27cdc65871a9ea7b09e4662c6e674977..05498e4377b0abb24a883da61da4a027cebed93c 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
@@ -33,8 +33,8 @@
 #include "LAYER2/MAC/mac.h"
 #include "LAYER2/MAC/mac_proto.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "UTIL/OPT/opt.h"
 #include "OCG.h"
 #include "OCG_extern.h"
@@ -474,7 +474,7 @@ schedule_dlsch(module_id_t module_idP,
       slice_sched_dl[i] = dlsym(NULL, dl_scheduler_type[i]);
       update_dl_scheduler[i] = 0 ;
       update_dl_scheduler_current[i] = 0;
-      LOG_N(MAC,"update dl scheduler slice %d\n", i);
+      LOG_I(MAC,"update dl scheduler slice %d\n", i);
     }
 
     if (total_slice_percentage <= 1.0){ // the new total RB share is within the range
@@ -482,7 +482,7 @@ schedule_dlsch(module_id_t module_idP,
       // check if the number of slices has changed, and log
       if (n_active_slices_current != n_active_slices ){
 	if ((n_active_slices > 0) && (n_active_slices <= MAX_NUM_SLICES)) {
-	  LOG_N(MAC,"[eNB %d]frame %d subframe %d: number of active DL slices has changed: %d-->%d\n",
+	  LOG_I(MAC,"[eNB %d]frame %d subframe %d: number of active DL slices has changed: %d-->%d\n",
 		module_idP, frameP, subframeP, n_active_slices_current, n_active_slices);
 
 	  n_active_slices_current = n_active_slices;
@@ -495,7 +495,7 @@ schedule_dlsch(module_id_t module_idP,
 
       // check if the slice rb share has changed, and log the console
       if (slice_percentage_current[i] != slice_percentage[i]){ // new slice percentage
-	LOG_N(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: total percentage %f-->%f, slice RB percentage has changed: %f-->%f\n",
+	LOG_I(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: total percentage %f-->%f, slice RB percentage has changed: %f-->%f\n",
 	      module_idP, i, frameP, subframeP, total_slice_percentage_current, total_slice_percentage, slice_percentage_current[i], slice_percentage[i]);
 	total_slice_percentage_current= total_slice_percentage;
 	slice_percentage_current[i] = slice_percentage[i];
@@ -505,7 +505,7 @@ schedule_dlsch(module_id_t module_idP,
       // check if the slice max MCS, and log the console
       if (slice_maxmcs_current[i] != slice_maxmcs[i]){
 	if ((slice_maxmcs[i] >= 0) && (slice_maxmcs[i] < 29)){
-	  LOG_N(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: slice MAX MCS has changed: %d-->%d\n",
+	  LOG_I(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: slice MAX MCS has changed: %d-->%d\n",
 		module_idP, i, frameP, subframeP, slice_maxmcs_current[i], slice_maxmcs[i]);
 	  slice_maxmcs_current[i] = slice_maxmcs[i];
 	} else {
@@ -516,7 +516,7 @@ schedule_dlsch(module_id_t module_idP,
 
       // check if a new scheduler, and log the console
       if (update_dl_scheduler_current[i] != update_dl_scheduler[i]){
-	LOG_N(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: DL scheduler for this slice is updated: %s \n",
+	LOG_I(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: DL scheduler for this slice is updated: %s \n",
 	      module_idP, i, frameP, subframeP, dl_scheduler_type[i]);
 	update_dl_scheduler_current[i] = update_dl_scheduler[i];
       }
@@ -542,7 +542,7 @@ schedule_dlsch(module_id_t module_idP,
 
     // Check for new sorting policy
     if (sorting_policy_current[i] != sorting_policy[i]) {
-      LOG_N(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: UE sorting policy has changed (%x-->%x)\n",
+      LOG_I(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: UE sorting policy has changed (%x-->%x)\n",
             module_idP, i, frameP, subframeP, sorting_policy_current[i], sorting_policy[i]);
       sorting_policy_current[i] = sorting_policy[i];
     }
@@ -1780,7 +1780,7 @@ set_ue_dai(sub_frame_t subframeP,
 
   default:
     UE_list->UE_template[CC_id][UE_id].DAI = 0;
-    LOG_N(MAC, "unknow TDD config %d\n", tdd_config);
+    LOG_I(MAC, "unknow TDD config %d\n", tdd_config);
     break;
   }
 }
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c b/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
index cc0c0906ee51a1d294d5f9ce54eef02a3d9d179a..1acf65722099af3c1cf4df99251ebbcbbe591355 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
@@ -39,8 +39,8 @@
 #include "LAYER2/MAC/mac_proto.h"
 #include "LAYER2/MAC/mac_extern.h"
 #include "LAYER2/MAC/eNB_scheduler_fairRR.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "UTIL/OPT/opt.h"
 #include "OCG.h"
 #include "OCG_extern.h"
@@ -2264,7 +2264,6 @@ void ulsch_scheduler_pre_processor_fairRR(module_id_t module_idP,
   uint32_t           tbs;
   int16_t            tx_power;
   int                UE_id;
-  rnti_t             rnti;
   COMMON_channels_t *cc;
   LOG_D(MAC,"In ulsch_preprocessor: ulsch ue select\n");
   //ue select
@@ -2308,11 +2307,10 @@ void ulsch_scheduler_pre_processor_fairRR(module_id_t module_idP,
         continue;
       }
 
-      rnti = UE_RNTI(CC_id,UE_id);
 
       if (first_rb[CC_id] >= frame_parms->N_RB_UL-num_pucch_rb ) {
          LOG_W(MAC,"[eNB %d] frame %d subframe %d, UE %d/%x CC %d: dropping, not enough RBs\n",
-               module_idP,frameP,subframeP,UE_id,rnti,CC_id);
+               module_idP,frameP,subframeP,UE_id,UE_RNTI(CC_id,UE_id),CC_id);
          break;
       }
       total_rbs = frame_parms->N_RB_UL-num_pucch_rb-first_rb[CC_id];
@@ -2390,7 +2388,7 @@ void ulsch_scheduler_pre_processor_fairRR(module_id_t module_idP,
               rb_table_index = find_rb_table_index(average_rbs);
               if (rb_table_index>=34){
                   LOG_W(MAC,"[eNB %d] frame %d subframe %d, UE %d/%x CC %d: average RBs %d > 100\n",
-                         module_idP,frameP,subframeP,UE_id,rnti,CC_id,average_rbs);
+                         module_idP,frameP,subframeP,UE_id,UE_RNTI(CC_id,UE_id),CC_id,average_rbs);
                   break;
               }
               first_rb[CC_id] = first_rb[CC_id] + rb_table[rb_table_index];
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_mch.c b/openair2/LAYER2/MAC/eNB_scheduler_mch.c
index 80ee6376ae9bff085de8663ec06ff87b0b04c815..63a471177881ab5fafc6cfd71bdecf0825a79265 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_mch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_mch.c
@@ -33,8 +33,8 @@
 #include "LAYER2/MAC/mac.h"
 #include "LAYER2/MAC/mac_proto.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "UTIL/OPT/opt.h"
 #include "OCG.h"
 #include "OCG_extern.h"
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_phytest.c b/openair2/LAYER2/MAC/eNB_scheduler_phytest.c
index bf6fd8db6a1a24768a018d8a224c9d216c133f94..49cc68b06a65505bd24db81ed945efa4952978af 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_phytest.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_phytest.c
@@ -39,8 +39,8 @@
 #include "LAYER2/MAC/mac.h"
 #include "LAYER2/MAC/mac_proto.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "UTIL/OPT/opt.h"
 #include "OCG.h"
 #include "OCG_extern.h"
@@ -67,13 +67,13 @@ schedule_ue_spec_phy_test(
   uint16_t                       TBS;
   uint16_t                       nb_rb;
 
-  unsigned char                  harq_pid  = subframeP%5;
+  unsigned char                  harq_pid  = (frameP*10+subframeP)%8;
   uint16_t                       rnti      = 0x1235;
-  uint32_t                       rb_alloc  = 0x1FFFFFFF;
+  uint32_t                       rb_alloc  = 0x1FFFFF;
   int32_t                        tpc       = 1;
   int32_t                        mcs       = 28;
   int32_t                        cqi       = 15;
-  int32_t                        ndi       = subframeP/5;
+  int32_t                        ndi       = (frameP*10+subframeP)/8;
   int32_t                        dai       = 0;
 
   eNB_MAC_INST                   *eNB      = RC.mac[module_idP];
@@ -92,10 +92,9 @@ schedule_ue_spec_phy_test(
       continue;
 
     nb_rb = conv_nprb(0,rb_alloc,N_RB_DL);
-    //printf("////////////////////////////////////*************************nb_rb = %d\n",nb_rb);
     TBS = get_TBS_DL(mcs,nb_rb);
 
-    LOG_D(PHY,"schedule_ue_spec_phy_test: subframe %d/%d: nb_rb=%d, TBS=%d, mcs=%d (rb_alloc=%x, N_RB_DL=%d)\n",frameP,subframeP,nb_rb,TBS,mcs,rb_alloc,N_RB_DL);
+    LOG_D(MAC,"schedule_ue_spec_phy_test: subframe %d/%d: nb_rb=%d, TBS=%d, mcs=%d harq_pid=%d (rb_alloc=%x, N_RB_DL=%d) pdu_number = %d \n", frameP, subframeP, nb_rb, TBS, mcs, harq_pid, rb_alloc, N_RB_DL, dl_req->number_pdu);
 
     dl_config_pdu                                                         = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; 
     memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t));
@@ -136,6 +135,8 @@ schedule_ue_spec_phy_test(
       //ue_sched_ctl->round[CC_id][harq_pid] = 0;
       dl_req->number_dci++;
       dl_req->number_pdu++;
+      eNB->DL_req[CC_id].sfn_sf = frameP<<4 | subframeP;
+      //eNB->DL_req[CC_id].header.message_id = NFAPI_DL_CONFIG_REQUEST;
       
       // Toggle NDI for next time
       /*
@@ -150,7 +151,6 @@ schedule_ue_spec_phy_test(
       AssertFatal(UE_list->UE_template[CC_id][UE_id].physicalConfigDedicated->pdsch_ConfigDedicated!=NULL,"physicalConfigDedicated->pdsch_ConfigDedicated is NULL\n");
       */
 
-
       
       fill_nfapi_dlsch_config(eNB,
 			      dl_req,
@@ -196,32 +196,35 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s
   int               UE_id = 0;
   uint8_t           aggregation    = 2;
   rnti_t            rnti           = 0x1235;
-  uint8_t           mcs            = 0;
+  uint8_t           mcs            = 20;
   uint8_t           harq_pid       = 0;
   uint32_t          cqi_req = 0,cshift,ndi,tpc = 1;
   int32_t           normalized_rx_power;
   int32_t           target_rx_power= 178;
   int               CC_id = 0;
   int               nb_rb = 96;
-  eNB_MAC_INST      *eNB = RC.mac[module_idP];
-  COMMON_channels_t *cc  = eNB->common_channels;
-  UE_list_t         *UE_list=&eNB->UE_list;
+  eNB_MAC_INST      *mac = RC.mac[module_idP];
+  COMMON_channels_t *cc  = &mac->common_channels[0];
+  UE_list_t         *UE_list=&mac->UE_list;
   UE_TEMPLATE       *UE_template;
   UE_sched_ctrl     *UE_sched_ctrl;
   int               sched_frame=frameP;
   int               sched_subframe = (subframeP+4)%10;
+  uint16_t          ul_req_index;
+  uint8_t           dlsch_flag;
   
   if (sched_subframe<subframeP) sched_frame++;
 
-  nfapi_hi_dci0_request_body_t   *hi_dci0_req = &eNB->HI_DCI0_req[CC_id][subframeP].hi_dci0_request_body;
+  nfapi_hi_dci0_request_t        *hi_dci0_req = &mac->HI_DCI0_req[CC_id][subframeP];
+  nfapi_hi_dci0_request_body_t   *hi_dci0_req_body = &hi_dci0_req->hi_dci0_request_body;
   nfapi_hi_dci0_request_pdu_t    *hi_dci0_pdu;
 
   //nfapi_ul_config_request_pdu_t  *ul_config_pdu = &ul_req->ul_config_pdu_list[0];;
-  nfapi_ul_config_request_body_t *ul_req       = &eNB->UL_req[CC_id].ul_config_request_body;
+  nfapi_ul_config_request_body_t *ul_req       = &mac->UL_req[CC_id].ul_config_request_body;
 
 
-  eNB->UL_req[CC_id].sfn_sf   = (sched_frame<<4) + sched_subframe;
-  eNB->HI_DCI0_req[CC_id][subframeP].sfn_sf = (frameP<<4)+subframeP;
+  mac->UL_req[CC_id].sfn_sf   = (sched_frame<<4) + sched_subframe;
+  hi_dci0_req->sfn_sf = (frameP << 4) + subframeP;
   
   for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
     //rnti = UE_RNTI(module_idP,UE_id);
@@ -235,7 +238,6 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s
       UE_sched_ctrl = &UE_list->UE_sched_ctrl[UE_id];
       harq_pid      = subframe2harqpid(&cc[CC_id],sched_frame,sched_subframe);
 
-      LOG_D(MAC,"Scheduling for frame %d, subframe %d => harq_pid %d\n",sched_frame,sched_subframe,harq_pid);
 
       RC.eNB[module_idP][CC_id]->pusch_stats_BO[UE_id][(frameP*10)+subframeP] = UE_template->TBS_UL[harq_pid];
 
@@ -245,7 +247,7 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s
       //compute the expected ULSCH RX power (for the stats)
 	  
       // this is the normalized RX power and this should be constant (regardless of mcs
-      normalized_rx_power = UE_sched_ctrl->pusch_snr[CC_id];
+      normalized_rx_power = (5*UE_sched_ctrl->pusch_snr[CC_id]-640)/10+30;
 	  
       // new transmission
 	  
@@ -281,7 +283,7 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s
 	  // save it for a potential retransmission
       UE_template->cshift[harq_pid] = cshift;	    
 
-	  hi_dci0_pdu                                                         = &hi_dci0_req->hi_dci0_pdu_list[eNB->HI_DCI0_req[CC_id][subframeP].hi_dci0_request_body.number_of_dci+eNB->HI_DCI0_req[CC_id][subframeP].hi_dci0_request_body.number_of_hi]; 	
+	  hi_dci0_pdu                                                         = &hi_dci0_req_body->hi_dci0_pdu_list[hi_dci0_req_body->number_of_dci + hi_dci0_req_body->number_of_hi];
 	  memset((void*)hi_dci0_pdu,0,sizeof(nfapi_hi_dci0_request_pdu_t));
 	  hi_dci0_pdu->pdu_type                                               = NFAPI_HI_DCI0_DCI_PDU_TYPE; 
 	  hi_dci0_pdu->pdu_size                                               = 2+sizeof(nfapi_hi_dci0_dci_pdu);
@@ -298,18 +300,28 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s
 	  hi_dci0_pdu->dci_pdu.dci_pdu_rel8.tpc                               = tpc;
 	  hi_dci0_pdu->dci_pdu.dci_pdu_rel8.cqi_csi_request                   = cqi_req;
 	  hi_dci0_pdu->dci_pdu.dci_pdu_rel8.dl_assignment_index               = UE_template->DAI_ul[sched_subframe];
+          hi_dci0_pdu->dci_pdu.dci_pdu_rel8.harq_pid                          = harq_pid;
 
+
+	  hi_dci0_req_body->number_of_dci++;
 	    
-	  eNB->HI_DCI0_req[CC_id][subframeP].hi_dci0_request_body.number_of_dci++;
-	    
-	    
+	  ul_req_index = 0;
+            dlsch_flag = 0;
+            for(ul_req_index = 0;ul_req_index < ul_req->number_of_pdus;ul_req_index++){
+              if(ul_req->ul_config_pdu_list[ul_req_index].pdu_type == NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE){
+                dlsch_flag = 1;
+                LOG_D(MAC,"Frame %d, Subframe %d:rnti %x ul_req_index %d Switched UCI HARQ to ULSCH HARQ(first)\n",frameP,subframeP,rnti,ul_req_index);
+                break;
+              }
+            }
+
 	  // Add UL_config PDUs
-	  fill_nfapi_ulsch_config_request_rel8(&ul_req->ul_config_pdu_list[ul_req->number_of_pdus],
+	  fill_nfapi_ulsch_config_request_rel8(& ul_req->ul_config_pdu_list[ul_req_index],
 						 cqi_req,
 						 cc,
 						 0,//UE_template->physicalConfigDedicated,
 						 get_tmode(module_idP,CC_id,UE_id),
-						 eNB->ul_handle,
+						 mac->ul_handle,//eNB->ul_handle,
 						 rnti,
 						 first_rb[CC_id], // resource_block_start
 						 nb_rb, // number_of_resource_blocks
@@ -327,7 +339,7 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s
 						 );
 #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
 	  if (UE_template->rach_resource_type>0) { // This is a BL/CE UE allocation
-	    fill_nfapi_ulsch_config_request_emtc(&ul_req->ul_config_pdu_list[ul_req->number_of_pdus],
+	    fill_nfapi_ulsch_config_request_emtc(&ul_req->ul_config_pdu_list[ul_req_index],
 						   UE_template->rach_resource_type>2 ? 2 : 1,
 						   1, //total_number_of_repetitions
 						   1, //repetition_number
@@ -335,7 +347,7 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s
 	    }
 #endif
 	  ul_req->number_of_pdus = 1;
-	  eNB->ul_handle++;
+	  mac->ul_handle++;
 	    
 	    
 	  	
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c
index 7c84b15bee5a509bad3c00ac1d92b6ebbf63b11c..b85335caab0e95b8a42155078b188fedc243db1d 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c
@@ -35,8 +35,8 @@
 #include "LAYER2/MAC/mac_extern.h"
 
 #include "LAYER2/MAC/mac_proto.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "UTIL/OPT/opt.h"
 #include "OCG.h"
 #include "OCG_extern.h"
@@ -3399,7 +3399,7 @@ unsigned char ul_ACK_subframe2M(TDD_Config_t *tdd_Config,unsigned char subframe)
       } else if (subframe == 8) { // ACK subframe 4
         return(1);  // To be updated
       } else {
-	AssertFatal(1==0,"illegal subframe %d for tdd_config %d\n",
+	AssertFatal(1==0,"illegal subframe %d for tdd_config %ld\n",
 		    subframe,tdd_Config->subframeAssignment);
 
       }
@@ -3413,7 +3413,7 @@ unsigned char ul_ACK_subframe2M(TDD_Config_t *tdd_Config,unsigned char subframe)
       } else if (subframe == 4) { // ACK subframes 9 and 0
         return(2);
       } else {
-	AssertFatal(1==0,"illegal subframe %d for tdd_config %d\n",
+	AssertFatal(1==0,"illegal subframe %d for tdd_config %ld\n",
 		    subframe,tdd_Config->subframeAssignment);
       }
 
@@ -3425,7 +3425,7 @@ unsigned char ul_ACK_subframe2M(TDD_Config_t *tdd_Config,unsigned char subframe)
           } else if (subframe == 3) { // ACK subframes 6,7,8 and 9
             return(4);
           } else {
-	    AssertFatal(1==0,"illegal subframe %d for tdd_config %d\n",
+	    AssertFatal(1==0,"illegal subframe %d for tdd_config %ld\n",
 			subframe,tdd_Config->subframeAssignment);
           }
 
@@ -3435,7 +3435,7 @@ unsigned char ul_ACK_subframe2M(TDD_Config_t *tdd_Config,unsigned char subframe)
               if (subframe == 2) {  // ACK subframes 0,3,4,5,6,7,8 and 9
                 return(8); // should be 3
               } else {
-		AssertFatal(1==0,"illegal subframe %d for tdd_config %d\n",
+		AssertFatal(1==0,"illegal subframe %d for tdd_config %ld\n",
 			    subframe,tdd_Config->subframeAssignment);
               }
 
@@ -3464,7 +3464,7 @@ unsigned char ul_ACK_subframe2dl_subframe(TDD_Config_t *tdd_Config,unsigned char
       } else if (subframe == 4) { // ACK subframes 9 and 0
         return((9+ACK_index)%10);
       } else {
-        AssertFatal(1==0,"illegal subframe %d for tdd_config->subframeAssignment %d\n",
+        AssertFatal(1==0,"illegal subframe %d for tdd_config->subframeAssignment %ld\n",
               subframe,tdd_Config->subframeAssignment);
       }
 
@@ -3481,7 +3481,7 @@ unsigned char ul_ACK_subframe2dl_subframe(TDD_Config_t *tdd_Config,unsigned char
           } else if (subframe == 3) { // ACK subframes 6, 7 8 and 9
             return(6+ACK_index);  // To be updated
           } else {
-            AssertFatal(1==0,"illegal subframe %d for tdd_config %d\n",
+            AssertFatal(1==0,"illegal subframe %d for tdd_config %ld\n",
                   subframe,tdd_Config->subframeAssignment);
           }
 
@@ -3497,7 +3497,7 @@ unsigned char ul_ACK_subframe2dl_subframe(TDD_Config_t *tdd_Config,unsigned char
       } else if (subframe == 8) { // ACK subframe 4
         return(4);  // To be updated
       } else {
-        AssertFatal(1==0,"illegal subframe %d for tdd_config %d\n",
+        AssertFatal(1==0,"illegal subframe %d for tdd_config %ld\n",
               subframe,tdd_Config->subframeAssignment);
       }
 
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
index 055d3e341980bbbc40368a6fe9ee3920e69ec5f9..04415a838626df5e9f91b59dd599b7d94245faad 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
@@ -36,8 +36,8 @@
 #include "LAYER2/MAC/mac.h"
 #include "LAYER2/MAC/mac_proto.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "UTIL/OPT/opt.h"
 #include "OCG.h"
 #include "OCG_extern.h"
@@ -800,7 +800,7 @@ rx_sdu(const module_id_t enb_mod_idP,
     /*
       if (msg3_flagP != NULL) {
       if( *msg3_flagP == 1 ) {
-      LOG_N(MAC,"[eNB %d] CC_id %d frame %d : false msg3 detection: signal phy to canceling RA and remove the UE\n", enb_mod_idP, CC_idP, frameP);
+      LOG_I(MAC,"[eNB %d] CC_id %d frame %d : false msg3 detection: signal phy to canceling RA and remove the UE\n", enb_mod_idP, CC_idP, frameP);
       *msg3_flagP=0;
       }
       } */
@@ -1095,7 +1095,7 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP,
       //total_slice_percentage_current_uplink+=slice_percentage_uplink[i];
       //if (total_slice_percentage_current_uplink> 1)
       //total_slice_percentage_current_uplink=1;
-      LOG_N(MAC,"update ul scheduler slice %d\n", i);
+      LOG_I(MAC,"update ul scheduler slice %d\n", i);
     }
     // the new total RB share is within the range
     if (total_slice_percentage_uplink <= 1.0){
@@ -1103,7 +1103,7 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP,
       // check if the number of slices has changed, and log
       if (n_active_slices_current_uplink != n_active_slices_uplink ){
         if ((n_active_slices_uplink > 0) && (n_active_slices_uplink <= MAX_NUM_SLICES)) {
-          LOG_N(MAC,"[eNB %d]frame %d subframe %d: number of active UL slices has changed: %d-->%d\n",
+          LOG_I(MAC,"[eNB %d]frame %d subframe %d: number of active UL slices has changed: %d-->%d\n",
                 module_idP, frameP, subframeP, n_active_slices_current_uplink, n_active_slices_uplink);
           n_active_slices_current_uplink = n_active_slices_uplink;
         } else {
@@ -1115,7 +1115,7 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP,
 
       // check if the slice rb share has changed, and log the console
       if (slice_percentage_current_uplink[i] != slice_percentage_uplink[i]){
-        LOG_N(MAC,"[eNB %d][SLICE %d][UL] frame %d subframe %d: total percentage %f-->%f, slice RB percentage has changed: %f-->%f\n",
+        LOG_I(MAC,"[eNB %d][SLICE %d][UL] frame %d subframe %d: total percentage %f-->%f, slice RB percentage has changed: %f-->%f\n",
               module_idP, i, frameP, subframeP, total_slice_percentage_current_uplink,
               total_slice_percentage_uplink, slice_percentage_current_uplink[i], slice_percentage_uplink[i]);
         total_slice_percentage_current_uplink = total_slice_percentage_uplink;
@@ -1125,7 +1125,7 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP,
       // check if the slice max MCS, and log the console
       if (slice_maxmcs_current_uplink[i] != slice_maxmcs_uplink[i]){
         if ((slice_maxmcs_uplink[i] >= 0) && (slice_maxmcs_uplink[i] <= 16)){
-          LOG_N(MAC,"[eNB %d][SLICE %d][UL] frame %d subframe %d: slice MAX MCS has changed: %d-->%d\n",
+          LOG_I(MAC,"[eNB %d][SLICE %d][UL] frame %d subframe %d: slice MAX MCS has changed: %d-->%d\n",
                 module_idP, i, frameP, subframeP, slice_maxmcs_current_uplink[i], slice_maxmcs_uplink[i]);
           slice_maxmcs_current_uplink[i] = slice_maxmcs_uplink[i];
         } else {
@@ -1137,7 +1137,7 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP,
 
       // check if a new scheduler, and log the console
       if (update_ul_scheduler_current[i] != update_ul_scheduler[i]){
-        LOG_N(MAC,"[eNB %d][SLICE %d][UL] frame %d subframe %d: UL scheduler for this slice is updated: %s \n",
+        LOG_I(MAC,"[eNB %d][SLICE %d][UL] frame %d subframe %d: UL scheduler for this slice is updated: %s \n",
               module_idP, i, frameP, subframeP, ul_scheduler_type[i]);
         update_ul_scheduler_current[i] = update_ul_scheduler[i];
       }
diff --git a/openair2/LAYER2/MAC/l1_helpers.c b/openair2/LAYER2/MAC/l1_helpers.c
index 0cb5c17f0f6984f22c1ac3cbb77c74b1770aa394..bd640a6c88e539a6f8bcb8cca08b35037d1f446c 100644
--- a/openair2/LAYER2/MAC/l1_helpers.c
+++ b/openair2/LAYER2/MAC/l1_helpers.c
@@ -31,7 +31,7 @@
 
 #include "mac.h"
 #include "mac_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "mac_proto.h"
 
 int8_t get_Po_NOMINAL_PUSCH(module_id_t module_idP, uint8_t CC_id)
diff --git a/openair2/LAYER2/MAC/main.c b/openair2/LAYER2/MAC/main.c
index 30ee279c947ba77cb12012cca1ee71180cb047ef..da2d9778757985b6b001d526a590733391a397fe 100644
--- a/openair2/LAYER2/MAC/main.c
+++ b/openair2/LAYER2/MAC/main.c
@@ -38,7 +38,7 @@
 //#include "SCHED/sched_eNB.h"
 #include "LAYER2/PDCP_v10.1.0/pdcp.h"
 #include "RRC/LTE/rrc_defs.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
 
 #include "common/ran_context.h"
diff --git a/openair2/LAYER2/MAC/main_ue.c b/openair2/LAYER2/MAC/main_ue.c
index 272ca5cddd7c953ed87bc458f9018451c161d0f1..95f25c7ff51b72648bf1c9d2a4e5d058bce2baa3 100644
--- a/openair2/LAYER2/MAC/main_ue.c
+++ b/openair2/LAYER2/MAC/main_ue.c
@@ -38,7 +38,7 @@
 #include "SCHED_UE/sched_UE.h"
 #include "LAYER2/PDCP_v10.1.0/pdcp.h"
 #include "RRC/LTE/rrc_defs.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
 
 
diff --git a/openair2/LAYER2/MAC/pre_processor.c b/openair2/LAYER2/MAC/pre_processor.c
index c9fef11fc2a07e9db2ea38f4695b41ea731c975e..16cbd3fc19cbfb26e811451e831ca606ff8880f3 100644
--- a/openair2/LAYER2/MAC/pre_processor.c
+++ b/openair2/LAYER2/MAC/pre_processor.c
@@ -36,8 +36,8 @@
 #include "LAYER2/MAC/mac.h"
 #include "LAYER2/MAC/mac_proto.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "UTIL/OPT/opt.h"
 #include "OCG.h"
 #include "OCG_extern.h"
@@ -1047,7 +1047,6 @@ dlsch_scheduler_pre_processor_reset(int module_idP,
   int i, j;
   UE_list_t *UE_list = &RC.mac[module_idP]->UE_list;
   UE_sched_ctrl *ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id];
-  rnti_t rnti = UE_RNTI(module_idP, UE_id);
 
   uint8_t *vrb_map = RC.mac[module_idP]->common_channels[CC_id].vrb_map;
   int N_RB_DL =
@@ -1058,7 +1057,7 @@ dlsch_scheduler_pre_processor_reset(int module_idP,
 #endif
 
 
-  LOG_D(MAC, "Running preprocessor for UE %d (%x)\n", UE_id, rnti);
+  LOG_D(MAC, "Running preprocessor for UE %d (%x)\n", UE_id,(int)(UE_RNTI(module_idP, UE_id)));
   // initialize harq_pid and round
 
   if (ue_sched_ctl->ta_timer)
diff --git a/openair2/LAYER2/MAC/ra_procedures.c b/openair2/LAYER2/MAC/ra_procedures.c
index c6dc605a274a770eb96637a8e20e101704a2ec2c..f5df67ab64d5ce540b14a2fa1c6975bdf9200aa7 100644
--- a/openair2/LAYER2/MAC/ra_procedures.c
+++ b/openair2/LAYER2/MAC/ra_procedures.c
@@ -33,13 +33,13 @@
 #include "mac_extern.h"
 #include "mac.h"
 #include "mac_proto.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "PHY_INTERFACE/phy_interface_extern.h"
 #include "SCHED_UE/sched_UE.h"
 #include "COMMON/mac_rrc_primitives.h"
 #include "RRC/LTE/rrc_extern.h"
 #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "UTIL/OPT/opt.h"
 #include "OCG.h"
 #include "OCG_extern.h"
@@ -314,9 +314,8 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP, int CC_id,
     struct RACH_ConfigCommon *rach_ConfigCommon =
 	(struct RACH_ConfigCommon *) NULL;
     int32_t frame_diff = 0;
-    mac_rlc_status_resp_t rlc_status;
     uint8_t dcch_header_len = 0;
-    uint16_t sdu_lengths[8];
+    uint16_t sdu_lengths;
     uint8_t ulsch_buff[MAX_ULSCH_PAYLOAD_BYTES];
 
     AssertFatal(CC_id == 0,
@@ -405,8 +404,7 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP, int CC_id,
 						 [DCCH]] > 0) {
 		// This is for triggering a transmission on DCCH using PRACH (during handover, or sending SR for example)
 		dcch_header_len = 2 + 2;	/// SHORT Subheader + C-RNTI control element
-		rlc_status =
-		    mac_rlc_status_ind(module_idP,
+                LOG_USEDINLOG_VAR(mac_rlc_status_resp_t,rlc_status)=mac_rlc_status_ind(module_idP,
 				       UE_mac_inst[module_idP].crnti,
 				       eNB_indexP, frameP, subframeP,
 				       ENB_FLAG_NO, MBMS_FLAG_NO, DCCH, 6
@@ -415,7 +413,6 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP, int CC_id,
 #endif
                );
 
-
 		if (UE_mac_inst[module_idP].crnti_before_ho)
 		    LOG_D(MAC,
 			  "[UE %d] Frame %d : UL-DCCH -> ULSCH, HO RRCConnectionReconfigurationComplete (%x, %x), RRC message has %d bytes to send throug PRACH (mac header len %d)\n",
@@ -429,7 +426,7 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP, int CC_id,
 			  module_idP, frameP, rlc_status.bytes_in_buffer,
 			  dcch_header_len);
 
-		sdu_lengths[0] = mac_rlc_data_req(module_idP, UE_mac_inst[module_idP].crnti, eNB_indexP, frameP, ENB_FLAG_NO, MBMS_FLAG_NO, DCCH, 6,	//not used
+		sdu_lengths = mac_rlc_data_req(module_idP, UE_mac_inst[module_idP].crnti, eNB_indexP, frameP, ENB_FLAG_NO, MBMS_FLAG_NO, DCCH, 6,	//not used
 						  (char *) &ulsch_buff[0]
 #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
 						  ,0,
@@ -437,9 +434,13 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP, int CC_id,
 #endif
                                      );
 
+                if(sdu_lengths > 0)
+		   LOG_D(MAC, "[UE %d] TX Got %d bytes for DCCH\n",
+		         module_idP, sdu_lengths);
+                else
+                  LOG_E(MAC, "[UE %d] TX DCCH error\n",
+                         module_idP );
 
-		LOG_D(MAC, "[UE %d] TX Got %d bytes for DCCH\n",
-		      module_idP, sdu_lengths[0]);
 		update_bsr(module_idP, frameP, subframeP, eNB_indexP);
 		UE_mac_inst[module_idP].
 		    scheduling_info.BSR[UE_mac_inst[module_idP].
diff --git a/openair2/LAYER2/MAC/rar_tools.c b/openair2/LAYER2/MAC/rar_tools.c
index 9e5824fdd38eecadf44da1b77a58a361e1ac2179..b70b3824946cf0271752ff735613fd473e781c99 100644
--- a/openair2/LAYER2/MAC/rar_tools.c
+++ b/openair2/LAYER2/MAC/rar_tools.c
@@ -32,7 +32,7 @@
 #include "mac_proto.h"
 #include "mac_extern.h"
 #include "SIMULATION/TOOLS/sim.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "OCG.h"
 #include "OCG_extern.h"
 #include "UTIL/OPT/opt.h"
diff --git a/openair2/LAYER2/MAC/rar_tools_ue.c b/openair2/LAYER2/MAC/rar_tools_ue.c
index 44f0f51582c25090fe1cd3a5fee5243b7511f903..991eaae052b40fe68297927593101cb548f192a6 100644
--- a/openair2/LAYER2/MAC/rar_tools_ue.c
+++ b/openair2/LAYER2/MAC/rar_tools_ue.c
@@ -32,7 +32,7 @@
 #include "mac_proto.h"
 #include "mac_extern.h"
 #include "SIMULATION/TOOLS/sim.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "OCG.h"
 #include "OCG_extern.h"
 #include "UTIL/OPT/opt.h"
diff --git a/openair2/LAYER2/MAC/ue_procedures.c b/openair2/LAYER2/MAC/ue_procedures.c
index 592ba42b26be5f659ee00dbd740214e7e8a15d3e..dd78da72751db65b3ae551d921b25353e9fcc33f 100644
--- a/openair2/LAYER2/MAC/ue_procedures.c
+++ b/openair2/LAYER2/MAC/ue_procedures.c
@@ -45,8 +45,8 @@
 
 #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
 #include "RRC/LTE/rrc_extern.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "UTIL/OPT/opt.h"
 #include "OCG.h"
 #include "OCG_extern.h"
@@ -2298,8 +2298,6 @@ ue_scheduler(const module_id_t module_idP,
 
 #if defined(ENABLE_ITTI)
     MessageDef *msg_p;
-    const char *msg_name;
-    instance_t instance;
     int result;
 #endif
 #if UE_TIMING_TRACE
@@ -2318,14 +2316,12 @@ ue_scheduler(const module_id_t module_idP,
 	itti_poll_msg(TASK_MAC_UE, &msg_p);
 
 	if (msg_p != NULL) {
-	    msg_name = ITTI_MSG_NAME(msg_p);
-	    instance = ITTI_MSG_INSTANCE(msg_p);
 
 	    switch (ITTI_MSG_ID(msg_p)) {
 	    case RRC_MAC_CCCH_DATA_REQ:
 		LOG_I(MAC,
 		      "Received %s from %s: instance %d, frameP %d, eNB_index %d\n",
-		      msg_name, ITTI_MSG_ORIGIN_NAME(msg_p), instance,
+		      ITTI_MSG_NAME(msg_p), ITTI_MSG_ORIGIN_NAME(msg_p), ITTI_MSG_INSTANCE(msg_p),
 		      RRC_MAC_CCCH_DATA_REQ(msg_p).frame,
 		      RRC_MAC_CCCH_DATA_REQ(msg_p).enb_index);
 
@@ -2334,7 +2330,7 @@ ue_scheduler(const module_id_t module_idP,
 
 
 	    default:
-		LOG_E(MAC, "Received unexpected message %s\n", msg_name);
+		LOG_E(MAC, "Received unexpected message %s\n", ITTI_MSG_NAME(msg_p));
 		break;
 	    }
 
@@ -2386,7 +2382,7 @@ ue_scheduler(const module_id_t module_idP,
 	return (PHY_RESYNCH);
 
     case RRC_Handover_failed:
-	LOG_N(MAC, "Handover failure for UE %d eNB_index %d\n", module_idP,
+	LOG_I(MAC, "Handover failure for UE %d eNB_index %d\n", module_idP,
 	      eNB_indexP);
 	//Invalid...need to add another MAC UE state for re-connection procedure
 	phy_config_afterHO_ue(module_idP, 0, eNB_indexP,
diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c
index c6ce37c98d4796e1782cbdfa1b0f3452109d3416..e12fb80e1bda913de5e770730d3fe9ca97aa9ba6 100644
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp.c
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c
@@ -42,10 +42,10 @@
 #include "OCG.h"
 #include "OCG_extern.h"
 #include "otg_rx.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include <inttypes.h>
 #include "platform_constants.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "msc.h"
 
 #if defined(ENABLE_SECURITY)
@@ -915,16 +915,6 @@ pdcp_run (
 //-----------------------------------------------------------------------------
 {
   
-#if defined(ENABLE_ITTI)
-  MessageDef   *msg_p;
-  const char   *msg_name;
-  instance_t    instance;
-  int           result;
-  protocol_ctxt_t  ctxt;
-#endif
-
-
-  
   if (ctxt_pP->enb_flag) {
     start_meas(&eNB_pdcp_stats[ctxt_pP->module_id].pdcp_run);
   } else {
@@ -939,14 +929,15 @@ pdcp_run (
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_RUN, VCD_FUNCTION_IN);
 
 #if defined(ENABLE_ITTI)
+  MessageDef   *msg_p;
+  int           result;
+  protocol_ctxt_t  ctxt;
 
   do {
     // Checks if a message has been sent to PDCP sub-task
     itti_poll_msg (ctxt_pP->enb_flag ? TASK_PDCP_ENB : TASK_PDCP_UE, &msg_p);
 
     if (msg_p != NULL) {
-      msg_name = ITTI_MSG_NAME (msg_p);
-      instance = ITTI_MSG_INSTANCE (msg_p);
 
       switch (ITTI_MSG_ID(msg_p)) {
       case RRC_DCCH_DATA_REQ:
@@ -960,9 +951,9 @@ pdcp_run (
 	  RRC_DCCH_DATA_REQ (msg_p).eNB_index);
         LOG_I(PDCP, PROTOCOL_CTXT_FMT"Received %s from %s: instance %d, rb_id %d, muiP %d, confirmP %d, mode %d\n",
               PROTOCOL_CTXT_ARGS(&ctxt),
-              msg_name,
+              ITTI_MSG_NAME (msg_p),
               ITTI_MSG_ORIGIN_NAME(msg_p),
-              instance,
+              ITTI_MSG_INSTANCE (msg_p),
               RRC_DCCH_DATA_REQ (msg_p).rb_id,
               RRC_DCCH_DATA_REQ (msg_p).muip,
               RRC_DCCH_DATA_REQ (msg_p).confirmp,
@@ -1004,7 +995,7 @@ pdcp_run (
       break;
 
       default:
-        LOG_E(PDCP, "Received unexpected message %s\n", msg_name);
+        LOG_E(PDCP, "Received unexpected message %s\n", ITTI_MSG_NAME (msg_p));
         break;
       }
 
@@ -1583,7 +1574,7 @@ pdcp_config_req_asn1 (
     pdcp_pP->first_missing_pdu                = -1;
     pdcp_pP->rx_hfn_offset                    = 0;
 
-    LOG_N(PDCP, PROTOCOL_PDCP_CTXT_FMT" Action ADD  LCID %d (%s id %d) "
+    LOG_I(PDCP, PROTOCOL_PDCP_CTXT_FMT" Action ADD  LCID %d (%s id %d) "
             "configured with SN size %d bits and RLC %s\n",
           PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP,pdcp_pP),
           lc_idP,
@@ -1632,7 +1623,7 @@ pdcp_config_req_asn1 (
       pdcp_pP->seq_num_size=5;
     }
 
-    LOG_N(PDCP,PROTOCOL_PDCP_CTXT_FMT" Action MODIFY LCID %d "
+    LOG_I(PDCP,PROTOCOL_PDCP_CTXT_FMT" Action MODIFY LCID %d "
             "RB id %d reconfigured with SN size %d and RLC %s \n",
           PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP,pdcp_pP),
           lc_idP,
diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
index ec605faa713e03b804a47d411c407e6f58ce4317..b9e605ca24dbea29d60d414b835386c8cc9924c2 100644
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
@@ -52,10 +52,10 @@ extern int otg_enabled;
 //#include "SIMULATION/ETH_TRANSPORT/extern.h"
 #include "UTIL/OCG/OCG.h"
 #include "UTIL/OCG/OCG_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "UTIL/OTG/otg_tx.h"
 #include "UTIL/FIFO/pad_list.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "platform_constants.h"
 #include "msc.h"
 #include "pdcp.h"
diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c
index f0b15d9888d7d0268be4d43df309f89519e1c5f4..472c46c94a46d6825eefb7d4ca1ef831a1abdf55 100644
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c
@@ -52,7 +52,7 @@
 #include "queue.h"
 #include "liblfds611.h"
 
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "UTIL/OCG/OCG.h"
 #include "UTIL/OCG/OCG_extern.h"
 #include "LAYER2/MAC/mac_extern.h"
diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c
index 7117a760b979a2ba1d6470d99cfcd0d62b955e08..ef674132c45f38d9e38ed4c564559e4edee85237 100644
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c
@@ -26,7 +26,7 @@
 * \version 0.1
 */
 
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "platform_types.h"
 #include "platform_constants.h"
 #include "pdcp.h"
diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c
index 2c29053297d67a5b5daf836a8a99fe60b7bd8b58..95a6c28ae6b78b3b4e1fc6b5a5f7b7cc9d586198 100644
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c
@@ -29,10 +29,10 @@
 
 #include "assertions.h"
 
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "UTIL/OSA/osa_defs.h"
 
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
 #include "LAYER2/MAC/mac_extern.h"
 
diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c
index b8ec487935a95663fc1347dcf5934ccd810a23a1..c6deb4944172b214c69d5f16df7025eb3a717dde 100644
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c
@@ -27,7 +27,7 @@
 */
 
 #include "pdcp_sequence_manager.h"
-#include "UTIL/LOG/log_if.h"
+#include "common/utils//LOG/log_if.h"
 #include "pdcp_util.h"
 
 /*
diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c
index ad2cbae8479ad13c21f3a8463c1636b442f6c687..cf8218829fe605a51f47365c513a8832011fa635 100644
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c
@@ -27,7 +27,7 @@
 
 #include <assert.h>
 
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "pdcp_util.h"
 
 /*
diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h
index 7944049c3bd06f24b44549ccc6c134867061f372..49846c7a9fbd75bfbefb64f1d32af56cb958e262 100644
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h
@@ -28,7 +28,7 @@
 #ifndef PDCP_UTIL_H
 #define PDCP_UTIL_H
 
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "../../COMMON/platform_types.h"
 #include "pdcp.h"
 
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c
index 6951b27074877ae845ab5f74294b8c89b65765a2..d4e43fda475a190871a5ed955e459b79df927b76 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c
@@ -38,7 +38,7 @@
 #include "rlc_primitives.h"
 #include "list.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "UL-AM-RLC.h"
 #include "DL-AM-RLC.h"
 
@@ -499,7 +499,7 @@ rlc_am_rx (
   switch (rlc->protocol_state) {
 
   case RLC_NULL_STATE:
-    LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT" ERROR MAC_DATA_IND IN RLC_NULL_STATE\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP, rlc));
+    LOG_I(RLC, PROTOCOL_RLC_AM_CTXT_FMT" ERROR MAC_DATA_IND IN RLC_NULL_STATE\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP, rlc));
     list_free (&data_indP.data);
     break;
 
@@ -1141,7 +1141,6 @@ rlc_am_data_req (
   uint32_t             mui;
   uint16_t             data_offset;
   uint16_t             data_size;
-  uint8_t              conf;
 #if TRACE_RLC_AM_PDU
   char                 message_string[7000];
   size_t               message_string_size = 0;
@@ -1164,7 +1163,6 @@ rlc_am_data_req (
     mui         = ((struct rlc_am_data_req *) (sdu_pP->data))->mui;
     data_offset = ((struct rlc_am_data_req *) (sdu_pP->data))->data_offset;
     data_size   = ((struct rlc_am_data_req *) (sdu_pP->data))->data_size;
-    conf        = ((struct rlc_am_data_req *) (sdu_pP->data))->conf;
 
     MSC_LOG_RX_MESSAGE(
       (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE,
@@ -1182,7 +1180,7 @@ rlc_am_data_req (
     message_string_size += sprintf(&message_string[message_string_size], "Bearer      : %u\n", l_rlc_p->rb_id);
     message_string_size += sprintf(&message_string[message_string_size], "SDU size    : %u\n", data_size);
     message_string_size += sprintf(&message_string[message_string_size], "MUI         : %u\n", mui);
-    message_string_size += sprintf(&message_string[message_string_size], "CONF        : %u\n", conf);
+    message_string_size += sprintf(&message_string[message_string_size], "CONF        : %u\n", ((struct rlc_am_data_req *) (sdu_pP->data))->conf);
 
     message_string_size += sprintf(&message_string[message_string_size], "\nPayload  : \n");
     message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n");
@@ -1233,7 +1231,6 @@ rlc_am_data_req (
 
     l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].mui      = mui;
     l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].sdu_size = data_size;
-    //l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].confirm  = conf;
 
     l_rlc_p->sdu_buffer_occupancy += data_size;
     l_rlc_p->nb_sdu += 1;
@@ -1261,7 +1258,7 @@ rlc_am_data_req (
           l_rlc_p->nb_sdu,
           l_rlc_p->current_sdu_index,
           l_rlc_p->next_sdu_index,
-          conf,
+          ((struct rlc_am_data_req *) (sdu_pP->data))->conf,
           mui,
 		  l_rlc_p->vt_a,
 		  l_rlc_p->vt_s);
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c
index 3159eccc0cdbc960232a656d4dd889847dc7fd9d..af2cbb97bdb24d060a2d06558a883a3eb02600f8 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c
@@ -31,7 +31,7 @@
 //-----------------------------------------------------------------------------
 #include "rlc_am.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 
 #define TRACE_RLC_AM_FREE_SDU 0
 //-----------------------------------------------------------------------------
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c
index 0b0a55bd2b66ee32560704e02ef7b29766e64a47..cb09f24855aa789cffdea78b3d4851a08e54f901 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c
@@ -25,7 +25,7 @@
 //-----------------------------------------------------------------------------
 #include "rlc_am.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 //-----------------------------------------------------------------------------
 void
 rlc_am_init(
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c
index 8b5776dfe7ebd89aaff51385f6442e65e86432d2..d2fe1d1bfd66ed0e7617e781e45cb1231af0e403 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c
@@ -31,7 +31,7 @@
 #include "rlc_am.h"
 #include "list.h"
 //#include "LAYER2/MAC/extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "msc.h"
 
 //-----------------------------------------------------------------------------
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c
index 83dec8653a65cb9ec08da12ae966c383e28d9854..f9a4affb6b9d187ebefc585ae521a11877491f8f 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c
@@ -29,7 +29,7 @@
 #include "rlc_am.h"
 #include "list.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 
 
 //-----------------------------------------------------------------------------
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c
index cdf93a7af6a3cdaaf60302e9330bcd3468c2ee81..2f001bdcfd82eef375e29051555a352289bbbe1f 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c
@@ -27,7 +27,7 @@
 #include "rlc_am.h"
 #include "rlc.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "msc.h"
 //-----------------------------------------------------------------------------
 boolean_t rlc_am_nack_pdu (
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c
index abe7d3310cf63c902a79c36d2b8a9256a4df98f6..9d69882923d84e02d97cde5047c4cb50f00a85af 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c
@@ -28,7 +28,7 @@
 #include "list.h"
 #include "rlc_am.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 
 
 boolean_t rlc_am_rx_check_vr_reassemble(
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c
index 03dd524a5caa6dbd5731e2d8f12f33135c9b7e9c..40bab6ff0b0b9f4021e7204fd3ab4e8b5fdf0e19 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c
@@ -30,7 +30,7 @@
 #include "list.h"
 #include "rlc_am.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 
 //-----------------------------------------------------------------------------
 void rlc_am_pdu_polling (
@@ -209,7 +209,7 @@ void rlc_am_segment_10 (
       }
 
       if (!(pdu_mem_p = get_free_mem_block (data_pdu_size + sizeof(struct mac_tb_req), __func__))) {
-        LOG_C(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEGMENT] ERROR COULD NOT GET NEW PDU, EXIT\n",
+        LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEGMENT] ERROR COULD NOT GET NEW PDU, EXIT\n",
               PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP));
         RLC_AM_MUTEX_UNLOCK(&rlc_pP->lock_input_sdus);
         return;
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c
index 7def8e01fc1b4dcf4c2a09d30af221952220ad6a..917f1a1791d733bc9a63701fc2bef0d92e6f1506 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c
@@ -32,7 +32,7 @@
 #include "assertions.h"
 #include "list.h"
 #include "rlc_am.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 
 #   if ENABLE_ITTI
 //-----------------------------------------------------------------------------
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c
index cae015306236e9cf5dadce749d6eabc6dbac0531..e421a36619f0024eebfaeb478800630bb0dcbf3b 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c
@@ -28,7 +28,7 @@
 //-----------------------------------------------------------------------------
 #include "rlc_am.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "msc.h"
 //-----------------------------------------------------------------------------
 void
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c
index 19b9b41ca67f40fe666a794afffad9723e5c8fe9..262b8a8391fc931511d1770bb17f7616fcbe8858 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c
@@ -27,7 +27,7 @@
 //-----------------------------------------------------------------------------
 #include "rlc_am.h"
 # include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils//LOG/log.h"
 #include "msc.h"
 //-----------------------------------------------------------------------------
 void
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c
index 84c0edbefd52730a8b73d4c36af1611bf8115062..5b0b0a70faa1ad1f33a0bce0d878f395495fbbbb 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c
@@ -27,7 +27,7 @@
 //-----------------------------------------------------------------------------
 #include "rlc_am.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "msc.h"
 //-----------------------------------------------------------------------------
 void
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c
index 7a3005334e8cdd7d8ef0d393230ecc3f459c85cc..24f0b12214fb0536ff5e19a2e1198151894f079f 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c
@@ -27,7 +27,7 @@
 #include "platform_types.h"
 //-----------------------------------------------------------------------------
 #include "rlc_am.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 //-----------------------------------------------------------------------------
 signed int rlc_am_in_tx_window(
   const protocol_ctxt_t* const  ctxt_pP,
diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c
index 23a4d0eb0478c9aab4e00880f9428d121fafe5e6..dbd1469590c40a2950c18f717114f4aff11b673b 100644
--- a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c
+++ b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c
@@ -196,11 +196,10 @@ rlc_tm_mac_data_indication (
   void * const        rlc_pP,
   struct mac_data_ind data_indP)
 {
-  rlc_tm_entity_t* rlc_p = (rlc_tm_entity_t*) rlc_pP;
 
   if (data_indP.data.nb_elements > 0) {
     LOG_D(RLC, PROTOCOL_RLC_TM_CTXT_FMT" MAC_DATA_IND %d TBs\n",
-          PROTOCOL_RLC_TM_CTXT_ARGS(ctxt_pP, rlc_p),
+          PROTOCOL_RLC_TM_CTXT_ARGS(ctxt_pP, ((rlc_tm_entity_t*) rlc_pP)),
           data_indP.data.nb_elements);
   }
 
diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c
index d8f151a5ff8d59315c922cec65a0c3b09f106cc5..f04fd6681935ddadc08b6f63c832436357984d16 100644
--- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c
+++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c
@@ -36,7 +36,7 @@
 #include "rlc_primitives.h"
 #include "mac_primitives.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 
 
 #include "rlc_um_very_simple_test.h"
@@ -194,7 +194,7 @@ rlc_um_rx (const protocol_ctxt_t* const ctxt_pP, void *argP, struct mac_data_ind
     // establishment, the RLC entity:
     //   - is created; and
     //   - enters the DATA_TRANSFER_READY state.
-    LOG_N(RLC, PROTOCOL_RLC_UM_CTXT_FMT" ERROR MAC_DATA_IND IN RLC_NULL_STATE\n",
+    LOG_I(RLC, PROTOCOL_RLC_UM_CTXT_FMT" ERROR MAC_DATA_IND IN RLC_NULL_STATE\n",
           PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,l_rlc_p));
 #if MESSAGE_CHART_GENERATOR
 
@@ -387,7 +387,7 @@ rlc_um_rx (const protocol_ctxt_t* const ctxt_pP, void *argP, struct mac_data_ind
     // - stays in the LOCAL_SUSPEND state;
     // - modifies only the protocol parameters and timers as indicated by
     //   upper layers.
-    LOG_N(RLC, PROTOCOL_RLC_UM_CTXT_FMT" RLC_LOCAL_SUSPEND_STATE\n",
+    LOG_I(RLC, PROTOCOL_RLC_UM_CTXT_FMT" RLC_LOCAL_SUSPEND_STATE\n",
           PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,l_rlc_p));
     /*if (data_indP.data.nb_elements > 0) {
         LOG_D(RLC, "[FRAME %05d][%s][RLC_UM][MOD %02u/%02u][RB %02d] MAC_DATA_IND %d TBs\n", l_rlc_p->module_id, l_rlc_p->rb_id, ctxt_pP->frame, data_indP.data.nb_elements);
diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c
index 21cfa57b64e3c102e86e024b825f8cd1b00d7a0b..b422748292077c29c7591091575a69d77f5ec7b6 100644
--- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c
+++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c
@@ -29,7 +29,7 @@
 #include "list.h"
 #include "rrm_config_structs.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 
 #include "rlc_um_control_primitives.h"
 #include "T-Reordering.h"
diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c
index 9405fb7ec133fd61916bae509cfc56206870ea08..18db23eb5534291d239055b8d11632a4088f60d0 100644
--- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c
+++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c
@@ -30,8 +30,8 @@
 #include "rlc_primitives.h"
 #include "mac_primitives.h"
 #include "list.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 //-----------------------------------------------------------------------------
 signed int rlc_um_get_pdu_infos(
   const protocol_ctxt_t* const ctxt_pP,
@@ -151,7 +151,6 @@ int rlc_um_read_length_indicators(unsigned char**data_ppP, rlc_um_e_li_t* e_liP,
   unsigned int e2  = 0;
   unsigned int li2 = 0;
   *num_li_pP = 0;
-  int pdu_size = *data_size_pP;
 
   while ((continue_loop)) {
     //msg("[RLC_UM] e_liP->b1 = %02X\n", e_liP->b1);
@@ -170,7 +169,7 @@ int rlc_um_read_length_indicators(unsigned char**data_ppP, rlc_um_e_li_t* e_liP,
       *num_li_pP = *num_li_pP +1;
 
       if (!(*data_size_pP >= 0)) LOG_E(RLC, "Invalid data_size=%d! (pdu_size=%d loop=%d e1=%d e2=%d li2=%d e_liP=%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x)\n",
-          *data_size_pP, pdu_size, continue_loop, e1, e2, li2,
+          *data_size_pP, *data_size_pP, continue_loop, e1, e2, li2,
           (e_liP-(continue_loop-1)+0)->b1,
           (e_liP-(continue_loop-1)+0)->b2,
           (e_liP-(continue_loop-1)+0)->b3,
@@ -190,7 +189,7 @@ int rlc_um_read_length_indicators(unsigned char**data_ppP, rlc_um_e_li_t* e_liP,
       }
     } else {
       if (!(*data_size_pP >= 0)) LOG_E(RLC, "Invalid data_size=%d! (pdu_size=%d loop=%d e1=%d li1=%d e_liP=%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x)\n",
-          *data_size_pP, pdu_size, continue_loop, e1, li1,
+          *data_size_pP, *data_size_pP, continue_loop, e1, li1,
           (e_liP-(continue_loop-1)+0)->b1,
           (e_liP-(continue_loop-1)+0)->b2,
           (e_liP-(continue_loop-1)+0)->b3,
diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c
index fa0bf4b288b2c6a1bc996d418b450e305b044f86..b8ac29fca4c92d20fa0c1fd21b807ec69893fec1 100644
--- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c
+++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c
@@ -25,7 +25,7 @@
 //-----------------------------------------------------------------------------
 #include "rlc_um.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 
 
 //-----------------------------------------------------------------------------
@@ -72,7 +72,7 @@ rlc_um_fsm_notify_event (
 
     case RLC_UM_RECEIVE_CRLC_SUSPEND_REQ_EVENT:
     case RLC_UM_TRANSMIT_CRLC_SUSPEND_CNF_EVENT:
-      LOG_N(RLC, PROTOCOL_RLC_UM_CTXT_FMT" FSM RLC_DATA_TRANSFER_READY_STATE -> RLC_LOCAL_SUSPEND_STATE\n",
+      LOG_I(RLC, PROTOCOL_RLC_UM_CTXT_FMT" FSM RLC_DATA_TRANSFER_READY_STATE -> RLC_LOCAL_SUSPEND_STATE\n",
             PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP, rlc_pP));
       rlc_pP->protocol_state = RLC_LOCAL_SUSPEND_STATE;
       return 1;
@@ -93,14 +93,14 @@ rlc_um_fsm_notify_event (
   case RLC_LOCAL_SUSPEND_STATE:
     switch (eventP) {
     case RLC_UM_RECEIVE_CRLC_CONFIG_REQ_ENTER_NULL_STATE_EVENT:
-      LOG_N(RLC, PROTOCOL_RLC_UM_CTXT_FMT" FSM RLC_LOCAL_SUSPEND_STATE -> RLC_NULL_STATE\n",
+      LOG_I(RLC, PROTOCOL_RLC_UM_CTXT_FMT" FSM RLC_LOCAL_SUSPEND_STATE -> RLC_NULL_STATE\n",
             PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP, rlc_pP));
       rlc_pP->protocol_state = RLC_NULL_STATE;
       return 1;
       break;
 
     case RLC_UM_RECEIVE_CRLC_RESUME_REQ_EVENT:
-      LOG_N(RLC, PROTOCOL_RLC_UM_CTXT_FMT" FSM RLC_LOCAL_SUSPEND_STATE -> RLC_DATA_TRANSFER_READY_STATE\n",
+      LOG_I(RLC, PROTOCOL_RLC_UM_CTXT_FMT" FSM RLC_LOCAL_SUSPEND_STATE -> RLC_DATA_TRANSFER_READY_STATE\n",
             PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP, rlc_pP));
       rlc_pP->protocol_state = RLC_DATA_TRANSFER_READY_STATE;
       return 1;
diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c
index 65aaadb9fa38106defed77ef211b9f497c327e5d..2eba22380335e3c4af9fbde9f7352d968c94bbec 100644
--- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c
+++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c
@@ -34,7 +34,7 @@
 #include "rlc_primitives.h"
 #include "list.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "msc.h"
 
 //-----------------------------------------------------------------------------
diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c
index 37608d43308b12b88dde5e274f3d6445314958ce..b6ab367bc1a112318c0c68073bf1a6a47b4586b2 100644
--- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c
+++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c
@@ -29,7 +29,7 @@
 #include "rlc_primitives.h"
 #include "mac_primitives.h"
 #include "list.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 
 //-----------------------------------------------------------------------------
 void
@@ -40,7 +40,7 @@ rlc_um_display_rx_window(
 {
   unsigned long sn = 0;
   unsigned long end_sn = 0;
-  char          str[4];
+  LOG_USEDINLOG_VAR(char,str[4]);
   char          time_out_str[11];
   int           str_index;
   char          color[32];
diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c
index 91ae265f172d1c0c801c449c40372c121215f9c2..932bb1376e92593a488f6d4c12ffbb31d023afe3 100644
--- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c
+++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c
@@ -31,7 +31,7 @@
 #include "list.h"
 #include "rlc_um.h"
 #include "rlc_primitives.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 
 //-----------------------------------------------------------------------------
 void
diff --git a/openair2/LAYER2/RLC/rlc.c b/openair2/LAYER2/RLC/rlc.c
index 045fcbc6018102ec3e510b63cf4931d094541f0b..846d406319d8f4aa736c8c5ab1ba6e92a8b2a905 100644
--- a/openair2/LAYER2/RLC/rlc.c
+++ b/openair2/LAYER2/RLC/rlc.c
@@ -31,9 +31,9 @@
 #include "mem_block.h"
 #include "../MAC/mac_extern.h"
 #include "LAYER2/RLC/UM_v9.3.0/rlc_um.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "UTIL/OCG/OCG_vars.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
 #include "assertions.h"
 
diff --git a/openair2/LAYER2/RLC/rlc.h b/openair2/LAYER2/RLC/rlc.h
index 424fcbd98ee48be79ab66b935019003f00a550fd..ff49b2d056f12f2e07a6a642322411e0841c5398 100644
--- a/openair2/LAYER2/RLC/rlc.h
+++ b/openair2/LAYER2/RLC/rlc.h
@@ -45,7 +45,7 @@
 #    include "rlc_tm_structs.h"
 #    include "rlc_um_structs.h"
 #    include "asn_constant.h"
-#    include "UTIL/LOG/log.h"
+#    include "common/utils/LOG/log.h"
 #    include "mem_block.h"
 //#    include "PHY/defs.h"
 #    include "RLC-Config.h"
diff --git a/openair2/LAYER2/RLC/rlc_mac.c b/openair2/LAYER2/RLC/rlc_mac.c
index ef94dd6f9738f816973d47a131086fb2b05ef024..dbc2d1d3423fb34c76b19e6533e972b44625844d 100644
--- a/openair2/LAYER2/RLC/rlc_mac.c
+++ b/openair2/LAYER2/RLC/rlc_mac.c
@@ -32,11 +32,11 @@
 #include "rlc.h"
 #include "LAYER2/RLC/UM_v9.3.0/rlc_um.h"
 #include "LAYER2/MAC/mac_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "UTIL/OCG/OCG_vars.h"
 #include "hashtable.h"
 #include "assertions.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
 //#define DEBUG_MAC_INTERFACE 1
 
diff --git a/openair2/LAYER2/RLC/rlc_rrc.c b/openair2/LAYER2/RLC/rlc_rrc.c
index 63fa212c318c9ec4cab443ccd1fb50e94de99517..aa00ffb773c876f4c8e99edac83394794e457822 100644
--- a/openair2/LAYER2/RLC/rlc_rrc.c
+++ b/openair2/LAYER2/RLC/rlc_rrc.c
@@ -32,7 +32,7 @@
 #include "rlc_am.h"
 #include "rlc_um.h"
 #include "rlc_tm.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "RLC-Config.h"
 #include "DRB-ToAddMod.h"
 #include "DRB-ToAddModList.h"
diff --git a/openair2/LAYER2/openair2_proc.c b/openair2/LAYER2/openair2_proc.c
index 0c884a806ce85d35b0d80fe0ee32e8598558de4c..78a893cfae0b2fe72eb2cb87172885c5d3393745 100644
--- a/openair2/LAYER2/openair2_proc.c
+++ b/openair2/LAYER2/openair2_proc.c
@@ -35,7 +35,7 @@
 #include "LAYER2/MAC/mac.h"
 #include "LAYER2/MAC/mac_extern.h"
 #include "LAYER2/PDCP_v10.1.0/pdcp.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "common/ran_context.h"
 
 static mapping rrc_status_names[] = {
diff --git a/openair2/PHY_INTERFACE/phy_stub_UE.c b/openair2/PHY_INTERFACE/phy_stub_UE.c
index 299c12a7a0247d549ab1e980b729d6c6f1f07a61..166616c368069279247ab3dcb18ddebf0e49692f 100644
--- a/openair2/PHY_INTERFACE/phy_stub_UE.c
+++ b/openair2/PHY_INTERFACE/phy_stub_UE.c
@@ -346,11 +346,10 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
                          nfapi_ul_config_request_pdu_t *ul_config_pdu,
                          uint16_t frame,uint8_t subframe,uint8_t srs_present, int index)
 {
-  nfapi_ul_config_ulsch_pdu_rel8_t *rel8 = &ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8;
 
   if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_PDU_TYPE) {
     LOG_D(PHY,"Applying UL config for UE, rnti %x for frame %d, subframe %d\n",
-         rel8->rnti,frame,subframe);
+         (ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8).rnti,frame,subframe);
     uint8_t ulsch_buffer[5477] __attribute__ ((aligned(32)));
     uint16_t buflen = ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.size;
 
@@ -561,17 +560,15 @@ int ul_config_req_UE_MAC(nfapi_ul_config_request_t* req, int timer_frame, int ti
 
 int tx_req_UE_MAC(nfapi_tx_request_t* req)
 {
-  uint16_t sfn = NFAPI_SFNSF2SFN(req->sfn_sf);
-  uint16_t sf = NFAPI_SFNSF2SF(req->sfn_sf);
 
-  LOG_D(PHY,"%s() SFN/SF:%d/%d PDUs:%d\n", __FUNCTION__, sfn, sf, req->tx_request_body.number_of_pdus);
+  LOG_D(PHY,"%s() SFN/SF:%d/%d PDUs:%d\n", __FUNCTION__, NFAPI_SFNSF2SFN(req->sfn_sf), NFAPI_SFNSF2SF(req->sfn_sf), req->tx_request_body.number_of_pdus);
 
 
     for (int i=0; i<req->tx_request_body.number_of_pdus; i++)
     {
       LOG_D(PHY,"%s() SFN/SF:%d/%d number_of_pdus:%d [PDU:%d] pdu_length:%d pdu_index:%d num_segments:%d\n",
           __FUNCTION__,
-          sfn, sf,
+          NFAPI_SFNSF2SFN(req->sfn_sf), NFAPI_SFNSF2SF(req->sfn_sf),
           req->tx_request_body.number_of_pdus,
           i,
           req->tx_request_body.tx_pdu_list[i].pdu_length,
diff --git a/openair2/RRC/LTE/L2_interface.c b/openair2/RRC/LTE/L2_interface.c
index df758e49a2dee7f983f9376f29978d158ae6b430..a7c96a8a22f201d19fe1dc2e63eaa59009745a92 100644
--- a/openair2/RRC/LTE/L2_interface.c
+++ b/openair2/RRC/LTE/L2_interface.c
@@ -31,7 +31,7 @@
 #include "platform_types.h"
 #include "rrc_defs.h"
 #include "rrc_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "rrc_eNB_UE_context.h"
 #include "pdcp.h"
 #include "msc.h"
diff --git a/openair2/RRC/LTE/L2_interface_common.c b/openair2/RRC/LTE/L2_interface_common.c
index 155c0ebb90e10e58c83bef13daaa138c2dfc198a..b03b36a557431d58f8ca8c036dd47e5ebf09bce4 100644
--- a/openair2/RRC/LTE/L2_interface_common.c
+++ b/openair2/RRC/LTE/L2_interface_common.c
@@ -31,7 +31,7 @@
 #include "platform_types.h"
 #include "rrc_defs.h"
 #include "rrc_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "rrc_eNB_UE_context.h"
 #include "pdcp.h"
 #include "msc.h"
@@ -132,10 +132,10 @@ rrc_data_ind(
   rb_id_t    DCCH_index = Srb_id;
 
   if (ctxt_pP->enb_flag == ENB_FLAG_NO) {
-    LOG_N(RRC, "[UE %x] Frame %d: received a DCCH %d message on SRB %d with Size %d from eNB %d\n",
+    LOG_I(RRC, "[UE %x] Frame %d: received a DCCH %d message on SRB %d with Size %d from eNB %d\n",
           ctxt_pP->module_id, ctxt_pP->frame, DCCH_index,Srb_id,sdu_sizeP,  ctxt_pP->eNB_index);
   } else {
-    LOG_N(RRC, "[eNB %d] Frame %d: received a DCCH %d message on SRB %d with Size %d from UE %x\n",
+    LOG_I(RRC, "[eNB %d] Frame %d: received a DCCH %d message on SRB %d with Size %d from UE %x\n",
           ctxt_pP->module_id,
           ctxt_pP->frame,
           DCCH_index,
diff --git a/openair2/RRC/LTE/L2_interface_ue.c b/openair2/RRC/LTE/L2_interface_ue.c
index 1b0b2fa7754e1a9aadd127e9d53b3f7a4fca1b5d..d3527b8a17e619119399ab1d557c1e4a89b2d653 100644
--- a/openair2/RRC/LTE/L2_interface_ue.c
+++ b/openair2/RRC/LTE/L2_interface_ue.c
@@ -31,7 +31,7 @@
 #include "platform_types.h"
 #include "rrc_defs.h"
 #include "rrc_extern.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "rrc_eNB_UE_context.h"
 #include "pdcp.h"
 #include "msc.h"
@@ -350,7 +350,7 @@ rrc_data_ind_ue(
 {
   rb_id_t    DCCH_index = Srb_id;
 
-    LOG_N(RRC, "[UE %x] Frame %d: received a DCCH %d message on SRB %d with Size %d from eNB %d\n",
+    LOG_I(RRC, "[UE %x] Frame %d: received a DCCH %d message on SRB %d with Size %d from eNB %d\n",
           ctxt_pP->module_id, ctxt_pP->frame, DCCH_index,Srb_id,sdu_sizeP,  ctxt_pP->eNB_index);
 
 #if defined(ENABLE_ITTI)
diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg.c b/openair2/RRC/LTE/MESSAGES/asn1_msg.c
index 533f2b6a2c6f37ca2bee69fa07961a5536d4a010..66aae4237ab2d5103f2431fefc9ae44ba8bb607e 100644
--- a/openair2/RRC/LTE/MESSAGES/asn1_msg.c
+++ b/openair2/RRC/LTE/MESSAGES/asn1_msg.c
@@ -35,7 +35,7 @@
 #include <string.h> /* for strerror(3) */
 #include <sysexits.h> /* for EX_* exit codes */
 #include <errno.h>  /* for errno */
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include <asn_application.h>
 #include <asn_internal.h> /* for _ASN_DEFAULT_STACK_MAX */
 #include <per_encoder.h>
@@ -1399,7 +1399,6 @@ uint8_t do_RRCConnectionRequest(uint8_t Mod_id, uint8_t *buffer,uint8_t *rv)
 
   asn_enc_rval_t enc_rval;
   uint8_t buf[5],buf2=0;
-  uint8_t ecause=0;
 
   UL_CCCH_Message_t ul_ccch_msg;
 
@@ -1472,7 +1471,7 @@ uint8_t do_RRCConnectionRequest(uint8_t Mod_id, uint8_t *buffer,uint8_t *rv)
 # endif
 #endif
 
-  LOG_D(RRC,"[UE] RRCConnectionRequest Encoded %zd bits (%zd bytes), ecause %d\n",enc_rval.encoded,(enc_rval.encoded+7)/8,ecause);
+  LOG_D(RRC,"[UE] RRCConnectionRequest Encoded %zd bits (%zd bytes) \n",enc_rval.encoded,(enc_rval.encoded+7)/8);
 
   return((enc_rval.encoded+7)/8);
 
@@ -1806,7 +1805,6 @@ do_RRCConnectionSetup(
 {
 
   asn_enc_rval_t enc_rval;
-  uint8_t ecause=0;
   eNB_RRC_INST *rrc               = RC.rrc[ctxt_pP->module_id];
   rrc_eNB_carrier_data_t *carrier = &rrc->carrier[CC_id];
  
@@ -2200,8 +2198,8 @@ do_RRCConnectionSetup(
 # endif
 #endif
 
-  LOG_D(RRC,"RRCConnectionSetup Encoded %zd bits (%zd bytes), ecause %d\n",
-        enc_rval.encoded,(enc_rval.encoded+7)/8,ecause);
+  LOG_D(RRC,"RRCConnectionSetup Encoded %zd bits (%zd bytes) \n",
+        enc_rval.encoded,(enc_rval.encoded+7)/8);
 
   //  FREEMEM(SRB_list);
   //  free(SRB1_config);
diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c b/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c
index 9ab99c72b1fc5402755109d396efeba03f91d25e..cdfc1ac0f355ef068e18d677ddf2e4ccf371b00f 100644
--- a/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c
+++ b/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c
@@ -34,7 +34,7 @@
 #include <string.h> /* for strerror(3) */
 #include <sysexits.h> /* for EX_* exit codes */
 #include <errno.h>  /* for errno */
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include <asn_application.h>
 #include <asn_internal.h> /* for _ASN_DEFAULT_STACK_MAX */
 #include <per_encoder.h>
diff --git a/openair2/RRC/LTE/rrc_UE.c b/openair2/RRC/LTE/rrc_UE.c
index 2d754a1ea7b1b0e92a8081b7b6f310e55aa3ac77..c23bf12d52a8b533bb54f6023025ee1566fba317 100644
--- a/openair2/RRC/LTE/rrc_UE.c
+++ b/openair2/RRC/LTE/rrc_UE.c
@@ -41,8 +41,8 @@
 #include "openair1/PHY/LTE_ESTIMATION/lte_estimation.h"
 #include "LAYER2/RLC/rlc.h"
 #include "COMMON/mac_rrc_primitives.h"
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #ifndef CELLULAR
 #include "RRC/LTE/MESSAGES/asn1_msg.h"
 #endif
@@ -860,7 +860,6 @@ rrc_ue_establish_srb1(
 {
   // add descriptor from RRC PDU
 
-  uint8_t lchan_id = DCCH;
 
   UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Active = 1;
   UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Status = RADIO_CONFIG_OK;//RADIO CFG
@@ -871,7 +870,7 @@ rrc_ue_establish_srb1(
   //  memcpy(&UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Srb_info.Lchan_desc[1],&DCCH_LCHAN_DESC,LCHAN_DESC_SIZE);
 
 
-  LOG_I(RRC,"[UE %d], CONFIG_SRB1 %d corresponding to eNB_index %d\n", ue_mod_idP,lchan_id,eNB_index);
+  LOG_I(RRC,"[UE %d], CONFIG_SRB1 %d corresponding to eNB_index %d\n", ue_mod_idP,DCCH,eNB_index);
 
   //rrc_pdcp_config_req (ue_mod_idP+NB_eNB_INST, frameP, 0, CONFIG_ACTION_ADD, lchan_id,UNDEF_SECURITY_MODE);
   //  rrc_rlc_config_req(ue_mod_idP+NB_eNB_INST,frameP,0,CONFIG_ACTION_ADD,lchan_id,SIGNALLING_RADIO_BEARER,Rlc_info_am_config);
@@ -894,7 +893,6 @@ rrc_ue_establish_srb2(
 {
   // add descriptor from RRC PDU
 
-  uint8_t lchan_id = DCCH1;
 
   UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Active = 1;
   UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Status = RADIO_CONFIG_OK;//RADIO CFG
@@ -905,7 +903,7 @@ rrc_ue_establish_srb2(
   //  memcpy(&UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Srb_info.Lchan_desc[1],&DCCH_LCHAN_DESC,LCHAN_DESC_SIZE);
 
 
-  LOG_I(RRC,"[UE %d], CONFIG_SRB2 %d corresponding to eNB_index %d\n",ue_mod_idP,lchan_id,eNB_index);
+  LOG_I(RRC,"[UE %d], CONFIG_SRB2 %d corresponding to eNB_index %d\n",ue_mod_idP,DCCH1,eNB_index);
 
   //rrc_pdcp_config_req (ue_mod_idP+NB_eNB_INST, frameP, 0, CONFIG_ACTION_ADD, lchan_id, UNDEF_SECURITY_MODE);
   //  rrc_rlc_config_req(ue_mod_idP+NB_eNB_INST,frameP,0,CONFIG_ACTION_ADD,lchan_id,SIGNALLING_RADIO_BEARER,Rlc_info_am_config);
@@ -2254,7 +2252,7 @@ rrc_ue_process_mobilityControlInfo(
   DRB_ToReleaseList_t*  drb2release_list;
   DRB_Identity_t *lcid;
    */
-  LOG_N(RRC,"Note: This function needs some updates\n");
+  LOG_I(RRC,"Note: This function needs some updates\n");
 
   if(UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].T310_active == 1) {
     UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].T310_active = 0;
@@ -2272,7 +2270,7 @@ rrc_ue_process_mobilityControlInfo(
   }
    */
   //Removing SRB1 and SRB2 and DRB0
-  LOG_N(RRC,"[UE %d] : Update needed for rrc_pdcp_config_req (deprecated) and rrc_rlc_config_req commands(deprecated)\n", ctxt_pP->module_id);
+  LOG_I(RRC,"[UE %d] : Update needed for rrc_pdcp_config_req (deprecated) and rrc_rlc_config_req commands(deprecated)\n", ctxt_pP->module_id);
   rrc_pdcp_config_req (ctxt_pP, SRB_FLAG_YES, CONFIG_ACTION_REMOVE, DCCH,UNDEF_SECURITY_MODE);
   rrc_rlc_config_req(ctxt_pP, SRB_FLAG_YES, MBMS_FLAG_NO, CONFIG_ACTION_REMOVE,ctxt_pP->module_id+DCCH,Rlc_info_am_config);
   rrc_pdcp_config_req (ctxt_pP, SRB_FLAG_YES, CONFIG_ACTION_REMOVE, DCCH1,UNDEF_SECURITY_MODE);
@@ -2312,7 +2310,7 @@ rrc_ue_process_mobilityControlInfo(
     memcpy((void *)UE_rrc_inst[ue_mod_idP].DRB_config[~(7<<eNB_index)][0],(void *)UE_rrc_inst[ue_mod_idP].DRB_config[7<<eNB_index][0],sizeof(DRB_ToAddMod_t));
    */
   /*
-  LOG_N(RRC,"Not sure if Freeing the current queue config works properly: Fix me\n");
+  LOG_I(RRC,"Not sure if Freeing the current queue config works properly: Fix me\n");
   free((void *)&UE_rrc_inst[ue_mod_idP].SRB1_config[eNB_index]);
   free((void *)&UE_rrc_inst[ue_mod_idP].SRB2_config[eNB_index]);
   free((void *)&UE_rrc_inst[ue_mod_idP].DRB_config[eNB_index][0]);
@@ -3117,15 +3115,9 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,
     mnc = *PLMN_identity->mnc.list.array[0]*100 + *PLMN_identity->mnc.list.array[1]*10 + *PLMN_identity->mnc.list.array[2];
   }
 
-  int tac = 0;
-
-  if (sib1->cellAccessRelatedInfo.trackingAreaCode.size == 2) {
-    tac = (sib1->cellAccessRelatedInfo.trackingAreaCode.buf[0]<<8) + sib1->cellAccessRelatedInfo.trackingAreaCode.buf[1];
-  }
-
-  LOG_I( RRC, "PLMN MCC %0*d, MNC %0*d, TAC 0x%04x\n", mccdigits, mcc, mncdigits, mnc, tac );
-  long cellReservedForOperatorUse = sib1->cellAccessRelatedInfo.plmn_IdentityList.list.array[0]->cellReservedForOperatorUse;
-  LOG_I( RRC, "cellReservedForOperatorUse                 : raw:%ld decoded:%s\n", cellReservedForOperatorUse, SIBreserved(cellReservedForOperatorUse) );
+  LOG_I( RRC, "PLMN MCC %0*d, MNC %0*d, TAC 0x%04x\n", mccdigits, mcc, mncdigits, mnc, 
+       ((sib1->cellAccessRelatedInfo.trackingAreaCode.size == 2)?((sib1->cellAccessRelatedInfo.trackingAreaCode.buf[0]<<8) + sib1->cellAccessRelatedInfo.trackingAreaCode.buf[1]):0));
+  LOG_I( RRC, "cellReservedForOperatorUse                 : raw:%ld decoded:%s\n", sib1->cellAccessRelatedInfo.plmn_IdentityList.list.array[0]->cellReservedForOperatorUse, SIBreserved(sib1->cellAccessRelatedInfo.plmn_IdentityList.list.array[0]->cellReservedForOperatorUse) );
 
   // search internal table for provider name
   int plmn_ind = 0;
@@ -3150,10 +3142,8 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,
          sib1->cellAccessRelatedInfo.cellIdentity.buf[2],
          sib1->cellAccessRelatedInfo.cellIdentity.buf[3] >> sib1->cellAccessRelatedInfo.cellIdentity.bits_unused);
 
-  long cellBarred = sib1->cellAccessRelatedInfo.cellBarred;
-  LOG_I( RRC, "cellAccessRelatedInfo.cellBarred           : raw:%ld decoded:%s\n", cellBarred, SIBbarred(cellBarred) );
-  long intraFreqReselection = sib1->cellAccessRelatedInfo.intraFreqReselection;
-  LOG_I( RRC, "cellAccessRelatedInfo.intraFreqReselection : raw:%ld decoded:%s\n", intraFreqReselection, SIBallowed(intraFreqReselection) );
+  LOG_I( RRC, "cellAccessRelatedInfo.cellBarred           : raw:%ld decoded:%s\n", sib1->cellAccessRelatedInfo.cellBarred, SIBbarred(sib1->cellAccessRelatedInfo.cellBarred) );
+  LOG_I( RRC, "cellAccessRelatedInfo.intraFreqReselection : raw:%ld decoded:%s\n", sib1->cellAccessRelatedInfo.intraFreqReselection, SIBallowed(sib1->cellAccessRelatedInfo.intraFreqReselection) );
   LOG_I( RRC, "cellAccessRelatedInfo.csg_Indication       : %d\n", sib1->cellAccessRelatedInfo.csg_Indication );
 
   if (sib1->cellAccessRelatedInfo.csg_Identity)
@@ -3590,12 +3580,10 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,
            sib3->cellReselectionInfoCommon.speedStateReselectionPars->mobilityStateParameters.n_CellChangeMedium );
     LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars->mobilityStateParameters.n_CellChangeHigh : %ld\n",
            sib3->cellReselectionInfoCommon.speedStateReselectionPars->mobilityStateParameters.n_CellChangeHigh );
-    int q_HystSF_Medium = 6 - 2 * sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_Medium;
-    int q_HystSF_High = 6 - 2 * sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_High;
-    LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_Medium : raw:%ld decoded:%d dB\n", sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_Medium,
-           q_HystSF_Medium );
-    LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_High : raw:%ld decoded:%d dB\n", sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_High,
-           q_HystSF_High );
+    LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_Medium : raw:%ld decoded:%ld dB\n", sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_Medium,
+           6 - 2 * sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_Medium );
+    LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_High : raw:%ld decoded:%ld dB\n", sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_High,
+           6 - 2 * sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_High );
   } else {
     LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars : not defined\n" );
   }
@@ -4288,7 +4276,7 @@ void ue_meas_filtering( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_
   uint8_t             i;
   uint8_t             target_eNB_offset;
   MeasId_t         measId;
-  PhysCellId_t     cellId, targetCellId;
+  PhysCellId_t      targetCellId;
   long             rsrp_t,rsrq_t;
   long             rsrp_s,rsrq_s;
   long             nElem, nElem1;
@@ -4332,20 +4320,19 @@ void ue_meas_filtering( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_
             UE_rrc_inst[ctxt_pP->module_id].rsrq_db_filtered[target_eNB_offset]);
 
       //  if (measFlag == 1) {
-      cellId = get_adjacent_cell_id(ctxt_pP->module_id, eNB_index); //PhycellId of serving cell
       targetCellId = UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.targetCellId ;//get_adjacent_cell_id(ue_mod_idP,target_eNB_offset); //PhycellId of target cell
 
       if (pframe!=ctxt_pP->frame) {
         pframe=ctxt_pP->frame;
-        LOG_D(RRC, "[UE %d] Frame %d: doing MeasReport: servingCell(%ld) targetCell(%ld) rsrp_s(%ld) rsrq_s(%ld) rsrp_t(%ld) rsrq_t(%ld) \n",
+        LOG_D(RRC, "[UE %d] Frame %ld: doing MeasReport: servingCell(%ld) targetCell(%ld) rsrp_s(%ld) rsrq_s(%ld) rsrp_t(%ld) rsrq_t(%ld) \n",
               ctxt_pP->module_id,
-              ctxt_pP->frame,
-              cellId,
-              targetCellId,
-              rsrp_s,
-              rsrq_s,
-              rsrp_t,
-              rsrq_t);
+              (long int)ctxt_pP->frame,
+              (long int)get_adjacent_cell_id(ctxt_pP->module_id, eNB_index),
+              (long int)targetCellId,
+              (long int)rsrp_s,
+              (long int)rsrq_s,
+              (long int)rsrp_t,
+              (long int)rsrq_t);
         size = do_MeasurementReport(ctxt_pP->module_id, buffer,measId,targetCellId,rsrp_s,rsrq_s,rsrp_t,rsrq_t);
         LOG_I(RRC, "[UE %d] Frame %d : Generating Measurement Report for eNB %d\n",
               ctxt_pP->module_id, ctxt_pP->frame, eNB_index);
@@ -4396,7 +4383,6 @@ void ue_measurement_report_triggering(protocol_ctxt_t* const ctxt_pP, const uint
                 (UE_rrc_inst[ctxt_pP->module_id].ReportConfig[i][reportConfigId-1]->reportConfig.choice.reportConfigEUTRA.triggerType.present ==
                  ReportConfigEUTRA__triggerType_PR_event)) {
               hys = UE_rrc_inst[ctxt_pP->module_id].ReportConfig[i][reportConfigId-1]->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.hysteresis;
-              //LOG_N(RRC,"[UE%d] Frame %d Check below lines for segfault :), Fix me \n",ctxt_pP->module_id, frameP);
               ttt_ms = timeToTrigger_ms[UE_rrc_inst[ctxt_pP->module_id].ReportConfig[i][reportConfigId
                                         -1]->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.timeToTrigger];
               // Freq specific offset of neighbor cell freq
@@ -4692,7 +4678,6 @@ int decode_MCCH_Message( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB
 void *rrc_ue_task( void *args_p )
 {
   MessageDef   *msg_p;
-  const char   *msg_name;
   instance_t    instance;
   unsigned int  ue_mod_id;
   int           result;
@@ -4705,7 +4690,6 @@ void *rrc_ue_task( void *args_p )
     // Wait for a message
     itti_receive_msg (TASK_RRC_UE, &msg_p);
 
-    msg_name = ITTI_MSG_NAME (msg_p);
     instance = ITTI_MSG_INSTANCE (msg_p);
     ue_mod_id = UE_INSTANCE_TO_MODULE_ID(instance);
 
@@ -4716,12 +4700,12 @@ void *rrc_ue_task( void *args_p )
       break;
 
     case MESSAGE_TEST:
-      LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, msg_name);
+      LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p));
       break;
 
       /* MAC messages */
     case RRC_MAC_IN_SYNC_IND:
-      LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, msg_name,
+      LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p),
             RRC_MAC_IN_SYNC_IND (msg_p).frame, RRC_MAC_IN_SYNC_IND (msg_p).enb_index);
 
       UE_rrc_inst[ue_mod_id].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].N310_cnt = 0;
@@ -4733,14 +4717,14 @@ void *rrc_ue_task( void *args_p )
       break;
 
     case RRC_MAC_OUT_OF_SYNC_IND:
-      LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, msg_name,
+      LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p),
             RRC_MAC_OUT_OF_SYNC_IND (msg_p).frame, RRC_MAC_OUT_OF_SYNC_IND (msg_p).enb_index);
 
       UE_rrc_inst[ue_mod_id].Info[RRC_MAC_OUT_OF_SYNC_IND (msg_p).enb_index].N310_cnt ++;
       break;
 
     case RRC_MAC_BCCH_DATA_IND:
-      LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, msg_name,
+      LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p),
             RRC_MAC_BCCH_DATA_IND (msg_p).frame, RRC_MAC_BCCH_DATA_IND (msg_p).enb_index);
 
       //      PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, NOT_A_RNTI, RRC_MAC_BCCH_DATA_IND (msg_p).frame, 0);
@@ -4754,7 +4738,7 @@ void *rrc_ue_task( void *args_p )
       break;
 
     case RRC_MAC_CCCH_DATA_CNF:
-      LOG_D(RRC, "[UE %d] Received %s: eNB %d\n", ue_mod_id, msg_name,
+      LOG_D(RRC, "[UE %d] Received %s: eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p),
             RRC_MAC_CCCH_DATA_CNF (msg_p).enb_index);
 
       // reset the tx buffer to indicate RRC that ccch was successfully transmitted (for example if contention resolution succeeds)
@@ -4765,7 +4749,7 @@ void *rrc_ue_task( void *args_p )
       LOG_D(RRC, "[UE %d] RNTI %x Received %s: frameP %d, eNB %d\n",
             ue_mod_id,
             RRC_MAC_CCCH_DATA_IND (msg_p).rnti,
-            msg_name,
+            ITTI_MSG_NAME (msg_p),
             RRC_MAC_CCCH_DATA_IND (msg_p).frame,
             RRC_MAC_CCCH_DATA_IND (msg_p).enb_index);
 
@@ -4784,7 +4768,7 @@ void *rrc_ue_task( void *args_p )
 #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
 
     case RRC_MAC_MCCH_DATA_IND:
-      LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d, mbsfn SA %d\n", ue_mod_id, msg_name,
+      LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d, mbsfn SA %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p),
             RRC_MAC_MCCH_DATA_IND (msg_p).frame, RRC_MAC_MCCH_DATA_IND (msg_p).enb_index, RRC_MAC_MCCH_DATA_IND (msg_p).mbsfn_sync_area);
 
       //PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, M_RNTI, RRC_MAC_MCCH_DATA_IND (msg_p).frame, 0);
@@ -4799,7 +4783,7 @@ void *rrc_ue_task( void *args_p )
 
   /*  //TTN (for D2D)
     case RRC_MAC_SL_DISCOVERY_DATA_IND:
-       LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, msg_name,
+       LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p),
              RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).frame, RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).enb_index);
        PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, M_RNTI, RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).frame, 0,RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).enb_index);
        //send to ProSeApp
@@ -4812,14 +4796,14 @@ void *rrc_ue_task( void *args_p )
       PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, RRC_DCCH_DATA_IND (msg_p).module_id, ENB_FLAG_NO, RRC_DCCH_DATA_IND (msg_p).rnti, RRC_DCCH_DATA_IND (msg_p).frame, 0,RRC_DCCH_DATA_IND (msg_p).eNB_index);
       LOG_D(RRC, "[UE %d] Received %s: frameP %d, DCCH %d, eNB %d\n",
             RRC_DCCH_DATA_IND (msg_p).module_id,
-            msg_name,
+            ITTI_MSG_NAME (msg_p),
             RRC_DCCH_DATA_IND (msg_p).frame,
             RRC_DCCH_DATA_IND (msg_p).dcch_index,
             RRC_DCCH_DATA_IND (msg_p).eNB_index);
 
       LOG_D(RRC, PROTOCOL_RRC_CTXT_UE_FMT"Received %s DCCH %d, eNB %d\n",
             PROTOCOL_RRC_CTXT_UE_ARGS(&ctxt),
-            msg_name,
+            ITTI_MSG_NAME (msg_p),
             RRC_DCCH_DATA_IND (msg_p).dcch_index,
             RRC_DCCH_DATA_IND (msg_p).eNB_index);
       rrc_ue_decode_dcch (
@@ -4846,7 +4830,7 @@ void *rrc_ue_task( void *args_p )
             "%02x%02x%02x%02x"
             "%02x%02x%02x%02x"
             "%02x%02x%02x%02x\n",
-            ue_mod_id, msg_name,
+            ue_mod_id, ITTI_MSG_NAME (msg_p),
             UE_rrc_inst[ue_mod_id].kenb[0],  UE_rrc_inst[ue_mod_id].kenb[1],  UE_rrc_inst[ue_mod_id].kenb[2],  UE_rrc_inst[ue_mod_id].kenb[3],
             UE_rrc_inst[ue_mod_id].kenb[4],  UE_rrc_inst[ue_mod_id].kenb[5],  UE_rrc_inst[ue_mod_id].kenb[6],  UE_rrc_inst[ue_mod_id].kenb[7],
             UE_rrc_inst[ue_mod_id].kenb[8],  UE_rrc_inst[ue_mod_id].kenb[9],  UE_rrc_inst[ue_mod_id].kenb[10], UE_rrc_inst[ue_mod_id].kenb[11],
@@ -4861,7 +4845,7 @@ void *rrc_ue_task( void *args_p )
       /* NAS messages */
     case NAS_CELL_SELECTION_REQ:
 
-      LOG_D(RRC, "[UE %d] Received %s: state %d, plmnID (%d%d%d.%d%d%d), rat %x\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id),
+      LOG_D(RRC, "[UE %d] Received %s: state %d, plmnID (%d%d%d.%d%d%d), rat %x\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id),
             NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit1,
             NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit2,
             NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit3,
@@ -4920,18 +4904,18 @@ void *rrc_ue_task( void *args_p )
 
       case RRC_STATE_CONNECTED:
         /* should not happen */
-        LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id));
+        LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id));
         break;
 
       default:
-        LOG_C(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id));
+        LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id));
         break;
       }
 
       break;
 
     case NAS_CONN_ESTABLI_REQ:
-      LOG_D(RRC, "[UE %d] Received %s: cause %d, type %d, s_tmsi (mme code %"PRIu8", m-tmsi %"PRIu32"), plmnID (%d%d%d.%d%d%d)\n", ue_mod_id, msg_name, NAS_CONN_ESTABLI_REQ (msg_p).cause,
+      LOG_D(RRC, "[UE %d] Received %s: cause %d, type %d, s_tmsi (mme code %"PRIu8", m-tmsi %"PRIu32"), plmnID (%d%d%d.%d%d%d)\n", ue_mod_id, ITTI_MSG_NAME (msg_p), NAS_CONN_ESTABLI_REQ (msg_p).cause,
             NAS_CONN_ESTABLI_REQ (msg_p).type,
             NAS_CONN_ESTABLI_REQ (msg_p).s_tmsi.MMEcode,
             NAS_CONN_ESTABLI_REQ (msg_p).s_tmsi.m_tmsi,
@@ -4962,11 +4946,11 @@ void *rrc_ue_task( void *args_p )
       case RRC_STATE_INACTIVE:
       case RRC_STATE_CONNECTED:
         /* should not happen */
-        LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id));
+        LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id));
         break;
 
       default:
-        LOG_C(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id));
+        LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id));
         break;
       }
 
@@ -4976,7 +4960,7 @@ void *rrc_ue_task( void *args_p )
       uint32_t length;
       uint8_t *buffer;
 
-      LOG_D(RRC, "[UE %d] Received %s: UEid %d\n", ue_mod_id, msg_name, NAS_UPLINK_DATA_REQ (msg_p).UEid);
+      LOG_D(RRC, "[UE %d] Received %s: UEid %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), NAS_UPLINK_DATA_REQ (msg_p).UEid);
 
       /* Create message for PDCP (ULInformationTransfer_t) */
       length = do_ULInformationTransfer(&buffer, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.length, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.data);
@@ -5011,7 +4995,7 @@ void *rrc_ue_task( void *args_p )
 # if ENABLE_RAL
 
     case RRC_RAL_SCAN_REQ:
-      LOG_D(RRC, "[UE %d] Received %s: state %d\n", ue_mod_id, msg_name);
+      LOG_D(RRC, "[UE %d] Received %s: state %d\n", ue_mod_id,ITTI_MSG_NAME (msg_p) );
 
       switch (rrc_get_state(ue_mod_id)) {
       case RRC_STATE_INACTIVE: {
@@ -5047,18 +5031,18 @@ void *rrc_ue_task( void *args_p )
 
       case RRC_STATE_CONNECTED:
         /* should not happen */
-        LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id));
+        LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id));
         break;
 
       default:
-        LOG_C(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id));
+        LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id));
         break;
       }
 
       break;
 
     case PHY_FIND_CELL_IND:
-      LOG_D(RRC, "[UE %d] Received %s: state %d\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id));
+      LOG_D(RRC, "[UE %d] Received %s: state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id));
 
       switch (rrc_get_state(ue_mod_id)) {
       case RRC_STATE_IDLE:
@@ -5089,7 +5073,7 @@ void *rrc_ue_task( void *args_p )
         }
 
         default:
-          LOG_C(RRC, "[UE %d] Invalid RRC state %d substate %d\n",
+          LOG_E(RRC, "[UE %d] Invalid RRC state %d substate %d\n",
                 ue_mod_id,
                 rrc_get_state(ue_mod_id),
                 rrc_get_sub_state(ue_mod_id));
@@ -5100,11 +5084,11 @@ void *rrc_ue_task( void *args_p )
       case RRC_STATE_INACTIVE:
       case RRC_STATE_CONNECTED:
         /* should not happen */
-        LOG_E(RRC, "[UE %d] indication %s in RRC state %d\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id));
+        LOG_E(RRC, "[UE %d] indication %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id));
         break;
 
       default:
-        LOG_C(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id));
+        LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id));
         break;
       }
 
@@ -5132,7 +5116,7 @@ void *rrc_ue_task( void *args_p )
       break;
 
     case RRC_RAL_CONNECTION_ESTABLISHMENT_REQ:
-      LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, msg_name);
+      LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p));
 
       switch (rrc_get_state(ue_mod_id)) {
       case RRC_STATE_IDLE: {
@@ -5149,23 +5133,23 @@ void *rrc_ue_task( void *args_p )
       case RRC_STATE_INACTIVE:
       case RRC_STATE_CONNECTED:
         /* should not happen */
-        LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id));
+        LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id));
         break;
 
       default:
-        LOG_C(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id));
+        LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id));
         break;
       }
 
       break;
 
     case RRC_RAL_CONNECTION_RELEASE_REQ:
-      LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, msg_name);
+      LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p));
       break;
 #endif
 
     default:
-      LOG_E(RRC, "[UE %d] Received unexpected message %s\n", ue_mod_id, msg_name);
+      LOG_E(RRC, "[UE %d] Received unexpected message %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p));
       break;
     }
 
@@ -5380,7 +5364,7 @@ rrc_ue_process_sidelink_radioResourceConfig(
          case SL_CommConfig_r12__commTxResources_r12_PR_setup:
             if (sl_CommConfig->commTxResources_r12->choice.setup.present == SL_CommConfig_r12__commTxResources_r12__setup_PR_scheduled_r12 ){
 
-               LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, sl_RNTI size %d  \n",
+               LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, sl_RNTI size %lu  \n",
                      Mod_idP, sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.sl_RNTI_r12.size );
                LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, sl_RNTI buf 0x%p \n",
                      Mod_idP, sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.sl_RNTI_r12.buf );
@@ -5574,9 +5558,9 @@ void *rrc_control_socket_thread_fct(void *arg)
       //process the message
       switch (sl_ctrl_msg_recv->type) {
       case SESSION_INIT_REQ:
-#ifdef DEBUG_CTRL_SOCKET
-         LOG_I(RRC,"Received SessionInitializationRequest on socket from ProSe App (msg type: %d)\n", sl_ctrl_msg_recv->type);
-#endif
+LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
+         LOG_UI(RRC,"Received SessionInitializationRequest on socket from ProSe App (msg type: %d)\n", sl_ctrl_msg_recv->type);
+LOG_DEBUG_END
          //TODO: get SL_UE_STATE from lower layer
 
          LOG_I(RRC,"Send UEStateInformation to ProSe App \n");
@@ -5595,14 +5579,12 @@ void *rrc_control_socket_thread_fct(void *arg)
             exit(EXIT_FAILURE);
          }
 
-
-#ifdef DEBUG_CTRL_SOCKET
+LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
          struct sidelink_ctrl_element *ptr_ctrl_msg = NULL;
          ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf;
-         LOG_I(RRC,"[UEStateInformation] msg type: %d\n",ptr_ctrl_msg->type);
-         LOG_I(RRC,"[UEStateInformation] UE state: %d\n",ptr_ctrl_msg->sidelinkPrimitive.ue_state);
-#endif
-
+         LOG_UI(RRC,"[UEStateInformation] msg type: %d\n",ptr_ctrl_msg->type);
+         LOG_UI(RRC,"[UEStateInformation] UE state: %d\n",ptr_ctrl_msg->sidelinkPrimitive.ue_state);
+LOG_DEBUG_END
          /*  if (enable_notification > 0) {
               //create thread to send status notification (for testing purpose, status notification will be sent e.g., every 20 seconds)
               pthread_t notification_thread;
@@ -5617,12 +5599,12 @@ void *rrc_control_socket_thread_fct(void *arg)
          sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id;
          groupL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id;
 
-#ifdef DEBUG_CTRL_SOCKET
-         LOG_I(RRC,"[GroupCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
-         LOG_I(RRC,"[GroupCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id);
-         LOG_I(RRC,"[GroupCommunicationEstablishReq] group Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id);
-         LOG_I(RRC,"[GroupCommunicationEstablishReq] group IP Address: " IPV4_ADDR "\n",IPV4_ADDR_FORMAT(sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupIpAddress));
-#endif
+LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
+         LOG_UI(RRC,"[GroupCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
+         LOG_UI(RRC,"[GroupCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id);
+         LOG_UI(RRC,"[GroupCommunicationEstablishReq] group Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id);
+         LOG_UI(RRC,"[GroupCommunicationEstablishReq] group IP Address: " IPV4_ADDR "\n",IPV4_ADDR_FORMAT(sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupIpAddress));
+LOG_DEBUG_END
 
          //store sourceL2Id/groupL2Id
          UE_rrc_inst[module_id].sourceL2Id = sourceL2Id;
@@ -5782,20 +5764,20 @@ void *rrc_control_socket_thread_fct(void *arg)
             exit(EXIT_FAILURE);
          }
 
-
-#ifdef DEBUG_CTRL_SOCKET
+LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
+         struct sidelink_ctrl_element *ptr_ctrl_msg = NULL;
          ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf;
-         LOG_I(RRC,"[GroupCommunicationEstablishResponse]  msg type: %d\n",ptr_ctrl_msg->type);
-         LOG_I(RRC,"[GroupCommunicationEstablishResponse]  slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id);
-#endif
+         LOG_UI(RRC,"[GroupCommunicationEstablishResponse]  msg type: %d\n",ptr_ctrl_msg->type);
+         LOG_UI(RRC,"[GroupCommunicationEstablishResponse]  slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id);
+LOG_DEBUG_END
          break;
 
       case GROUP_COMMUNICATION_RELEASE_REQ:
          printf("-----------------------------------\n");
-#ifdef DEBUG_CTRL_SOCKET
-         LOG_I(RRC,"[GroupCommunicationReleaseRequest] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
-         LOG_I(RRC,"[GroupCommunicationReleaseRequest] Slrb Id: %i\n",sl_ctrl_msg_recv->sidelinkPrimitive.slrb_id);
-#endif
+LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
+         LOG_UI(RRC,"[GroupCommunicationReleaseRequest] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
+         LOG_UI(RRC,"[GroupCommunicationReleaseRequest] Slrb Id: %i\n",sl_ctrl_msg_recv->sidelinkPrimitive.slrb_id);
+LOG_DEBUG_END
          //reset groupL2ID from MAC LAYER
          UE_rrc_inst[module_id].groupL2Id = 0x00000000;
          sourceL2Id = UE_rrc_inst[module_id].sourceL2Id;
@@ -5867,11 +5849,11 @@ void *rrc_control_socket_thread_fct(void *arg)
          sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.direct_comm_establish_req.sourceL2Id;
          destinationL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.direct_comm_establish_req.destinationL2Id;
 
-#ifdef DEBUG_CTRL_SOCKET
-         LOG_I(RRC,"[DirectCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
-         LOG_I(RRC,"[DirectCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id);
-         LOG_I(RRC,"[DirectCommunicationEstablishReq] destination Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id);
-#endif
+LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
+         LOG_UI(RRC,"[DirectCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
+         LOG_UI(RRC,"[DirectCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id);
+         LOG_UI(RRC,"[DirectCommunicationEstablishReq] destination Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id);
+LOG_DEBUG_END
 
          //store sourceL2Id/destinationL2Id
          UE_rrc_inst[module_id].sourceL2Id = sourceL2Id;
@@ -6031,26 +6013,27 @@ void *rrc_control_socket_thread_fct(void *arg)
          }
 
 
-#ifdef DEBUG_CTRL_SOCKET
+LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
+         struct sidelink_ctrl_element *ptr_ctrl_msg = NULL;
          ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf;
-         LOG_I(RRC,"[DirectCommunicationEstablishResponse]  msg type: %d\n",ptr_ctrl_msg->type);
-         LOG_I(RRC,"[DirectCommunicationEstablishResponse]  slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id);
-#endif
+         LOG_UI(RRC,"[DirectCommunicationEstablishResponse]  msg type: %d\n",ptr_ctrl_msg->type);
+         LOG_UI(RRC,"[DirectCommunicationEstablishResponse]  slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id);
+LOG_DEBUG_END
          break;
 
       case PC5S_ESTABLISH_REQ:
          type =  sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.type;
          sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.sourceL2Id;
-#ifdef DEBUG_CTRL_SOCKET
-         LOG_I(RRC,"[PC5EstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
-         LOG_I(RRC,"[PC5EstablishReq] type: %d\n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.type); //RX/TX
-         LOG_I(RRC,"[PC5EstablishReq] source Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.sourceL2Id);
-#endif
+LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
+         LOG_UI(RRC,"[PC5EstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
+         LOG_UI(RRC,"[PC5EstablishReq] type: %d\n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.type); //RX/TX
+         LOG_UI(RRC,"[PC5EstablishReq] source Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.sourceL2Id);
+LOG_DEBUG_END
          if (type > 0) {
             destinationL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.destinationL2Id;
-#ifdef DEBUG_CTRL_SOCKET
-            LOG_I(RRC,"[PC5EstablishReq] destination Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.destinationL2Id);
-#endif
+LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
+            LOG_UI(RRC,"[PC5EstablishReq] destination Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.destinationL2Id);
+LOG_DEBUG_END
          }
 
          //store sourceL2Id/destinationL2Id
@@ -6261,9 +6244,9 @@ void *rrc_control_socket_thread_fct(void *arg)
 
       case PC5_DISCOVERY_MESSAGE:
 
- #ifdef DEBUG_CTRL_SOCKET
-           LOG_I(RRC,"[PC5DiscoveryMessage] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
- #endif
+LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
+           LOG_UI(RRC,"[PC5DiscoveryMessage] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
+LOG_DEBUG_END
         //prepare SL_Discovery buffer
          if (UE_rrc_inst) {
            memcpy((void*)&UE_rrc_inst[module_id].SL_Discovery[0].Tx_buffer.Payload[0], (void*)&sl_ctrl_msg_recv->sidelinkPrimitive.pc5_discovery_message.payload[0], PC5_DISCOVERY_PAYLOAD_SIZE);
diff --git a/openair2/RRC/LTE/rrc_common.c b/openair2/RRC/LTE/rrc_common.c
index 0acb0d77010a41c8753b3fae87cafa014bf34be2..d18c43d6cf38261bec43af35689d61aad8df0c0f 100644
--- a/openair2/RRC/LTE/rrc_common.c
+++ b/openair2/RRC/LTE/rrc_common.c
@@ -36,10 +36,10 @@
 #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
 #include "LAYER2/RLC/rlc.h"
 #include "COMMON/mac_rrc_primitives.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "asn1_msg.h"
 #include "pdcp.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "rrc_eNB_UE_context.h"
 #include "common/ran_context.h"
 
diff --git a/openair2/RRC/LTE/rrc_eNB.c b/openair2/RRC/LTE/rrc_eNB.c
index 22926ddad9be4a799a11fad6ba52c299594ccf18..b0b444084c19b7d106a81c6246c1b5883bb6c6de 100644
--- a/openair2/RRC/LTE/rrc_eNB.c
+++ b/openair2/RRC/LTE/rrc_eNB.c
@@ -41,7 +41,7 @@
 #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
 #include "LAYER2/RLC/rlc.h"
 #include "LAYER2/MAC/mac_proto.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "COMMON/mac_rrc_primitives.h"
 #include "RRC/LTE/MESSAGES/asn1_msg.h"
 #include "RRCConnectionRequest.h"
@@ -61,7 +61,7 @@
 #include "SL-CommConfig-r12.h"
 #include "PeriodicBSR-Timer-r12.h"
 #include "RetxBSR-Timer-r12.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
 #include "T.h"
 
@@ -4340,7 +4340,7 @@ rrc_eNB_generate_HandoverPreparationInformation(
       ue_context_target_p = rrc_eNB_allocate_new_UE_context(RC.rrc[ctxt_pP->module_id]);
       ue_context_target_p->ue_id_rnti      = ue_context_pP->ue_context.rnti;             // LG: should not be the same
       ue_context_target_p->ue_context.rnti = ue_context_target_p->ue_id_rnti; // idem
-      LOG_N(RRC,
+      LOG_I(RRC,
             "[eNB %d] Frame %d : Emulate sending HandoverPreparationInformation msg from eNB source %d to eNB target %ld: source UE_id %x target UE_id %x source_modId: %d target_modId: %d\n",
             ctxt_pP->module_id,
             ctxt_pP->frame,
@@ -4476,7 +4476,6 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover(
 
 
   uint8_t                             buffer[RRC_BUF_SIZE];
-  uint16_t                            size;
   int                                 i;
   uint8_t                             rv[2];
   uint16_t                            Idx;
@@ -5287,7 +5286,7 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover(
   //  rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->reportConfigToAddModList = ReportConfig_list;
   memset(buffer, 0, RRC_BUF_SIZE);
 
-  size = do_RRCConnectionReconfiguration(
+ int size=do_RRCConnectionReconfiguration(
            ctxt_pP,
            buffer,
            rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id),   //Transaction_id,
@@ -5313,7 +5312,11 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover(
            , NULL   // SCellToAddMod_r10_t
 #endif
          );
-
+ if (size <= 0)
+  LOG_E(RRC,
+        "[eNB %d] Frame %d, Logical Channel DL-DCCH, Generate RRCConnectionReconfiguration for handover (bytes %d, UE rnti %x) failed\n",
+        ctxt_pP->module_id, ctxt_pP->frame, size, ue_context_pP->ue_context.rnti);
+ else
   LOG_I(RRC,
         "[eNB %d] Frame %d, Logical Channel DL-DCCH, Generate RRCConnectionReconfiguration for handover (bytes %d, UE rnti %x)\n",
         ctxt_pP->module_id, ctxt_pP->frame, size, ue_context_pP->ue_context.rnti);
@@ -6368,8 +6371,8 @@ rrc_eNB_decode_ccch(
           if (InitialUE_Identity_PR_randomValue == rrcConnectionRequest->ue_Identity.present) {
           if(rrcConnectionRequest->ue_Identity.choice.randomValue.size != 5)
           {
-            LOG_I(RRC, "wrong InitialUE-Identity randomValue size, expected 5, provided %d",
-                         rrcConnectionRequest->ue_Identity.choice.randomValue.size);
+            LOG_I(RRC, "wrong InitialUE-Identity randomValue size, expected 5, provided %lu",
+                         (long unsigned int)rrcConnectionRequest->ue_Identity.choice.randomValue.size);
             return -1;
           }
             memcpy(((uint8_t*) & random_value) + 3,
diff --git a/openair2/RRC/LTE/rrc_eNB_S1AP.c b/openair2/RRC/LTE/rrc_eNB_S1AP.c
index c0c143fc3ad6858928d40824b0e57520fe4dcef0..36e0645795b07e3ee10ea668f2abd6b174b9505b 100644
--- a/openair2/RRC/LTE/rrc_eNB_S1AP.c
+++ b/openair2/RRC/LTE/rrc_eNB_S1AP.c
@@ -1735,7 +1735,6 @@ MSC_LOG_TX_MESSAGE(
   return 0;
 }
 int rrc_eNB_process_S1AP_E_RAB_RELEASE_COMMAND(MessageDef *msg_p, const char *msg_name, instance_t instance){
-    uint16_t                        mme_ue_s1ap_id;
     uint32_t                        eNB_ue_s1ap_id;
     struct rrc_eNB_ue_context_s*    ue_context_p = NULL;
     protocol_ctxt_t                 ctxt;
@@ -1750,7 +1749,6 @@ int rrc_eNB_process_S1AP_E_RAB_RELEASE_COMMAND(MessageDef *msg_p, const char *ms
     e_rab_release_drb = 0;
     memcpy(&e_rab_release_params[0], &(S1AP_E_RAB_RELEASE_COMMAND (msg_p).e_rab_release_params[0]), sizeof(e_rab_release_t)*S1AP_MAX_E_RAB);
 
-    mme_ue_s1ap_id  = S1AP_E_RAB_RELEASE_COMMAND (msg_p).mme_ue_s1ap_id;
     eNB_ue_s1ap_id = S1AP_E_RAB_RELEASE_COMMAND (msg_p).eNB_ue_s1ap_id;
     nb_e_rabs_torelease = S1AP_E_RAB_RELEASE_COMMAND (msg_p).nb_e_rabs_torelease;
     ue_context_p   = rrc_eNB_get_ue_context_from_s1ap_ids(instance, UE_INITIAL_ID_INVALID, eNB_ue_s1ap_id);
@@ -1760,7 +1758,7 @@ int rrc_eNB_process_S1AP_E_RAB_RELEASE_COMMAND(MessageDef *msg_p, const char *ms
         xid = rrc_eNB_get_next_transaction_identifier(ctxt.module_id);
 
         LOG_D(RRC,"S1AP-E-RAB Release Command: MME_UE_S1AP_ID %d  ENB_UE_S1AP_ID %d release_e_rabs %d \n",
-            mme_ue_s1ap_id, eNB_ue_s1ap_id,nb_e_rabs_torelease);
+            S1AP_E_RAB_RELEASE_COMMAND (msg_p).mme_ue_s1ap_id, eNB_ue_s1ap_id,nb_e_rabs_torelease);
         for(erab = 0; erab < nb_e_rabs_torelease; erab++){
             b_existed = 0;
             is_existed = 0;
diff --git a/openair2/RRC/LTE/rrc_eNB_UE_context.c b/openair2/RRC/LTE/rrc_eNB_UE_context.c
index 1e344f2747e61f58787bd92afc451a21db6d0065..646939b8dc451335523b7de646fd93afcd1f641c 100644
--- a/openair2/RRC/LTE/rrc_eNB_UE_context.c
+++ b/openair2/RRC/LTE/rrc_eNB_UE_context.c
@@ -33,7 +33,7 @@
 #include <string.h>
 #include <limits.h>
 
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "rrc_eNB_UE_context.h"
 #include "msc.h"
 
diff --git a/openair2/RRC/NAS/nas_config.c b/openair2/RRC/NAS/nas_config.c
index 3f825760dae1c329591c9a4936e72ba36e0a1876..c0f6d622aad6e20d30d63541eb470b968339dd3c 100644
--- a/openair2/RRC/NAS/nas_config.c
+++ b/openair2/RRC/NAS/nas_config.c
@@ -43,7 +43,7 @@
 #include <net/route.h>
 
 #include "nas_config.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 
 
 //default values according to the examples,
diff --git a/openair2/RRC/NAS/rb_config.c b/openair2/RRC/NAS/rb_config.c
index 3431137f7419c36cab0166da47c654195894897b..fd5c82787feb4e588456aee01bb0102764f8bef9 100644
--- a/openair2/RRC/NAS/rb_config.c
+++ b/openair2/RRC/NAS/rb_config.c
@@ -33,7 +33,7 @@
 #include <arpa/inet.h>
 
 #include "nas_config.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 
 #include "NETWORK_DRIVER/MESH/rrc_nas_primitives.h"
 #include "NETWORK_DRIVER/MESH/ioctl.h"
diff --git a/openair2/UTIL/ASYNC_IF/link_manager.c b/openair2/UTIL/ASYNC_IF/link_manager.c
index 52a4f90ce008b3996aeb1bb1e4ec8642f39a9b69..c1ce742d0bbe6928623dfa5cea8abf8c194f8670 100644
--- a/openair2/UTIL/ASYNC_IF/link_manager.c
+++ b/openair2/UTIL/ASYNC_IF/link_manager.c
@@ -29,7 +29,7 @@
  */
 
 #include "link_manager.h"
-#include "log.h"
+#include "common/utils/LOG/log.h"
 
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/openair2/UTIL/ASYNC_IF/message_queue.c b/openair2/UTIL/ASYNC_IF/message_queue.c
index 55b7a104cd1c271b9cd4925789d5b88ca7e897e3..5a33fbfabe7c8a027e15a3dedb6d2e7da2cff67a 100644
--- a/openair2/UTIL/ASYNC_IF/message_queue.c
+++ b/openair2/UTIL/ASYNC_IF/message_queue.c
@@ -29,7 +29,7 @@
  */
 
 #include "message_queue.h"
-#include "log.h"
+#include "common/utils/LOG/log.h"
 
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/openair2/UTIL/ASYNC_IF/ringbuffer_queue.c b/openair2/UTIL/ASYNC_IF/ringbuffer_queue.c
index b178d3a5d665d7d2864f762a2a39e3b7888cf2bd..201603e0c57f327541c7aa0da91ba076a9393ced 100644
--- a/openair2/UTIL/ASYNC_IF/ringbuffer_queue.c
+++ b/openair2/UTIL/ASYNC_IF/ringbuffer_queue.c
@@ -29,7 +29,7 @@
  */
 
 #include "ringbuffer_queue.h"
-#include "log.h"
+#include "common/utils/LOG/log.h"
 
 message_queue_t * new_message_queue(int size) {
   
diff --git a/openair2/UTIL/ASYNC_IF/socket_link.c b/openair2/UTIL/ASYNC_IF/socket_link.c
index 60b03d7d4366c03f602457ca2776f88891cb4d91..edfa2bde81948b29df2bf7c3cbce808db3f5843e 100644
--- a/openair2/UTIL/ASYNC_IF/socket_link.c
+++ b/openair2/UTIL/ASYNC_IF/socket_link.c
@@ -29,7 +29,7 @@
  */
 
 #include "socket_link.h"
-#include "log.h"
+#include "common/utils/LOG/log.h"
 
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/openair2/UTIL/LOG/log.c b/openair2/UTIL/LOG/log.c
deleted file mode 100644
index 3690d0be9db4fed1d63322c201896698e8b1336f..0000000000000000000000000000000000000000
--- a/openair2/UTIL/LOG/log.c
+++ /dev/null
@@ -1,1363 +0,0 @@
-/*
- * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The OpenAirInterface Software Alliance licenses this file to You under
- * the OAI Public License, Version 1.1  (the "License"); you may not use this file
- * except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.openairinterface.org/?page_id=698
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *-------------------------------------------------------------------------------
- * For more information about the OpenAirInterface (OAI) Software Alliance:
- *      contact@openairinterface.org
- */
-
-/*! \file log.c
-* \brief log implementaion
-* \author Navid Nikaein
-* \date 2009 - 2014
-* \version 0.5
-* @ingroup util
-
-*/
-
-#define _GNU_SOURCE  /* required for pthread_getname_np */
-//#define LOG_TEST 1
-
-#define COMPONENT_LOG
-#define COMPONENT_LOG_IF
-#include <ctype.h>
-#define LOG_MAIN
-#include "log.h"
-#include "vcd_signal_dumper.h"
-#include "assertions.h"
-
-#if defined(ENABLE_ITTI)
-# include "intertask_interface.h"
-#endif
-
-# include <pthread.h>
-# include <string.h>
-#include "common/config/config_userapi.h"
-// main log variables
-
-
-typedef struct {
-	char* buf_p;
-	int buf_index;
-  int enable_flag;
-} log_mem_cnt_t;
-
-log_mem_cnt_t log_mem_d[2];
-int log_mem_flag=0;
-int log_mem_multi=1;
-volatile int log_mem_side=0;
-pthread_mutex_t log_mem_lock;
-pthread_cond_t log_mem_notify;
-pthread_t log_mem_thread;
-int log_mem_file_cnt=0;
-volatile int log_mem_write_flag=0;
-volatile int log_mem_write_side=0;
-
-char __log_mem_filename[1024]={0};
-char * log_mem_filename = &__log_mem_filename[0];
-
-mapping log_level_names[] = {
-  {"emerg", LOG_EMERG},
-  {"alert", LOG_ALERT},
-  {"crit", LOG_CRIT},
-  {"error", LOG_ERR},
-  {"warn", LOG_WARNING},
-  {"notice", LOG_NOTICE},
-  {"info", LOG_INFO},
-  {"debug", LOG_DEBUG},
-  {"file", LOG_FILE},
-  {"trace", LOG_TRACE},
-  {"matlab", LOG_MATLAB},
-  {NULL, -1}
-};
-mapping log_verbosity_names[] = {
-  {"none", 0x0},
-  {"low", 0x5},
-  {"medium", 0x15},
-  {"high", 0x35},
-  {"full", 0x75},
-  {NULL, -1}
-};
-
-// vars for the log thread
-LOG_params log_list[2000];
-int log_list_tail = 0;
-int log_list_nb_elements = 0;
-
-pthread_mutex_t log_lock;
-pthread_cond_t log_notify;
-
-#if !defined(LOG_NO_THREAD)
-int log_list_head = 0;
-int log_shutdown;
-#endif
-
-static int gfd;
-
-static char *log_level_highlight_start[] = {LOG_RED, LOG_RED, LOG_RED, LOG_RED, LOG_ORANGE, LOG_BLUE, "", ""};  /*!< \brief Optional start-format strings for highlighting */
-static char *log_level_highlight_end[]   = {LOG_RESET, LOG_RESET, LOG_RESET, LOG_RESET, LOG_RESET,LOG_RESET,  "",""};   /*!< \brief Optional end-format strings for highlighting */
-
-#if defined(ENABLE_ITTI)
-static log_instance_type_t log_instance_type;
-#endif
-
-int write_file_matlab(const char *fname,const char *vname,void *data,int length,int dec,char format)
-{
-
-  FILE *fp=NULL;
-  int i;
-
-
-  //printf("Writing %d elements of type %d to %s\n",length,format,fname);
-
-
-  if (format == 10 || format ==11 || format == 12 || format == 13 || format == 14) {
-    fp = fopen(fname,"a+");
-  } else if (format != 10 && format !=11  && format != 12 && format != 13 && format != 14) {
-    fp = fopen(fname,"w+");
-  }
-
-
-
-  if (fp== NULL) {
-    printf("[OPENAIR][FILE OUTPUT] Cannot open file %s\n",fname);
-    return(-1);
-  }
-
-  if (format != 10 && format !=11  && format != 12 && format != 13 && format != 14)
-    fprintf(fp,"%s = [",vname);
-
-
-  switch (format) {
-  case 0:   // real 16-bit
-
-    for (i=0; i<length; i+=dec) {
-      fprintf(fp,"%d\n",((short *)data)[i]);
-    }
-
-    break;
-
-  case 1:  // complex 16-bit
-  case 13:
-  case 14:
-  case 15:
-
-    for (i=0; i<length<<1; i+=(2*dec)) {
-      fprintf(fp,"%d + j*(%d)\n",((short *)data)[i],((short *)data)[i+1]);
-
-    }
-
-
-    break;
-
-  case 2:  // real 32-bit
-    for (i=0; i<length; i+=dec) {
-      fprintf(fp,"%d\n",((int *)data)[i]);
-    }
-
-    break;
-
-  case 3: // complex 32-bit
-    for (i=0; i<length<<1; i+=(2*dec)) {
-      fprintf(fp,"%d + j*(%d)\n",((int *)data)[i],((int *)data)[i+1]);
-    }
-
-    break;
-
-  case 4: // real 8-bit
-    for (i=0; i<length; i+=dec) {
-      fprintf(fp,"%d\n",((char *)data)[i]);
-    }
-
-    break;
-
-  case 5: // complex 8-bit
-    for (i=0; i<length<<1; i+=(2*dec)) {
-      fprintf(fp,"%d + j*(%d)\n",((char *)data)[i],((char *)data)[i+1]);
-    }
-
-    break;
-
-  case 6:  // real 64-bit
-    for (i=0; i<length; i+=dec) {
-      fprintf(fp,"%lld\n",((long long*)data)[i]);
-    }
-
-    break;
-
-  case 7: // real double
-    for (i=0; i<length; i+=dec) {
-      fprintf(fp,"%g\n",((double *)data)[i]);
-    }
-
-    break;
-
-  case 8: // complex double
-    for (i=0; i<length<<1; i+=2*dec) {
-      fprintf(fp,"%g + j*(%g)\n",((double *)data)[i], ((double *)data)[i+1]);
-    }
-
-    break;
-
-  case 9: // real unsigned 8-bit
-    for (i=0; i<length; i+=dec) {
-      fprintf(fp,"%d\n",((unsigned char *)data)[i]);
-    }
-
-    break;
-
-
-  case 10 : // case eren 16 bit complex :
-
-    for (i=0; i<length<<1; i+=(2*dec)) {
-
-      if((i < 2*(length-1)) && (i > 0))
-        fprintf(fp,"%d + j*(%d),",((short *)data)[i],((short *)data)[i+1]);
-      else if (i == 2*(length-1))
-        fprintf(fp,"%d + j*(%d);",((short *)data)[i],((short *)data)[i+1]);
-      else if (i == 0)
-        fprintf(fp,"\n%d + j*(%d),",((short *)data)[i],((short *)data)[i+1]);
-
-
-
-    }
-
-    break;
-
-  case 11 : //case eren 16 bit real for channel magnitudes:
-    for (i=0; i<length; i+=dec) {
-
-      if((i <(length-1))&& (i > 0))
-        fprintf(fp,"%d,",((short *)data)[i]);
-      else if (i == (length-1))
-        fprintf(fp,"%d;",((short *)data)[i]);
-      else if (i == 0)
-        fprintf(fp,"\n%d,",((short *)data)[i]);
-    }
-
-    printf("\n erennnnnnnnnnnnnnn: length :%d",length);
-    break;
-
-  case 12 : // case eren for log2_maxh real unsigned 8 bit
-    fprintf(fp,"%d \n",((unsigned char *)&data)[0]);
-    break;
-
-  }
-
-  if (format != 10 && format !=11 && format !=12 && format != 13 && format != 15) {
-    fprintf(fp,"];\n");
-    fclose(fp);
-    return(0);
-  } else if (format == 10 || format ==11 || format == 12 || format == 13 || format == 15) {
-    fclose(fp);
-    return(0);
-  }
-
-  return 0;
-}
-
-/* get log parameters from configuration file */
-void  log_getconfig(log_t *g_log) {
-  char *gloglevel = NULL;
-  char *glogverbo = NULL;
-  int level,verbosity;
-  paramdef_t logparams_defaults[] = LOG_GLOBALPARAMS_DESC;
-  paramdef_t logparams_level[MAX_LOG_PREDEF_COMPONENTS];
-  paramdef_t logparams_verbosity[MAX_LOG_PREDEF_COMPONENTS];
-  paramdef_t logparams_logfile[MAX_LOG_PREDEF_COMPONENTS];
-  
-  int ret = config_get( logparams_defaults,sizeof(logparams_defaults)/sizeof(paramdef_t),CONFIG_STRING_LOG_PREFIX);
-  if (ret <0) {
-       fprintf(stderr,"[LOG] init aborted, configuration couldn't be performed");
-       return;
-  } 
-
-  memset(logparams_level,    0, sizeof(paramdef_t)*MAX_LOG_PREDEF_COMPONENTS);
-  memset(logparams_verbosity,0, sizeof(paramdef_t)*MAX_LOG_PREDEF_COMPONENTS);
-  memset(logparams_logfile,  0, sizeof(paramdef_t)*MAX_LOG_PREDEF_COMPONENTS);
-  for (int i=MIN_LOG_COMPONENTS; i < MAX_LOG_PREDEF_COMPONENTS; i++) {
-    if(g_log->log_component[i].name == NULL) {
-       g_log->log_component[i].name = malloc(16);
-       sprintf((char *)g_log->log_component[i].name,"comp%i?",i);
-       logparams_logfile[i].paramflags = PARAMFLAG_DONOTREAD;
-       logparams_level[i].paramflags = PARAMFLAG_DONOTREAD;
-       logparams_verbosity[i].paramflags = PARAMFLAG_DONOTREAD;
-    }
-    sprintf(logparams_level[i].optname,    LOG_CONFIG_LEVEL_FORMAT,       g_log->log_component[i].name);
-    sprintf(logparams_verbosity[i].optname,LOG_CONFIG_VERBOSITY_FORMAT,   g_log->log_component[i].name);
-    sprintf(logparams_logfile[i].optname,  LOG_CONFIG_LOGFILE_FORMAT,     g_log->log_component[i].name);
-/* workaround: all log options in existing configuration files use lower case component names
-   where component names include uppercase char in log.h....                                */ 
-    for (int j=0 ; j<strlen(logparams_level[i].optname); j++) 
-          logparams_level[i].optname[j] = tolower(logparams_level[i].optname[j]);
-    for (int j=0 ; j<strlen(logparams_level[i].optname); j++) 
-          logparams_verbosity[i].optname[j] = tolower(logparams_verbosity[i].optname[j]);
-    for (int j=0 ; j<strlen(logparams_level[i].optname); j++) 
-          logparams_logfile[i].optname[j] = tolower(logparams_logfile[i].optname[j]);
-/* */
-    logparams_level[i].defstrval     = gloglevel;
-    logparams_verbosity[i].defstrval = glogverbo; 
-    logparams_logfile[i].defstrval   = malloc(strlen(g_log->log_component[i].name) + 16);
-    sprintf(logparams_logfile[i].defstrval,"/tmp/oai%s.log",g_log->log_component[i].name);
-    logparams_logfile[i].numelt      = 0;
-    logparams_verbosity[i].numelt    = 0;
-    logparams_level[i].numelt        = 0;
-    logparams_level[i].type          = TYPE_STRING;
-    logparams_verbosity[i].type      = TYPE_STRING;
-    logparams_logfile[i].type        = TYPE_UINT;
-
-    logparams_logfile[i].paramflags  = logparams_logfile[i].paramflags|PARAMFLAG_BOOL;
-    }
-  config_get( logparams_level,    MAX_LOG_PREDEF_COMPONENTS,CONFIG_STRING_LOG_PREFIX); 
-  config_get( logparams_verbosity,MAX_LOG_PREDEF_COMPONENTS,CONFIG_STRING_LOG_PREFIX); 
-  config_get( logparams_logfile,  MAX_LOG_PREDEF_COMPONENTS,CONFIG_STRING_LOG_PREFIX); 
-  for (int i=MIN_LOG_COMPONENTS; i < MAX_LOG_PREDEF_COMPONENTS; i++) {
-    verbosity = map_str_to_int(log_verbosity_names,*(logparams_verbosity[i].strptr));
-    level     = map_str_to_int(log_level_names,    *(logparams_level[i].strptr));
-    set_comp_log(i, level,verbosity,1);
-    /* HOTFIX: the following statement crashes, it is thus commented
-     * TODO: proper fix
-     */
-    /*set_component_filelog(*(logparams_logfile[i].uptr));*/
-    if ( logparams_logfile[i].defstrval != NULL) {
-       free (logparams_logfile[i].defstrval);
-    }
-    }
-}
-
-int register_log_component(char *name, char *fext, int compidx)
-{
-int computed_compidx=compidx;
-
-  if (strlen(fext) > 3) {
-      fext[3]=0;  /* limit log file extension to 3 chars */
-  }
-  if (compidx < 0) { /* this is not a pre-defined component */
-      for (int i = MAX_LOG_PREDEF_COMPONENTS; i< MAX_LOG_COMPONENTS; i++) {
-            if (g_log->log_component[i].name == NULL) {
-                computed_compidx=i;
-                break;
-            }
-      }
-  }
-  if (computed_compidx >= 0 && computed_compidx <MAX_LOG_COMPONENTS) {
-      g_log->log_component[computed_compidx].name = strdup(name);
-      g_log->log_component[computed_compidx].level = LOG_ALERT;
-      g_log->log_component[computed_compidx].flag =  LOG_MED;
-      g_log->log_component[computed_compidx].interval =  1;
-      g_log->log_component[computed_compidx].fd = 0;
-      g_log->log_component[computed_compidx].filelog = 0;
-      g_log->log_component[computed_compidx].filelog_name = malloc(strlen(name)+16);/* /tmp/<name>.%s rounded to ^2 */
-      sprintf(g_log->log_component[computed_compidx].filelog_name,"/tmp/%s.%s",name,fext);
-  } else {
-      fprintf(stderr,"{LOG} %s %d Couldn't register componemt %s\n",__FILE__,__LINE__,name);
-  }
-return computed_compidx;
-}
-
-int logInit (void)
-{
-  int i;
-  g_log = calloc(1, sizeof(log_t));
-
-  if (g_log == NULL) {
-    perror ("cannot allocated memory for log generation module \n");
-    exit(EXIT_FAILURE);
-  }
-
-
-#if ! defined(CN_BUILD)
-
-  register_log_component("PHY","log",PHY);
-  register_log_component("MAC","log",MAC);
-  register_log_component("OPT","log",OPT);
-  register_log_component("RLC","log",RLC);
-  register_log_component("PDCP","log",PDCP);
-  register_log_component("RRC","log",RRC);
-  register_log_component("SIM","log",SIM);
-  register_log_component("OMG","csv",OMG);
-  register_log_component("OTG","log",OTG);
-  register_log_component("OTG_LATENCY","dat",OTG_LATENCY);
-  register_log_component("OTG_LATENCY_BG","dat",OTG_LATENCY_BG);
-  register_log_component("OTG_GP","dat",OTG_GP);
-  register_log_component("OTG_GP_BG","dat",OTG_GP_BG);
-  register_log_component("OTG_JITTER","dat",OTG_JITTER);
-  register_log_component("OCG","",OCG);
-  register_log_component("PERF","",PERF);
-  register_log_component("OIP","",OIP); 
-  register_log_component("CLI","",CLI); 
-  register_log_component("MSC","log",MSC); 
-  register_log_component("OCM","log",OCM); 
-  register_log_component("HW","",HW); 
-  register_log_component("OSA","",OSA); 
-  register_log_component("eRAL","",RAL_ENB); 
-  register_log_component("mRAL","",RAL_UE); 
-  register_log_component("ENB_APP","log",ENB_APP); 
-  register_log_component("FLEXRAN_AGENT","log",FLEXRAN_AGENT); 
-  register_log_component("TMR","",TMR); 
-  register_log_component("USIM","txt",USIM);   
-
-
-  /* following log component are used for the localization*/
-  register_log_component("LOCALIZE","log",LOCALIZE);
-#endif // ! defined(CN_BUILD)
-  register_log_component("NAS","log",NAS);
-  register_log_component("UDP","",UDP_);
-  g_log->log_component[UDP_].flag = LOG_FULL;
-
-  register_log_component("GTPV1U","",GTPU);
-  g_log->log_component[GTPU].flag = LOG_FULL;
-
-  register_log_component("S1AP","",S1AP);
-  g_log->log_component[S1AP].flag = LOG_FULL;
-
-  register_log_component("SCTP","",SCTP);
-  register_log_component("RRH","",RRH);
- 
-
-  
-  g_log->level2string[LOG_EMERG]         = "G"; //EMERG
-  g_log->level2string[LOG_ALERT]         = "A"; // ALERT
-  g_log->level2string[LOG_CRIT]          = "C"; // CRITIC
-  g_log->level2string[LOG_ERR]           = "E"; // ERROR
-  g_log->level2string[LOG_WARNING]       = "W"; // WARNING
-  g_log->level2string[LOG_NOTICE]        = "N"; // NOTICE
-  g_log->level2string[LOG_INFO]          = "I"; //INFO
-  g_log->level2string[LOG_DEBUG]         = "D"; // DEBUG
-  g_log->level2string[LOG_FILE]          = "F"; // file
-  g_log->level2string[LOG_TRACE]         = "T"; // TRACE
-  g_log->level2string[LOG_MATLAB]        = "M"; // MATLAB
-
-  g_log->onlinelog = 1; //online log file
-  g_log->syslog = 0;
-  g_log->filelog   = 0;
-  g_log->level  = LOG_TRACE;
-  g_log->flag   = LOG_LOW;
-
-  g_log->config.remote_ip      = 0;
-  g_log->config.remote_level   = LOG_EMERG;
-  g_log->config.facility       = LOG_LOCAL7;
-  g_log->config.audit_ip       = 0;
-  g_log->config.audit_facility = LOG_LOCAL6;
-  g_log->config.format         = 0x00; // online debug inactive
-
-  g_log->filelog_name = "/tmp/openair.log";
-
-  if (g_log->syslog) {
-#if ! defined(CN_BUILD)
-    openlog(g_log->log_component[SIM].name, LOG_PID, g_log->config.facility);
-#endif // ! defined(CN_BUILD)
-  }
-  log_getconfig(g_log);
-  if (g_log->filelog) {
-    gfd = open(g_log->filelog_name, O_WRONLY | O_CREAT, 0666);
-  }
-
-  // could put a loop here to check for all comps
-  for (i=MIN_LOG_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) {
-    if (g_log->log_component[i].filelog == 1 ) {
-      g_log->log_component[i].fd = open(g_log->log_component[i].filelog_name,
-                                        O_WRONLY | O_CREAT | O_APPEND, 0666);
-    }
-  }
-  // set all unused component items to 0, they are for non predefined components
-  for (i=MAX_LOG_PREDEF_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) {
-        memset(&(g_log->log_component[i]),0,sizeof(log_component_t));
-  }
-  printf("log init done\n");
-
-  return 0;
-}
-
-
-extern int oai_exit;
-void log_mem_write(void)
-{
-  int fp;
-  char f_name[1024];
-  struct timespec slp_tm;
-  slp_tm.tv_sec = 0;
-  slp_tm.tv_nsec = 10000;
-  
-  pthread_setname_np( pthread_self(), "log_mem_write");
-
-  while (!oai_exit) {
-    pthread_mutex_lock(&log_mem_lock);
-    log_mem_write_flag=0;
-    pthread_cond_wait(&log_mem_notify, &log_mem_lock);
-    log_mem_write_flag=1;
-    pthread_mutex_unlock(&log_mem_lock);
-    // write!
-    if(log_mem_d[log_mem_write_side].enable_flag==0){
-      if(log_mem_file_cnt>1){
-        log_mem_file_cnt=1;
-        printf("log over write!!!\n");
-      }
-      snprintf(f_name,1024, "%s_%d.log",log_mem_filename,log_mem_file_cnt);
-      fp=open(f_name, O_WRONLY | O_CREAT, 0666);
-      int ret = write(fp, log_mem_d[log_mem_write_side].buf_p, log_mem_d[log_mem_write_side].buf_index);
-      if ( ret < 0) {
-          fprintf(stderr,"{LOG} %s %d Couldn't write in %s \n",__FILE__,__LINE__,f_name);
-          exit(EXIT_FAILURE);
-      }
-      close(fp);
-      log_mem_file_cnt++;
-      log_mem_d[log_mem_write_side].buf_index=0;
-      log_mem_d[log_mem_write_side].enable_flag=1;
-    }else{
-      printf("If you'd like to write log, you should set enable flag to 0!!!\n");
-      nanosleep(&slp_tm,NULL);
-    }
-  }
-}
-
-int logInit_log_mem (void)
-{
-  if(log_mem_flag==1){
-    if(log_mem_multi==1){
-      printf("log-mem multi!!!\n");
-      log_mem_d[0].buf_p = malloc(LOG_MEM_SIZE);
-      log_mem_d[0].buf_index=0;
-      log_mem_d[0].enable_flag=1;
-      log_mem_d[1].buf_p = malloc(LOG_MEM_SIZE);
-      log_mem_d[1].buf_index=0;
-      log_mem_d[1].enable_flag=1;
-      log_mem_side=0;
-      if ((pthread_mutex_init (&log_mem_lock, NULL) != 0)
-          || (pthread_cond_init (&log_mem_notify, NULL) != 0)) {
-        log_mem_d[1].enable_flag=0;
-        return -1;
-      }
-      pthread_create(&log_mem_thread, NULL, (void *(*)(void *))log_mem_write, (void*)NULL);
-    }else{
-      printf("log-mem single!!!\n");
-      log_mem_d[0].buf_p = malloc(LOG_MEM_SIZE);
-      log_mem_d[0].buf_index=0;
-      log_mem_d[0].enable_flag=1;
-      log_mem_d[1].enable_flag=0;
-      log_mem_side=0;
-    }
-  }else{
-    log_mem_d[0].buf_p=NULL;
-    log_mem_d[1].buf_p=NULL;
-    log_mem_d[0].enable_flag=0;
-    log_mem_d[1].enable_flag=0;
-  }
-
-  printf("log init done\n");
-  
-  return 0;
-}
-
-void nfapi_log(const char *file, const char *func, int line, int comp, int level, const char* format,va_list args)
-{
-  //logRecord_mt(file,func,line, pthread_self(), comp, level, format, ##args)
-  int len = 0;
-  log_component_t *c;
-  char *log_start;
-  char *log_end;
-  /* The main difference with the version above is the use of this local log_buffer.
-   * The other difference is the return value of snprintf which was not used
-   * correctly. It was not a big problem because in practice MAX_LOG_TOTAL is
-   * big enough so that the buffer is never full.
-   */
-  char log_buffer[MAX_LOG_TOTAL];
-
-  /* for no gcc warnings */
-  (void)log_start;
-  (void)log_end;
-
-
-  c = &g_log->log_component[comp];
-
-  // do not apply filtering for LOG_F
-  // only log messages which are enabled and are below the global log level and component's level threshold
-  if ((level != LOG_FILE) && ((level > c->level) || (level > g_log->level))) {
-    /* if ((level != LOG_FILE) &&
-          ((level > c->level) ||
-           (level > g_log->level) ||
-           ( c->level > g_log->level))) {
-    */
-    return;
-  }
-
-  //VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_LOG_RECORD, VCD_FUNCTION_IN);
-
-  // adjust syslog level for TRACE messages
-  if (g_log->syslog) {
-    if (g_log->level > LOG_DEBUG) {
-      g_log->level = LOG_DEBUG;
-    }
-  }
-
-  // make sure that for log trace the extra info is only printed once, reset when the level changes
-  if ((level == LOG_FILE) || (c->flag == LOG_NONE) || (level == LOG_TRACE)) {
-    log_start = log_buffer;
-    len = vsnprintf(log_buffer, MAX_LOG_TOTAL, format, args);
-    if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
-    log_end = log_buffer + len;
-  } else {
-    if ( (g_log->flag & FLAG_COLOR) || (c->flag & FLAG_COLOR) ) {
-      len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "%s",
-                      log_level_highlight_start[level]);
-      if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
-    }
-
-    log_start = log_buffer + len;
-
-    if ( (g_log->flag & FLAG_COMP) || (c->flag & FLAG_COMP) ) {
-      len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s]",
-                      g_log->log_component[comp].name);
-      if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
-    }
-
-    if ( (g_log->flag & FLAG_LEVEL) || (c->flag & FLAG_LEVEL) ) {
-      len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s]",
-                      g_log->level2string[level]);
-      if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
-    }
-
-    if ( (g_log->flag & FLAG_THREAD) || (c->flag & FLAG_THREAD) ) {
-#     define THREAD_NAME_LEN 128
-      char threadname[THREAD_NAME_LEN];
-      if (pthread_getname_np(pthread_self(), threadname, THREAD_NAME_LEN) != 0)
-      {
-        perror("pthread_getname_np : ");
-      } else {
-        len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s]", threadname);
-        if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
-      }
-#     undef THREAD_NAME_LEN
-    }
-
-    if ( (g_log->flag & FLAG_FUNCT) || (c->flag & FLAG_FUNCT) ) {
-      len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s] ",
-                      func);
-      if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
-    }
-
-    if ( (g_log->flag & FLAG_FILE_LINE) || (c->flag & FLAG_FILE_LINE) ) {
-      len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s:%d]",
-                      file, line);
-      if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
-    }
-
-    //len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%08lx]", thread_id);
-    //if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
-
-    len += vsnprintf(&log_buffer[len], MAX_LOG_TOTAL - len, format, args);
-    if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
-    log_end = log_buffer + len;
-
-    if ( (g_log->flag & FLAG_COLOR) || (c->flag & FLAG_COLOR) ) {
-      len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "%s",
-          log_level_highlight_end[level]);
-      if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
-    }
-  }
-
-  va_end(args);
-
-  // OAI printf compatibility
-  if ((g_log->onlinelog == 1) && (level != LOG_FILE)) {
-    if(log_mem_flag==1){
-      if(log_mem_d[log_mem_side].enable_flag==1){
-        int temp_index;
-        temp_index=log_mem_d[log_mem_side].buf_index;
-        if(temp_index+len+1 < LOG_MEM_SIZE){
-          log_mem_d[log_mem_side].buf_index+=len;
-          memcpy(&log_mem_d[log_mem_side].buf_p[temp_index],log_buffer,len);
-        }else{
-          log_mem_d[log_mem_side].enable_flag=0;
-          if(log_mem_d[1-log_mem_side].enable_flag==1){
-            temp_index=log_mem_d[1-log_mem_side].buf_index;
-            if(temp_index+len+1 < LOG_MEM_SIZE){
-              log_mem_d[1-log_mem_side].buf_index+=len;
-              log_mem_side=1-log_mem_side;
-              memcpy(&log_mem_d[log_mem_side].buf_p[temp_index],log_buffer,len);
-              /* write down !*/
-              if (pthread_mutex_lock(&log_mem_lock) != 0) {
-                return;
-              }
-              if(log_mem_write_flag==0){
-                log_mem_write_side=1-log_mem_side;
-                if(pthread_cond_signal(&log_mem_notify) != 0) {
-                }
-              }
-              if(pthread_mutex_unlock(&log_mem_lock) != 0) {
-                return;
-              }
-            }else{
-              log_mem_d[1-log_mem_side].enable_flag=0;
-            }
-          }
-        }
-      }
-    }else{
-      fwrite(log_buffer, len, 1, stdout);
-    }
-  }
-
-  if (g_log->syslog) {
-    syslog(g_log->level, "%s", log_buffer);
-  }
-
-  if (g_log->filelog) {
-    if (write(gfd, log_buffer, len) < len) {
-      // TODO assert ?
-    }
-  }
-
-  if ((g_log->log_component[comp].filelog) && (level == LOG_FILE)) {
-    if (write(g_log->log_component[comp].fd, log_buffer, len) < len) {
-      // TODO assert ?
-    }
-  }
-
-
-#if defined(ENABLE_ITTI)
-
-  if (level <= LOG_DEBUG) {
-    task_id_t origin_task_id = TASK_UNKNOWN;
-    MessagesIds messages_id;
-    MessageDef *message_p;
-    size_t      message_string_size;
-    char       *message_msg_p;
-
-    message_string_size = log_end - log_start;
-
-#if !defined(DISABLE_ITTI_DETECT_SUB_TASK_ID)
-
-    /* Try to identify sub task ID from log information (comp, log_instance_type) */
-    switch (comp) {
-    case PHY:
-      switch (log_instance_type) {
-      case LOG_INSTANCE_ENB:
-        origin_task_id = TASK_PHY_ENB;
-        break;
-
-      case LOG_INSTANCE_UE:
-        origin_task_id = TASK_PHY_UE;
-        break;
-
-      default:
-        break;
-      }
-
-      break;
-
-    case MAC:
-      switch (log_instance_type) {
-      case LOG_INSTANCE_ENB:
-        origin_task_id = TASK_MAC_ENB;
-        break;
-
-      case LOG_INSTANCE_UE:
-        origin_task_id = TASK_MAC_UE;
-
-      default:
-        break;
-      }
-
-      break;
-
-    case RLC:
-      switch (log_instance_type) {
-      case LOG_INSTANCE_ENB:
-        origin_task_id = TASK_RLC_ENB;
-        break;
-
-      case LOG_INSTANCE_UE:
-        origin_task_id = TASK_RLC_UE;
-
-      default:
-        break;
-      }
-
-      break;
-
-    case PDCP:
-      switch (log_instance_type) {
-      case LOG_INSTANCE_ENB:
-        origin_task_id = TASK_PDCP_ENB;
-        break;
-
-      case LOG_INSTANCE_UE:
-        origin_task_id = TASK_PDCP_UE;
-
-      default:
-        break;
-      }
-
-      break;
-
-    default:
-      break;
-    }
-
-#endif
-
-    switch (level) {
-    case LOG_EMERG:
-    case LOG_ALERT:
-    case LOG_CRIT:
-    case LOG_ERR:
-      messages_id = ERROR_LOG;
-      break;
-
-    case LOG_WARNING:
-      messages_id = WARNING_LOG;
-      break;
-
-    case LOG_NOTICE:
-      messages_id = NOTICE_LOG;
-      break;
-
-    case LOG_INFO:
-      messages_id = INFO_LOG;
-      break;
-
-    default:
-      messages_id = DEBUG_LOG;
-      break;
-    }
-
-    message_p = itti_alloc_new_message_sized(origin_task_id, messages_id, message_string_size);
-
-    switch (level) {
-    case LOG_EMERG:
-    case LOG_ALERT:
-    case LOG_CRIT:
-    case LOG_ERR:
-      message_msg_p = (char *) &message_p->ittiMsg.error_log;
-      break;
-
-    case LOG_WARNING:
-      message_msg_p = (char *) &message_p->ittiMsg.warning_log;
-      break;
-
-    case LOG_NOTICE:
-      message_msg_p = (char *) &message_p->ittiMsg.notice_log;
-      break;
-
-    case LOG_INFO:
-      message_msg_p = (char *) &message_p->ittiMsg.info_log;
-      break;
-
-    default:
-      message_msg_p = (char *) &message_p->ittiMsg.debug_log;
-      break;
-    }
-
-    memcpy(message_msg_p, log_start, message_string_size);
-
-    itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
-  }
-
-#endif
-}
-
-void logRecord_mt(const char *file, const char *func, int line, int comp, int level, const char* format, ... )
-{
-  va_list    args;
-  va_start(args, format);
-  nfapi_log(file,func,line,comp,level, format,args);
-}
-
-//log record: add to a list
-void logRecord(const char *file, const char *func, int line,  int comp,
-               int level, const char *format, ...)
-{
-  va_list    args;
-  LOG_params log_params;
-  int        len;
-
-  va_start(args, format);
-  len = vsnprintf(log_params.l_buff_info, MAX_LOG_INFO-1, format, args);
-  va_end(args);
-
-  //2 first parameters must be passed as 'const' to the thread function
-  log_params.file = strdup(file);
-  log_params.func = strdup(func);
-  log_params.line = line;
-  log_params.comp = comp;
-  log_params.level = level;
-  log_params.format = format;
-  log_params.len = len;
-
-  if (pthread_mutex_lock(&log_lock) != 0) {
-    return;
-  }
-
-  log_list_tail++;
-  log_list[log_list_tail - 1] = log_params;
-
-  if (log_list_tail >= 1000) {
-    log_list_tail = 0;
-  }
-
-  if (log_list_nb_elements < 1000) {
-    log_list_nb_elements++;
-  }
-
-  if(pthread_cond_signal(&log_notify) != 0) {
-    pthread_mutex_unlock(&log_lock);
-    return;
-  }
-
-  if(pthread_mutex_unlock(&log_lock) != 0) {
-    return;
-  }
-
-  //log = malloc(sizeof(LOG_elt));
-  //log->next = NULL;
-  //log->log_params = log_params;
-  /* Add log task to queue */
-  //log_list_add_tail_eurecom(log, &log_list);
-
-}
-
-void logRecord_thread_safe(const char *file, const char *func,
-                           int line,  int comp, int level,
-                           int len, const char *params_string)
-{
-  log_component_t *c;
-  int total_len = 0;
-  char log_buffer[MAX_LOG_TOTAL];
-
-  c = &g_log->log_component[comp];
-
-  // do not apply filtering for LOG_F
-  // only log messages which are enabled and are below the global log level and component's level threshold
-  if ((level != LOG_FILE) && ((c->level > g_log->level) ||
-                              (level > c->level) || (level > g_log->level))) {
-    return;
-  }
-
-
-  VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_LOG_RECORD,
-                                          VCD_FUNCTION_IN);
-
-  // adjust syslog level for TRACE messages
-  if (g_log->syslog) {
-    if (g_log->level > LOG_DEBUG) {
-      g_log->level = LOG_DEBUG;
-    }
-  }
-
-  // make sure that for log trace the extra info is only printed once, reset when the level changes
-  if ((level == LOG_FILE) ||  (c->flag == LOG_NONE)  || (level ==LOG_TRACE )) {
-    total_len = snprintf(&log_buffer[total_len], MAX_LOG_TOTAL - 1, "%s",
-                         params_string);
-  } else {
-    if ((g_log->flag & FLAG_COLOR) || (c->flag & FLAG_COLOR)) {
-      total_len += snprintf(&log_buffer[total_len], MAX_LOG_TOTAL - total_len, "%s",
-                            log_level_highlight_start[level]);
-    }
-
-    if ((g_log->flag & FLAG_COMP) || (c->flag & FLAG_COMP) ) {
-      total_len += snprintf(&log_buffer[total_len], MAX_LOG_TOTAL - total_len, "[%s]",
-                            g_log->log_component[comp].name);
-    }
-
-    if ((g_log->flag & FLAG_LEVEL) || (c->flag & FLAG_LEVEL)) {
-      total_len += snprintf(&log_buffer[total_len], MAX_LOG_TOTAL - total_len, "[%s]",
-                            g_log->level2string[level]);
-    }
-
-    if ((g_log->flag & FLAG_FUNCT) || (c->flag & FLAG_FUNCT)) {
-      total_len += snprintf(&log_buffer[total_len], MAX_LOG_TOTAL - total_len, "[%s] ",
-                            func);
-    }
-
-    if ((g_log->flag & FLAG_FILE_LINE) || (c->flag & FLAG_FILE_LINE) )  {
-      total_len += snprintf(&log_buffer[total_len], MAX_LOG_TOTAL - total_len, "[%s:%d]",
-                            file, line);
-    }
-
-    len += snprintf(&log_buffer[total_len], MAX_LOG_TOTAL - len, "%s",
-                    params_string);
-
-    if ((g_log->flag & FLAG_COLOR) || (c->flag & FLAG_COLOR)) {
-      total_len += snprintf(&log_buffer[total_len], MAX_LOG_TOTAL - total_len, "%s",
-                            log_level_highlight_end[level]);
-    }
-  }
-
-  // OAI printf compatibility
-  if ((g_log->onlinelog == 1) && (level != LOG_FILE)) {
-    fprintf(stdout, "%s", log_buffer);
-  }
-
-  if (g_log->syslog) {
-    syslog(g_log->level, "%s", log_buffer);
-  }
-
-  if (g_log->filelog) {
-    if (write(gfd, log_buffer, total_len) < total_len) {
-      // TODO assert ?
-    }
-  }
-
-  if ((g_log->log_component[comp].filelog) && (level == LOG_FILE)) {
-    if (write(g_log->log_component[comp].fd, log_buffer, total_len) < total_len) {
-      // TODO assert ?
-    }
-  }
-
-  VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_LOG_RECORD,
-                                          VCD_FUNCTION_OUT);
-}
-
-#if !defined(LOG_NO_THREAD)
-void *log_thread_function(void *list)
-{
-
-  LOG_params log_params;
-
-  for(;;) {
-
-    //log_elt = NULL;
-
-    /* Lock must be taken to wait on conditional variable */
-    pthread_mutex_lock(&log_lock);
-
-    /* Wait on condition variable, check for spurious wakeups.
-       When returning from pthread_cond_wait(), we own the lock. */
-
-    // sleep
-    while((log_list_nb_elements == 0) && (log_shutdown == 0)) {
-      pthread_cond_wait(&log_notify, &log_lock);
-    }
-
-    // exit
-    if ((log_shutdown==1) && (log_list_nb_elements == 0)) {
-      break;
-    }
-
-    /* Grab our task */
-    //log_elt = log_list_remove_head(&log_list);
-    log_params = log_list[log_list_head];
-    log_list_head++;
-    log_list_nb_elements--;
-
-    if (log_list_head >= 1000) {
-      log_list_head = 0;
-    }
-
-
-    /* Unlock */
-    pthread_mutex_unlock(&log_lock);
-
-    /* Get to work */
-    logRecord_thread_safe(log_params.file,
-                          log_params.func,
-                          log_params.line,
-                          log_params.comp,
-                          log_params.level,
-                          log_params.len,
-                          log_params.l_buff_info);
-
-    //free(log_elt);
-  }
-}
-#endif
-
-
-
-int set_log(int component, int level, int interval)
-{
-  /* Checking parameters */
-  DevCheck((component >= MIN_LOG_COMPONENTS) && (component < MAX_LOG_COMPONENTS),
-           component, MIN_LOG_COMPONENTS, MAX_LOG_COMPONENTS);
-  DevCheck((level < NUM_LOG_LEVEL) && (level >= LOG_EMERG), level, NUM_LOG_LEVEL,
-           LOG_EMERG);
-  DevCheck((interval >= 0) && (interval <= 0xFF), interval, 0, 0xFF);
-
-  g_log->log_component[component].level = level;
-
-  switch (level) {
-  case LOG_TRACE:
-    g_log->log_component[component].flag = LOG_MED ;
-    break;
-
-  case LOG_DEBUG:
-    g_log->log_component[component].flag = LOG_MED ;
-    break;
-
-  case LOG_INFO:
-    g_log->log_component[component].flag = LOG_LOW ;
-    break;
-
-  default:
-    g_log->log_component[component].flag = LOG_NONE ;
-    break;
-  }
-
-  g_log->log_component[component].interval = interval;
-
-  return 0;
-}
-
-int set_comp_log(int component, int level, int verbosity, int interval)
-{
-  /* Checking parameters */
-  DevCheck((component >= MIN_LOG_COMPONENTS) && (component < MAX_LOG_COMPONENTS),
-           component, MIN_LOG_COMPONENTS, MAX_LOG_COMPONENTS);
-  DevCheck((level < NUM_LOG_LEVEL) && (level >= LOG_EMERG), level, NUM_LOG_LEVEL,
-           LOG_EMERG);
-  DevCheck((interval >= 0) && (interval <= 0xFF), interval, 0, 0xFF);
-
-  g_log->log_component[component].flag = verbosity;
-
-  g_log->log_component[component].level = level;
-  g_log->log_component[component].interval = interval;
-
-  return 0;
-}
-
-void set_glog(int level, int verbosity)
-{
-  if( g_log->level >= 0) g_log->level = level;
-  if( g_log->flag >= 0)  g_log->flag = verbosity;
-}
-void set_glog_syslog(int enable)
-{
-  g_log->syslog = enable;
-}
-void set_glog_onlinelog(int enable)
-{
-  g_log->onlinelog = enable;
-}
-void set_glog_filelog(int enable)
-{
-  g_log->filelog = enable;
-}
-
-void set_component_filelog(int comp)
-{
-  if (g_log->log_component[comp].filelog ==  0) {
-    g_log->log_component[comp].filelog =  1;
-
-    if (g_log->log_component[comp].fd == 0) {
-      g_log->log_component[comp].fd = open(g_log->log_component[comp].filelog_name,
-                                           O_WRONLY | O_CREAT | O_TRUNC, 0666);
-    }
-  }
-}
-
-/*
- * for the two functions below, the passed array must have a final entry
- * with string value NULL
- */
-/* map a string to an int. Takes a mapping array and a string as arg */
-int map_str_to_int(mapping *map, const char *str)
-{
-  while (1) {
-    if (map->name == NULL) {
-      return(-1);
-    }
-
-    if (!strcmp(map->name, str)) {
-      return(map->value);
-    }
-
-    map++;
-  }
-}
-
-/* map an int to a string. Takes a mapping array and a value */
-char *map_int_to_str(mapping *map, int val)
-{
-  while (1) {
-    if (map->name == NULL) {
-      return NULL;
-    }
-
-    if (map->value == val) {
-      return map->name;
-    }
-
-    map++;
-  }
-}
-
-int is_newline( char *str, int size)
-{
-  int i;
-
-  for (  i = 0; i < size; i++ ) {
-    if ( str[i] == '\n' ) {
-      return 1;
-    }
-  }
-
-  /* if we get all the way to here, there must not have been a newline! */
-  return 0;
-}
-
-void logClean (void)
-{
-  int i;
-
-  if (g_log->syslog) {
-    closelog();
-  }
-
-  if (g_log->filelog) {
-    close(gfd);
-  }
-
-  for (i=MIN_LOG_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) {
-    if (g_log->log_component[i].filelog) {
-      close(g_log->log_component[i].fd);
-    }
-  }
-}
-
-#if defined(ENABLE_ITTI)
-void log_set_instance_type (log_instance_type_t instance)
-{
-  log_instance_type = instance;
-}
-#endif
-  
-void output_log_mem(void){
-  int fp;
-  char f_name[1024];
-
-  if(log_mem_flag==1){
-    log_mem_d[0].enable_flag=0;
-    log_mem_d[1].enable_flag=0;
-    usleep(10); // wait for log writing
-    while(log_mem_write_flag==1){
-      usleep(100);
-    }
-    if(log_mem_multi==1){
-      snprintf(f_name,1024, "%s_%d.log",log_mem_filename,log_mem_file_cnt);
-      fp=open(f_name, O_WRONLY | O_CREAT, 0666);
-      int ret = write(fp, log_mem_d[0].buf_p, log_mem_d[0].buf_index);
-      if ( ret < 0) {
-          fprintf(stderr,"{LOG} %s %d Couldn't write in %s \n",__FILE__,__LINE__,f_name);
-          exit(EXIT_FAILURE);
-      }
-      close(fp);
-      free(log_mem_d[0].buf_p);
-      
-      snprintf(f_name,1024, "%s_%d.log",log_mem_filename,log_mem_file_cnt);
-      fp=open(f_name, O_WRONLY | O_CREAT, 0666);
-      ret = write(fp, log_mem_d[1].buf_p, log_mem_d[1].buf_index);
-      if ( ret < 0) {
-          fprintf(stderr,"{LOG} %s %d Couldn't write in %s \n",__FILE__,__LINE__,f_name);
-          exit(EXIT_FAILURE);
-      }
-      close(fp);
-      free(log_mem_d[1].buf_p);
-    }else{
-      fp=open(log_mem_filename, O_WRONLY | O_CREAT, 0666);
-      int ret = write(fp, log_mem_d[0].buf_p, log_mem_d[0].buf_index);
-      if ( ret < 0) {
-          fprintf(stderr,"{LOG} %s %d Couldn't write in %s \n",__FILE__,__LINE__,log_mem_filename);
-          exit(EXIT_FAILURE);
-       }
-      close(fp);
-      free(log_mem_d[0].buf_p);
-    }
-  }
-}
-  
-#ifdef LOG_TEST
-
-int main(int argc, char *argv[])
-{
-
-  logInit();
-
-  //set_log_syslog(1);
-  test_log();
-
-  return 1;
-}
-
-int test_log(void)
-{
-  LOG_ENTER(MAC); // because the default level is DEBUG
-  LOG_I(SIM, "1 Starting OAI logs version %s Build date: %s on %s\n",
-        BUILD_VERSION, BUILD_DATE, BUILD_HOST);
-  LOG_D(MAC, "1 debug  MAC \n");
-  LOG_N(MAC, "1 notice MAC \n");
-  LOG_W(MAC, "1 warning MAC \n");
-
-  set_comp_log(SIM, LOG_INFO, FLAG_ONLINE);
-  set_comp_log(MAC, LOG_WARNING, 0);
-
-  LOG_I(SIM, "2 Starting OAI logs version %s Build date: %s on %s\n",
-        BUILD_VERSION, BUILD_DATE, BUILD_HOST);
-  LOG_E(MAC, "2 emerge MAC\n");
-  LOG_D(MAC, "2 debug  MAC \n");
-  LOG_N(MAC, "2 notice MAC \n");
-  LOG_W(MAC, "2 warning MAC \n");
-  LOG_I(MAC, "2 info MAC \n");
-
-
-  set_comp_log(MAC, LOG_NOTICE, 1);
-
-  LOG_ENTER(MAC);
-  LOG_I(SIM, "3 Starting OAI logs version %s Build date: %s on %s\n",
-        BUILD_VERSION, BUILD_DATE, BUILD_HOST);
-  LOG_D(MAC, "3 debug  MAC \n");
-  LOG_N(MAC, "3 notice MAC \n");
-  LOG_W(MAC, "3 warning MAC \n");
-  LOG_I(MAC, "3 info MAC \n");
-
-  set_comp_log(MAC, LOG_DEBUG,1);
-  set_comp_log(SIM, LOG_DEBUG,1);
-
-  LOG_ENTER(MAC);
-  LOG_I(SIM, "4 Starting OAI logs version %s Build date: %s on %s\n",
-        BUILD_VERSION, BUILD_DATE, BUILD_HOST);
-  LOG_D(MAC, "4 debug  MAC \n");
-  LOG_N(MAC, "4 notice MAC \n");
-  LOG_W(MAC, "4 warning MAC \n");
-  LOG_I(MAC, "4 info MAC \n");
-
-
-  set_comp_log(MAC, LOG_DEBUG,0);
-  set_comp_log(SIM, LOG_DEBUG,0);
-
-  LOG_I(LOG, "5 Starting OAI logs version %s Build date: %s on %s\n",
-        BUILD_VERSION, BUILD_DATE, BUILD_HOST);
-  LOG_D(MAC, "5 debug  MAC \n");
-  LOG_N(MAC, "5 notice MAC \n");
-  LOG_W(MAC, "5 warning MAC \n");
-  LOG_I(MAC, "5 info MAC \n");
-
-
-  set_comp_log(MAC, LOG_TRACE,0X07F);
-  set_comp_log(SIM, LOG_TRACE,0X07F);
-
-  LOG_ENTER(MAC);
-  LOG_I(LOG, "6 Starting OAI logs version %s Build date: %s on %s\n",
-        BUILD_VERSION, BUILD_DATE, BUILD_HOST);
-  LOG_D(MAC, "6 debug  MAC \n");
-  LOG_N(MAC, "6 notice MAC \n");
-  LOG_W(MAC, "6 warning MAC \n");
-  LOG_I(MAC, "6 info MAC \n");
-  LOG_EXIT(MAC);
-
-  return 0;
-}
-#endif
diff --git a/openair2/UTIL/OMG/omg.c b/openair2/UTIL/OMG/omg.c
index 83f38f13d52d52d6dff87577b388feed9624a0a0..6a1ada01568b1d079b69f1e05264de868ff00fff 100644
--- a/openair2/UTIL/OMG/omg.c
+++ b/openair2/UTIL/OMG/omg.c
@@ -121,7 +121,7 @@ init_mobility_generator (omg_global_param omg_param_list[])
       break;
 
     default:
-      LOG_N (OMG, "Unsupported generator\n");
+      LOG_W (OMG, "Unsupported generator\n");
     }
 
 
@@ -161,7 +161,7 @@ stop_mobility_generator (omg_global_param * omg_param_list)
       break;
 #endif 
     default:
-      LOG_N (OMG, "Unsupported generator\n");
+      LOG_W (OMG, "Unsupported generator\n");
     }
   }
 
@@ -211,8 +211,7 @@ update_node_vector (int mobility_type, double cur_time)
     break;
 
   default:
-    //printf("STATIC or Unsupported generator %d \n", omg_param_list.mobility_type);
-    LOG_N (OMG, "STATIC or Unsupported generator\n");
+    LOG_W (OMG, "STATIC or Unsupported generator\n");
   }
 }
 
diff --git a/openair2/UTIL/OPT/opt.h b/openair2/UTIL/OPT/opt.h
index b131d8053959f530d22dbb6d8d22d570490e89f4..c9340f258e9700baee412b73940e9a946676a589 100644
--- a/openair2/UTIL/OPT/opt.h
+++ b/openair2/UTIL/OPT/opt.h
@@ -48,7 +48,7 @@ This header file must be included */
 #endif
 #ifndef project_include
 #define project_include
-#include "UTIL/LOG/log_if.h"
+#include "common/utils/LOG/log_if.h"
 // #include "UTIL/LOG/log_extern.h"
 //#include "PHY/defs.h"
 //#include "PHY/extern.h"
diff --git a/openair2/UTIL/OPT/probe.c b/openair2/UTIL/OPT/probe.c
index ebc52bb1e04450d356de56054b01508a99aee915..2f7dac3d1ed9a7a568af2ecae00d86b58529e7ad 100644
--- a/openair2/UTIL/OPT/probe.c
+++ b/openair2/UTIL/OPT/probe.c
@@ -543,11 +543,11 @@ int init_opt(char *path, char *ip, char *port, radio_type_t radio_type_p)
   }
 
   if ( opt_type == OPT_WIRESHARK )
-    LOG_G(OPT,"mode Wireshark: ip %s port %d\n", in_ip, in_port);
+    LOG_E(OPT,"mode Wireshark: ip %s port %d\n", in_ip, in_port);
   else if (opt_type == OPT_PCAP)
-    LOG_G(OPT,"mode PCAB : path is %s \n",in_path);
+    LOG_E(OPT,"mode PCAB : path is %s \n",in_path);
   else
-    LOG_G(OPT,"Unsupported or unknown mode %d \n", opt_type);
+    LOG_E(OPT,"Unsupported or unknown mode %d \n", opt_type);
 
   //  mac_info = (mac_info*)malloc16(sizeof(mac_lte_info));
   // memset(mac_info, 0, sizeof(mac_lte_info)+pdu_buffer_size + 8);
diff --git a/openair2/UTIL/OSA/osa_key_deriver.c b/openair2/UTIL/OSA/osa_key_deriver.c
index cf181b7a99a50e1709f15efa64a45f4e01a35219..237592bd171f5740a7a420ff9bc51ed77f09c2e8 100644
--- a/openair2/UTIL/OSA/osa_key_deriver.c
+++ b/openair2/UTIL/OSA/osa_key_deriver.c
@@ -25,7 +25,7 @@
 
 #include "osa_defs.h"
 #include "osa_internal.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 
 static inline
 void kdf(const uint8_t *s, const uint32_t s_length, const uint8_t *key,
diff --git a/openair2/UTIL/OSA/osa_stream_eea.c b/openair2/UTIL/OSA/osa_stream_eea.c
index e922ed3c867b02a7b3cb443b5c3098076dd95b21..03e95008ca68e0bd0d162fd5662a867253f1451a 100644
--- a/openair2/UTIL/OSA/osa_stream_eea.c
+++ b/openair2/UTIL/OSA/osa_stream_eea.c
@@ -28,7 +28,7 @@
 #include <nettle/aes.h>
 #include <nettle/ctr.h>
 
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 
 #include "assertions.h"
 #include "osa_defs.h"
diff --git a/openair2/UTIL/OSA/osa_stream_eia.c b/openair2/UTIL/OSA/osa_stream_eia.c
index e58e280ef7568fc80c16f453d252669bde3a26e4..980a4ae3c1fa253634a788c9020a744dec1fb6d1 100644
--- a/openair2/UTIL/OSA/osa_stream_eia.c
+++ b/openair2/UTIL/OSA/osa_stream_eia.c
@@ -31,7 +31,7 @@
 #include <openssl/cmac.h>
 #include <openssl/evp.h>
 
-#include "UTIL/LOG/log.h"
+#include "common/utils//LOG/log.h"
 
 #include "osa_defs.h"
 #include "osa_snow3g.h"
diff --git a/openair2/UTIL/OTG/otg.h b/openair2/UTIL/OTG/otg.h
index 7938a2a0d79091e52849e4dc7a42ce9b1ea44e86..b95091881bc088aaedd4e1e9e3bd9b6b70748a15 100644
--- a/openair2/UTIL/OTG/otg.h
+++ b/openair2/UTIL/OTG/otg.h
@@ -58,7 +58,7 @@
 #define LOG_T(c, x...) printf(x)
 typedef enum {MIN_NUM_COMPS=0, PHY, OMG, OCM, OTG, MAX_NUM_COMPS} comp_t;
 #else
-#include "../UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #endif
 
 
diff --git a/openair2/UTIL/OTG/otg_rx.c b/openair2/UTIL/OTG/otg_rx.c
index bcdcc5e35c6d6d6a807e376fccb74c07453bf39f..46cad30cb8b78a5d16b5264e8e8d0826b76da9a4 100644
--- a/openair2/UTIL/OTG/otg_rx.c
+++ b/openair2/UTIL/OTG/otg_rx.c
@@ -185,7 +185,7 @@ int otg_rx_pkt(const int dst_instanceP, const int ctime, const char * const buff
         otg_info->radio_access_delay[src_instance][dst_instance]=(float) (ctime- otg_hdr_rx->time);
         otg_multicast_info->radio_access_delay[src_instance][dst_instance]=(float) (ctime- otg_hdr_rx->time);
       } else {
-        LOG_N(OTG,"received packet has tx time %d greater than the current time %d\n",otg_hdr_rx->time,ctime );
+        LOG_I(OTG,"received packet has tx time %d greater than the current time %d\n",otg_hdr_rx->time,ctime );
         otg_info->radio_access_delay[src_instance][dst_instance] = 0;
         otg_multicast_info->radio_access_delay[src_instance][dst_instance]=0;
       }
diff --git a/openair3/GTPV1-U/gtpv1u_eNB.c b/openair3/GTPV1-U/gtpv1u_eNB.c
index e9eec349dc3d8c579c10e67b42b23bec9cd6e850..b9d81602c267bf6caff08d6d1362ce1812a80b0e 100644
--- a/openair3/GTPV1-U/gtpv1u_eNB.c
+++ b/openair3/GTPV1-U/gtpv1u_eNB.c
@@ -44,10 +44,10 @@
 #include "gtpv1u_eNB_defs.h"
 #include "gtpv1_u_messages_types.h"
 #include "udp_eNB_task.h"
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #include "COMMON/platform_types.h"
 #include "COMMON/platform_constants.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "common/ran_context.h"
 #include "gtpv1u_eNB_defs.h"
 
diff --git a/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c b/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c
index cd59028ce37dc5d45441ac0a5f3154cb9e3d846c..eb27189a6133b6785b43c5539e11d09573d57ed8 100644
--- a/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c
+++ b/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c
@@ -51,8 +51,8 @@
 
 #include "gtpv1u.h"
 #if defined(ENB_MODE)
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #endif
 
 #ifdef __cplusplus
diff --git a/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c b/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c
index fe1c509fef7e35830f107062313022cda53c4c96..535ab8f1faf62f9b3e13f43391fab1a464f78ae5 100644
--- a/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c
+++ b/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c
@@ -46,7 +46,7 @@
 
 #include "gtpv1u.h"
 #if defined(ENB_MODE)
-#include "UTIL/LOG/log.h"
+#include "common/utils/LOG/log.h"
 #endif
 
 #define NW_GTPV1U_EPC_SPECIFIC_HEADER_SIZE                             (12)   /**< Size of GTPv1u EPC specific header */
diff --git a/openair3/NAS/COMMON/API/NETWORK/network_api.c b/openair3/NAS/COMMON/API/NETWORK/network_api.c
index 160eb78e17c553bae71137928558943511c09f8d..9f8f2125a6f7234be15376a20a51bf22b1ff2fd2 100644
--- a/openair3/NAS/COMMON/API/NETWORK/network_api.c
+++ b/openair3/NAS/COMMON/API/NETWORK/network_api.c
@@ -144,10 +144,8 @@ int network_api_initialize(const char* host, const char* port)
 #endif
 
   if (_network_api_id.endpoint == NULL) {
-    const char* error = ( (errno < 0) ?
-                          gai_strerror(errno) : strerror(errno) );
     LOG_TRACE(ERROR, "NET-API   - Failed to open connection endpoint, %s",
-              error);
+              ((errno < 0) ? gai_strerror(errno) : strerror(errno)));
     LOG_FUNC_RETURN (RETURNerror);
   }
 
diff --git a/openair3/NAS/COMMON/UTIL/nas_log.h b/openair3/NAS/COMMON/UTIL/nas_log.h
index 47664c52d09ec056cb3747b3e67b6c8279e1c0d1..c36e0795c7a141b1115d359773b376c7f86c5ec7 100644
--- a/openair3/NAS/COMMON/UTIL/nas_log.h
+++ b/openair3/NAS/COMMON/UTIL/nas_log.h
@@ -39,7 +39,7 @@ Description Usefull logging functions
 #define __NAS_LOG_H__
 
 #if defined(NAS_BUILT_IN_UE) && defined(NAS_UE)
-# include "UTIL/LOG/log.h"
+# include "common/utils/LOG/log.h"
 # undef LOG_TRACE
 #endif
 
diff --git a/openair3/NAS/UE/API/USER/user_api.c b/openair3/NAS/UE/API/USER/user_api.c
index 83839a90f30febe758c4d7b842a1bf0a8767cb7d..b3bd976b710c3d827cc4b4f773d28a55c99a27c3 100644
--- a/openair3/NAS/UE/API/USER/user_api.c
+++ b/openair3/NAS/UE/API/USER/user_api.c
@@ -134,10 +134,8 @@ int user_api_initialize(user_api_id_t *user_api_id, const char* host, const char
     user_api_id->endpoint = user_api_id->open(SOCKET_SERVER, host, port);
 
     if (user_api_id->endpoint == NULL) {
-      const char* error = ( (errno < 0) ?
-                            gai_strerror(errno) : strerror(errno) );
       LOG_TRACE(ERROR, "USR-API   - Failed to open connection endpoint, "
-                "%s", error);
+                "%s", ( (errno < 0) ?gai_strerror(errno) : strerror(errno) ));
       LOG_FUNC_RETURN (RETURNerror);
     }
 
diff --git a/openair3/NAS/UE/EMM/Attach.c b/openair3/NAS/UE/EMM/Attach.c
index 4029c8f70217054f85416ed605e4fe97eb6ac24c..5e7a1f578b76c68803089cb52fd1cda893b7b6fa 100644
--- a/openair3/NAS/UE/EMM/Attach.c
+++ b/openair3/NAS/UE/EMM/Attach.c
@@ -79,10 +79,12 @@ Description Defines the attach related EMM procedure executed by the
 /****************************************************************************/
 
 /* String representation of the EPS attach type */
-static const char *_emm_attach_type_str[] = {
+char *emm_attach_type2str(int type) {
+static char *_emm_attach_type_str[] = {
   "EPS", "IMSI", "EMERGENCY", "RESERVED"
 };
-
+return _emm_attach_type_str[type];
+}
 /*
  * --------------------------------------------------------------------------
  *      Internal data handled by the attach procedure in the UE
@@ -140,7 +142,7 @@ int emm_proc_attach(nas_user_t *user, emm_proc_attach_type_t type)
   emm_timers_t *emm_timers = user->emm_data->emm_timers;
 
   LOG_TRACE(INFO, "EMM-PROC  - Initiate EPS attach type = %s (%d)",
-            _emm_attach_type_str[type], type);
+            emm_attach_type2str(type), type);
 
   /* Update the emergency bearer service indicator */
   if (type == EMM_ATTACH_TYPE_EMERGENCY) {
diff --git a/openair3/NAS/UE/EMM/Detach.c b/openair3/NAS/UE/EMM/Detach.c
index c18dc0ad28a7d1ef3b472692d032e5bee53502b0..719e18dd05ba86ba6815c48647357ef8c54c4ef5 100644
--- a/openair3/NAS/UE/EMM/Detach.c
+++ b/openair3/NAS/UE/EMM/Detach.c
@@ -66,11 +66,13 @@ Description Defines the detach related EMM procedure executed by the
 /****************************************************************************/
 
 /* String representation of the detach type */
-static const char *_emm_detach_type_str[] = {
+char *emm_detach_type2str(int type) {
+static char *_emm_detach_type_str[] = {
   "EPS", "IMSI", "EPS/IMSI",
   "RE-ATTACH REQUIRED", "RE-ATTACH NOT REQUIRED", "RESERVED"
 };
-
+  return _emm_detach_type_str[type];
+}
 /*
  * --------------------------------------------------------------------------
  *      Internal data handled by the detach procedure in the UE
@@ -123,7 +125,7 @@ int emm_proc_detach(nas_user_t *user, emm_proc_detach_type_t type, int switch_of
   int rc;
 
   LOG_TRACE(INFO, "EMM-PROC  - Initiate EPS detach type = %s (%d)",
-            _emm_detach_type_str[type], type);
+            emm_detach_type2str(type), type);
 
   /* Initialize the detach procedure internal data */
   emm_detach_data->count = 0;
diff --git a/openair3/NAS/UE/EMM/Identification.c b/openair3/NAS/UE/EMM/Identification.c
index 0d2d6644a130d7bce22767be29b68ec470718560..b5807973a25624f9808c10c12c1ca3e19a4fd306 100644
--- a/openair3/NAS/UE/EMM/Identification.c
+++ b/openair3/NAS/UE/EMM/Identification.c
@@ -62,11 +62,13 @@ Description Defines the identification EMM procedure executed by the
 /*******************  L O C A L    D E F I N I T I O N S  *******************/
 /****************************************************************************/
 
+char *emm_identity_type2str(int id_type) {
 /* String representation of the requested identity type */
-static const char *_emm_identity_type_str[] = {
+static char *_emm_identity_type_str[] = {
   "NOT AVAILABLE", "IMSI", "IMEI", "IMEISV", "TMSI"
 };
-
+  return _emm_identity_type_str[id_type];
+}
 /*
  * --------------------------------------------------------------------------
  *  Internal data handled by the identification procedure in the UE
@@ -111,7 +113,7 @@ int emm_proc_identification_request(nas_user_t *user, emm_proc_identity_type_t t
   emm_sap_t emm_sap;
 
   LOG_TRACE(INFO, "EMM-PROC  - Identification requested type = %s (%d)",
-            _emm_identity_type_str[type], type);
+            emm_identity_type2str(type), type);
 
   /* Setup EMM procedure handler to be executed upon receiving
    * lower layer notification */
diff --git a/openair3/NAS/UE/EMM/SAP/emm_as.c b/openair3/NAS/UE/EMM/SAP/emm_as.c
index fbb54d548be367ceb8743e885fc3753c7054cb24..c73fed2fed911e07b9d3613a2ad010733b778e3d 100644
--- a/openair3/NAS/UE/EMM/SAP/emm_as.c
+++ b/openair3/NAS/UE/EMM/SAP/emm_as.c
@@ -74,7 +74,9 @@ Description Defines the EMMAS Service Access Point that provides
 /*
  * String representation of EMMAS-SAP primitives
  */
-static const char *_emm_as_primitive_str[] = {
+
+char *emmas_to_str(int emmas) {
+static char *_emm_as_primitive_str[] = {
   "EMMAS_SECURITY_REQ",
   "EMMAS_SECURITY_IND",
   "EMMAS_SECURITY_RES",
@@ -92,7 +94,8 @@ static const char *_emm_as_primitive_str[] = {
   "EMMAS_CELL_INFO_RES",
   "EMMAS_CELL_INFO_IND",
 };
-
+  return _emm_as_primitive_str[emmas];
+}
 /*
  * Functions executed to process EMM procedures upon receiving
  * data from the network
@@ -195,7 +198,7 @@ int emm_as_send(nas_user_t *user, const emm_as_t *msg)
   emm_as_primitive_t primitive = msg->primitive;
 
   LOG_TRACE(INFO, "EMMAS-SAP - Received primitive %s (%d)",
-            _emm_as_primitive_str[primitive - _EMMAS_START - 1], primitive);
+            emmas_to_str(primitive - _EMMAS_START - 1), primitive);
 
   switch (primitive) {
   case _EMMAS_DATA_IND:
@@ -234,7 +237,7 @@ int emm_as_send(nas_user_t *user, const emm_as_t *msg)
     if (rc != RETURNok) {
       LOG_TRACE(ERROR, "EMMAS-SAP - "
                 "Failed to process primitive %s (%d)",
-                _emm_as_primitive_str[primitive - _EMMAS_START - 1],
+                emmas_to_str(primitive - _EMMAS_START - 1),
                 primitive);
       LOG_FUNC_RETURN (RETURNerror);
     }
@@ -266,7 +269,7 @@ int emm_as_send(nas_user_t *user, const emm_as_t *msg)
 
   if (rc != RETURNok) {
     LOG_TRACE(ERROR, "EMMAS-SAP - Failed to process primitive %s (%d)",
-              _emm_as_primitive_str[primitive - _EMMAS_START - 1],
+              emmas_to_str(primitive - _EMMAS_START - 1),
               primitive);
   }
 
@@ -984,7 +987,7 @@ static int _emm_as_send(const nas_user_t *user, const emm_as_t *msg)
     LOG_TRACE(DEBUG, "EMMAS-SAP - "
               "Sending msg with id 0x%x, primitive %s (%d) to RRC layer for transmission",
               as_msg.msgID,
-              _emm_as_primitive_str[msg->primitive - _EMMAS_START - 1],
+              emmas_to_str(msg->primitive - _EMMAS_START - 1),
               msg->primitive);
 
     switch (as_msg.msgID) {
diff --git a/openair3/NAS/UE/EMM/SAP/emm_esm.c b/openair3/NAS/UE/EMM/SAP/emm_esm.c
index 5d45da8591bfa32aa0ca9ecf4454d8beabc3646c..4b08d77c1fcc338f86dd6fe0caa4134474ef3f26 100644
--- a/openair3/NAS/UE/EMM/SAP/emm_esm.c
+++ b/openair3/NAS/UE/EMM/SAP/emm_esm.c
@@ -58,6 +58,7 @@ Description Defines the EMMESM Service Access Point that provides
 /*
  * String representation of EMMESM-SAP primitives
  */
+const char *emm_esm_primitive2str(int esmprim) {
 static const char *_emm_esm_primitive_str[] = {
   "EMMESM_ESTABLISH_REQ",
   "EMMESM_ESTABLISH_CNF",
@@ -66,6 +67,8 @@ static const char *_emm_esm_primitive_str[] = {
   "EMMESM_UNITDATA_REQ",
   "EMMESM_UNITDATA_IND",
 };
+  return _emm_esm_primitive_str[esmprim];
+}
 
 /****************************************************************************/
 /******************  E X P O R T E D    F U N C T I O N S  ******************/
@@ -116,7 +119,7 @@ int emm_esm_send(nas_user_t *user, const emm_esm_t *msg)
   emm_esm_primitive_t primitive = msg->primitive;
 
   LOG_TRACE(INFO, "EMMESM-SAP - Received primitive %s (%d)",
-            _emm_esm_primitive_str[primitive - _EMMESM_START - 1], primitive);
+            emm_esm_primitive2str(primitive - _EMMESM_START - 1), primitive);
 
   switch (primitive) {
 
@@ -159,7 +162,7 @@ int emm_esm_send(nas_user_t *user, const emm_esm_t *msg)
 
   if (rc != RETURNok) {
     LOG_TRACE(WARNING, "EMMESM-SAP - Failed to process primitive %s (%d)",
-              _emm_esm_primitive_str[primitive - _EMMESM_START - 1],
+              emm_esm_primitive2str(primitive - _EMMESM_START - 1),
               primitive);
   }
 
diff --git a/openair3/NAS/UE/EMM/SAP/emm_fsm.c b/openair3/NAS/UE/EMM/SAP/emm_fsm.c
index a2ede7ae17cd691a7db76a124b98471e9db1c651..d614b9ec7e42a5008c275251c1b6d229ab2b021c 100644
--- a/openair3/NAS/UE/EMM/SAP/emm_fsm.c
+++ b/openair3/NAS/UE/EMM/SAP/emm_fsm.c
@@ -64,6 +64,7 @@ Description Defines the EPS Mobility Management procedures executed at
  */
 
 /* String representation of EMM events */
+const char *emm_fsm_event2str(int evt) {
 static const char *_emm_fsm_event_str[] = {
   "S1_ENABLED",
   "S1_DISABLED",
@@ -93,7 +94,10 @@ static const char *_emm_fsm_event_str[] = {
   "LOWERLAYER_FAILURE",
   "LOWERLAYER_RELEASE",
 };
+  return  _emm_fsm_event_str[evt];
+}
 
+const char *emm_fsm_status2str(int status) {
 /* String representation of EMM status */
 static const char *_emm_fsm_status_str[EMM_STATE_MAX] = {
   "INVALID",
@@ -120,7 +124,8 @@ static const char *_emm_fsm_status_str[EMM_STATE_MAX] = {
   "TRACKING-AREA-UPDATING-INITIATED",
   "SERVICE-REQUEST-INITIATED",
 };
-
+  return _emm_fsm_status_str[status];
+}
 /*
  * -----------------------------------------------------------------------------
  *      EPS Mobility Management state machine handlers
@@ -229,8 +234,8 @@ int emm_fsm_set_status(nas_user_t *user,
 
   if ( status < EMM_STATE_MAX ) {
     LOG_TRACE(INFO, "EMM-FSM   - Status changed: %s ===> %s",
-              _emm_fsm_status_str[user->emm_fsm_status],
-              _emm_fsm_status_str[status]);
+              emm_fsm_status2str(user->emm_fsm_status),
+              emm_fsm_status2str(status));
 
     if (status != user->emm_fsm_status) {
       user->emm_fsm_status = status;
@@ -280,17 +285,15 @@ int emm_fsm_process(nas_user_t *user, const emm_reg_t *evt)
 {
   int rc;
   emm_fsm_state_t status;
-  emm_reg_primitive_t primitive;
 
   LOG_FUNC_IN;
 
-  primitive = evt->primitive;
 
   status = user->emm_fsm_status;
 
   LOG_TRACE(INFO, "EMM-FSM   - Received event %s (%d) in state %s",
-            _emm_fsm_event_str[primitive - _EMMREG_START - 1], primitive,
-            _emm_fsm_status_str[status]);
+            emm_fsm_event2str(evt->primitive - _EMMREG_START - 1), evt->primitive,
+            emm_fsm_status2str(status));
 
 
   /* Execute the EMM state machine */
diff --git a/openair3/NAS/UE/ESM/PdnConnectivity.c b/openair3/NAS/UE/ESM/PdnConnectivity.c
index 2efed604f02afb05eb3b9427c0d02b4cb7a6c9bb..f0f4efa769f5180dc5b73f5c31ea04ada5e71a49 100644
--- a/openair3/NAS/UE/ESM/PdnConnectivity.c
+++ b/openair3/NAS/UE/ESM/PdnConnectivity.c
@@ -357,7 +357,8 @@ int esm_proc_pdn_connectivity_accept(nas_user_t *user, int pti, esm_proc_pdn_typ
   int     rc;
   int     pid = RETURNerror;
   char    apn_first_char[4];
-  char    str[128];
+
+  LOG_VAR(char,    str[128]);
 
   if (isprint(apn->value[0])) {
     apn_first_char[0] = '\0';
diff --git a/openair3/NAS/UE/ESM/SAP/esm_sap.c b/openair3/NAS/UE/ESM/SAP/esm_sap.c
index 42deac629eed73ca6e32d637abbbdd0027a41d98..e039f66a3a882c1b6304456e9698ae03f82d600e 100644
--- a/openair3/NAS/UE/ESM/SAP/esm_sap.c
+++ b/openair3/NAS/UE/ESM/SAP/esm_sap.c
@@ -72,6 +72,8 @@ static int _esm_sap_send(nas_user_t *user, int msg_type, int is_standalone, int
 /*
  * String representation of ESM-SAP primitives
  */
+
+const char *esm_sap_primitive2str(int esmsapp) {
 static const char *_esm_sap_primitive_str[] = {
   "ESM_DEFAULT_EPS_BEARER_CONTEXT_ACTIVATE_REQ",
   "ESM_DEFAULT_EPS_BEARER_CONTEXT_ACTIVATE_CNF",
@@ -94,7 +96,8 @@ static const char *_esm_sap_primitive_str[] = {
   "ESM_BEARER_RESOURCE_MODIFY_REJ",
   "ESM_UNITDATA_IND",
 };
-
+  return _esm_sap_primitive_str[esmsapp];
+}
 
 /****************************************************************************/
 /******************  E X P O R T E D    F U N C T I O N S  ******************/
@@ -152,7 +155,7 @@ int esm_sap_send(nas_user_t *user, esm_sap_t *msg)
   assert( (primitive > ESM_START) && (primitive < ESM_END));
 
   LOG_TRACE(INFO, "ESM-SAP   - Received primitive %s (%d)",
-            _esm_sap_primitive_str[primitive - ESM_START - 1], primitive);
+            esm_sap_primitive2str(primitive - ESM_START - 1), primitive);
 
   switch (primitive) {
   case ESM_PDN_CONNECTIVITY_REQ:
diff --git a/openair3/NAS/UE/ESM/esm_ebr.c b/openair3/NAS/UE/ESM/esm_ebr.c
index a1d78bc62c0d8a47fc352c52c46357d3e91e7100..3a62812eca7128f6d06eba008b988b3f97c6b50b 100644
--- a/openair3/NAS/UE/ESM/esm_ebr.c
+++ b/openair3/NAS/UE/ESM/esm_ebr.c
@@ -56,10 +56,13 @@ Description Defines functions used to handle state of EPS bearer contexts
 /****************************************************************************/
 
 /* String representation of EPS bearer context status */
+const char *esm_ebr_state2str(int esmebrstate) {
 static const char *_esm_ebr_state_str[ESM_EBR_STATE_MAX] = {
   "BEARER CONTEXT INACTIVE",
   "BEARER CONTEXT ACTIVE",
 };
+  return _esm_ebr_state_str[esmebrstate];
+}
 
 /*
  * ----------------------
@@ -318,7 +321,7 @@ int esm_ebr_set_status(user_api_id_t *user_api_id, esm_ebr_data_t *esm_ebr_data,
   if (status < ESM_EBR_STATE_MAX) {
     LOG_TRACE(INFO, "ESM-FSM   - Status of EPS bearer context %d changed:"
               " %s ===> %s", ebi,
-              _esm_ebr_state_str[old_status], _esm_ebr_state_str[status]);
+              esm_ebr_state2str(old_status), esm_ebr_state2str(status));
 
     if (status != old_status) {
       ebr_ctx->status = status;
diff --git a/openair3/NAS/UE/ESM/esm_pt.c b/openair3/NAS/UE/ESM/esm_pt.c
index c372ad25f4554db093ccfc16b8f2d8938d6bb251..f253291fd9fdcd822f2800ee0cda62d62a936a7c 100644
--- a/openair3/NAS/UE/ESM/esm_pt.c
+++ b/openair3/NAS/UE/ESM/esm_pt.c
@@ -56,10 +56,13 @@ Description Defines functions used to handle ESM procedure transactions.
 /****************************************************************************/
 
 /* String representation of ESM procedure transaction status */
+const char *esm_pt_state2str( int esmptstate){
 static const char *_esm_pt_state_str[ESM_PT_STATE_MAX] = {
   "PROCEDURE TRANSACTION INACTIVE",
   "PROCEDURE TRANSACTION PENDING"
 };
+  return _esm_pt_state_str[esmptstate];
+}
 
 /* Return the index of the next available entry in the list of procedure
  * transaction data */
@@ -380,7 +383,7 @@ int esm_pt_set_status(esm_pt_data_t *esm_pt_data, int pti, esm_pt_state status)
   if (status < ESM_PT_STATE_MAX) {
     LOG_TRACE(INFO, "ESM-FSM   - Status of procedure transaction %d changed:"
               " %s ===> %s", pti,
-              _esm_pt_state_str[old_status], _esm_pt_state_str[status]);
+              esm_pt_state2str(old_status), esm_pt_state2str(status));
 
     if (status != old_status) {
       ctx->status = status;
diff --git a/openair3/NAS/UE/nas_ue_task.c b/openair3/NAS/UE/nas_ue_task.c
index e41156d113113dba84c1e5012e8ce045c7858e79..529ac5e602b79a342932af73d3ec45a12cae06ab 100644
--- a/openair3/NAS/UE/nas_ue_task.c
+++ b/openair3/NAS/UE/nas_ue_task.c
@@ -24,7 +24,7 @@
 # include "assertions.h"
 # include "intertask_interface.h"
 # include "nas_ue_task.h"
-# include "UTIL/LOG/log.h"
+# include "common/utils/LOG/log.h"
 
 # include "user_defs.h"
 # include "user_api.h"
@@ -89,7 +89,6 @@ void *nas_ue_task(void *args_p)
   int                   nb_events;
   struct epoll_event   *events;
   MessageDef           *msg_p;
-  const char           *msg_name;
   instance_t            instance;
   unsigned int          Mod_id;
   int                   result;
@@ -147,19 +146,18 @@ void *nas_ue_task(void *args_p)
     itti_receive_msg (TASK_NAS_UE, &msg_p);
 
     if (msg_p != NULL) {
-      msg_name = ITTI_MSG_NAME (msg_p);
       instance = ITTI_MSG_INSTANCE (msg_p);
       Mod_id = instance - NB_eNB_INST;
       if (instance == INSTANCE_DEFAULT) {
         printf("%s:%d: FATAL: instance is INSTANCE_DEFAULT, should not happen.\n",
                __FILE__, __LINE__);
-        abort();
+        exit_fun("exit... \n");
       }
       nas_user_t *user = &users->item[Mod_id];
 
       switch (ITTI_MSG_ID(msg_p)) {
       case INITIALIZE_MESSAGE:
-        LOG_I(NAS, "[UE %d] Received %s\n", Mod_id, msg_name);
+        LOG_I(NAS, "[UE %d] Received %s\n", Mod_id,  ITTI_MSG_NAME (msg_p));
 #if (NAS_UE_AUTOSTART != 0)
         {
           /* Send an activate modem command to NAS like UserProcess should do it */
@@ -175,11 +173,11 @@ void *nas_ue_task(void *args_p)
         break;
 
       case MESSAGE_TEST:
-        LOG_I(NAS, "[UE %d] Received %s\n", Mod_id, msg_name);
+        LOG_I(NAS, "[UE %d] Received %s\n", Mod_id,  ITTI_MSG_NAME (msg_p));
         break;
 
       case NAS_CELL_SELECTION_CNF:
-        LOG_I(NAS, "[UE %d] Received %s: errCode %u, cellID %u, tac %u\n", Mod_id, msg_name,
+        LOG_I(NAS, "[UE %d] Received %s: errCode %u, cellID %u, tac %u\n", Mod_id,  ITTI_MSG_NAME (msg_p),
               NAS_CELL_SELECTION_CNF (msg_p).errCode, NAS_CELL_SELECTION_CNF (msg_p).cellID, NAS_CELL_SELECTION_CNF (msg_p).tac);
 
         {
@@ -192,21 +190,21 @@ void *nas_ue_task(void *args_p)
         break;
 
       case NAS_CELL_SELECTION_IND:
-        LOG_I(NAS, "[UE %d] Received %s: cellID %u, tac %u\n", Mod_id, msg_name,
+        LOG_I(NAS, "[UE %d] Received %s: cellID %u, tac %u\n", Mod_id,  ITTI_MSG_NAME (msg_p),
               NAS_CELL_SELECTION_IND (msg_p).cellID, NAS_CELL_SELECTION_IND (msg_p).tac);
 
         /* TODO not processed by NAS currently */
         break;
 
       case NAS_PAGING_IND:
-        LOG_I(NAS, "[UE %d] Received %s: cause %u\n", Mod_id, msg_name,
+        LOG_I(NAS, "[UE %d] Received %s: cause %u\n", Mod_id,  ITTI_MSG_NAME (msg_p),
               NAS_PAGING_IND (msg_p).cause);
 
         /* TODO not processed by NAS currently */
         break;
 
       case NAS_CONN_ESTABLI_CNF:
-        LOG_I(NAS, "[UE %d] Received %s: errCode %u, length %u\n", Mod_id, msg_name,
+        LOG_I(NAS, "[UE %d] Received %s: errCode %u, length %u\n", Mod_id,  ITTI_MSG_NAME (msg_p),
               NAS_CONN_ESTABLI_CNF (msg_p).errCode, NAS_CONN_ESTABLI_CNF (msg_p).nasMsg.length);
 
         if ((NAS_CONN_ESTABLI_CNF (msg_p).errCode == AS_SUCCESS)
@@ -221,14 +219,14 @@ void *nas_ue_task(void *args_p)
         break;
 
       case NAS_CONN_RELEASE_IND:
-        LOG_I(NAS, "[UE %d] Received %s: cause %u\n", Mod_id, msg_name,
+        LOG_I(NAS, "[UE %d] Received %s: cause %u\n", Mod_id,  ITTI_MSG_NAME (msg_p),
               NAS_CONN_RELEASE_IND (msg_p).cause);
 
         nas_proc_release_ind (user, NAS_CONN_RELEASE_IND (msg_p).cause);
         break;
 
       case NAS_UPLINK_DATA_CNF:
-        LOG_I(NAS, "[UE %d] Received %s: UEid %u, errCode %u\n", Mod_id, msg_name,
+        LOG_I(NAS, "[UE %d] Received %s: UEid %u, errCode %u\n", Mod_id,  ITTI_MSG_NAME (msg_p),
               NAS_UPLINK_DATA_CNF (msg_p).UEid, NAS_UPLINK_DATA_CNF (msg_p).errCode);
 
         if (NAS_UPLINK_DATA_CNF (msg_p).errCode == AS_SUCCESS) {
@@ -240,7 +238,7 @@ void *nas_ue_task(void *args_p)
         break;
 
       case NAS_DOWNLINK_DATA_IND:
-        LOG_I(NAS, "[UE %d] Received %s: UEid %u, length %u\n", Mod_id, msg_name,
+        LOG_I(NAS, "[UE %d] Received %s: UEid %u, length %u\n", Mod_id,  ITTI_MSG_NAME (msg_p),
               NAS_DOWNLINK_DATA_IND (msg_p).UEid, NAS_DOWNLINK_DATA_IND (msg_p).nasMsg.length);
 
         nas_proc_dl_transfer_ind (user, NAS_DOWNLINK_DATA_IND(msg_p).nasMsg.data, NAS_DOWNLINK_DATA_IND(msg_p).nasMsg.length);
@@ -254,7 +252,7 @@ void *nas_ue_task(void *args_p)
         break;
 
       default:
-        LOG_E(NAS, "[UE %d] Received unexpected message %s\n", Mod_id, msg_name);
+        LOG_E(NAS, "[UE %d] Received unexpected message %s\n", Mod_id,  ITTI_MSG_NAME (msg_p));
         break;
       }
 
diff --git a/openair3/S1AP/s1ap_common.h b/openair3/S1AP/s1ap_common.h
index f1a00d3c34ce2421529a55c25837cfa00db558da..8a2faa311f6e1e015d8c56654363f7e948a32811 100644
--- a/openair3/S1AP/s1ap_common.h
+++ b/openair3/S1AP/s1ap_common.h
@@ -71,7 +71,7 @@ extern int asn_debug;
 extern int asn1_xer_print;
 
 #if defined(ENB_MODE)
-# include "UTIL/LOG/log.h"
+# include "common/utils/LOG/log.h"
 # include "s1ap_eNB_default_values.h"
 # define S1AP_ERROR(x, args...) LOG_E(S1AP, x, ##args)
 # define S1AP_WARN(x, args...)  LOG_W(S1AP, x, ##args)
diff --git a/openair3/S1AP/s1ap_eNB_handlers.c b/openair3/S1AP/s1ap_eNB_handlers.c
index 1d8bdb11e46ed7a15a0e1dd7e11bc021c216943b..9b150fe75163f72223fcf627d7f7b0a073f3fb5e 100644
--- a/openair3/S1AP/s1ap_eNB_handlers.c
+++ b/openair3/S1AP/s1ap_eNB_handlers.c
@@ -147,14 +147,15 @@ s1ap_message_decoded_callback messages_callback[][3] = {
   { 0, 0, 0 }, /* UplinkNonUEAssociatedLPPaTransport */
 #endif /* #if (S1AP_VERSION >= MAKE_VERSION(9, 0, 0)) */
 };
-
-static const char *s1ap_direction2String[] = {
+char *s1ap_direction2String(int s1ap_dir) {
+static char *s1ap_direction_String[] = {
   "", /* Nothing */
   "Originating message", /* originating message */
   "Successfull outcome", /* successfull outcome */
   "UnSuccessfull outcome", /* successfull outcome */
 };
-
+return(s1ap_direction_String[s1ap_dir]);
+}
 void s1ap_handle_s1_setup_message(s1ap_eNB_mme_data_t *mme_desc_p, int sctp_shutdown)
 {
   if (sctp_shutdown) {
@@ -230,7 +231,7 @@ int s1ap_eNB_handle_message(uint32_t assoc_id, int32_t stream,
   if (messages_callback[pdu.choice.initiatingMessage.procedureCode][pdu.present - 1] == NULL) {
     S1AP_ERROR("[SCTP %d] No handler for procedureCode %ld in %s\n",
                assoc_id, pdu.choice.initiatingMessage.procedureCode,
-               s1ap_direction2String[pdu.present - 1]);
+               s1ap_direction2String(pdu.present - 1));
     ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1AP_S1AP_PDU, &pdu);
     return -1;
   }
@@ -852,7 +853,7 @@ int s1ap_eNB_handle_ue_context_release_command(uint32_t   assoc_id,
         MSC_S1AP_MME,
         NULL,0,
         "0 UEContextRelease/%s eNB_ue_s1ap_id "S1AP_UE_ID_FMT" mme_ue_s1ap_id "S1AP_UE_ID_FMT" len %u",
-        s1ap_direction2String[pdu->present - 1],
+        s1ap_direction2String(pdu->present - 1),
         enb_ue_s1ap_id,
         mme_ue_s1ap_id);
 
diff --git a/openair3/SCTP/sctp_common.h b/openair3/SCTP/sctp_common.h
index f88c07730ce4ab614097d795f959b36673bbb88c..265a13bec0eaa9726eb1f6a5c91b610d7a53207e 100644
--- a/openair3/SCTP/sctp_common.h
+++ b/openair3/SCTP/sctp_common.h
@@ -35,7 +35,7 @@
 #include <sys/socket.h>
 
 #if defined(ENB_MODE)
-# include "UTIL/LOG/log.h"
+# include "common/utils/LOG/log.h"
 # define SCTP_ERROR(x, args...) LOG_E(SCTP, x, ##args)
 # define SCTP_WARN(x, args...)  LOG_W(SCTP, x, ##args)
 # define SCTP_DEBUG(x, args...) LOG_I(SCTP, x, ##args)
diff --git a/openair3/UDP/udp_eNB_task.c b/openair3/UDP/udp_eNB_task.c
index 2943ca408835f3a5cc3988efe128728944a8a48c..f61f614a143464d04b255d2980d7cefc701ebfb7 100644
--- a/openair3/UDP/udp_eNB_task.c
+++ b/openair3/UDP/udp_eNB_task.c
@@ -42,8 +42,8 @@
 #include "assertions.h"
 #include "udp_eNB_task.h"
 
-#include "UTIL/LOG/log.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/log.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "msc.h"
 
 
@@ -431,7 +431,7 @@ on_error:
     VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UDP_ENB_TASK, VCD_FUNCTION_OUT);
   }
 
-  LOG_N(UDP_, "Task UDP eNB exiting\n");
+  LOG_I(UDP_, "Task UDP eNB exiting\n");
   return NULL;
 }
 
diff --git a/openair3/UTILS/mme_default_values.h b/openair3/UTILS/mme_default_values.h
index 6965c7c57c7f71fc9263aea610ed1163da478a15..f02e94e2c58ba5d715feb8bbf70cb8e87bb545fb 100644
--- a/openair3/UTILS/mme_default_values.h
+++ b/openair3/UTILS/mme_default_values.h
@@ -51,11 +51,12 @@
  * SCTP Constants
  ******************************************************************************/
 
+/*
 #define SCTP_RECV_BUFFER_SIZE (1 << 16)
 #define SCTP_OUT_STREAMS      (32)
 #define SCTP_IN_STREAMS       (32)
 #define SCTP_MAX_ATTEMPTS     (5)
-
+*/
 /*******************************************************************************
  * MME global definitions
  ******************************************************************************/
diff --git a/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c b/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c
index ad5bbda3fe77e37982564880d265cd858d307a83..8cf14b4ca8753ddfcdb886e505fd6415a9ae936e 100644
--- a/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c
+++ b/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c
@@ -41,7 +41,7 @@
 #include <netinet/ether.h>
 #include <unistd.h>
 #include <errno.h>
-#include "vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
 #include "common_lib.h"
 #include "ethernet_lib.h"
diff --git a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
index d704b9604ca75d05aa97d92c23a48e0e5724b9fa..e2ecaed04453194c40afe3604d63a3b88385ac9f 100644
--- a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
+++ b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
@@ -40,9 +40,11 @@
 #include <fstream>
 #include <cmath>
 #include <time.h>
-#include "UTIL/LOG/log_extern.h"
+#include "common/utils/LOG/log.h"
 #include "common_lib.h"
 #include "assertions.h"
+#include <sys/sysinfo.h>
+#include <sys/resource.h>
 
 #ifdef __SSE4_1__
 #  include <smmintrin.h>
@@ -274,6 +276,8 @@ static int sync_to_gps(openair0_device *device)
 #include "usrp_lib.h"
 static FILE    *pFile = NULL;
 int             mmapfd = 0;
+int             iqfd = 0;
+int             use_mmap = 1; // default is to use mmap
 struct stat     sb;
 iqrec_t        *ms_sample = NULL;                      // memory for all subframes
 unsigned int    nb_samples = 0;
@@ -406,13 +410,24 @@ static void trx_usrp_end(openair0_device *device) {
       }
     }
     if (u_sf_mode == 2) { // replay
-      if (ms_sample != MAP_FAILED) {
-	munmap(ms_sample, sb.st_size);
-	ms_sample = NULL;
-      }
-      if (mmapfd != 0) {
-	close(mmapfd);
-	mmapfd = 0;
+      if (use_mmap) {
+	if (ms_sample != MAP_FAILED) {
+	  munmap(ms_sample, sb.st_size);
+	  ms_sample = NULL;
+	}
+	if (mmapfd != 0) {
+	  close(mmapfd);
+	  mmapfd = 0;
+	}
+      } else {
+	if (ms_sample != NULL) {
+	  free(ms_sample);
+	  ms_sample = NULL;
+	}
+	if (iqfd != 0) {
+	  close(iqfd);
+	  iqfd = 0;
+	}
       }
     }
 #endif    
@@ -619,15 +634,50 @@ static int trx_usrp_read(openair0_device *device, openair0_timestamp *ptimestamp
 	return 0; // should make calling process exit
       }
       wrap_ts = wrap_count * (nb_samples * (((int)(device->openair0_cfg[0].sample_rate)) / 1000));
+      if (!use_mmap) {
+	if (lseek(iqfd, 0, SEEK_SET) == 0) {
+	  std::cerr << "Seeking at the beginning of IQ file" << std::endl;
+	} else {
+	  std::cerr << "Problem seeking at the beginning of IQ file" << std::endl;
+	}
+      }
     }
-    if (cur_samples < nb_samples) {
-      *ptimestamp = (ms_sample[0].ts + (cur_samples * (((int)(device->openair0_cfg[0].sample_rate)) / 1000))) + wrap_ts;
-      if (cur_samples == 0) {
-	std::cerr << "starting subframes file with wrap_count=" << wrap_count << " wrap_ts=" << wrap_ts
-		  << " ts=" << *ptimestamp << std::endl;
+    if (use_mmap) {
+      if (cur_samples < nb_samples) {
+	*ptimestamp = (ms_sample[0].ts + (cur_samples * (((int)(device->openair0_cfg[0].sample_rate)) / 1000))) + wrap_ts;
+	if (cur_samples == 0) {
+	  std::cerr << "starting subframes file with wrap_count=" << wrap_count << " wrap_ts=" << wrap_ts
+		    << " ts=" << *ptimestamp << std::endl;
+	}
+	memcpy(buff[0], &ms_sample[cur_samples].samples[0], nsamps*4);
+	cur_samples++;
+      }
+    } else {
+      // read sample from file
+      if (read(iqfd, ms_sample, sizeof(iqrec_t)) != sizeof(iqrec_t)) {
+	std::cerr << "pb reading iqfile at index " << sizeof(iqrec_t)*cur_samples << std::endl;
+	close(iqfd);
+	free(ms_sample);
+	ms_sample = NULL;
+	iqfd = 0;
+	exit(-1);
+      }
+
+      if (cur_samples < nb_samples) {
+	static int64_t ts0 = 0;
+	if ((cur_samples == 0) && (wrap_count == 0)) {
+	  ts0 = ms_sample->ts;
+	}
+	*ptimestamp = ts0 + (cur_samples * (((int)(device->openair0_cfg[0].sample_rate)) / 1000)) + wrap_ts;
+	if (cur_samples == 0) {
+	  std::cerr << "starting subframes file with wrap_count=" << wrap_count << " wrap_ts=" << wrap_ts
+		    << " ts=" << *ptimestamp << std::endl;
+	}
+	memcpy(buff[0], &ms_sample->samples[0], nsamps*4);
+	cur_samples++;
+	// Prepare for next read
+	off_t where = lseek(iqfd, cur_samples * sizeof(iqrec_t), SEEK_SET);
       }
-      memcpy(buff[0], &ms_sample[cur_samples].samples[0], nsamps*4);
-      cur_samples++;
     }
     struct timespec req;
     req.tv_sec = 0;
@@ -907,6 +957,7 @@ extern "C" {
     int device_init(openair0_device* device, openair0_config_t *openair0_cfg) {
 #if defined(USRP_REC_PLAY)
       paramdef_t usrp_recplay_params[7];
+      struct sysinfo systeminfo;
       // to check
       static int done = 0;
       if (done == 1) {
@@ -914,6 +965,11 @@ extern "C" {
       } // prevent from multiple init
       done = 1;
       // end to check
+      // Use mmap for IQ files for systems with less than 6GB total RAM
+      sysinfo(&systeminfo);
+      if (systeminfo.totalram < 6144000000) {
+	use_mmap = 0;
+      }
       memset(usrp_recplay_params, 0, 7*sizeof(paramdef_t));
       memset(&u_sf_filename[0], 0, 1024);
       if (trx_usrp_recplay_config_init(usrp_recplay_params) != 0) {
@@ -953,7 +1009,8 @@ extern "C" {
         device->trx_set_freq_func = trx_usrp_set_freq;
         device->trx_set_gains_func   = trx_usrp_set_gains;
         device->openair0_cfg = openair0_cfg;
-	std::cerr << "USRP device initialized in subframes replay mode for " << u_sf_loops << " loops." << std::endl;
+	std::cerr << "USRP device initialized in subframes replay mode for " << u_sf_loops << " loops. Use mmap="
+		  << use_mmap << std::endl;
       } else {
 #endif
         uhd::set_thread_priority_safe(1.0);
@@ -1282,33 +1339,60 @@ extern "C" {
 	memset(ms_sample, 0, u_sf_max * BELL_LABS_IQ_BYTES_PER_SF);
       }
       if (u_sf_mode == 2) {
-	// use mmap
-	mmapfd = open(u_sf_filename, O_RDONLY | O_LARGEFILE);
-	if (mmapfd != 0) {
-	  fstat(mmapfd, &sb);
-	  std::cerr << "Loading subframes using mmap() from " << u_sf_filename << " size=" << (uint64_t)sb.st_size << " bytes ..." << std::endl;
-	  ms_sample = (iqrec_t*) mmap(NULL, sb.st_size, PROT_WRITE, MAP_PRIVATE, mmapfd, 0);
-	  if (ms_sample != MAP_FAILED) {
-	    nb_samples = (sb.st_size / sizeof(iqrec_t));
-	    int aligned = (((unsigned long)ms_sample & 31) == 0)? 1:0;
-	    std::cerr<< "Loaded "<< nb_samples << " subframes." << std::endl;
-	    if (aligned == 0) {
-	      std::cerr<< "mmap address is not 32 bytes aligned, exiting." << std::endl;
+	if (use_mmap) {
+	  // use mmap
+	  mmapfd = open(u_sf_filename, O_RDONLY | O_LARGEFILE);
+	  if (mmapfd != 0) {
+	    fstat(mmapfd, &sb);
+	    std::cerr << "Loading subframes using mmap() from " << u_sf_filename << " size=" << (uint64_t)sb.st_size << " bytes ..." << std::endl;
+	    ms_sample = (iqrec_t*) mmap(NULL, sb.st_size, PROT_WRITE, MAP_PRIVATE, mmapfd, 0);
+	    if (ms_sample != MAP_FAILED) {
+	      nb_samples = (sb.st_size / sizeof(iqrec_t));
+	      int aligned = (((unsigned long)ms_sample & 31) == 0)? 1:0;
+	      std::cerr<< "Loaded "<< nb_samples << " subframes." << std::endl;
+	      if (aligned == 0) {
+		std::cerr<< "mmap address is not 32 bytes aligned, exiting." << std::endl;
+		close(mmapfd);
+		exit(-1);
+	      }
+	    } else {
+	      std::cerr << "Cannot mmap file, exiting." << std::endl;
 	      close(mmapfd);
 	      exit(-1);
 	    }
 	  } else {
-	    std::cerr << "Cannot mmap file, exiting." << std::endl;
-	    close(mmapfd);
+	    std::cerr << "Cannot open " << u_sf_filename << " , exiting." << std::endl;
 	    exit(-1);
 	  }
 	} else {
+	  iqfd = open(u_sf_filename, O_RDONLY | O_LARGEFILE);
+	  if (iqfd != 0) { 
+	    fstat(iqfd, &sb);
+	    nb_samples = (sb.st_size / sizeof(iqrec_t));
+	    std::cerr << "Loading " << nb_samples << " subframes from " << u_sf_filename
+		      << " size=" << (uint64_t)sb.st_size << " bytes ..." << std::endl;
+	    // allocate buffer for 1 sample at a time
+	    ms_sample = (iqrec_t*) malloc(sizeof(iqrec_t));
+	    if (ms_sample == NULL) {
+	      std::cerr<< "Memory allocation failed for individual subframe replay mode." << std::endl;
+	      close(iqfd);
+	      exit(-1);
+	    }
+	    memset(ms_sample, 0, sizeof(iqrec_t));
+	    // point at beginning of file
+	    if (lseek(iqfd, 0, SEEK_SET) == 0) {
+	      std::cerr << "Initial seek at beginning of the file" << std::endl;
+	    } else {
+	      std::cerr << "Problem initial seek at beginning of the file" << std::endl;
+	    }
+	  } else {
 	    std::cerr << "Cannot open " << u_sf_filename << " , exiting." << std::endl;
 	    exit(-1);
+	  }
 	}
       }
 #endif	
-        return 0;
+      return 0;
     }
 }
 /*@}*/
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf
index 3064a29c698ababb992a6fc3562efcd262a02276..9a2ca88257352d763a3d67cf9cfed17a4d7e8b5b 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf
@@ -33,7 +33,7 @@ eNBs =
       tdd_config_s            			      = 0;
       prefix_type             			      = "NORMAL";
       eutra_band              			      = 7;
-      downlink_frequency      			      = 2685000000L;
+      downlink_frequency      			      = 2680000000L;
       uplink_frequency_offset 			      = -120000000;
       Nid_cell					      = 0;
       N_RB_DL                 			      = 100;
diff --git a/targets/RT/USER/lte-enb.c b/targets/RT/USER/lte-enb.c
index d75aa9a57442442cc76a1fdabbf9c82088f857e2..c8c35cf2e88d57cf20f61182df6fc4b492405fdd 100644
--- a/targets/RT/USER/lte-enb.c
+++ b/targets/RT/USER/lte-enb.c
@@ -68,11 +68,11 @@
 #include "LAYER2/MAC/mac_proto.h"
 #include "RRC/LTE/rrc_extern.h"
 #include "PHY_INTERFACE/phy_interface.h"
-#include "UTIL/LOG/log_extern.h"
+#include "common/utils/LOG/log.h"
 #include "UTIL/OTG/otg_tx.h"
 #include "UTIL/OTG/otg_externs.h"
 #include "UTIL/MATH/oml.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "UTIL/OPT/opt.h"
 #include "enb_config.h"
 
@@ -225,7 +225,7 @@ static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_nam
   }
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ULSCH_SCHEDULER , 1 );
 
-  if(get_nprocs() >= 8){
+  if(!eNB->single_thread_flag && get_nprocs() >= 8){
     if(wait_on_condition(&proc[1].mutex_rxtx,&proc[1].cond_rxtx,&proc[1].pipe_ready,"wakeup_tx")<0) {
       LOG_E(PHY,"Frame %d, subframe %d: TX1 not ready\n",proc[1].frame_rx,proc[1].subframe_rx);
       return(-1);
@@ -247,7 +247,7 @@ static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_nam
   /* CONFLICT RESOLUTION: BEGIN */
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ULSCH_SCHEDULER , 0 );
   if(oai_exit) return(-1);
-  if(get_nprocs() <= 4){
+  if(eNB->single_thread_flag || get_nprocs() <= 4){
 #ifndef PHY_TX_THREAD
     phy_procedures_eNB_TX(eNB, proc, 1);
 #endif
@@ -560,7 +560,7 @@ int wakeup_rxtx(PHY_VARS_eNB *eNB,RU_t *ru) {
   eNB_proc_t *proc=&eNB->proc;
   RU_proc_t *ru_proc=&ru->proc;
 
-  eNB_rxtx_proc_t *proc_rxtx0=&proc->proc_rxtx[0];//*proc_rxtx=&proc->proc_rxtx[proc->frame_rx&1];
+  eNB_rxtx_proc_t *proc_rxtx0=&proc->proc_rxtx[0];
   //eNB_rxtx_proc_t *proc_rxtx1=&proc->proc_rxtx[1];
   
 
@@ -849,7 +849,6 @@ extern void init_td_thread(PHY_VARS_eNB *);
 extern void init_te_thread(PHY_VARS_eNB *);
 extern void kill_td_thread(PHY_VARS_eNB *);
 extern void kill_te_thread(PHY_VARS_eNB *);
-//////////////////////////////////////need to modified////////////////*****
 
 static void* process_stats_thread(void* param) {
 
@@ -858,20 +857,23 @@ static void* process_stats_thread(void* param) {
   wait_sync("process_stats_thread");
 
   while (!oai_exit) {
-     sleep(1);
-     if (opp_enabled == 1) {
-       if (eNB->td) print_meas(&eNB->ulsch_decoding_stats,"ulsch_decoding",NULL,NULL);
-       if (eNB->te)
-       {
-         print_meas(&eNB->dlsch_turbo_encoding_preperation_stats,"dlsch_coding_crc",NULL,NULL);
-         print_meas(&eNB->dlsch_turbo_encoding_segmentation_stats,"dlsch_segmentation",NULL,NULL);
-         print_meas(&eNB->dlsch_encoding_stats,"dlsch_encoding",NULL,NULL);
-         print_meas(&eNB->dlsch_turbo_encoding_signal_stats,"coding_signal",NULL,NULL);
-         print_meas(&eNB->dlsch_turbo_encoding_main_stats,"coding_main",NULL,NULL);
-         print_meas(&eNB->dlsch_turbo_encoding_waiting_stats,"coding_wait",NULL,NULL);
-         print_meas(&eNB->dlsch_turbo_encoding_wakeup_stats0,"coding_worker_0",NULL,NULL);
-         print_meas(&eNB->dlsch_turbo_encoding_wakeup_stats1,"coding_worker_1",NULL,NULL);
-	   }
+    sleep(1);
+      if (opp_enabled == 1) {
+        if (eNB->td) print_meas(&eNB->ulsch_decoding_stats,"ulsch_decoding",NULL,NULL);
+        if (eNB->te)
+        {
+          print_meas(&eNB->dlsch_turbo_encoding_preperation_stats,"dlsch_coding_crc",NULL,NULL);
+          print_meas(&eNB->dlsch_turbo_encoding_segmentation_stats,"dlsch_segmentation",NULL,NULL);
+          print_meas(&eNB->dlsch_encoding_stats,"dlsch_encoding",NULL,NULL);
+          print_meas(&eNB->dlsch_turbo_encoding_signal_stats,"coding_signal",NULL,NULL);
+          print_meas(&eNB->dlsch_turbo_encoding_main_stats,"coding_main",NULL,NULL);
+          print_meas(&eNB->dlsch_turbo_encoding_stats,"turbo_encoding",NULL,NULL);
+          print_meas(&eNB->dlsch_interleaving_stats,"turbo_interleaving",NULL,NULL);
+          print_meas(&eNB->dlsch_rate_matching_stats,"turbo_rate_matching",NULL,NULL);
+          print_meas(&eNB->dlsch_turbo_encoding_waiting_stats,"coding_wait",NULL,NULL);
+          print_meas(&eNB->dlsch_turbo_encoding_wakeup_stats0,"coding_worker_0",NULL,NULL);
+          print_meas(&eNB->dlsch_turbo_encoding_wakeup_stats1,"coding_worker_1",NULL,NULL);
+       }
        print_meas(&eNB->dlsch_modulation_stats,"dlsch_modulation",NULL,NULL);
      }
   }
@@ -952,30 +954,19 @@ void init_eNB_proc(int inst) {
     //    attr_td     = &proc->attr_td;
     //    attr_te     = &proc->attr_te; 
 #endif
-    //////////////////////////////////////need to modified////////////////*****
+
     if(get_nprocs() > 2 && codingw)
     {
       init_te_thread(eNB);
       init_td_thread(eNB);
     }
-    //////////////////////////////////////need to modified////////////////*****
-	//pthread_create( &proc_rxtx[0].pthread_rxtx, attr0, eNB_thread_rxtx, proc );
-
-	//pthread_create( &proc_rxtx[0].pthread_rxtx, attr0, eNB_thread_rxtx, proc_rxtx );
-
-
-    //Should we also include here the case where single_thread_flag = 1 ?
-	if(nfapi_mode!=2){
-		pthread_create( &proc_rxtx[0].pthread_rxtx, attr0, eNB_thread_rxtx, proc );
-		pthread_create( &proc_rxtx[1].pthread_rxtx, attr1, tx_thread, proc);
-	}
 
 
     LOG_I(PHY,"eNB->single_thread_flag:%d\n", eNB->single_thread_flag);
 
-    if (eNB->single_thread_flag==0) {
-      pthread_create( &proc_rxtx[0].pthread_rxtx, attr0, eNB_thread_rxtx, &proc_rxtx[0] );
-      pthread_create( &proc_rxtx[1].pthread_rxtx, attr1, eNB_thread_rxtx, &proc_rxtx[1] );
+    if (eNB->single_thread_flag==0 && nfapi_mode!=2) {
+      pthread_create( &proc_rxtx[0].pthread_rxtx, attr0, eNB_thread_rxtx, proc );
+      pthread_create( &proc_rxtx[1].pthread_rxtx, attr1, tx_thread, proc);
     }
     pthread_create( &proc->pthread_prach, attr_prach, eNB_thread_prach, eNB );
 #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c
index be8436035ad7dcf5bf1f8e30a0a7881a5de1a700..891dd9e272ff29cbe523236a3eff4b1cc206df4f 100644
--- a/targets/RT/USER/lte-ru.c
+++ b/targets/RT/USER/lte-ru.c
@@ -83,11 +83,11 @@
 #include "RRC/LTE/rrc_extern.h"
 #include "PHY_INTERFACE/phy_interface.h"
 
-#include "UTIL/LOG/log_extern.h"
+#include "common/utils/LOG/log.h"
 #include "UTIL/OTG/otg_tx.h"
 #include "UTIL/OTG/otg_externs.h"
 #include "UTIL/MATH/oml.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "UTIL/OPT/opt.h"
 #include "enb_config.h"
 //#include "PHY/TOOLS/time_meas.h"
@@ -120,6 +120,7 @@ extern volatile int                    oai_exit;
 extern int emulate_rf;
 extern int numerology;
 extern int fepw;
+extern int single_thread_flag;
 
 
 extern void  phy_init_RU(RU_t*);
@@ -714,6 +715,11 @@ static void* emulatedRF_thread(void* param) {
   wait_sync("emulatedRF_thread");
   while(!oai_exit){
     nanosleep(&req, (struct timespec *)NULL);
+    if(proc->emulate_rf_busy )
+    {
+      LOG_E(PHY,"rf being delayed in emulated RF\n");
+    }
+    proc->emulate_rf_busy = 1;
     pthread_mutex_lock(&proc->mutex_emulateRF);
     ++proc->instance_cnt_emulateRF;
     pthread_mutex_unlock(&proc->mutex_emulateRF);
@@ -1016,7 +1022,6 @@ void wakeup_slaves(RU_proc_t *proc) {
   wait.tv_nsec=5000000L;
   
   for (i=0;i<proc->num_slaves;i++) {
-    //printf("////////////////////calling for slave thrads\n");////////////////////////********
     RU_proc_t *slave_proc = proc->slave_proc[i];
     // wake up slave FH thread
     // lock the FH mutex and make sure the thread is ready
@@ -1252,13 +1257,14 @@ void wakeup_eNBs(RU_t *ru) {
   LOG_D(PHY,"wakeup_eNBs (num %d) for RU %d ru->eNB_top:%p\n",ru->num_eNB,ru->idx, ru->eNB_top);
 
 
-  if (ru->num_eNB==1 && ru->eNB_top!=0 && get_nprocs() <= 4) {
+  if (ru->num_eNB==1 && ru->eNB_top!=0 && (get_nprocs() <= 4 || single_thread_flag)) {
     // call eNB function directly
   
     char string[20];
     sprintf(string,"Incoming RU %d",ru->idx);
     LOG_D(PHY,"RU %d Call eNB_top\n",ru->idx);
     ru->eNB_top(eNB_list[0],ru->proc.frame_rx,ru->proc.subframe_rx,string,ru);
+    ru->proc.emulate_rf_busy = 0;
   }
   else {
 
@@ -1270,8 +1276,9 @@ void wakeup_eNBs(RU_t *ru) {
       eNB_list[i]->proc.ru_proc = &ru->proc;
       if (ru->wakeup_rxtx!=0 && ru->wakeup_rxtx(eNB_list[i],ru) < 0)
       {
-	LOG_E(PHY,"could not wakeup eNB rxtx process for subframe %d\n", ru->proc.subframe_rx);
+        LOG_E(PHY,"could not wakeup eNB rxtx process for subframe %d\n", ru->proc.subframe_rx);
       }
+      ru->proc.emulate_rf_busy = 0;
     }
   }
 }
@@ -1490,12 +1497,11 @@ int setup_RU_buffers(RU_t *ru) {
 static void* ru_stats_thread(void* param) {
 
   RU_t               *ru      = (RU_t*)param;
-
   wait_sync("ru_stats_thread");
 
   while (!oai_exit) {
      sleep(1);
-     if (opp_enabled == 1 && fepw) {
+     if (opp_enabled) {
        if (ru->feprx) print_meas(&ru->ofdm_demod_stats,"feprx",NULL,NULL);
        if (ru->feptx_ofdm) print_meas(&ru->ofdm_mod_stats,"feptx_ofdm",NULL,NULL);
        if (ru->fh_north_asynch_in) print_meas(&ru->rx_fhaul,"rx_fhaul",NULL,NULL);
@@ -1529,6 +1535,7 @@ static void* ru_thread_tx( void* param ) {
   //wait_sync("ru_thread_tx");
 
   wait_on_condition(&proc->mutex_FH1,&proc->cond_FH1,&proc->instance_cnt_FH1,"ru_thread_tx");
+  
 
   printf( "ru_thread_tx ready\n");
   while (!oai_exit) { 
@@ -1722,7 +1729,6 @@ static void* ru_thread( void* param ) {
           ru->do_prach,
           is_prach_subframe(fp, proc->frame_rx, proc->subframe_rx),
           proc->frame_rx,proc->subframe_rx);
- 
     if ((ru->do_prach>0) && (is_prach_subframe(fp, proc->frame_rx, proc->subframe_rx)==1)) {
       wakeup_prach_ru(ru);
     }
@@ -1775,7 +1781,7 @@ static void* ru_thread( void* param ) {
     if (ru->num_eNB>0) wakeup_eNBs(ru);
     
 #ifndef PHY_TX_THREAD
-    if(get_nprocs() <= 4 || ru->num_eNB==0){
+    if(get_nprocs() <= 4 || ru->num_eNB==0 || single_thread_flag){
       // do TX front-end processing if needed (precoding and/or IDFTs)
       if (ru->feptx_prec) ru->feptx_prec(ru);
       
@@ -1787,6 +1793,7 @@ static void* ru_thread( void* param ) {
         
         if (ru->fh_north_out) ru->fh_north_out(ru);
       }
+      proc->emulate_rf_busy = 0;
     }
 #else
     struct timespec time_req, time_rem;
@@ -1803,10 +1810,12 @@ static void* ru_thread( void* param ) {
 
   printf( "Exiting ru_thread \n");
 
-  if (ru->stop_rf != NULL) {
-    if (ru->stop_rf(ru) != 0)
-      LOG_E(HW,"Could not stop the RF device\n");
-    else LOG_I(PHY,"RU %d rf device stopped\n",ru->idx);
+  if (!emulate_rf){
+    if (ru->stop_rf != NULL) {
+      if (ru->stop_rf(ru) != 0)
+        LOG_E(HW,"Could not stop the RF device\n");
+      else LOG_I(PHY,"RU %d rf device stopped\n",ru->idx);
+    }
   }
 
   ru_thread_status = 0;
@@ -1872,14 +1881,13 @@ void *ru_thread_synch(void *arg) {
 
 	LOG_I(PHY,"Estimated sync_pos %d, peak_val %d => timing offset %d\n",sync_pos,peak_val,ru->rx_offset);
 	
-	/*
+LOG_M_BEGIN(RU)	
 	if ((peak_val > 300000) && (sync_pos > 0)) {
-	//      if (sync_pos++ > 3) {
-	LOG_M("ru_sync.m","sync",(void*)&sync_corr[0],fp->samples_per_tti*5,1,2);
-	LOG_M("ru_rx.m","rxs",(void*)ru->ru_time.rxdata[0][0],fp->samples_per_tti*10,1,1);
+	   LOG_M("ru_sync.m","sync",(void*)&sync_corr[0],fp->samples_per_tti*5,1,2);
+	   LOG_M("ru_rx.m","rxs",&(ru->eNB_list[0]->common_vars.rxdata[0][0]),fp->samples_per_tti*10,1,1);
 	exit(-1);
 	}
-	*/
+LOG_M_END
 	ru->in_synch=1;
       }
     }
@@ -2077,6 +2085,8 @@ extern void feptx_ofdm_2thread(RU_t *ru);
 extern void feptx_prec(RU_t *ru);
 extern void init_fep_thread(RU_t *ru,pthread_attr_t *attr);
 extern void init_feptx_thread(RU_t *ru,pthread_attr_t *attr);
+extern void kill_fep_thread(RU_t *ru);
+extern void kill_feptx_thread(RU_t *ru);
 
 void init_RU_proc(RU_t *ru) {
    
@@ -2184,7 +2194,7 @@ void init_RU_proc(RU_t *ru) {
   if(emulate_rf)
     pthread_create( &proc->pthread_emulateRF, attr_emulateRF, emulatedRF_thread, (void*)proc );
 
-  if (get_nprocs() > 4)
+  if (!single_thread_flag && get_nprocs() > 4)
     pthread_create( &proc->pthread_FH1, attr_FH1, ru_thread_tx, (void*)ru );
 
   if (ru->function == NGFI_RRU_IF4p5) {
@@ -2212,8 +2222,8 @@ void init_RU_proc(RU_t *ru) {
   }
 
   if (get_nprocs()> 2 && fepw) { 
-    if (ru->feprx) init_fep_thread(ru,NULL); 
-    if (ru->feptx_ofdm) init_feptx_thread(ru,NULL);
+    init_fep_thread(ru,NULL); 
+    init_feptx_thread(ru,NULL);
   } 
   if (opp_enabled == 1) pthread_create(&ru->ru_stats_thread,NULL,ru_stats_thread,(void*)ru); 
   
@@ -2224,6 +2234,13 @@ void kill_RU_proc(int inst)
   RU_t *ru = RC.ru[inst];
   RU_proc_t *proc = &ru->proc;
 
+  if (get_nprocs() > 2 && fepw) {
+      LOG_D(PHY, "killing FEP thread\n"); 
+      kill_fep_thread(ru);
+      LOG_D(PHY, "killing FEP TX thread\n"); 
+      kill_feptx_thread(ru);
+  }
+
   pthread_mutex_lock(&proc->mutex_FH);
   proc->instance_cnt_FH = 0;
   pthread_cond_signal(&proc->cond_FH);
@@ -2262,10 +2279,10 @@ void kill_RU_proc(int inst)
   pthread_cond_signal(&proc->cond_asynch_rxtx);
   pthread_mutex_unlock(&proc->mutex_asynch_rxtx);
 
-  LOG_D(PHY, "Joining pthread_FH\n");
+  /*LOG_D(PHY, "Joining pthread_FH\n");
   pthread_join(proc->pthread_FH, NULL);
   LOG_D(PHY, "Joining pthread_FHTX\n");
-  pthread_join(proc->pthread_FH1, NULL);
+  pthread_join(proc->pthread_FH1, NULL);*/
   if (ru->function == NGFI_RRU_IF4p5) {
     LOG_D(PHY, "Joining pthread_prach\n");
     pthread_join(proc->pthread_prach, NULL);
@@ -2285,28 +2302,6 @@ void kill_RU_proc(int inst)
       pthread_join(proc->pthread_asynch_rxtx, NULL);
     }
   }
-  if (get_nprocs() > 2 && fepw) {
-    if (ru->feprx) {
-      pthread_mutex_lock(&proc->mutex_fep);
-      proc->instance_cnt_fep = 0;
-      pthread_mutex_unlock(&proc->mutex_fep);
-      pthread_cond_signal(&proc->cond_fep);
-      LOG_D(PHY, "Joining pthread_fep\n");
-      pthread_join(proc->pthread_fep, NULL);
-      pthread_mutex_destroy(&proc->mutex_fep);
-      pthread_cond_destroy(&proc->cond_fep);
-    }
-    if (ru->feptx_ofdm) {
-      pthread_mutex_lock(&proc->mutex_feptx);
-      proc->instance_cnt_feptx = 0;
-      pthread_mutex_unlock(&proc->mutex_feptx);
-      pthread_cond_signal(&proc->cond_feptx);
-      LOG_D(PHY, "Joining pthread_feptx\n");
-      pthread_join(proc->pthread_feptx, NULL);
-      pthread_mutex_destroy(&proc->mutex_feptx);
-      pthread_cond_destroy(&proc->cond_feptx);
-    }
-  }
   if (opp_enabled) {
     LOG_D(PHY, "Joining ru_stats_thread\n");
     pthread_join(ru->ru_stats_thread, NULL);
@@ -2671,7 +2666,7 @@ void set_function_spec_param(RU_t *ru)
   } // switch on interface type
 }
 
-extern void RCconfig_RU(void);
+//extern void RCconfig_RU(void);
 
 void init_RU(char *rf_config_file) {
   
diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c
index a349ec8134e88f6e375cb3c2e1f2112a69f05c5d..7ff57fee3e4572ecf899aa1596f658760ad2b43f 100644
--- a/targets/RT/USER/lte-softmodem.c
+++ b/targets/RT/USER/lte-softmodem.c
@@ -34,9 +34,6 @@
 #define _GNU_SOURCE             /* See feature_test_macros(7) */
 #include <sched.h>
 
-
-#include "T.h"
-
 #include "rt_wrapper.h"
 
 
@@ -72,11 +69,11 @@
 #include "PHY/TOOLS/smbv.h"
 unsigned short config_frames[4] = {2,9,11,13};
 #endif
-#include "UTIL/LOG/log_extern.h"
+#include "common/utils/LOG/log.h"
 #include "UTIL/OTG/otg_tx.h"
 #include "UTIL/OTG/otg_externs.h"
 #include "UTIL/MATH/oml.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "UTIL/OPT/opt.h"
 #include "enb_config.h"
 //#include "PHY/TOOLS/time_meas.h"
@@ -137,14 +134,13 @@ static clock_source_t clock_source = internal;
 static int wait_for_sync = 0;
 
 unsigned int                    mmapped_dma=0;
-int                             single_thread_flag=1;
+int                             single_thread_flag = 0;
 
 static int8_t                     threequarter_fs=0;
 
 uint32_t                 downlink_frequency[MAX_NUM_CCs][4];
 int32_t                  uplink_frequency_offset[MAX_NUM_CCs][4];
 
-char logmem_filename[1024] = {0};
 
 // This is a dummy declaration (dlsch_demodulation.c is no longer compiled for eNodeB)
 int16_t dlsch_demod_shift = 0;
@@ -524,12 +520,12 @@ static void get_options(void) {
  
   
   uint32_t online_log_messages;
-  uint32_t glog_level, glog_verbosity;
+  uint32_t glog_level ;
   uint32_t start_telnetsrv;
 
   paramdef_t cmdline_params[] =CMDLINE_PARAMS_DESC ;
   paramdef_t cmdline_logparams[] =CMDLINE_LOGPARAMS_DESC ;
-
+  CONFIG_SETRTFLAG(CONFIG_NOEXITONHELP);
   config_process_cmdline( cmdline_params,sizeof(cmdline_params)/sizeof(paramdef_t),NULL); 
 
   if (strlen(in_path) > 0) {
@@ -542,26 +538,18 @@ static void get_options(void) {
       opt_type = OPT_WIRESHARK;
       printf("Enabling OPT for wireshark for local interface");
   }
-
+  CONFIG_CLEARRTFLAG(CONFIG_NOEXITONHELP);
   config_process_cmdline( cmdline_logparams,sizeof(cmdline_logparams)/sizeof(paramdef_t),NULL);
+
   if(config_isparamset(cmdline_logparams,CMDLINE_ONLINELOG_IDX)) {
       set_glog_onlinelog(online_log_messages);
   }
   if(config_isparamset(cmdline_logparams,CMDLINE_GLOGLEVEL_IDX)) {
-      set_glog(glog_level, -1);
-  }
-  if(config_isparamset(cmdline_logparams,CMDLINE_GLOGVERBO_IDX)) {
-      set_glog(-1, glog_verbosity);
+      set_glog(glog_level);
   }
   if (start_telnetsrv) {
      load_module_shlib("telnetsrv",NULL,0);
   }
-  if (strlen(logmem_filename) > 0) {
-    log_mem_filename = &logmem_filename[0];
-    log_mem_flag = 1;
-    printf("Enabling OPT for log save at memory %s\n",log_mem_filename);
-    logInit_log_mem();
-  }
 
 
 
@@ -978,7 +966,6 @@ int main( int argc, char **argv )
   cpuf=get_cpu_freq_GHz();
 
 #if defined(ENABLE_ITTI)
-  log_set_instance_type (LOG_INSTANCE_ENB);
 
   printf("ITTI init\n");
   itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info);
diff --git a/targets/RT/USER/lte-softmodem.h b/targets/RT/USER/lte-softmodem.h
index 921e1ce530d309b4121a01d92fe531fcec58b1b3..5590e3a93196c273014e630004a66e4798e8ab12 100644
--- a/targets/RT/USER/lte-softmodem.h
+++ b/targets/RT/USER/lte-softmodem.h
@@ -163,7 +163,7 @@
 {"mmapped-dma",             CONFIG_HLP_DMAMAP,      PARAMFLAG_BOOL,         uptr:&mmapped_dma,                  defintval:0,                    TYPE_INT,       0},                     \
 {"external-clock",          CONFIG_HLP_EXCCLK,      PARAMFLAG_BOOL,         uptr:&clock_source,                 defintval:0,                    TYPE_INT,       0},                     \
 {"wait-for-sync",           NULL,                   PARAMFLAG_BOOL,         iptr:&wait_for_sync,                defintval:0,                    TYPE_INT,       0},                     \
-{"single-thread-disable",   CONFIG_HLP_NOSNGLT,     PARAMFLAG_BOOL,         iptr:&single_thread_flag,           defintval:1,                    TYPE_INT,       0},                     \
+{"single-thread-enable",    CONFIG_HLP_NOSNGLT,     PARAMFLAG_BOOL,         iptr:&single_thread_flag,           defintval:0,                    TYPE_INT,       0},                     \
 {"threadIQ",                NULL,                   0,                      iptr:&(threads.iq),                 defintval:1,                    TYPE_INT,       0},                     \
 {"threadOneSubframe",       NULL,                   0,                      iptr:&(threads.one),                defintval:1,                    TYPE_INT,       0},                     \
 {"threadTwoSubframe",       NULL,                   0,                      iptr:&(threads.two),                defintval:1,                    TYPE_INT,       0},                     \
@@ -193,7 +193,6 @@
 
 #define CONFIG_HLP_FLOG          "Enable online log \n"
 #define CONFIG_HLP_LOGL          "Set the global log level, valide options: (9:trace, 8/7:debug, 6:info, 4:warn, 3:error)\n"
-#define CONFIG_HLP_LOGV          "Set the global log verbosity \n"
 #define CONFIG_HLP_TELN          "Start embedded telnet server \n"
 /*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
 /*                                            command line parameters for LOG utility                                                                                        */
@@ -202,14 +201,11 @@
 #define CMDLINE_LOGPARAMS_DESC {  \
 {"R" ,  		  	 CONFIG_HLP_FLOG,	0,                uptr:&online_log_messages,		defintval:1,			   TYPE_INT,	  0},			   \
 {"g" ,  		  	 CONFIG_HLP_LOGL,	0,		  uptr:&glog_level,			defintval:0,			   TYPE_UINT,     0},			   \
-{"G" ,                           CONFIG_HLP_LOGV,	0,		  uptr:&glog_verbosity,		        defintval:0,			   TYPE_UINT16,   0},			   \
 {"telnetsrv",    		 CONFIG_HLP_TELN,	PARAMFLAG_BOOL,	  uptr:&start_telnetsrv,		defintval:0,			   TYPE_UINT,     0},			   \
-{"log-mem",                       NULL,                  0,                strptr:(char **)&logmem_filename,    defstrval:"./logmem.log",          TYPE_STRING,   sizeof(logmem_filename)},    \
 }
 #define CMDLINE_ONLINELOG_IDX     0 
 #define CMDLINE_GLOGLEVEL_IDX     1
-#define CMDLINE_GLOGVERBO_IDX     2              
-#define CMDLINE_STARTTELN_IDX     3
+#define CMDLINE_STARTTELN_IDX     2
 
 
 /***************************************************************************************************************************************/  
diff --git a/targets/RT/USER/lte-ue.c b/targets/RT/USER/lte-ue.c
index 04ae0644a3c70e7b45ab63a9d184d6295b071db6..ab84249f9fe660bf0af91c6434396f4519da00dd 100644
--- a/targets/RT/USER/lte-ue.c
+++ b/targets/RT/USER/lte-ue.c
@@ -52,11 +52,11 @@
 
 #include <inttypes.h>
 
-#include "UTIL/LOG/log_extern.h"
+#include "common/utils/LOG/log.h"
 #include "UTIL/OTG/otg_tx.h"
 #include "UTIL/OTG/otg_externs.h"
 #include "UTIL/MATH/oml.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "UTIL/OPT/opt.h"
 
 
@@ -435,7 +435,7 @@ void init_UE_stub(int nb_inst,int eMBMS_active, int uecap_xer_in, char *emul_ifa
 static void *UE_thread_synch(void *arg)
 {
   static int UE_thread_synch_retval;
-  int i, hw_slot_offset;
+  int i ;
   PHY_VARS_UE *UE = (PHY_VARS_UE*) arg;
   int current_band = 0;
   int current_offset = 0;
@@ -573,9 +573,8 @@ static void *UE_thread_synch(void *arg)
 #endif
       if (initial_sync( UE, UE->mode ) == 0) {
 
-	hw_slot_offset = (UE->rx_offset<<1) / UE->frame_parms.samples_per_tti;
 	LOG_I( HW, "Got synch: hw_slot_offset %d, carrier off %d Hz, rxgain %d (DL %u, UL %u), UE_scan_carrier %d\n",
-	       hw_slot_offset,
+	       (UE->rx_offset<<1) / UE->frame_parms.samples_per_tti,
 	       freq_offset,
 	       UE->rx_total_gain_dB,
 	       downlink_frequency[0][0]+freq_offset,
@@ -738,13 +737,23 @@ static void *UE_thread_synch(void *arg)
  * \param arg is a pointer to a \ref PHY_VARS_UE structure.
  * \returns a pointer to an int. The storage is not on the heap and must not be freed.
  */
+const char * get_connectionloss_errstr(int errcode) {
+        switch (errcode) {
+        case CONNECTION_LOST:
+          return "RRC Connection lost, returning to PRACH";
+        case PHY_RESYNCH:
+           return "RRC Connection lost, trying to resynch";
+        case RESYNCH:
+           return "return to PRACH and perform a contention-free access";
+        };
+  return "UNKNOWN RETURN CODE";
+}
 
 static void *UE_thread_rxn_txnp4(void *arg) {
   static __thread int UE_thread_rxtx_retval;
   struct rx_tx_thread_data *rtd = arg;
   UE_rxtx_proc_t *proc = rtd->proc;
   PHY_VARS_UE    *UE   = rtd->UE;
-  int ret;
 
   proc->instance_cnt_rxtx=-1;
   proc->subframe_rx=proc->sub_frame_start;
@@ -817,7 +826,7 @@ static void *UE_thread_rxn_txnp4(void *arg) {
 #endif
     if (UE->mac_enabled==1) {
 
-      ret = ue_scheduler(UE->Mod_id,
+      int ret = ue_scheduler(UE->Mod_id,
 			 proc->frame_rx,
 			 proc->subframe_rx,
 			 proc->frame_tx,
@@ -826,22 +835,8 @@ static void *UE_thread_rxn_txnp4(void *arg) {
 			 0,
 			 0/*FIXME CC_id*/);
       if ( ret != CONNECTION_OK) {
-	char *txt;
-	switch (ret) {
-	case CONNECTION_LOST:
-	  txt="RRC Connection lost, returning to PRACH";
-	  break;
-	case PHY_RESYNCH:
-	  txt="RRC Connection lost, trying to resynch";
-	  break;
-	case RESYNCH:
-	  txt="return to PRACH and perform a contention-free access";
-	  break;
-	default:
-	  txt="UNKNOWN RETURN CODE";
-	};
 	LOG_E( PHY, "[UE %"PRIu8"] Frame %"PRIu32", subframe %u %s\n",
-	       UE->Mod_id, proc->frame_rx, proc->subframe_tx,txt );
+	       UE->Mod_id, proc->frame_rx, proc->subframe_tx,get_connectionloss_errstr(ret) );
       }
     }
 #if UE_TIMING_TRACE
@@ -973,12 +968,7 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
 
   PHY_VARS_UE    *UE;   //= rtd->UE;
   int ret;
-  //  double t_diff;
-
-  char threadname[256];
-  //sprintf(threadname,"UE_%d_proc", UE->Mod_id);
 
-  //proc->instance_cnt_rxtx=-1;
 
   phy_stub_ticking->ticking_var = -1;
   proc->subframe_rx=proc->sub_frame_start;
@@ -1050,15 +1040,13 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
 	(sf_type == SF_S)) {
 
       if (UE->frame_parms.frame_type == TDD) {
-	LOG_D(PHY, "%s,TDD%d,%s: calling UE_RX\n",
-	      threadname,
+	LOG_D(PHY, "TDD%d,%s: calling UE_RX\n",
 	      UE->frame_parms.tdd_config,
 	      (sf_type==SF_DL? "SF_DL" :
 	       (sf_type==SF_UL? "SF_UL" :
 		(sf_type==SF_S ? "SF_S"  : "UNKNOWN_SF_TYPE"))));
       } else {
-	LOG_D(PHY, "%s,%s,%s: calling UE_RX\n",
-	      threadname,
+	LOG_D(PHY, "%s,%s: calling UE_RX\n",
 	      (UE->frame_parms.frame_type==FDD? "FDD":
 	       (UE->frame_parms.frame_type==TDD? "TDD":"UNKNOWN_DUPLEX_MODE")),
 	      (sf_type==SF_DL? "SF_DL" :
@@ -1099,22 +1087,8 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
 			 0,
 			 0/*FIXME CC_id*/);
       if ( ret != CONNECTION_OK) {
-	char *txt;
-	switch (ret) {
-	case CONNECTION_LOST:
-	  txt="RRC Connection lost, returning to PRACH";
-	  break;
-	case PHY_RESYNCH:
-	  txt="RRC Connection lost, trying to resynch";
-	  break;
-	case RESYNCH:
-	  txt="return to PRACH and perform a contention-free access";
-	  break;
-	default:
-	  txt="UNKNOWN RETURN CODE";
-	};
 	LOG_E( PHY, "[UE %"PRIu8"] Frame %"PRIu32", subframe %u %s\n",
-	       UE->Mod_id, proc->frame_rx, proc->subframe_tx,txt );
+	       UE->Mod_id, proc->frame_rx, proc->subframe_tx,get_connectionloss_errstr(ret) );
       }
     }
 #if UE_TIMING_TRACE
@@ -1281,14 +1255,6 @@ static void *UE_phy_stub_thread_rxn_txnp4(void *arg) {
   struct rx_tx_thread_data *rtd = arg;
   UE_rxtx_proc_t *proc = rtd->proc;
   PHY_VARS_UE    *UE   = rtd->UE;
-  int ret;
-  //  double t_diff;
-
-  char threadname[256];
-  sprintf(threadname,"UE_%d_proc", UE->Mod_id);
-
-
-  //proc->instance_cnt_rxtx=-1;
 
   phy_stub_ticking->ticking_var = -1;
   proc->subframe_rx=proc->sub_frame_start;
@@ -1327,15 +1293,13 @@ static void *UE_phy_stub_thread_rxn_txnp4(void *arg) {
 	(sf_type == SF_S)) {
 
       if (UE->frame_parms.frame_type == TDD) {
-	LOG_D(PHY, "%s,TDD%d,%s: calling UE_RX\n",
-	      threadname,
+	LOG_D(PHY, "TDD%d,%s: calling UE_RX\n",
 	      UE->frame_parms.tdd_config,
 	      (sf_type==SF_DL? "SF_DL" :
 	       (sf_type==SF_UL? "SF_UL" :
 		(sf_type==SF_S ? "SF_S"  : "UNKNOWN_SF_TYPE"))));
       } else {
-	LOG_D(PHY, "%s,%s,%s: calling UE_RX\n",
-	      threadname,
+	LOG_D(PHY, "%s,%s: calling UE_RX\n",
 	      (UE->frame_parms.frame_type==FDD? "FDD":
 	       (UE->frame_parms.frame_type==TDD? "TDD":"UNKNOWN_DUPLEX_MODE")),
 	      (sf_type==SF_DL? "SF_DL" :
@@ -1379,7 +1343,7 @@ static void *UE_phy_stub_thread_rxn_txnp4(void *arg) {
 #endif
     if (UE->mac_enabled==1) {
 
-      ret = ue_scheduler(UE->Mod_id,
+      int ret = ue_scheduler(UE->Mod_id,
 			 proc->frame_rx,
 			 proc->subframe_rx,
 			 proc->frame_tx,
@@ -1387,24 +1351,9 @@ static void *UE_phy_stub_thread_rxn_txnp4(void *arg) {
 			 subframe_select(&UE->frame_parms,proc->subframe_tx),
 			 0,
 			 0);
-      if ( ret != CONNECTION_OK) {
-	char *txt;
-	switch (ret) {
-	case CONNECTION_LOST:
-	  txt="RRC Connection lost, returning to PRACH";
-	  break;
-	case PHY_RESYNCH:
-	  txt="RRC Connection lost, trying to resynch";
-	  break;
-	case RESYNCH:
-	  txt="return to PRACH and perform a contention-free access";
-	  break;
-	default:
-	  txt="UNKNOWN RETURN CODE";
-	};
+      if (ret != CONNECTION_OK)
 	LOG_E( PHY, "[UE %"PRIu8"] Frame %"PRIu32", subframe %u %s\n",
-	       UE->Mod_id, proc->frame_rx, proc->subframe_tx,txt );
-      }
+	       UE->Mod_id, proc->frame_rx, proc->subframe_tx,get_connectionloss_errstr(ret) );
     }
 #if UE_TIMING_TRACE
     stop_meas(&UE->generic_stat);
@@ -1941,10 +1890,8 @@ int setup_ue_buffers(PHY_VARS_UE **phy_vars_ue, openair0_config_t *openair0_cfg)
 
   int i, CC_id;
   LTE_DL_FRAME_PARMS *frame_parms;
-  openair0_rf_map *rf_map;
 
   for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
-    rf_map = &phy_vars_ue[CC_id]->rf_map;
 
     AssertFatal( phy_vars_ue[CC_id] !=0, "");
     frame_parms = &(phy_vars_ue[CC_id]->frame_parms);
@@ -1955,7 +1902,7 @@ int setup_ue_buffers(PHY_VARS_UE **phy_vars_ue, openair0_config_t *openair0_cfg)
 
     for (i=0; i<frame_parms->nb_antennas_rx; i++) {
       LOG_I(PHY, "Mapping UE CC_id %d, rx_ant %d, freq %u on card %d, chain %d\n",
-	    CC_id, i, downlink_frequency[CC_id][i], rf_map->card, rf_map->chain+i );
+	    CC_id, i, downlink_frequency[CC_id][i], phy_vars_ue[CC_id]->rf_map.card, (phy_vars_ue[CC_id]->rf_map.chain)+i );
       free( phy_vars_ue[CC_id]->common_vars.rxdata[i] );
       rxdata[i] = (int32_t*)malloc16_clear( 307200*sizeof(int32_t) );
       phy_vars_ue[CC_id]->common_vars.rxdata[i] = rxdata[i]; // what about the "-N_TA_offset" ? // N_TA offset for TDD
@@ -1963,7 +1910,7 @@ int setup_ue_buffers(PHY_VARS_UE **phy_vars_ue, openair0_config_t *openair0_cfg)
 
     for (i=0; i<frame_parms->nb_antennas_tx; i++) {
       LOG_I(PHY, "Mapping UE CC_id %d, tx_ant %d, freq %u on card %d, chain %d\n",
-	    CC_id, i, downlink_frequency[CC_id][i], rf_map->card, rf_map->chain+i );
+	    CC_id, i, downlink_frequency[CC_id][i], phy_vars_ue[CC_id]->rf_map.card, (phy_vars_ue[CC_id]->rf_map.chain)+i );
       free( phy_vars_ue[CC_id]->common_vars.txdata[i] );
       txdata[i] = (int32_t*)malloc16_clear( 307200*sizeof(int32_t) );
       phy_vars_ue[CC_id]->common_vars.txdata[i] = txdata[i];
diff --git a/targets/RT/USER/lte-uesoftmodem.c b/targets/RT/USER/lte-uesoftmodem.c
index db62c138c7abe16ea93d84023cbf7c757699a20f..03283beb985f1afe7111c99822a843f537c51ce3 100644
--- a/targets/RT/USER/lte-uesoftmodem.c
+++ b/targets/RT/USER/lte-uesoftmodem.c
@@ -70,11 +70,11 @@
 #include "RRC/LTE/rrc_vars.h"
 #include "PHY_INTERFACE/phy_interface_vars.h"
 
-#include "UTIL/LOG/log_extern.h"
+#include "common/utils/LOG/log.h"
 #include "UTIL/OTG/otg_tx.h"
 #include "UTIL/OTG/otg_externs.h"
 #include "UTIL/MATH/oml.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 #include "UTIL/OPT/opt.h"
 #include "enb_config.h"
 //#include "PHY/TOOLS/time_meas.h"
@@ -327,6 +327,7 @@ void exit_fun(const char* s)
 {
   int CC_id;
 
+  logClean();
   if (s != NULL) {
     printf("%s %s() Exiting OAI softmodem: %s\n",__FILE__, __FUNCTION__, s);
   }
@@ -334,8 +335,11 @@ void exit_fun(const char* s)
   oai_exit = 1;
 
   for(CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
-	if (PHY_vars_UE_g[0][CC_id]->rfdevice.trx_end_func)
-	  PHY_vars_UE_g[0][CC_id]->rfdevice.trx_end_func(&PHY_vars_UE_g[0][CC_id]->rfdevice);
+     if (PHY_vars_UE_g)
+      if (PHY_vars_UE_g[0])
+         if (PHY_vars_UE_g[0][CC_id])
+	    if (PHY_vars_UE_g[0][CC_id]->rfdevice.trx_end_func)
+	        PHY_vars_UE_g[0][CC_id]->rfdevice.trx_end_func(&PHY_vars_UE_g[0][CC_id]->rfdevice);
     }
 
 #if defined(ENABLE_ITTI)
@@ -467,19 +471,19 @@ void *l2l1_task(void *arg) {
 extern int16_t dlsch_demod_shift;
 
 static void get_options(void) {
-  char logmem_filename[1024] = {0};
   int CC_id;
   int tddflag, nonbiotflag;
   char *loopfile=NULL;
   int dumpframe;
   uint32_t online_log_messages;
-  uint32_t glog_level, glog_verbosity;
+  uint32_t glog_level;
   uint32_t start_telnetsrv;
 
   paramdef_t cmdline_params[] =CMDLINE_PARAMS_DESC ;
   paramdef_t cmdline_logparams[] =CMDLINE_LOGPARAMS_DESC ;
 
   set_default_frame_parms(frame_parms);
+  CONFIG_SETRTFLAG(CONFIG_NOEXITONHELP);
   config_process_cmdline( cmdline_params,sizeof(cmdline_params)/sizeof(paramdef_t),NULL); 
 
   if (strlen(in_path) > 0) {
@@ -498,10 +502,7 @@ static void get_options(void) {
       set_glog_onlinelog(online_log_messages);
   }
   if(config_isparamset(cmdline_logparams,CMDLINE_GLOGLEVEL_IDX)) {
-      set_glog(glog_level, -1);
-  }
-  if(config_isparamset(cmdline_logparams,CMDLINE_GLOGVERBO_IDX)) {
-      set_glog(-1, glog_verbosity);
+      set_glog(glog_level);
   }
   if (start_telnetsrv) {
      load_module_shlib("telnetsrv",NULL,0);
@@ -512,6 +513,7 @@ static void get_options(void) {
 
 
   config_process_cmdline( cmdline_uemodeparams,sizeof(cmdline_uemodeparams)/sizeof(paramdef_t),NULL);
+  CONFIG_CLEARRTFLAG(CONFIG_NOEXITONHELP);
   config_process_cmdline( cmdline_ueparams,sizeof(cmdline_ueparams)/sizeof(paramdef_t),NULL);
   if (loopfile != NULL) {
       printf("Input file for hardware emulation: %s",loopfile);
@@ -829,17 +831,17 @@ int main( int argc, char **argv )
   set_taus_seed (0);
 
 
-    set_comp_log(HW,      LOG_DEBUG,  LOG_HIGH, 1);
-    set_comp_log(PHY,     LOG_INFO,   LOG_HIGH, 1);
-    set_comp_log(MAC,     LOG_INFO,   LOG_HIGH, 1);
-    set_comp_log(RLC,     LOG_INFO,   LOG_HIGH | FLAG_THREAD, 1);
-    set_comp_log(PDCP,    LOG_INFO,   LOG_HIGH, 1);
-    set_comp_log(OTG,     LOG_INFO,   LOG_HIGH, 1);
-    set_comp_log(RRC,     LOG_INFO,   LOG_HIGH, 1);
+    set_log(HW,      OAILOG_DEBUG,   1);
+    set_log(PHY,     OAILOG_INFO,    1);
+    set_log(MAC,     OAILOG_INFO,    1);
+    set_log(RLC,     OAILOG_INFO,    1);
+    set_log(PDCP,    OAILOG_INFO,    1);
+    set_log(OTG,     OAILOG_INFO,    1);
+    set_log(RRC,     OAILOG_INFO,    1);
 #if defined(ENABLE_ITTI)
-    set_comp_log(SIM,     LOG_INFO,   LOG_MED, 1);
+    set_log(SIM,     OAILOG_INFO,   1);
 # if defined(ENABLE_USE_MME)
-    set_comp_log(NAS,     LOG_INFO,   LOG_HIGH, 1);
+    set_log(NAS,     OAILOG_INFO,    1);
 # endif
 #endif
 
@@ -850,8 +852,6 @@ int main( int argc, char **argv )
 
 #if defined(ENABLE_ITTI)
 
-  log_set_instance_type (LOG_INSTANCE_UE);
-
 
 
   printf("ITTI init\n");
diff --git a/targets/RT/USER/rfsim.c b/targets/RT/USER/rfsim.c
index cc9b70295af459467b135dafaed50e12fb03ee4b..cdf8f1ad0d52be2a83ec4745fc0a87ee1c2fdb95 100644
--- a/targets/RT/USER/rfsim.c
+++ b/targets/RT/USER/rfsim.c
@@ -51,7 +51,7 @@
 #include "common/ran_context.h"
 #include "PHY/defs_UE.h"
 #include "PHY/defs_eNB.h"
-#include "vcd_signal_dumper.h"
+#include "common/utils/LOG/vcd_signal_dumper.h"
 
 RAN_CONTEXT_t RC;
 extern PHY_VARS_UE ***PHY_vars_UE_g;
diff --git a/targets/RT/USER/rt_wrapper.h b/targets/RT/USER/rt_wrapper.h
index f9828d0db97e10dba1d20d73b31adba9cb32cc51..32554d9e17990a2de5f532834a292368ca03429b 100644
--- a/targets/RT/USER/rt_wrapper.h
+++ b/targets/RT/USER/rt_wrapper.h
@@ -55,7 +55,7 @@
 #include <getopt.h>
 #include <sys/sysinfo.h>
 
-#include "UTIL/LOG/log_extern.h"
+#include "common/utils/LOG/log_extern.h"
 #include "msc.h"
 
 #define RTIME long long int