#!/usr/bin/env Rscript

library(tidyverse)
#library(glmnet)
#library(caret)
library(magrittr)
#library(Matrix)
#library(lightgbm)
library(text2vec)
library(tokenizers)
library(tm)
library (ROCR)

#library(automl);#package version is too old so directly last version below ;-))
#################################
#################################
##### last automl version 1.2.6
sbamlmodcp <- function(mymodelref, mymodel)
{
 mymodel$error <- mymodelref$error
 mymodel$hpar$layersshape <- mymodelref$hpar$layersshape
 mymodel$hpar$layersacttype <- mymodelref$hpar$layersacttype
 for (l in 1:mymodelref$hpar$nblayers)
 {
  mymodel[[paste("mydl_W", l, sep = '')]] <- mymodelref[[paste("mydl_W", l, sep = '')]]
  mymodel[[paste("mydl_vdW", l, sep = '')]] <- mymodelref[[paste("mydl_vdW", l, sep = '')]]
  mymodel[[paste("mydl_sdW", l, sep = '')]] <- mymodelref[[paste("mydl_sdW", l, sep = '')]]
  mymodel[[paste("mydl_bB", l, sep = '')]] <- mymodelref[[paste("mydl_bB", l, sep = '')]]
  mymodel[[paste("mydl_vdbB", l, sep = '')]] <- mymodelref[[paste("mydl_vdbB", l, sep = '')]]
  mymodel[[paste("mydl_sdbB", l, sep = '')]] <- mymodelref[[paste("mydl_sdbB", l, sep = '')]]
  mymodel[[paste("mydl_j", l, sep = '')]] <- mymodelref[[paste("mydl_j", l, sep = '')]]
  mymodel[[paste("mydl_vdj", l, sep = '')]] <- mymodelref[[paste("mydl_vdj", l, sep = '')]]
  mymodel[[paste("mydl_sdj", l, sep = '')]] <- mymodelref[[paste("mydl_sdj", l, sep = '')]]
  mymodel[[paste("mydl_M", l, sep = '')]] <- mymodelref[[paste("mydl_M", l, sep = '')]]
  mymodel[[paste("mydl_vM", l, sep = '')]] <- mymodelref[[paste("mydl_vM", l, sep = '')]]
  mymodel[[paste("mydl_V", l, sep = '')]] <- mymodelref[[paste("mydl_V", l, sep = '')]]
  mymodel[[paste("mydl_vV", l, sep = '')]] <- mymodelref[[paste("mydl_vV", l, sep = '')]]
 }
 return(mymodel)
}

sbamlmodhparcp <- function(mdlref, myhpartoignore, autopar = NULL, hpar)
{
 valmodimpflagok <- 1
 if (is.null(autopar))
 {
  if (any(c("layersshape", "layersacttype") %in% names(hpar)))
  {
   mylastlog <- ("wrng: layersshape or layersacttype defined (mdlref won't be used)")
   warning(mylastlog, immediate. = FALSE, noBreaks. = TRUE)
   valmodimpflagok <- 0
  }
  if (valmodimpflagok == 1 & "layersdropoprob" %in% names(hpar))
  {
   if (length(hpar$layersdropoprob) != length(mdlref$hpar$layersdropoprob))
   {
    mylastlog <- ("wrng: layersdropoprob defined with incompatible shape (mdlref won't be used)")
    warning(mylastlog, immediate. = FALSE, noBreaks. = TRUE)
    valmodimpflagok <- 0
   }
  }
  if (valmodimpflagok == 1 & "modexec" %in% names(hpar))
  {
   if (hpar$modexec == "trainwpso" & mdlref$hpar$modexec == "trainwgrad")
   {
    myhpartoignore = c(myhpartoignore, 'psopartpopsize', 'psonbvar2optim', 'psonumiteration',
                       'psovarvalmin', 'psovarvalmax', 'psovelocitymaxratio',
                       'psoinertiadampratio', 'psokappa', 'psophi1', 'psophi2', 'psoseed')
   } else if (hpar$modexec == "trainwgrad" & mdlref$hpar$modexec == "trainwpso")
   {
    myhpartoignore = c(myhpartoignore, 'learningrate', 'lrdecayrate', 'chkgradevery',
                       'chkgradepsilon', 'beta1', 'beta2')
    if (!"minibatchsize" %in% names(hpar)) {myhpartoignore = c(myhpartoignore, "minibatchsize")}
   }
  }
  if (valmodimpflagok == 1 & all(c('autopar', 'mylspsoparamlvauto') %in% names(hpar)))
  {
   myhpartoignore = c(myhpartoignore, c('useautopar', 'overfitautopar', 'verbose'))
  }
 }
 # forcing hpar with mdlref$hpar in agreement with hpar and myhpartoignore
 if (valmodimpflagok == 1)
 {
  for (i in 1:length(mdlref$hpar))
  {
   if (!names(mdlref$hpar)[i] %in% myhpartoignore &
       !names(mdlref$hpar)[i] %in% names(hpar))
   {
    hpar[[names(mdlref$hpar)[i]]] <- mdlref$hpar[[names(mdlref$hpar)[i]]]
   }
  }
 }
 # autopar validated before but may be changed
 if (!is.null(autopar))
 {
  if (autopar$auto_modexec == FALSE) {hpar$modexec <- mdlref$hpar$modexec}
  if (autopar$auto_minibatchsize == FALSE) {hpar$minibatchsize <- mdlref$hpar$minibatchsize}
  if (autopar$auto_learningrate == FALSE) {hpar$learningrate <- mdlref$hpar$learningrate}
  if (autopar$auto_beta1 == FALSE) {hpar$beta1 <- mdlref$hpar$beta1}
  if (autopar$auto_beta2 == FALSE) {hpar$beta2 <- mdlref$hpar$beta2}
  if (autopar$auto_psopartpopsize == FALSE) {hpar$psopartpopsize <- mdlref$hpar$psopartpopsize}
  if (autopar$auto_lambda == FALSE) {hpar$lambda <- mdlref$hpar$lambda}
  if (autopar$auto_psovelocitymaxratio == FALSE) {hpar$psovelocitymaxratio <- mdlref$hpar$psovelocitymaxratio}
  if (autopar$auto_layers == FALSE)
  {
   if (!"layersshape" %in% names(hpar)) {hpar$layersshape <- mdlref$hpar$layersshape}
   if (!"layersacttype" %in% names(hpar)) {hpar$layersacttype <- mdlref$hpar$layersacttype}
   #if layersdropoprob not in hpar, will be defined
  }
  if (any(c("layersshape", "layersacttype", "layersdropoprob") %in% names(hpar)))
  {
   autopar$auto_layers_min <- autopar$auto_layers_max <- mdlref$hpar$nblayers
  }
 }
 return(list(autopar = autopar, hpar = hpar, valmodimpflagok = valmodimpflagok))
}

sbamlmodpsoparam <- function(mylspsoparam, mylspsopart)
{
  mylspsoparam$phi = mylspsoparam$phi1 + mylspsoparam$phi2
  mylspsoparam$chi = 2 * mylspsoparam$kappa / abs(2 - mylspsoparam$phi - sqrt(mylspsoparam$phi^2 - 4 * mylspsoparam$phi))
  mylspsoparam$w = mylspsoparam$chi;# inertia coef (no damping ratio with constriction coefs)
  mylspsoparam$c1 = mylspsoparam$chi * mylspsoparam$phi1;# personal acceleration coef for cognitive composant
  mylspsoparam$c2 = mylspsoparam$chi * mylspsoparam$phi2;# social acceleration coef for social composant
  mylspsoparam$maxvel = (mylspsoparam$varvalmax - mylspsoparam$varvalmin) * mylspsoparam$velocitymaxratio
  mylspsoparam$minvel = -mylspsoparam$maxvel
  mylspsoparam$activpart = 0

  if (mylspsoparam$modeinit %in% c('angdlpso', 'autopar'))
  {
    mylspsopart <- list(
      Position = NULL,
      Velocity = 0,
      Cost = NA,
      Best = list(
        Position = NULL,
        Cost = NA,
        idpart = NA
      )
    )
    mylspsopart <- rep(list(mylspsopart), mylspsoparam$partpopsize)

    #pop members initialization
    for (i in 1:mylspsoparam$partpopsize)
    {
      if (mylspsoparam$modeinit == 'angdlpso')
      {
        #random solution
        mydl <- mylspsoparam$angdl$mydl
        mydl <- sbamlmoddlparaminit(mydl, mydl$hpar$layersshape, mydl$hpar$layersacttype,
                                    mylspsoparam$seed + i, mydl$hpar$batchnor_mom)
        for (l in 1:mydl$hpar$nblayers)
        {
          # n = mydl$hpar$layersshape[l + 1]
          # m = mydl$hpar$layersshape[l]
          mylspsopart[[i]]$Position <- c(mylspsopart[[i]]$Position, c(mydl[[paste("mydl_W", l, sep = '')]]))
          mylspsopart[[i]]$Position <- c(mylspsopart[[i]]$Position, c(mydl[[paste("mydl_bB", l, sep = '')]]))
          if (mydl$hpar$batchnor_mom != 0)
          {
            mylspsopart[[i]]$Position <- c(mylspsopart[[i]]$Position, c(mydl[[paste("mydl_j", l, sep = '')]]))
          }
          #to avoid stagnation for bB & j
          myprov <- length(mylspsopart[[i]]$Position[mylspsopart[[i]]$Position == 0])
          set.seed(mylspsoparam$seed + i)
          mylspsopart[[i]]$Position[mylspsopart[[i]]$Position == 0] <- stats::runif(n = myprov, min = 0, max = 0.05)
          myprov <- length(mylspsopart[[i]]$Position[mylspsopart[[i]]$Position == 1])
          set.seed(mylspsoparam$seed + i)
          mylspsopart[[i]]$Position[mylspsopart[[i]]$Position == 1] <- stats::runif(n = myprov, min = 0.95, max = 1)
          rm(myprov)
        }
        mylspsoparam$nbvar2optim <- length(mylspsopart[[i]]$Position)
      } else if (mylspsoparam$modeinit == 'autopar')
      {
        #random solution
        set.seed(mylspsoparam$seed + i)
        mylspsopart[[i]]$Position <- stats::runif(n = mylspsoparam$nbvar2optim,
                                           min = mylspsoparam$varvalmin,
                                           max = mylspsoparam$varvalmax)
      }

      if (i == 1)
      {
        #global best
        mylspsoparam$globalbest = list(
          Position = rep(0, mylspsoparam$nbvar2optim),
          Cost = Inf,
          idpart = NA); #the worst possible cost value
        #logs of best each cost operation on each iteration
        mylspsoparam$globbestcostlog = matrix(data = rep(NA, 2 * mylspsoparam$numiteration),
                                              nrow = mylspsoparam$numiteration, ncol = 2,
                                              byrow = FALSE)
        colnames(mylspsoparam$globbestcostlog) = c('idpart', 'cost')
      }
      #initialize velocity
      mylspsopart[[i]]$Velocity <- rep(0, mylspsoparam$nbvar2optim)
      #evaluation
      mylspsopart[[i]]$Cost <- Inf
      #update personal best
      mylspsopart[[i]]$Best$Position <- mylspsopart[[i]]$Position
      mylspsopart[[i]]$Best$Cost <- mylspsopart[[i]]$Cost
      mylspsopart[[i]]$Best$idpart <- i
      if (mylspsoparam$modeinit == 'angdlpso') {mylspsopart[[i]]$angdl$mydl <- mydl}
    }
  }
  return(list(mylspsoparam = mylspsoparam, mylspsopart = mylspsopart))
}

sbamlmodpsooptkern <- function(mylspsoparam, mylspsoactivpart)
{
  # nb: mylspsoparam$activpart must correspond 2 mylspsoactivpart (4 seed)
  #
  # pso kernel sub for active particle
  set.seed(mylspsoparam$seed + mylspsoparam$activpart)
  # update velocity & position
  mylspsoactivpart$Velocity <- mylspsoparam$w * mylspsoactivpart$Velocity +
    (mylspsoparam$c1 * stats::runif(n = mylspsoparam$nbvar2optim, min = 0, max = 1) * (mylspsoactivpart$Best$Position - mylspsoactivpart$Position)) +
    (mylspsoparam$c2 * stats::runif(n = mylspsoparam$nbvar2optim, min = 0, max = 1) * (mylspsoparam$globalbest$Position - mylspsoactivpart$Position))
  mylspsoactivpart$Position <- mylspsoactivpart$Position + mylspsoactivpart$Velocity

  # apply velocity limits
  mylspsoactivpart$Velocity[mylspsoactivpart$Velocity < mylspsoparam$minvel] <- mylspsoparam$minvel
  mylspsoactivpart$Velocity[mylspsoactivpart$Velocity > mylspsoparam$maxvel] <- mylspsoparam$maxvel

  # apply lower and upper bounds limits
  mylspsoactivpart$Position[mylspsoactivpart$Position < mylspsoparam$varvalmin] <- mylspsoparam$varvalmin
  mylspsoactivpart$Position[mylspsoactivpart$Position > mylspsoparam$varvalmax] <- mylspsoparam$varvalmax
  if (mylspsoparam$modecost %in% c('angdlpso'))
  {
    # cost
    mylspsoactivpart <- sbamlmodpsocost(mylspsoparam = mylspsoparam, mylspsoactivpart = mylspsoactivpart)
    if (mylspsoactivpart$Cost < mylspsoactivpart$Best$Cost)
    {
      mylspsoactivpart$Best$Position <- mylspsoactivpart$Position
      mylspsoactivpart$Best$Cost <- mylspsoactivpart$Cost
      mylspsoactivpart$Best$idpart <- mylspsoparam$activpart
    }
    if (mylspsoactivpart$Cost < mylspsoparam$globalbest$Cost)
    {
      mylspsoparam$globalbest <- mylspsoactivpart$Best
      mylspsoparam$angdl$mydl <- mylspsoactivpart$angdl$mydl
    }
  }
  return(list(mylspsoparam = mylspsoparam, mylspsoactivpart = mylspsoactivpart))
}

sbamlmodpsocost <- function(mylspsoparam, mylspsoactivpart)
{
  if (mylspsoparam$modecost == 'angdlpso')
  {
    mydl <- sbamlpart2mydl(mylspsoactivpart = mylspsoactivpart)
    myprovres <- sbamlmoddlfw(mydl, X = mylspsoparam$angdl$X,
                              modexec = mydl$hpar$modexec,
                              nblayers = mydl$hpar$nblayers,
                              layersacttype = mydl$hpar$layersacttype,
                              layersdropoprob = mydl$hpar$layersdropoprob,
                              seed = mydl$hpar$seed,
                              batchnor_mom = mydl$hpar$batchnor_mom,
                              epsil = mydl$hpar$epsil)
    Yhat <- myprovres[["A"]]; mydl <- myprovres[["mydl"]]; rm(myprovres)
    mycost <- sbamlmoddlcost(mydl, y = mylspsoparam$angdl$Y,
                             yhat = Yhat,
                             costtype = mydl$hpar$costtype,
                             lambda = mydl$hpar$lambda,
                             nblayers = mydl$hpar$nblayers,
                             epsil = mydl$hpar$epsil)
    mylspsoactivpart$Cost <- mycost
    mylspsoactivpart$angdl$mydl <- mydl
    return(mylspsoactivpart)
  }
}

sbamlmoddlcost <- function(mydl, y, yhat, costtype, lambda, nblayers, epsil)
{
  if (costtype == 'crossentropy')
  {
    m = dim(y)[2]
    J <- y * log(yhat + epsil) + (1 - y) * log(1 - yhat + epsil)
    J[J > 0] <- 0;# if yhat + epsil > 1
    J <- (-1 / m) * sum(J)
  } else if (costtype == 'mse')
  {
    m = dim(y)[2]
    J <- (1 / (2 * m)) * sum((y - yhat) ^ 2)
  } else if (costtype == 'custom')
  {
    mytest <- try(eval(parse(text = mydl$hpar$costcustformul)), TRUE)
    if (grepl('error',class(mytest)[1])) {J = Inf}
  }
  if (lambda != 0)
  {
    m = dim(y)[2]
    l2regul <- 0
    for (l in 1:nblayers)
    {
      W <- mydl[[paste("mydl_W", l, sep = '')]]
      l2regul <- l2regul + (lambda / (2 * m)) * sum(W ^ 2)
    }
    J <- J + l2regul
  }
  return(J)
}

sbamlmoddlcostbk <- function(y, yhat, costtype)
{
  if (costtype == 'crossentropy')
  {
    dJ <- sbamlmatopebroadcst(sbamlmatopebroadcst(y, yhat, 'divid') * (-1),
                              sbamlmatopebroadcst((1 - y), (1 - yhat), 'divid'),
                              'add')
  } else if (costtype == 'mse')
  {
    dJ <- sbamlmatopebroadcst(yhat, y  * (-1), 'add')
  }
  return(dJ)
}

sbamlmoddldropo <- function(mymatA, mymatdD, mydropo)
{
  #inverted dropout
  mymin <- min(mymatA)
  mymax <- max(mymatA)
  mymatA <- sbamlmatopebroadcst(mymatA, mymatdD, 'mult') / (1 - mydropo)
  mymatA[mymatA > mymax] <- mymax
  mymatA[mymatA < mymin] <- mymin
  #why not to avoid result > 1 in cost function ...
  return(mymatA)
}

sbamlmoddlgradchk <- function(mydl, X, Y, nblayers, chkgradepsilon, epsil)
{
  mybigthetasize <- 0
  myvectrefpos <- myvectrefposname <- mygradapprox <- mygrad <- c()
  for (l in 1:nblayers)
  {
    myprov <- dim(mydl[[paste("mydl_W", l, sep = '')]])
    myvectrefpos <- c(myvectrefpos, mybigthetasize + myprov[1] * myprov[2])
    mybigthetasize <- mybigthetasize + myprov[1] * myprov[2]
    myvectrefposname <- c(myvectrefposname, paste('W',l,sep = ''))
    myprov <- dim(mydl[[paste("mydl_bB", l, sep = '')]])
    myvectrefpos <- c(myvectrefpos, mybigthetasize + myprov[1] * myprov[2])
    mybigthetasize <- mybigthetasize + myprov[1] * myprov[2]
    myvectrefposname <- c(myvectrefposname, paste('bB',l,sep = ''))
    if (mydl$hpar$batchnor_mom != 0)
    {
      myprov <- dim(mydl[[paste("mydl_j", l, sep = '')]])
      myvectrefpos <- c(myvectrefpos, mybigthetasize + myprov[1] * myprov[2])
      mybigthetasize <- mybigthetasize + myprov[1] * myprov[2]
      myvectrefposname <- c(myvectrefposname, paste('j',l,sep = ''))
      mygrad <- c(mygrad,
                  as.vector(mydl[[paste("mydl_dW", l, sep = '')]]),
                  as.vector(mydl[[paste("mydl_dbB", l, sep = '')]]),
                  as.vector(mydl[[paste("mydl_dj", l, sep = '')]]))
    } else {
      mygrad <- c(mygrad,
                  as.vector(mydl[[paste("mydl_dW", l, sep = '')]]),
                  as.vector(mydl[[paste("mydl_dbB", l, sep = '')]]))
    }
  }
  for (i in 1:mybigthetasize)
  {
    myrefpos <- 1; myflagcontinue <- 1
    while (myflagcontinue == 1)
    {
      if (i <= myvectrefpos[myrefpos])
      {
        myflagcontinue <- 0
      } else {
        myrefpos <- myrefpos + 1
      }
    }
    mymat <- mydl[[paste("mydl_",myvectrefposname[myrefpos] , sep = '')]]
    if (myrefpos == 1)
    {
      myposinmatrix <- i
    } else {
      myposinmatrix <- i - (myvectrefpos[myrefpos - 1])
    }
    myvalref <- mymat[myposinmatrix]
    mymat[myposinmatrix] <- myvalref + chkgradepsilon
    mydl[[paste("mydl_",myvectrefposname[myrefpos] , sep = '')]] <- mymat
    myprovres <- sbamlmoddlfw(mydl, X,
                              mydl$hpar$modexec,
                              nblayers,
                              layersacttype = mydl$hpar$layersacttype,
                              layersdropoprob = mydl$hpar$layersdropoprob,
                              seed = mydl$hpar$seed,
                              batchnor_mom = mydl$hpar$batchnor_mom, epsil = mydl$hpar$epsil)
    Yhat <- myprovres[["A"]]; mydl <- myprovres[["mydl"]]; rm(myprovres)
    Jplusepsilon <- sbamlmoddlcost(mydl, Y, Yhat,
                                   costtype = mydl$hpar$costtype,
                                   lambda = mydl$hpar$lambda,
                                   nblayers = nblayers,
                                   epsil = epsil)
    mymat[myposinmatrix] <- myvalref - chkgradepsilon
    mydl[[paste("mydl_",myvectrefposname[myrefpos] , sep = '')]] <- mymat
    myprovres <- sbamlmoddlfw(mydl, X,
                              mydl$hpar$modexec,
                              nblayers,
                              layersacttype = mydl$hpar$layersacttype,
                              layersdropoprob = mydl$hpar$layersdropoprob,
                              seed = mydl$hpar$seed,
                              batchnor_mom = mydl$hpar$batchnor_mom, epsil = mydl$hpar$epsil)
    Yhat <- myprovres[["A"]]; mydl <- myprovres[["mydl"]]; rm(myprovres)
    Jminusepsilon = sbamlmoddlcost(mydl, Y, Yhat,
                                   costtype = mydl$hpar$costtype,
                                   lambda = mydl$hpar$lambda,
                                   nblayers = nblayers,
                                   epsil = epsil)
    mygradapprox[i] = (Jplusepsilon - Jminusepsilon) / (2 * chkgradepsilon)
    mymat[myposinmatrix] <- myvalref
    mydl[[paste("mydl_",myvectrefposname[myrefpos] , sep = '')]] <- mymat
  }
  numerator = sbamlllnvectnorm((mygradapprox - mygrad), 2)
  denominator = sbamlllnvectnorm(mygradapprox, 2) + sbamlllnvectnorm(mygrad, 2)
  difference = numerator / denominator
  if (difference > chkgradepsilon)
  {
    cat(paste("Backward propagation to monitor! Difference =", difference, '\n'))
    cat(paste('Gradapprox:',
              paste(utils::head(mygradapprox), collapse = ', '), ' ... ', paste(utils::tail(mygradapprox), collapse = ', '),
              'Grad:',
              paste(utils::head(mygrad), collapse = ', '), ' ... ', paste(utils::tail(mygrad), collapse = ', '), '\n', sep = '\n'))
  } else {
    cat(paste("Backward propagation works fine! Difference =", difference, '\n'))
  }
}

automl_train <- function(Xref, Yref, autopar = list(), hpar = list(), mdlref = NULL)
{
  myautomatablehpar <- c('modexec','minibatchsize','learningrate',
                         'beta1','beta2','psopartpopsize',
                         'lambda','psovelocitymaxratio',
                         'layersshape','layersacttype','layersdropoprob')
  sbamlpart2parlln1 <- function(autopar = list(), hpar = list(), mylspsoparam = list())
  {
   sbamlpart2parlln2 <- function(mylspsoactivpart)
   {
    myactivpartnbr <- mylspsoactivpart$Best$idpart
    mylspsoparam$activpart <- myactivpartnbr
    myprovres <- sbamlmodpsooptkern(mylspsoparam = mylspsoparam, mylspsoactivpart = mylspsoactivpart)
    mylspsoparam <- myprovres[["mylspsoparam"]]
    mylspsoactivpart <- myprovres[["mylspsoactivpart"]]
    rm(myprovres)
    hpar$verbose <- FALSE
    hpar$useautopar <- TRUE
    hpar$seedautopar <- autopar$seed;#for train/test constant sampling
    hpar$seed <- autopar$seed + myactivpartnbr
    if (autopar$auto_modexec == TRUE & !"modexec" %in% names(hpar))
    {
     set.seed(autopar$seed + myactivpartnbr)
     hpar$modexec <- c('trainwgrad', 'trainwpso')[sample(2, 1, replace = TRUE)]
    } else if (autopar$auto_modexec == FALSE & !"modexec" %in% names(hpar))
    {
     hpar$modexec <- 'trainwgrad'
    }
    mydep = 1
    if (autopar$auto_minibatchsize == TRUE & !"minibatchsize" %in% names(hpar))
    {
     if (hpar$modexec != 'trainwpso')
     {
      hpar$minibatchsize <- eval(parse(text =
                                        paste0("2^round(",
                                               sbamlprepscalem11201(mylspsoactivpart$Position[mydep]),
                                               " * (",
                                               autopar$auto_minibatchsize_max,
                                               " - (",
                                               autopar$auto_minibatchsize_min,
                                               ")) + (",
                                               autopar$auto_minibatchsize_min,
                                               "), digits = 0)")
      ))
     }
    }
    mydep = mydep + 1
    if (autopar$auto_learningrate == TRUE & !"learningrate" %in% names(hpar))
    {
     hpar$learningrate <- eval(parse(text =
                                      paste0("10^(",
                                             sbamlprepscalem11201(mylspsoactivpart$Position[mydep]),
                                             " * (",
                                             autopar$auto_learningrate_max,
                                             " - (",
                                             autopar$auto_learningrate_min,
                                             ")) + (",
                                             autopar$auto_learningrate_min,
                                             "))")
     ))
    }
    mydep = mydep + 1
    if (autopar$auto_beta1 == TRUE & !"beta1" %in% names(hpar))
    {
     hpar$beta1 <- eval(parse(text =
                               paste0("1 - 10^(-",
                                      sbamlprepscalem11201(mylspsoactivpart$Position[mydep]),
                                      " - 1)")
     ))
    }
    mydep = mydep + 1
    if (autopar$auto_beta2 == TRUE & !"beta2" %in% names(hpar))
    {
     hpar$beta2 <- eval(parse(text =
                               paste0("1 - 10^(-",
                                      sbamlprepscalem11201(mylspsoactivpart$Position[mydep]),
                                      " - 2)")
     ))
    }
    mydep = mydep + 1
    if (autopar$auto_psopartpopsize == TRUE & !"psopartpopsize" %in% names(hpar))
    {
     hpar$psopartpopsize <- eval(parse(text =
                                        paste0("round(",
                                               sbamlprepscalem11201(mylspsoactivpart$Position[mydep]),
                                               " * (",
                                               autopar$auto_psopartpopsize_max,
                                               " - (",
                                               autopar$auto_psopartpopsize_min,
                                               ")) + (",
                                               autopar$auto_psopartpopsize_min,
                                               "), digits = 0)")
     ))
    }
    mydep = mydep + 1
    if (autopar$auto_lambda == TRUE & !"lambda" %in% names(hpar))
    {
     hpar$lambda <- eval(parse(text =
                                paste0("10^(",
                                       sbamlprepscalem11201(mylspsoactivpart$Position[mydep]),
                                       " * (",
                                       autopar$auto_lambda_max,
                                       " - (",
                                       autopar$auto_lambda_min,
                                       ")) + (",
                                       autopar$auto_lambda_min,
                                       "))")
     ))
    }
    mydep = mydep + 1
    if (autopar$auto_psovelocitymaxratio == TRUE & !"psovelocitymaxratio" %in% names(hpar))
    {
     hpar$psovelocitymaxratio <- eval(parse(text =
                                             paste0(sbamlprepscalem11201(mylspsoactivpart$Position[mydep]),
                                                    " * (",
                                                    autopar$auto_psovelocitymaxratio_max,
                                                    " - (",
                                                    autopar$auto_psovelocitymaxratio_min,
                                                    ")) + (",
                                                    autopar$auto_psovelocitymaxratio_min,
                                                    ")")
     ))
    }
    mydep <- mydep + 1
    if (any(c("layersshape", "layersacttype", "layersdropoprob") %in% names(hpar)))
    {
     if ("layersshape" %in% names(hpar))
     {
      mylayernbr <- length(hpar$layersshape)
     } else if ("layersacttype" %in% names(hpar))
     {
      mylayernbr <- length(hpar$layersacttype)
     } else if ("layersdropoprob" %in% names(hpar))
     {
      mylayernbr <- length(hpar$layersdropoprob)
     }
    } else {
     mylayernbr <- eval(parse(text =
                               paste0("round(",
                                      sbamlprepscalem11201(mylspsoactivpart$Position[mydep]),
                                      " * (",
                                      autopar$auto_layers_max,
                                      " - (",
                                      autopar$auto_layers_min,
                                      ")) + (",
                                      autopar$auto_layers_min,
                                      "), digits = 0)")
     ))
    }
    mydep <- mydep + 1
    if (autopar$auto_layers == TRUE & !"layersshape" %in% names(hpar))
    {
     myformula <- "c("
     for (i in mydep:(mydep + mylayernbr - 1))
     {
      if (i != (mydep + mylayernbr - 1))
      {
       myformula <- c(myformula, eval(parse(text =
                                             paste0("round(",
                                                    sbamlprepscalem11201(mylspsoactivpart$Position[i]),
                                                    " * (",
                                                    autopar$auto_layersnodes_max,
                                                    " - (",
                                                    autopar$auto_layersnodes_min,
                                                    ")) + (",
                                                    autopar$auto_layersnodes_min,
                                                    "), digits = 0)")
       )))
       myformula <- c(myformula, ',')
      } else {
       myformula <- c(myformula, '0)')
      }
     }
     hpar$layersshape <-  eval(parse(text = paste(myformula, collapse = '')))
    }
    mydep <- mydep + autopar$auto_layers_max
    if (autopar$auto_layers == TRUE & !"layersacttype" %in% names(hpar))
    {
     myformula <- "c("
     myhiddenacttype <- c('sigmoid', 'relu', 'reluleaky', 'tanh')
     for (i in mydep:(mydep + mylayernbr - 1))
     {
      if (i != (mydep + mylayernbr - 1))
      {
       myformula <- c(myformula, "'", myhiddenacttype[eval(parse(text =
                                                                  paste0("round(",
                                                                         sbamlprepscalem11201(mylspsoactivpart$Position[i]),
                                                                         " * (",
                                                                         length(myhiddenacttype),
                                                                         " - (",
                                                                         1,
                                                                         ")) + (",
                                                                         1,
                                                                         "), digits = 0)")
       ))], "'")
       myformula <- c(myformula, ',')
      } else {
       myformula <- c(myformula, "'')")
      }
     }
     hpar$layersacttype <-  eval(parse(text = paste(myformula, collapse = '')))
    }
    mydep <- mydep + autopar$auto_layers_max
    if (!"layersdropoprob" %in% names(hpar))
    {
     myformula <- "c("
     for (i in mydep:(mydep + mylayernbr - 1))
     {
      if (i != (mydep + mylayernbr - 1))
      {
       if (autopar$auto_layersdropo == FALSE)
       {
        myformula <- c(myformula, 0)
       } else {
        myformula <- c(myformula, eval(parse(text =
                                              paste0(sbamlprepscalem11201(mylspsoactivpart$Position[i]),
                                                     " * (",
                                                     autopar$auto_layersdropoprob_max,
                                                     " - (",
                                                     autopar$auto_layersdropoprob_min,
                                                     ")) + (",
                                                     autopar$auto_layersdropoprob_min,
                                                     ")")
        )))
       }
       myformula <- c(myformula, ',')
      } else {
       myformula <- c(myformula, '0)')
      }
     }
     hpar$layersdropoprob <-  eval(parse(text = paste(myformula, collapse = '')))
    }
    myprovres <- sbamlvalidhpar(hpar = hpar, myruntype = 'auto')
    hpar <- myprovres[["hpar"]]
    valhparflagok <- myprovres[["tstflagok"]]
    rm(myprovres)
    #
    if (valhparflagok == 1)
    {
     mymodel <- try(automl_train_manual(Xref = Xref, Yref = Yref, hpar = hpar), TRUE)
    } else {
     mymodel <- NULL
    }
    if (grepl('error', class(mymodel)[1]) | is.null(mymodel))
    {
     mymodel <- list(error = list(tr = Inf, cv = Inf))
     mylspsoactivpart$Cost <- Inf
    } else
    {
     mylspsoactivpart$Cost <- sbamlmodresult(trerr = mymodel$error$tr,
                                             cverr = mymodel$error$cv,
                                             cvflag = mymodel$hpar$testcvsize != 0 & mymodel$hpar$overfitautopar == FALSE)
     if (mylspsoactivpart$Cost < mylspsoactivpart$Best$Cost)
     {
      mylspsoactivpart$Best$Position <- mylspsoactivpart$Position
      mylspsoactivpart$Best$Cost <- mylspsoactivpart$Cost
      mylspsoactivpart$Best$idpart <- myactivpartnbr
      mylspsoactivpart$Best$model <- mymodel
     }
    }
    return(mylspsoactivpart)
   }
  }
  #
  hparref <- sbamlvalidhpar(hpar = hpar, myruntype = 'rawmanual')[["hpar"]]
  autoparref <- sbamlvalidautopar(autopar = autopar, myruntype = 'rawmanual')[["autopar"]]
  if (!is.null(mdlref))
  {
   myprovres <- sbamltestmodel(mymodel = mdlref, mymodeltype = 'auto', guess1stlayer = TRUE)
   mdlref <- myprovres[["mymodel"]]
   valmodautoflagok <- myprovres[["tstflagok"]]
   rm(myprovres)
   if (valmodautoflagok == 1)
   {
    #initializing autopar with mdlref$autopar if not defined
    for (i in 1:length(names(mdlref$autopar)))
    {
     if (!names(mdlref$autopar)[i] %in% names(autopar))
     {
      autopar[[names(mdlref$autopar)[i]]] <- mdlref$autopar[[names(mdlref$autopar)[i]]]
     }
    }
    #initializing hpar with mdlref$hpar
    autopar <- sbamlvalidautopar(autopar = autopar, myruntype = 'auto')[["autopar"]]
    myprovres <- sbamlmodhparcp(mdlref, myhpartoignore = myautomatablehpar, autopar, hpar)
    autopar <- myprovres[["autopar"]]
    hpar <- myprovres[["hpar"]]
    rm(myprovres)
   }
  } else {valmodautoflagok <- 0}
  #
  Xref <- t(as.matrix(Xref))
  Yref <- t(as.matrix(Yref))
  sbamlmatstest(Xref, Yref)
  Xref <- sbamlmattest(Xref, "Xref")
  Yref <- sbamlmattest(Yref, "Yref")
  #
  if (valmodautoflagok == 0)
  {
   autopar <- sbamlvalidautopar(autopar = autoparref, myruntype = 'manual')[["autopar"]]
  }
  #
  if (autopar$auto_runtype == "2steps")
  {
   myautonbloop <- 2
  } else {
   myautonbloop <- 1
  }
  #
  for (autoloopnbr in 1:myautonbloop)
  {
   if (autopar$auto_runtype == "2steps" & autoloopnbr == 1)
   {
    hpar$overfitautopar <- TRUE;#TRUE to overfit (cv but no cv test)
    autopar[["auto_lambda"]] <- FALSE
    autopar[["auto_layersdropo"]] <- FALSE
    myprovres <- sbamlvalidautopar(autopar = autopar, myruntype = 'auto')
    autopar <- myprovres[["autopar"]]
    if (myprovres[["tstflagok"]] == 0)
    {
     mylastlog <- ("wrng: so mdlref autopar won't be used")
     warning(mylastlog, immediate. = FALSE, noBreaks. = TRUE)
     autopar <- autoparref
     autopar[["auto_lambda"]] <- FALSE
     autopar[["auto_layersdropo"]] <- FALSE
     autopar <- sbamlvalidautopar(autopar = autopar, myruntype = 'manual')[["autopar"]]
    }
    rm(myprovres)

   } else if (autopar$auto_runtype == "2steps" & autoloopnbr == 2)
   {
    hpar$overfitautopar <- FALSE;#FALSE to generalize (cv w cv test)
    autopar[["auto_modexec"]] <- FALSE
    autopar[["auto_minibatchsize"]] <- FALSE
    autopar[["auto_learningrate"]] <- FALSE
    autopar[["auto_beta1"]] <- FALSE
    autopar[["auto_beta2"]] <- FALSE
    autopar[["auto_psopartpopsize"]] <- FALSE
    autopar[["auto_psovelocitymaxratio"]] <- FALSE
    autopar[["auto_layers"]] <- FALSE
    #
    autopar[["auto_lambda"]] <- TRUE
    autopar[["auto_layersdropo"]] <- TRUE
    #
    myprovres <- sbamltestmodel(mymodel = mdlref, mymodeltype = 'auto', guess1stlayer = TRUE)
    mdlref <- myprovres[["mymodel"]]
    valmodautoflagok <- myprovres[["tstflagok"]]
    rm(myprovres)
    if (valmodautoflagok == 1)
    {
     #initializing autopar with mdlref$autopar if not defined
     for (i in 1:length(names(mdlref$autopar)))
     {
      if (!names(mdlref$autopar)[i] %in% names(autopar))
      {
       autopar[[names(mdlref$autopar)[i]]] <- mdlref$autopar[[names(mdlref$autopar)[i]]]
      }
     }
     #initializing hpar with mdlref$hpar
     autopar <- sbamlvalidautopar(autopar = autopar, myruntype = 'manual')[["autopar"]]
     myprovres <- sbamlmodhparcp(mdlref, myhpartoignore = myautomatablehpar, autopar, hpar)
     autopar <- myprovres[["autopar"]]
     hpar <- myprovres[["hpar"]]
     rm(myprovres)
    }
   }
   #
   mylspsoparam <- list(
   modeinit = autopar$psomodeinit,
   modecost = autopar$psomodecost,
   nbvar2optim = autopar$psonbvar2optim,
   partpopsize = autopar$psopartpopsize,
   numiteration = autopar$numiterations,
   varvalmin = -1, varvalmax = 1,
   velocitymaxratio = autopar$psovelocitymaxratio,
   inertiadampratio = autopar$psoinertiadampratio,
   kappa = autopar$psokappa,
   phi1 = autopar$psophi1,
   phi2 = autopar$psophi2,
   seed = autopar$seed)
   myprovres <- sbamlmodpsoparam(mylspsoparam = mylspsoparam, mylspsopart = NULL)
   mylspsoparam <- myprovres[["mylspsoparam"]]
   mylspsopart <- myprovres[["mylspsopart"]]
   rm(myprovres)
   #
   mymc <- sbamlparllmc(autopar$nbcores)
   sbamlpart2parll <- sbamlpart2parlln1(autopar = autopar, hpar = hpar, mylspsoparam = mylspsoparam)
   #
   for (iternbr in 1:autopar$numiterations)
   {
    if (mymc != 1)
    {
     mylsres <- parallel::mclapply(X = mylspsopart, FUN = sbamlpart2parll,
                                   mc.preschedule = FALSE, mc.set.seed = FALSE,
                                   mc.silent = FALSE, mc.cores = getOption("mc.cores", mymc),
                                   mc.cleanup = TRUE, mc.allow.recursive = FALSE)
    } else {
     mylsres <- lapply(X = mylspsopart, FUN = sbamlpart2parll)
    }
    mylspsopart <- mylsres
    for (i in 1:autopar$psopartpopsize)
    {
     myflagok <- 1
     if (class(mylspsopart[[i]]) != "list")
     {
      myflagok <- 0
     } else
     {
      if (any(!c('Cost', 'Best') %in% names(mylspsopart[[i]])))
      {
       myflagok <- 0
      } else
      {
       if (any(!c('Cost', 'model', 'Position') %in% names(mylspsopart[[i]]$Best)))
       {
        myflagok <- 0
       } else
       {
        if (any(!c('error', 'hpar') %in% names(mylspsopart[[i]]$Best$model)))
        {
         myflagok <- 0
        } else
        {
         if (mylspsopart[[i]]$Best$model$error$tr == Inf)
         {
          myflagok <- 0
         }
        }
       }
      }
     }
     if (iternbr == 1 & i == 1 & autopar$verbose == TRUE)
     {
      if (autopar$auto_runtype == "2steps")
      {
       cat(paste('STEP: ', autoloopnbr,' (',ifelse(autoloopnbr == 1, 'overfitting', 'regularization'),')\n', sep = ''))
      }
      if (myflagok == 1) {cat(paste('(cost: ', mylspsopart[[i]]$Best$model$hpar$costtype,')\n', sep = ''))}
     }
     mylastlog <- paste("iteration", iternbr,
                        "particle", i, sep = " ")
     if (myflagok == 1)
     {
      if (is.na(mylspsopart[[i]]$Best$model$error$cv))
      {
       mylastlog <- paste(mylastlog, "weighted err:", round(mylspsopart[[i]]$Best$Cost, digits = 5), sep = " ")
      } else
      {
       mylastlog <- paste(mylastlog, "weighted err:", round(mylspsopart[[i]]$Best$Cost, digits = 5),
                          "(train:", round(mylspsopart[[i]]$Best$model$error$tr, digits = 5),
                          "cvalid:", round(mylspsopart[[i]]$Best$model$error$cv, digits = 5),
                          ")", sep = " ")
      }
      if (mylspsopart[[i]]$Best$Cost < mylspsoparam$globalbest$Cost)
      {
       mylspsoparam$globalbest <- mylspsopart[[i]]$Best
       mylastlog <- paste(mylastlog, "BEST MODEL KEPT", sep = " ")
      }
     } else
     {
      mylastlog <- paste(mylastlog, "no exploitable results", sep = " ")
     }
     if (autopar$verbose == TRUE) {cat(paste0(mylastlog, "\n"))}
    }
    mylspsoparam$globbestcostlog[iternbr, 1] <- mylspsoparam$globalbest$idpart
    mylspsoparam$globbestcostlog[iternbr, 2] <- mylspsoparam$globalbest$Cost
   }
   mymodel <- mylspsoparam$globalbest$model
   mylspsoparam$globalbest$model <- NULL
   mymodel$mylspsoparamlvauto <- mylspsoparam
   mymodel$autopar <- autopar
   myprovres <- sbamltestmodel(mymodel = mymodel, mymodeltype = 'auto')
   mymodel <- myprovres[["mymodel"]]
   rm(myprovres)
   if (autopar$auto_runtype == "2steps" & autoloopnbr == 1)
   {
    hpar <- hparref; autopar <- autoparref
    mdlref <- mymodel
   } else {
    return(mymodel)
   }
  }
}

automl_train_manual <- function(Xref, Yref, hpar = list(), mdlref = NULL)
{
  hpar <- sbamlvalidhpar(hpar = hpar, myruntype = 'rawmanual')[["hpar"]]
  if (!is.null(mdlref))
  {
   myprovres <- sbamltestmodel(mymodel = mdlref, mymodeltype = 'manual', guess1stlayer = TRUE)
   mdlref <- myprovres[["mymodel"]]
   valmodimpflagok <- myprovres[["tstflagok"]]
   rm(myprovres)
   if (valmodimpflagok == 1)
   {
    myprovres <- sbamlmodhparcp(mdlref, myhpartoignore = NULL, autopar = NULL, hpar)
    hpar <- myprovres[["hpar"]]
    valmodimpflagok <- myprovres[["valmodimpflagok"]]
    rm(myprovres)
    if ('autopar' %in% names(mdlref))
    {
     hpar$verbose <- TRUE
     hpar$useautopar <- FALSE
    }
   }
  } else {valmodimpflagok <- 0}
  #
  hpar <- sbamlvalidhpar(hpar = hpar, myruntype = 'manual')[["hpar"]]
  if (hpar$useautopar == FALSE)
  {
    Xref <- t(as.matrix(Xref))
    Yref <- t(as.matrix(Yref))
    sbamlmatstest(Xref, Yref)
    Xref <- sbamlmattest(Xref, "Xref")
    Yref <- sbamlmattest(Yref, "Yref")
  }
  mydl <- list()
  mydl$error$cv <- mydl$error$tr <- Inf
  if (valmodimpflagok == 1)
  {
   mydl <- sbamlmodcp(mdlref, mydl)
  }
  mydl[['hpar']] <- hpar
  mydl$hpar$layersshape <- c(dim(Xref)[1], mydl$hpar$layersshape)
  mydl$hpar$layersshape[length(mydl$hpar$layersshape)] <- dim(Yref)[1]
  mydl$hpar$nblayers <- length(mydl$hpar$layersshape) - 1
  if (mydl$hpar$layersacttype[mydl$hpar$nblayers] == '' | mydl$hpar$modexec == 'trainwgrad')
  {
    if (any(!Yref %in% c(0, 1)))
    {
      mydl$hpar$layersacttype[mydl$hpar$nblayers] <- 'linear'
    } else {
      mydl$hpar$layersacttype[mydl$hpar$nblayers] <- 'sigmoid'
    }
  }
  if (mydl$hpar$costcustformul != '' & mydl$hpar$modexec == 'trainwpso')
  {
    mydl$hpar$costtype <- 'custom'
  }
  if (mydl$hpar$costtype == '' | mydl$hpar$modexec == 'trainwgrad')
  {
    if (any(!Yref %in% c(0, 1)))
    {
      mydl$hpar$costtype <- 'mse'
    } else {
      mydl$hpar$costtype <- 'crossentropy'
    }
  }
  mynbtestsoktostop <- 1;#legacy hyperparam dropped to simplify
  mytestokcpt <- 0;#to avoid error with test while not defined
  mytrlastcost <- mycvlastcost <- mydl$hpar$epsil ^ -1;#why not to get a huge number
  if (mydl$hpar$testcvsize != 0)
  {
    #shuffling handled upstream
    mycvpctg <- mydl$hpar$testcvsize / 100
    mycvgainunder <- mydl$hpar$testgainunder / 100
    mythld <- floor(dim(Xref)[2] * mycvpctg)
    if (mydl$hpar$useautopar == FALSE)
    {
     set.seed(mydl$hpar$seed)
    } else {
     set.seed(mydl$hpar$seedautopar)
    }
    mysample <- sample(x = dim(Xref)[2], size = mythld, replace = FALSE)
    Xcv <- matrix(Xref[,mysample], nrow = dim(Xref)[1], byrow = F)
    Ycv <- matrix(Yref[,mysample], nrow = dim(Yref)[1], byrow = F)
    Xref <- matrix(Xref[,-mysample], nrow = dim(Xref)[1], byrow = F)
    Yref <- matrix(Yref[,-mysample], nrow = dim(Yref)[1], byrow = F)
  } else {
    mycvpctg <- mycvgainunder <- 0
  }
  if (mydl$hpar$minibatchsize != 0 & dim(Xref)[2] > mydl$hpar$minibatchsize)
  {
    nbbatch <- ceiling(dim(Xref)[2] / mydl$hpar$minibatchsize)
  } else {
    mydl$hpar$minibatchsize <- dim(Xref)[2]
    nbbatch <- 1
  }
  if (mydl$hpar$modexec == 'trainwgrad')
  {
    if (valmodimpflagok == 0)
    {
     mydl <- sbamlmoddlparaminit(mydl, mydl$hpar$layersshape, mydl$hpar$layersacttype, mydl$hpar$seed, mydl$hpar$batchnor_mom)
    }
  } else if (mydl$hpar$modexec == 'trainwpso')
  {
    mylspsoparam <- list(
      modeinit = mydl$hpar$psomodeinit,
      modecost = mydl$hpar$psomodecost,
      partpopsize = mydl$hpar$psopartpopsize,
      nbvar2optim = NULL, numiteration = mydl$hpar$numiterations,
      varvalmin = mydl$hpar$psovarvalmin, varvalmax = mydl$hpar$psovarvalmax,
      velocitymaxratio = mydl$hpar$psovelocitymaxratio,
      inertiadampratio = mydl$hpar$psoinertiadampratio,
      kappa = mydl$hpar$psokappa, phi1 = mydl$hpar$psophi1, phi2 = mydl$hpar$psophi2,
      seed = mydl$hpar$seed)
    mylspsoparam$angdl$mydl <- mydl
    myprovres <- sbamlmodpsoparam(mylspsoparam = mylspsoparam, mylspsopart = NULL)
    mylspsoparam <- myprovres[["mylspsoparam"]]
    mylspsopart <- myprovres[["mylspsopart"]]
    rm(myprovres)
    if (valmodimpflagok == 1 & "mylspsoparam" %in% names(mdlref))
    {
     mylspsoparam$globalbest <- mdlref$mylspsoparam$globalbest
     mylspsoparam$globalbest$idpart <- 1
     mylspsopart[[1]]$Position <- mylspsopart[[1]]$Best$Position <- mdlref$mylspsoparam$globalbest$Position
     mylspsopart[[1]]$Cost <- mylspsopart[[1]]$Best$Cost <- mdlref$mylspsoparam$globalbest$Cost
    }
  }

  myflagcontinue <- 1
  t <- 1
  if (mydl$hpar$verbose == TRUE)
  {
    cat(paste('(cost: ', mydl$hpar$costtype,')\n', sep = ''))
  }
  for (epochnum in 1:mydl$hpar$numiterations)
  {
    minibatchposstart <- 1
    for (batchnum in 1:nbbatch)
    {
      #ds shuffled upstream ;-)
      minibatchposend <- batchnum * mydl$hpar$minibatchsize
      if (minibatchposend > dim(Xref)[2]) {minibatchposend <- dim(Xref)[2]}
      if (minibatchposstart > dim(Xref)[2]) {minibatchposstart <- dim(Xref)[2]}
      if (nbbatch != 1 | (epochnum == 1 & nbbatch == 1))
      {
        X <- matrix(Xref[,minibatchposstart:minibatchposend], nrow = dim(Xref)[1], byrow = F)
        mydl[["mydl_A0"]] <- X
        Y <- matrix(Yref[,minibatchposstart:minibatchposend], nrow = dim(Yref)[1], byrow = F)
        if (mydl$hpar$modexec == 'trainwpso')
        {
          mylspsoparam$angdl$X <- X
          mylspsoparam$angdl$Y <- Y
        }
      }
      if (mydl$hpar$modexec == 'trainwpso')
      {
        for (i in 1:mylspsoparam$partpopsize)
        {
          mylspsoparam$activpart <- i
          myprovres <- sbamlmodpsooptkern(mylspsoparam = mylspsoparam, mylspsoactivpart = mylspsopart[[i]])
          mylspsoparam <- myprovres[["mylspsoparam"]]
          mylspsopart[[i]] <- myprovres[["mylspsoactivpart"]]
          rm(myprovres)
        }
        mylspsoparam$globbestcostlog[epochnum, 1] <- mylspsoparam$globalbest$idpart
        mylspsoparam$globbestcostlog[epochnum, 2] <- mylspsoparam$globalbest$Cost
        mydl <- mylspsoparam$angdl$mydl;#to set best angdlpso param
      }
      myprovres <- sbamlmoddlfw(mydl, X, mydl$hpar$modexec, mydl$hpar$nblayers, mydl$hpar$layersacttype,
                                mydl$hpar$layersdropoprob, mydl$hpar$seed, mydl$hpar$batchnor_mom,
                                mydl$hpar$epsil, epochnum, batchnum)
      Yhat <- myprovres[["A"]]; mydl <- myprovres[["mydl"]]; rm(myprovres)
      if (mydl$hpar$printcostevery != 0)
      {
        if ((epochnum %% mydl$hpar$printcostevery == 0 | epochnum == mydl$hpar$numiterations) & batchnum %% nbbatch == 0)
        {
          mytrcost <- sbamlmoddlcost(mydl, Y, Yhat, mydl$hpar$costtype,
                                     mydl$hpar$lambda, mydl$hpar$nblayers,
                                     mydl$hpar$epsil)
          mydl$error$tr <- mytrcost
          if (mydl$hpar$verbose == TRUE) {cat(paste('cost epoch',epochnum , ': ', mytrcost, sep = ''))}
          if (mydl$hpar$testcvsize != 0 & mydl$hpar$overfitautopar == FALSE)
          {
            mylastlog <- " "; mytestokcpt <- 0
            myprovres <- sbamlmoddlfw(mydl, Xcv, 'predict', mydl$hpar$nblayers, mydl$hpar$layersacttype,
                                      mydl$hpar$layersdropoprob, mydl$hpar$seed, mydl$hpar$batchnor_mom,
                                      mydl$hpar$epsil)
            Ycvhat <- myprovres[["A"]]; mydl <- myprovres[["mydl"]]; rm(myprovres)
            mycvcost <- sbamlmoddlcost(mydl, Ycv, Ycvhat, mydl$hpar$costtype, mydl$hpar$lambda,
                                       mydl$hpar$nblayers, mydl$hpar$epsil)
            mydl$error$cv <- mycvcost
            if (mydl$hpar$verbose == TRUE) {cat(paste(' (cv cost: ', mycvcost, ')', sep = ''))}
            if (abs(mytrlastcost - mytrcost) < mydl$hpar$testgainunder)
            {
              mylastlog <- paste(mylastlog, "[test trgainunder OK]", sep = " ")
              mytestokcpt <- mytestokcpt + 1
            }
            mytrlastcost <- mytrcost
            if (abs(mycvlastcost - mycvcost) < mycvgainunder)
            {
              mylastlog <- paste(mylastlog, "[test cvgainunder OK]", sep = " ")
              mytestokcpt <- mytestokcpt + 1
            }
            if (mylastlog != ' ')
            {
              if (mydl$hpar$verbose == TRUE) {cat(paste(mylastlog), '\n', sep = '')}
            }
            mycvlastcost <- mycvcost
          } else {
            mydl$error$cv <- NA
          }
          if (mydl$hpar$verbose == TRUE) {cat(paste(' (LR: ', mydl$hpar$learningrate, ')',
                    '\n', sep = ' '))}
          if (mytestokcpt >= mynbtestsoktostop)
          {
            if (mydl$hpar$verbose == TRUE) {cat(mylastlog)}
            myflagcontinue <- 0
          }
        }
      }
      if (mydl$hpar$modexec == 'trainwgrad' & (epochnum != mydl$hpar$numiterations & batchnum != nbbatch))
      {
        mydl <- sbamlmoddlbk(mydl, Y, Yhat, mydl$hpar$costtype, mydl$hpar$nblayers,
                             mydl$hpar$layersacttype, mydl$hpar$lambda, mydl$hpar$layersdropoprob,
                             mydl$hpar$batchnor_mom, mydl$hpar$epsil, epochnum, batchnum)
        if (mydl$hpar$chkgradevery != 0)
        {
          if (epochnum %% mydl$hpar$chkgradevery == 0 & batchnum %% nbbatch == 0)
          {
            sbamlmoddlgradchk(mydl, X, Y, mydl$hpar$nblayers, mydl$hpar$chkgradepsilon, mydl$hpar$epsil)
          }
        }
        mydl <- sbamlmoddlparamupdt(mydl, mydl$hpar$nblayers, mydl$hpar$learningrate, mydl$hpar$beta1,
                                    mydl$hpar$beta2, t, mydl$hpar$epsil, mydl$hpar$batchnor_mom)
      }
      t <- t + 1
      minibatchposstart <- minibatchposend + 1
    }
    if (myflagcontinue == 0)
    {
      break
    }
    if (mydl$hpar$lrdecayrate != 0)
    {
      mydl$hpar$learningrate <- mydl$hpar$learningrate / (1 + mydl$hpar$lrdecayrate * epochnum)
    }
  }
  if (mydl$hpar$modexec == 'trainwpso')
  {
    mylspsoparam$angdl <- NULL
    mydl$mylspsoparam <- mylspsoparam
  }
  if (mydl$hpar$verbose == TRUE)
  {
    cat(paste('   dim X', ': [', paste(dim(Xref), collapse = ','), ']\n', sep = ''))
    for (l in 1:mydl$hpar$nblayers)
    {
      W <- mydl[[paste("mydl_W", l, sep = '')]]
      bB <- mydl[[paste("mydl_bB", l, sep = '')]]
      cat(paste('   dim W', l, ': [', paste(dim(W), collapse = ','),
                '] (min|max: ',min(W),', ',max(W),
                ')\n   dim bB', l, ': [',  paste(dim(bB), collapse = ','),
                '] (min|max: ',min(bB),', ',max(bB),
                ')\n', sep = ''))
      if (mydl$hpar$batchnor_mom != 0)
      {
        j <- mydl[[paste("mydl_j", l, sep = '')]]
        cat(paste('   dim j', l, ': [', paste(dim(j), collapse = ','),
                  '] (min|max: ',min(j),', ',max(j),
                  ')\n', sep = ''))
      }
    }
    cat(paste('   dim Y', ': [', paste(dim(Yref), collapse = ','), ']\n', sep = ''))
  }
  myprovres <- sbamltestmodel(mymodel = mydl, mymodeltype = 'manual', guess1stlayer = FALSE)
  mydl <- myprovres[["mymodel"]]
  valmodflagok <- myprovres[["tstflagok"]]
  rm(myprovres)
  if (valmodflagok == 0 & mydl$hpar$useautopar == TRUE)
  {
   mylastlog <- ("error: model training error")
   stop(mylastlog);#to return error to automl_train
  }
  return(mydl)
}

automl_predict <- function(model, X, layoutputnum = 0)
{
  Yhat <- sbamlmoddlfw(model, t(X),
                       'predict',
                       ifelse(layoutputnum == 0, model$hpar$nblayer, layoutputnum),
                       model$hpar$layersacttype,
                       c(rep(0, length(model$hpar$layersacttype))),
                       model$hpar$seed,
                       batchnor_mom = model$hpar$batchnor_mom, epsil = model$hpar$epsil)[["A"]]
  if (dim(Yhat)[1] == 1)
  {
    Yhat <- as.vector(Yhat)
  } else {
    Yhat <- as.data.frame(t(Yhat), row.names = NULL, stringsAsFactors = FALSE)
  }
  return(Yhat)
}

sbamlmoddlbk <- function(mydl, Y, Yhat, costtype, nblayers, layersacttype, lambda, layersdropoprob, batchnor_mom, epsil,
                         epochnum = 0, batchnum = 0)
{
  m <- dim(Y)[2]
  for (l in nblayers:1)
  {
    if (l == nblayers)
    {
      dA <- sbamlmoddlcostbk(Y,
                             Yhat,
                             costtype)
      mydl[[paste("mydl_dA", l, sep = '')]] <- dA
    } else
    {
     dA <- mydl[[paste("mydl_dA", l, sep = '')]]
     if (layersdropoprob[l] != 0 & epochnum != 0 & batchnum != 0)
     {
      D <- mydl[[paste("mydl_D", l, sep = '')]]
      dA <- sbamlmoddldropo(dA, D, layersdropoprob[l])
     }
    }
    if (batchnor_mom == 0)
    {
      dZ <- sbamlmoddlsubbkact(mydl, dA, l, layersacttype[l], batchnor_mom)
    } else
    {
      dZt <- sbamlmoddlsubbkact(mydl, dA, l, layersacttype[l], batchnor_mom)
      # BN
      Z <- mydl[[paste("mydl_Z", l, sep = '')]]
      M <- mydl[[paste("mydl_M", l, sep = '')]]
      V <- mydl[[paste("mydl_V", l, sep = '')]]
      Zn <- mydl[[paste("mydl_Zn", l, sep = '')]]

      dbB <- matrix(apply(dZt, 1, sum), ncol = 1, byrow = FALSE) * (1 / m)
      mydl[[paste("mydl_dbB", l, sep = '')]] <- dbB
      dj <- matrix(apply(sbamlmatopebroadcst(Zn,
                                             dZt, 'mult')
                         , 1, sum), ncol = 1, byrow = FALSE) * (1 / m)
      mydl[[paste("mydl_dj", l, sep = '')]] <- dj
      #dZ
      j <- mydl[[paste("mydl_j", l, sep = '')]]
      Z_M <- sbamlmatopebroadcst(Z, M * (-1), 'add')
      Z_Ms <- Z_M ^ 2
      Ves <- (V + epsil) ^ (1 / 2)
      Vesinv <- Ves ^ (-1)
      dZn <- sbamlmatopebroadcst(dZt, j, 'mult')
      dZ_M1 <- sbamlmatopebroadcst(dZn, Vesinv, 'mult')
      dVesinv <- matrix(apply(sbamlmatopebroadcst(dZn, Z_M, 'mult'), 1, sum),
                        ncol = 1, byrow = FALSE);# * (1 / m)
      dVes <- sbamlmatopebroadcst(dVesinv, (Ves ^ -2) * (-1), 'mult')
      dV <- sbamlmatopebroadcst(dVes, (Ves ^ -1) * 0.5, 'mult')
      dZ_Ms <- dV * (1 / m)
      dZ_M2 <- sbamlmatopebroadcst(Z_M * 2, dZ_Ms, 'mult')
      dZ_M <- sbamlmatopebroadcst(dZ_M1, dZ_M2, 'add')
      dM <- matrix(apply(dZ_M * (-1), 1, sum), ncol = 1, byrow = FALSE)
      dZ <- sbamlmatopebroadcst(dZ_M, dM * (1 / m), 'add')
    }
    Aprev <- mydl[[paste("mydl_A",(l - 1), sep = '')]]
    W <- mydl[[paste("mydl_W", l, sep = '')]]
    mygrads <- sbamlmoddlsubbklin(mydl, dZ, Aprev, W, l, lambda,
                                  batchnor_mom)
    mydl[[paste("mydl_dW", l, sep = '')]] <- mygrads$dW
    if (batchnor_mom == 0)
    {
      mydl[[paste("mydl_dbB", l, sep = '')]] <- mygrads$dbB
    }
    if (l != 1)
    {
      mydl[[paste("mydl_dA", (l - 1), sep = '')]] <- mygrads$dAprev
    }
  }
  return(mydl)
}

sbamlmoddlfw <- function(mydl, X, modexec, nblayers, layersacttype, layersdropoprob, seed, batchnor_mom, epsil,
                         epochnum = 0, batchnum = 0)
{
  Aprev <- X
  for (l in 1:nblayers)
  {
    W <- mydl[[paste("mydl_W", l, sep = '')]]
    bB <- mydl[[paste("mydl_bB", l, sep = '')]]
    if (batchnor_mom == 0)
    {
      Z <- sbamlmatopebroadcst(sbamlmatopebroadcst(W, Aprev, 'dot'), bB, 'add')
      A <- sbamlmoddlsubfwact(Z, layersacttype[l])
    } else {
      Z <- sbamlmatopebroadcst(W, Aprev, 'dot')
      if (modexec %in% c('trainwgrad', 'trainwpso'))
      {
        m = dim(Z)[2]
        M <- (1 / m) * matrix(apply(Z, 1, sum), nrow = dim(Z)[1], ncol = 1, byrow = FALSE)
        Z_M <- sbamlmatopebroadcst(Z, M * (-1), 'add')
        V <- (1 / m) * matrix(apply(Z_M ^ 2, 1, sum), nrow = dim(Z)[1], ncol = 1, byrow = FALSE)
        Vesinv <- (V + epsil) ^ (-1 / 2)
        Zn <- sbamlmatopebroadcst(Z_M, Vesinv, 'mult')
        mydl[[paste("mydl_M", l, sep = '')]] <- M
        mydl[[paste("mydl_V", l, sep = '')]] <- V
        if (modexec == 'trainwpso')
        {
          vM <- mydl[[paste("mydl_vM", l, sep = '')]]
          mydl[[paste("mydl_vM", l, sep = '')]] <- sbamlexponweigtdavg(M, vM, batchnor_mom, tbiascorrection = 1)
          vV <- mydl[[paste("mydl_vV", l, sep = '')]]
          mydl[[paste("mydl_vV", l, sep = '')]] <- sbamlexponweigtdavg(V, vV, batchnor_mom, tbiascorrection = 1)
        }
      } else {
        M <- mydl[[paste("mydl_vM", l, sep = '')]]
        Zn <- sbamlmatopebroadcst(Z, M * (-1), 'add')
        V <- mydl[[paste("mydl_vV", l, sep = '')]]
        Zn <- sbamlmatopebroadcst(Zn, (V + epsil) ^ (-1 / 2), 'mult')
      }
      j <- mydl[[paste("mydl_j", l, sep = '')]]
      Zt <- sbamlmatopebroadcst(sbamlmatopebroadcst(Zn, j, 'mult'), bB, 'add')
      A <- sbamlmoddlsubfwact(Zt, layersacttype[l])
    }
    if (modexec %in% c('trainwgrad', 'trainwpso'))
    {
      if (layersdropoprob[l] != 0 & epochnum != 0 & batchnum != 0)
      {
        set.seed(ifelse(epochnum + batchnum > .Machine$integer.max,
                        epochnum + batchnum - .Machine$integer.max,
                        epochnum + batchnum))
        D <- matrix(stats::runif(n = dim(A)[1] * dim(A)[2], min = 0, max = 1),
                    nrow = dim(A)[1], ncol = dim(A)[2], byrow = FALSE)
        D <- D > layersdropoprob[l]
        A <- sbamlmoddldropo(A, D, layersdropoprob[l])
      }
      mydl[[paste("mydl_Z", l, sep = '')]] <- Z
      mydl[[paste("mydl_A", l, sep = '')]] <- A
      if (layersdropoprob[l] != 0 & epochnum != 0 & batchnum != 0)
      {
        mydl[[paste("mydl_D", l, sep = '')]] <- D
      }
      if (batchnor_mom != 0)
      {
        mydl[[paste("mydl_Zn", l, sep = '')]] <- Zn
        mydl[[paste("mydl_Zt", l, sep = '')]] <- Zt
      }
    }
    if (l != nblayers) {Aprev <- A}
  }
  return(list(A = A, mydl = mydl))
}

sbamlmatopebroadcst <- function(mat1, mat2, optype = 'dot')
{
  # optype
  #  'add' add matrices
  #  'mult' mutiply matrices element wise
  #  'divide' divide matrices element wise
  #  'dot' mutiply matrices
  #
  if (is.null(dim(mat1)) | is.null(dim(mat2)))
  {
    mylastlog <- ("fctmatopebroadcst mat1 or/n 2 is not a matrix")
    stop(mylastlog)
  } else {
    n1 = dim(mat1)[1]
    m1 = dim(mat1)[2]
    n2 = dim(mat2)[1]
    m2 = dim(mat2)[2]
    mat1[is.na(mat1) | is.infinite(mat1)] <- 0
    mat2[is.na(mat2) | is.infinite(mat2)] <- 0
  }
  if ((optype %in% c('add', 'mult', 'divid') & n1 != n2) |
      (optype %in% c('dot') & m1 != n2))
  {
    mylastlog <- paste("fctmatopebroadcst mat1 n mat2 w wrong shape for", optype, sep = " ")
    stop(mylastlog)
  }
  if (optype %in% c('add', 'mult', 'divid'))
  {
    if (m2 == 1 & m2 != m1)
    {
      #broadcast
      mat2 <- matrix(rep(mat2[,1], m1), ncol = m1, byrow = FALSE)
    }
    if (optype == 'add')
    {
      matres <- mat1 + mat2
    } else if (optype == 'mult')
    {
      matres <- mat1 * mat2
    } else if (optype == 'divid')
    {
      mat2[mat2 == 0] <- 1e-12
      matres <- mat1 / mat2
    }
  } else if (optype == 'dot')
  {
    matres <- mat1 %*% mat2
  }
  return(matres)
}

sbamlmoddlsubbkact <- function(mydl, dA, l, activtype, batchnor_mom)
{
  if (activtype == 'sigmoid')
  {
    A <- mydl[[paste("mydl_A", l, sep = '')]]
    dZ <- sbamlmatopebroadcst(dA, sbamlmodsigmoidbk(A), 'mult')
  } else  if (activtype == 'relu')
  {
    if (batchnor_mom == 0)
    {
      Z <- mydl[[paste("mydl_Z", l, sep = '')]]
    } else {
      Z <- mydl[[paste("mydl_Zt", l, sep = '')]]
    }
    dZ <- sbamlmatopebroadcst(dA, sbamlmodrelubk(Z), 'mult')
  } else if (activtype == 'reluleaky')
  {
    if (batchnor_mom == 0)
    {
      Z <- mydl[[paste("mydl_Z", l, sep = '')]]
    } else {
      Z <- mydl[[paste("mydl_Zt", l, sep = '')]]
    }
    dZ <- sbamlmatopebroadcst(dA, sbamlmodreluleakybk(Z), 'mult')
  } else if (activtype == 'tanh')
  {
    A <- mydl[[paste("mydl_A", l, sep = '')]]
    dZ <- sbamlmatopebroadcst(dA, sbamlmodtanhbk(A), 'mult')
  } else if (activtype == 'linear')
  {
    dZ <- dA
  }
  return(dZ)
}

sbamlmoddlsubbklin <- function(mydl, dZ, Aprev, W, l, lambda, batchnor_mom)
{
  m <- dim(Aprev)[2]
  dW <- sbamlmatopebroadcst(dZ, t(Aprev), 'dot') * (1 / m)
  if (lambda != 0)
  {
    dW <- sbamlmatopebroadcst(dW , W * (lambda / m), 'add')
  }
  if (batchnor_mom == 0)
  {
    dbB <- matrix(apply(dZ, 1, sum), ncol = 1, byrow = FALSE) * (1 / m)
    res <- list(
      'dW' = dW,
      'dbB' = dbB
    )
  } else {
    res <- list(
      'dW' = dW
    )
  }

  if (l != 1)
  {
    dAprev <- sbamlmatopebroadcst(t(W), dZ, 'dot')
    res[['dAprev']] = dAprev
  }
  return(res)
}

sbamlmoddlsubfwact <- function(Z, activtype)
{
  if (activtype == 'sigmoid')
  {
    A <- sbamlmodsigmoid(Z)
  } else  if (activtype == 'relu')
  {
    A <- sbamlmodrelu(Z)
  } else if (activtype == 'reluleaky')
  {
    A <- sbamlmodreluleaky(Z)
  } else if (activtype == 'tanh')
  {
    A <- tanh(Z)
  } else if (activtype == 'linear')
  {
    A <- Z
  } else if (activtype == 'softmax')
  {
    A <- sbamlmodsoftmax(Z)
  }
  return(A)
}

sbamlmoddlparaminit <- function(mydl, layersshape, layersacttype, seed, batchnor_mom)
{
  for (l in 1:(length(layersshape) - 1))
  {
    n = layersshape[l + 1]
    m = layersshape[l]
    set.seed(seed + l)
    mymat <- matrix(stats::rnorm(m * n, mean = 0, sd = 1), nrow = n, ncol = m, byrow = FALSE)
    if (layersacttype[l] %in% c('relu', 'reluleaky'))
    {
      mymat <- mymat * sqrt(2 / m)
    } else if (layersacttype[l] == 'tanh')
    {
      mymat <- mymat * sqrt(1 / m)
    } else
    {
      mymat <- mymat * 0.01
    }

    mydl[[paste("mydl_W", l, sep = '')]] <- mymat
    mymat <- matrix(rep(0, m * n), nrow = n, ncol = m)
    mydl[[paste("mydl_vdW", l, sep = '')]] <- mymat
    mydl[[paste("mydl_sdW", l, sep = '')]] <- mymat
    mymat <- matrix(rep(0, n),nrow = n, ncol = 1)
    mydl[[paste("mydl_bB", l, sep = '')]] <- mymat
    mydl[[paste("mydl_vdbB", l, sep = '')]] <- mymat
    mydl[[paste("mydl_sdbB", l, sep = '')]] <- mymat
    #if (batchnor_mom != 0);#legacy: same architecture 4 all since mdlref
    mymat <- matrix(rep(1, n),nrow = n, ncol = 1)
    mydl[[paste("mydl_j", l, sep = '')]] <- mymat
    mydl[[paste("mydl_vdj", l, sep = '')]] <- mymat
    mydl[[paste("mydl_sdj", l, sep = '')]] <- mymat
    mymat <- matrix(rep(0, n),nrow = n, ncol = 1)
    mydl[[paste("mydl_M", l, sep = '')]] <- mymat
    mydl[[paste("mydl_vM", l, sep = '')]] <- mymat
    mydl[[paste("mydl_V", l, sep = '')]] <- mymat
    mydl[[paste("mydl_vV", l, sep = '')]] <- mymat
  }
  return(mydl)
}

sbamlmoddlparamupdt <- function(mydl, nblayers, dllearngrate, beta1, beta2, t, epsil, batchnor_mom)
{
  myflagok <- 1
  for (l in 1:nblayers)
  {
    W <- mydl[[paste("mydl_W", l, sep = '')]]
    dW <- mydl[[paste("mydl_dW", l, sep = '')]]
    bB <- mydl[[paste("mydl_bB", l, sep = '')]]
    dbB <- mydl[[paste("mydl_dbB", l, sep = '')]]
    if (beta1 != 0)
    {
      vdW <- mydl[[paste("mydl_vdW", l, sep = '')]]
      vdW <- sbamlexponweigtdavg(dW, vdW, beta1, t)
      mydl[[paste("mydl_vdW", l, sep = '')]] <- vdW
      vdbB <- mydl[[paste("mydl_vdbB", l, sep = '')]]
      vdbB <- sbamlexponweigtdavg(dbB, vdbB, beta1, t)
      mydl[[paste("mydl_vdbB", l, sep = '')]] <- vdbB
    }
    if (beta2 != 0)
    {
      sdW <- mydl[[paste("mydl_sdW", l, sep = '')]]
      sdW <- sbamlexponweigtdavg(dW ^ 2, sdW, beta2, t)
      mydl[[paste("mydl_sdW", l, sep = '')]] <- sdW
      sdbB <- mydl[[paste("mydl_sdbB", l , sep = '')]]
      sdbB <- sbamlexponweigtdavg(dbB ^ 2, sdbB, beta2, t)
      mydl[[paste("mydl_sdbB", l, sep = '')]] <- sdbB
    }
    if (beta1 != 0 & beta2 == 0 )
    {
      #gradient with Momentum
      dW <- vdW
      dbB <- vdbB
    } else if (beta1 == 0 & beta2 != 0 )
    {
      #gradient with RMSprop
      dW <- sbamlmatopebroadcst(dW, sqrt(sdW) + epsil, 'divid')
      dbB <- sbamlmatopebroadcst(dbB, sqrt(sdbB) + epsil, 'divid')
    } else if (beta1 != 0 & beta2 != 0 )
    {
      #gradient with adam optimization
      dW <- sbamlmatopebroadcst(vdW, sqrt(sdW) + epsil, 'divid')
      dbB <- sbamlmatopebroadcst(vdbB, sqrt(sdbB) + epsil, 'divid')
    }
    W <- sbamlmatopebroadcst(W, (-dllearngrate * dW), 'add')
    mydl[[paste("mydl_W", l, sep = '')]] <- W
    bB <- sbamlmatopebroadcst(bB, (-dllearngrate * dbB), 'add')
    mydl[[paste("mydl_bB", l, sep = '')]] <- bB
    if (any(is.na(W)) | any(is.na(bB)))
    {
      mylastlog <- "error: NaN produced in W or bB \n"
      myflagok <- 0
    }
    # BN
    if (batchnor_mom != 0)
    {
      j <- mydl[[paste("mydl_j", l, sep = '')]]
      dj <- mydl[[paste("mydl_dj", l, sep = '')]]
      if (beta1 != 0)
      {
        vdj <- mydl[[paste("mydl_vdj", l, sep = '')]]
        vdj <- sbamlexponweigtdavg(dj, vdj, beta1, t)
        mydl[[paste("mydl_vdj", l, sep = '')]] <- vdj
      }
      if (beta2 != 0)
      {
        sdj <- mydl[[paste("mydl_sdj", l, sep = '')]]
        sdj <- sbamlexponweigtdavg(dj ^ 2, sdj, beta2, t)
        mydl[[paste("mydl_sdj", l, sep = '')]] <- sdj
      }
      if (beta1 != 0 & beta2 == 0 )
      {
        #gradient with Momentum
        dj <- vdj
      } else if (beta1 == 0 & beta2 != 0 )
      {
        #gradient with RMSprop
        dj <- sbamlmatopebroadcst(dj, sqrt(sdj) + epsil, 'divid')
      } else if (beta1 != 0 & beta2 != 0 )
      {
        #gradient with adam optimization
        dj <- sbamlmatopebroadcst(vdj, sqrt(sdj) + epsil, 'divid')
      }
      j <- sbamlmatopebroadcst(j, (-dllearngrate * dj), 'add')
      if (any(is.na(j)))
      {
        mylastlog <- "error: NaN produced in j \n"
        myflagok <- 0
      }
      mydl[[paste("mydl_j", l, sep = '')]] <- j

      M <- mydl[[paste("mydl_M", l, sep = '')]]
      vM <- mydl[[paste("mydl_vM", l, sep = '')]]
      mydl[[paste("mydl_vM", l, sep = '')]] <- sbamlexponweigtdavg(M, vM, batchnor_mom, t)
      V <- mydl[[paste("mydl_V", l, sep = '')]]
      vV <- mydl[[paste("mydl_vV", l, sep = '')]]
      mydl[[paste("mydl_vV", l, sep = '')]] <- sbamlexponweigtdavg(V, vV, batchnor_mom, t)
    }
    if (myflagok == 0)
    {
      cat(mylastlog)
      stop(mylastlog, call. = FALSE)
    }
  }
  return(mydl)
}

sbamlexponweigtdavg <- function(valtosmooth, prevval, Beta, tbiascorrection = 1)
{
  if (tbiascorrection != 1)
  {
    if (is.null(dim(valtosmooth)))
    {
      newval <- Beta * prevval + valtosmooth * (1 - Beta)
    } else {
      newval <- sbamlmatopebroadcst(Beta * prevval,
                                    valtosmooth * (1 - Beta),
                                    'add')
    }
  } else {
    newval <- valtosmooth
    #newval <- newval * 1 / (1 - Beta ^ tbiascorrection)
  }
  return(newval)
}

sbamlmodrelu <- function(x)
{
  res = ifelse(x < 0, 0, x)
  return(res)
}

sbamlmodrelubk <- function(x)
{
  res = ifelse(x < 0, 0, 1)
  return(res)
}

sbamlmodreluleaky <- function(x)
{
  res = ifelse(x < 0, 0.01 * x, x)
  return(res)
}

sbamlmodreluleakybk <- function(x)
{
  res = ifelse(x < 0, 0.01, 1)
  return(res)
}

sbamlmodsigmoid <- function(z)
{
  g = (1 + exp(-z)) ^ (-1)
  return(g)
}

sbamlmodsigmoidbk <- function(x)
{
  res = x * (1 - x)
  return(res)
}

sbamlmodsoftmax <- function(z)
{
  g = exp(z)
  gs = matrix(apply(g, 2, sum), ncol = ncol(g), nrow = nrow(g), byrow = TRUE)
  g = sbamlmatopebroadcst(g, gs, 'divid')
  return(g)
}

sbamlmodtanhbk <- function(x)
{
  res = 1 - x^2
  return(res)
}

sbamlllnvectnorm <- function(x, n = 2)
{
  res = (sum(x^n))^(1 / n)
  return(res)
}

sbamlgetintdec <- function(x, part='int', nbedec = 0)
{
  #transform negatives val to positives ones
  x = abs(x)
  nbedec2 = nbedec + 1
  pint = as.integer(floor(x + (1/(10 ^ nbedec2))))
  pdec = as.integer(floor(10 ^ nbedec*((x + (1/(10 ^ nbedec2)) - pint))))
  res <- ifelse(part == 'int', pint,pdec)
  return(res)
}

sbamlmattest <- function(mymat, mymatname)
{
  if (is.numeric(mymat))
  {
    if (any(is.na(mymat)))
    {
      mymat[is.na(mymat)] <- 0
      mylastlog <- paste("wrng: NAs replaced by 0s in", mymatname, sep = " ")
      warning(mylastlog, immediate. = FALSE, noBreaks. = TRUE)
    }
    if (any(is.infinite(mymat)))
    {
      mymat[is.infinite(mymat)] <- 0
      mylastlog <- paste("wrng: infinite values replaced by 0s in", mymatname, sep = " ")
      warning(mylastlog, immediate. = FALSE, noBreaks. = TRUE)
    }
  } else {
    mylastlog <- paste("error:", mymatname, "type is not numeric", sep = " ")
    stop(mylastlog)
  }
 return(mymat)
}

sbamlmatstest <- function(Xref, Yref)
{
  #on transposed matrices
  if (dim(Xref)[2] != dim(Yref)[2])
  {
    mylastlog <- ("error: Xref and Yref have different number of rows")
    stop(mylastlog)
  }
}

sbamlpart2mydl <- function(mylspsoactivpart)
{
  mydl <- mylspsoactivpart$angdl$mydl
  myvectrefpos1 <- 1
  for (l in 1:mydl$hpar$nblayers)
  {
    myvectrefposname <- paste("mydl_W", l, sep = '')
    myprov <- dim(mydl[[myvectrefposname]])
    myvectrefpos2 <- c(myvectrefpos1 + myprov[1] * myprov[2] - 1)
    mymat <- matrix(mylspsoactivpart$Position[myvectrefpos1:myvectrefpos2], nrow = myprov[1], ncol = myprov[2], byrow = F)
    mydl[[myvectrefposname]] <- mymat
    myvectrefpos1 <- myvectrefpos2 + 1
    myvectrefposname <- paste("mydl_bB", l, sep = '')
    myprov <- dim(mydl[[myvectrefposname]])
    myvectrefpos2 <- c(myvectrefpos1 + myprov[1] * myprov[2] - 1)
    mymat <- matrix(mylspsoactivpart$Position[myvectrefpos1:myvectrefpos2], nrow = myprov[1], ncol = myprov[2], byrow = F)
    mydl[[myvectrefposname]] <- mymat
    myvectrefpos1 <- myvectrefpos2 + 1
    if (mydl$hpar$batchnor_mom != 0)
    {
      myvectrefposname <- paste("mydl_j", l, sep = '')
      myprov <- dim(mydl[[myvectrefposname]])
      myvectrefpos2 <- c(myvectrefpos1 + myprov[1] * myprov[2] - 1)
      mymat <- matrix(mylspsoactivpart$Position[myvectrefpos1:myvectrefpos2], nrow = myprov[1], ncol = myprov[2], byrow = F)
      mydl[[myvectrefposname]] <- mymat
      myvectrefpos1 <- myvectrefpos2 + 1
    }
  }
  return(mydl)
}

sbamlvalidautopar <- function(autopar, myruntype = 'manual')
{
 #myruntype:
 # = 'manual' produce error on error
 # = 'auto' produce warning on error
 # = 'rawmanual' only raw test produce error on error
 # = 'rawauto' only raw test produce warning on error
 myflagok <- 1
 if (class(autopar) != 'list')
 {
  if (myruntype %in% c('manual', 'rawmanual'))
  {
   mylastlog <- ("error: autopar is not a list")
   stop(mylastlog)
  } else if (myruntype %in% c('auto', 'rawauto')) {
   myflagok <- 0
   mylastlog <- ("wrng: autopar is not a list")
   warning(mylastlog, immediate. = FALSE, noBreaks. = TRUE)
  }
 }
 if (myflagok == 1 & !myruntype %in% c('rawmanual', 'rawauto'))
 {
  #
  myprov <- names(autopar)
  if (!"seed" %in% myprov) {autopar[["seed"]] <- 4}
  if (!"nbcores" %in% myprov) {autopar[["nbcores"]] <- 1}
  if (!"verbose" %in% myprov) {autopar[["verbose"]] <- TRUE}
  if (!"psomodeinit" %in% myprov) {autopar[["psomodeinit"]] <- 'autopar'}
  if (!"psomodecost" %in% myprov) {autopar[["psomodecost"]] <- 'autopar'}
  if (!"psopartpopsize" %in% myprov) {autopar[["psopartpopsize"]] <- 8}
  if (!"numiterations" %in% myprov) {autopar[["numiterations"]] <- 3}
  if (!"psovelocitymaxratio" %in% myprov) {autopar[["psovelocitymaxratio"]] <- 0.2}
  if (!"psoinertiadampratio" %in% myprov) {autopar[["psoinertiadampratio"]] <- 1}
  if (!"psokappa" %in% myprov) {autopar[["psokappa"]] <- 1}
  if (!"psophi1" %in% myprov) {autopar[["psophi1"]] <- 2.05}
  if (!"psophi2" %in% myprov) {autopar[["psophi2"]] <- 2.05}
  if (!"auto_modexec" %in% myprov) {autopar[["auto_modexec"]] <- FALSE}
  if (!"auto_runtype" %in% myprov) {autopar[["auto_runtype"]] <- 'normal'}
  if (!"auto_minibatchsize" %in% myprov) {autopar[["auto_minibatchsize"]] <- TRUE}
  if (!"auto_minibatchsize_min" %in% myprov) {autopar[["auto_minibatchsize_min"]] <- 0}
  if (!"auto_minibatchsize_max" %in% myprov) {autopar[["auto_minibatchsize_max"]] <- 9}
  if (!"auto_learningrate" %in% myprov) {autopar[["auto_learningrate"]] <- TRUE}
  if (!"auto_learningrate_min" %in% myprov) {autopar[["auto_learningrate_min"]] <- -5}
  if (!"auto_learningrate_max" %in% myprov) {autopar[["auto_learningrate_max"]] <- -2}
  if (!"auto_beta1" %in% myprov) {autopar[["auto_beta1"]] <- TRUE}
  if (!"auto_beta2" %in% myprov) {autopar[["auto_beta2"]] <- TRUE}
  if (!"auto_psopartpopsize" %in% myprov) {autopar[["auto_psopartpopsize"]] <- TRUE}
  if (!"auto_psopartpopsize_min" %in% myprov) {autopar[["auto_psopartpopsize_min"]] <- 2}
  if (!"auto_psopartpopsize_max" %in% myprov) {autopar[["auto_psopartpopsize_max"]] <- 50}
  if (!"auto_lambda" %in% myprov) {autopar[["auto_lambda"]] <- FALSE}
  if (!"auto_lambda_min" %in% myprov) {autopar[["auto_lambda_min"]] <- -2}
  if (!"auto_lambda_max" %in% myprov) {autopar[["auto_lambda_max"]] <- 4}
  if (!"auto_psovelocitymaxratio" %in% myprov) {autopar[["auto_psovelocitymaxratio"]] <- TRUE}
  if (!"auto_psovelocitymaxratio_min" %in% myprov) {autopar[["auto_psovelocitymaxratio_min"]] <- 0.01}
  if (!"auto_psovelocitymaxratio_max" %in% myprov) {autopar[["auto_psovelocitymaxratio_max"]] <- 0.5}
  if (!"auto_layers" %in% myprov) {autopar[["auto_layers"]] <- TRUE}
  if (!"auto_layers_min" %in% myprov) {autopar[["auto_layers_min"]] <- 1}
  if (!"auto_layers_max" %in% myprov) {autopar[["auto_layers_max"]] <- 2}
  if (!"auto_layersnodes_min" %in% myprov) {autopar[["auto_layersnodes_min"]] <- 3}
  if (!"auto_layersnodes_max" %in% myprov) {autopar[["auto_layersnodes_max"]] <- 33}
  if (!"auto_layersdropo" %in% myprov) {autopar[["auto_layersdropo"]] <- FALSE}
  if (!"auto_layersdropoprob_min" %in% myprov) {autopar[["auto_layersdropoprob_min"]] <- 0.05}
  if (!"auto_layersdropoprob_max" %in% myprov) {autopar[["auto_layersdropoprob_max"]] <- 0.75}
  rm(myprov)
  #
  myprov <- c(autopar$auto_minibatchsize,
              autopar$auto_learningrate,
              autopar$auto_beta1,
              autopar$auto_beta2,
              autopar$auto_psopartpopsize,
              autopar$auto_lambda,
              autopar$auto_psovelocitymaxratio)
  if (autopar$auto_layers == TRUE | autopar$auto_layersdropo == TRUE)
  {
   myprov <- c(myprov, rep(1, (1 + 3 * autopar$auto_layers_max)));#because layers nb, nodes nbs, act types, dropout
  }
  #100 reservations for positions initialization reproductibility
  if (length(myprov) > 100)
  {
   mylastlog <- ("wrng: positions initialization reproductibility")
   warning(mylastlog, immediate. = FALSE, noBreaks. = TRUE)
  }
  autopar$psonbvar2optim <- ifelse(length(myprov) > 100, length(myprov), 100);

  if (sum(myprov) == 0 & autopar$numiterations > 1)
  {
   if (myruntype %in% c('manual'))
   {
    mylastlog <- ("error: no auto hpar set to TRUE in autopar")
    stop(mylastlog)
   } else if (myruntype %in% c('auto')) {
    myflagok <- 0
    mylastlog <- ("wrng: no auto hpar set to TRUE in autopar")
    warning(mylastlog, immediate. = FALSE, noBreaks. = TRUE)
   }
  }
  rm(myprov)
 }
 return(list(autopar = autopar, tstflagok = myflagok))
}

sbamlvalidhpar <- function(hpar, myruntype = 'manual')
{
 #myruntype:
 # = 'manual' produce error on error
 # = 'auto' produce warning on error
 # = 'rawmanual' only raw test produce error on error
 # = 'rawauto' only raw test produce warning on error
 myflagok <- 1
 if (class(hpar) != 'list')
 {
  if (myruntype %in% c('manual', 'rawmanual'))
  {
   mylastlog <- ("error: hpar is not a list")
   stop(mylastlog)
  } else if (myruntype %in% c('auto', 'rawauto')) {
   myflagok <- 0
   mylastlog <- ("wrng: hpar is not a list")
   warning(mylastlog, immediate. = FALSE, noBreaks. = TRUE)
  }
 }
 if (myflagok == 1 & !myruntype %in% c('rawmanual', 'rawauto'))
 {
  if (!"modexec" %in% names(hpar)) {hpar[["modexec"]] <- 'trainwgrad'}
  if (hpar$modexec == 'trainwgrad')
  {
   hpar$psopartpopsize <- 0
   hpar$psonbvar2optim <- 0
   hpar$psonumiteration <- 0
   hpar$psovarvalmin <- 0
   hpar$psovarvalmax <- 0
   hpar$psovelocitymaxratio <- 0
   hpar$psoinertiadampratio <- 0
   hpar$psokappa <- 0
   hpar$psophi1 <- 0
   hpar$psophi2 <- 0
   hpar$psoseed <- 0
  } else if (hpar$modexec == 'trainwpso')
  {
   if (!"minibatchsize" %in% names(hpar)) {hpar[["minibatchsize"]] <- 0}
   hpar$learningrate <- 0
   hpar$lrdecayrate <- 0
   hpar$chkgradevery <- 0
   hpar$chkgradepsilon <- 0
   hpar$beta1 <- 0
   hpar$beta2 <- 0
  }
  myprov <- names(hpar)
  if (!"useautopar" %in% myprov) {hpar[["useautopar"]] <- FALSE}
  if (!"overfitautopar" %in% myprov) {hpar[["overfitautopar"]] <- FALSE}
  if (!"seed" %in% myprov) {hpar[["seed"]] <- 4}
  if (!"minibatchsize" %in% myprov) {hpar[["minibatchsize"]] <- 2^5}
  if (!"layersshape" %in% myprov) {hpar[["layersshape"]] <- c(10, 0)}
  if (!"layersacttype" %in% myprov) {hpar[["layersacttype"]] <- c('relu', '')}
  if (!"layersdropoprob" %in% myprov) {hpar[["layersdropoprob"]] <- c(0, 0)}
  if (!"costtype" %in% myprov) {hpar[["costtype"]] <- ''}
  if (!"costcustformul" %in% myprov) {hpar[["costcustformul"]] <- ''}
  if (!"printcostevery" %in% myprov) {hpar[["printcostevery"]] <- 10}
  if (!"learningrate" %in% myprov) {hpar[["learningrate"]] <- 0.001}
  if (!"lrdecayrate" %in% myprov) {hpar[["lrdecayrate"]] <- 0}
  if (!"numiterations" %in% myprov) {hpar[["numiterations"]] <- 50}
  if (!"chkgradevery" %in% myprov) {hpar[["chkgradevery"]] <- 0}
  if (!"chkgradepsilon" %in% myprov) {hpar[["chkgradepsilon"]] <- 1e-7}
  if (!"lambda" %in% myprov) {hpar[["lambda"]] <- 0}
  if (!"beta1" %in% myprov) {hpar[["beta1"]] <- 0.9}
  if (!"beta2" %in% myprov) {hpar[["beta2"]] <- 0.999}
  if (!"epsil" %in% myprov) {hpar[["epsil"]] <- 1e-12}
  if (!"batchnor_mom" %in% myprov) {hpar[["batchnor_mom"]] <- 0.9}
  if (!"testcvsize" %in% myprov) {hpar[["testcvsize"]] <- 10}
  if (!"testgainunder" %in% myprov) {hpar[["testgainunder"]] <- 0.000001}
  if (!"psomodeinit" %in% myprov) {hpar[["psomodeinit"]] <- 'angdlpso'}
  if (!"psomodecost" %in% myprov) {hpar[["psomodecost"]] <- 'angdlpso'}
  if (!"psopartpopsize" %in% myprov) {hpar[["psopartpopsize"]] <- 50}
  if (!"psovarvalmin" %in% myprov) {hpar[["psovarvalmin"]] <- -10}
  if (!"psovarvalmax" %in% myprov) {hpar[["psovarvalmax"]] <- 10}
  if (!"psovelocitymaxratio" %in% myprov) {hpar[["psovelocitymaxratio"]] <- 0.2}
  if (!"psoinertiadampratio" %in% myprov) {hpar[["psoinertiadampratio"]] <- 1}
  if (!"psokappa" %in% myprov) {hpar[["psokappa"]] <- 1}
  if (!"psophi1" %in% myprov) {hpar[["psophi1"]] <- 2.05}
  if (!"psophi2" %in% myprov) {hpar[["psophi2"]] <- 2.05}
  if (!"verbose" %in% myprov) {hpar[["verbose"]] <- TRUE}
  if (length(hpar$layersshape) != length(hpar$layersacttype) |
      length(hpar$layersshape) != length(hpar$layersdropoprob))
  {
   mylastlog <- paste("layersshape, layersacttype and layersdropoprob must have same length (",
                      length(hpar$layersshape), length(hpar$layersacttype), length(hpar$layersdropoprob),
                      ")", sep = " ")
   if (myruntype == 'manual')
   {
    mylastlog <- paste("error: ", mylastlog, sep = " ")
    stop(mylastlog)
   } else {
    myflagok <- 0
    mylastlog <- paste("wrng: ", mylastlog, sep = " ")
    warning(mylastlog, immediate. = FALSE, noBreaks. = TRUE)
   }
  }
  rm(myprov)
 }
 return(list(hpar = hpar, tstflagok = myflagok))
}

sbamlmodresult <- function(trerr, cverr, cvflag = TRUE)
{
  if (is.na(trerr)) {trerr <- Inf}
  if (is.na(cverr)) {cverr <- Inf}
  if (cvflag == TRUE)
  {
    err  <- abs(trerr - cverr) + ((1.5 * cverr + trerr) / 2.5)
  } else {
    err <- trerr
  }
  if (is.na(err)) {err <- Inf}
  return(err)
}

sbamlparllmc <- function(nbcores)
{
  myprov <- parallel::detectCores(all.tests = FALSE, logical = TRUE)
  mymc <- ifelse(nbcores <= myprov,
                 nbcores,
                 myprov)
  if (gregexpr("dows", Sys.info()["sysname"]) > 0)
  {
    mymc <- 1
  }
  return(mymc)
}

sbamlprepscalem11201 <- function(x)
{
  z <- (x + 1)/2
  return(z)
}

sbamltestmodel <- function(mymodel, mymodeltype = 'manual', guess1stlayer = FALSE)
{
 #myruntype = 'manual' or 'auto' produce only warning on error
 myflagok <- 1
 if (class(mymodel) != 'list')
 {
  mymodel <- list()
  mylastlog <- ("wrng: no exploitable model")
  warning(mylastlog, immediate. = FALSE, noBreaks. = TRUE)
  myflagok <- 0
 } else
 {
  if (any(!c('error', 'hpar') %in% names(mymodel)))
  {
   mylastlog <- ("wrng: no exploitable model")
   warning(mylastlog, immediate. = FALSE, noBreaks. = TRUE)
   myflagok <- 0
  } else
  {
   if (myflagok == 1 & any(!c('useautopar',
                              'layersshape') %in% names(mymodel$hpar)))
   {
    mylastlog <- ("wrng: missing hpar parameters in model")
    warning(mylastlog, immediate. = FALSE, noBreaks. = TRUE)
    myflagok <- 0
   }
   if (myflagok == 1 & guess1stlayer == TRUE)
   {
    mymodel$hpar[["layersshape"]] <- mymodel$hpar$layersshape[2:length(mymodel$hpar$layersshape)]
   }
   if (myflagok == 1 & (is.infinite(mymodel$error$tr) | is.infinite(mymodel$error$cv)))
   {
    mylastlog <- ("wrng: model create infinite error")
    warning(mylastlog, immediate. = FALSE, noBreaks. = TRUE)
    myflagok <- 0
   }
  }
  if (myflagok == 1 & mymodeltype == 'auto' & any(!c('autopar',
                                                     'mylspsoparamlvauto') %in% names(mymodel)))
  {
   myflagok <- 0
   mylastlog <- "wrng: model not trained with automl_train (ignored)"
  }
 }
 if (myflagok == 0)
 {
  mymodel <- NULL
 }
 return(list(mymodel = mymodel, tstflagok = myflagok))
}

##### last automl version 1.2.6
#################################
#################################


set.seed(4)

cat("Loading data...\n")

mywd = "../input/"
train <- read_csv(paste0(mywd, "train.csv"))
test <-  read_csv(paste0(mywd, "test.csv"))

cat("Insincere question frequent word..\n")
question_word <- train %>%
  filter(target == 1) %>%
  select(question_text)

corp <- Corpus(VectorSource(question_word$question_text))
corp <- tm_map(corp, stripWhitespace)
corp <- tm_map(corp, content_transformer(tolower))
corp <- tm_map(corp, removeWords, stopwords("english"))
corp <- tm_map(corp, stemDocument)
dtm <- DocumentTermMatrix(corp)
freq_terms <- findFreqTerms(dtm, 5)

rm(dtm,corp,question_word)
gc()

cat("Sincere question frequent word ..\n")
question_word_pos <- train %>%
  filter(target == 0) %>%
  select(question_text)


corp_pos <- Corpus(VectorSource(question_word_pos$question_text))
rm(question_word_pos)
gc()
corp_pos <- tm_map(corp_pos, stripWhitespace)
corp_pos <- tm_map(corp_pos, content_transformer(tolower))
corp_pos <- tm_map(corp_pos, removeWords, stopwords("english"))
corp_pos <- tm_map(corp_pos, stemDocument)
dtm <- DocumentTermMatrix(corp_pos)
freq_terms_pos <- findFreqTerms(dtm, 1000)
rm(dtm,corp_pos)
gc()

cat("Removing mutual frequent words from both the list(Clean List of words)..\n")
freq_terms_neg <- freq_terms[! freq_terms %in% freq_terms_pos]
freq_terms_pos <- freq_terms_pos [! freq_terms_pos %in% freq_terms]


traintmp1 <- train[train$target != 0,]
traintmp2 <- train[train$target == 0,]
traintmp2 <- traintmp2[sample(nrow(traintmp2), nrow(traintmp1), replace = F),]
train <- rbind(traintmp1, traintmp2)
rm(traintmp1, traintmp2)
train <- train[sample(nrow(train), nrow(train), replace = F),]


target <- train$target
train$target <- NULL
tri <- 1:nrow(train)


cat("Feature creation ..\n")
tr_te <- train %>%
  bind_rows(test) %>%
  mutate(length = str_length(question_text),
         ncap = str_count(question_text, "[A-Z]"),
         ncap_len = ncap / length ,
         nexcl = str_count(question_text, fixed("!")),
         nquest = str_count(question_text, fixed("?")),
         npunct = str_count(question_text, "[[:punct:]]")
  ) %>%
  mutate(question_text = tolower(question_text)) %>%
  mutate(
    nword = str_count(question_text, "\\w+") ,
    neg_count = str_count(question_text,freq_terms_neg),
    pos_count = str_count(question_text,freq_terms_pos),
    unique_word_count = lengths(lapply(strsplit(question_text, split = ' '), unique))
  ) %>%
  mutate(neg_count_ratio = ifelse(pos_count > 0 ,neg_count/pos_count,neg_count) ,
         mean_length = length/nword ,
         repeative_word_count = nword - unique_word_count
  ) %>%
  select(- qid,-repeative_word_count,-length) %>%
  glimpse()


rm(train,test,freq_terms_pos,freq_terms) 
gc()



#---------------------------
cat("Parsing comments...\n")
it <- tr_te %$%
  str_to_lower(question_text) %>%
  str_replace_all("[^[:alpha:]]", " ") %>%
  str_replace_all("\\s+", " ") %>%
  itoken(tokenizer = tokenize_word_stems)

# vectorizer <- create_vocabulary(it, ngram = c(1, 3), stopwords = stopwords("en")) %>%
#   prune_vocabulary(term_count_min = 5, doc_proportion_max = 0.5, vocab_term_max = 25000) %>%
#   vocab_vectorizer()

vectorizer <- hash_vectorizer(hash_size = 2^8,  ngram = c(1, 3), signed_hash = FALSE)
tfidf <- create_dtm(it, vectorizer)
m_tfidf <- matrix(tfidf, nrow = nrow(tfidf), ncol = ncol(tfidf))


#---------------------------
cat("Preparing data for modelization...\n")

X <- tr_te %>% 
  select(-question_text) %>% cbind(m_tfidf)
rm(m_tfidf)


MYmXte <- X[-tri, ]
MYmXtr <- X[tri, ]
MYmY <- matrix(target, nrow = nrow(MYmXtr),ncol = 1)

rm(tr_te, tri, it, vectorizer); gc()
#---------------------------

# parameters found with this command
#MYmodellight <- automl_train_manual(Xref = MYmXtr, 
#                                Yref = MYmY, 
#                                hpar = list(modexec = 'trainwpso',
#                                            verbose = TRUE,
#                                            numiterations = 900,
#                                            layersshape = c(33,0),
#                                            layersacttype = c('relu', ''),
#                                            layersdropoprob = c(0, 0),
#                                            printcostevery = 25,
#                                            psopartpopsize = 450
#                                            ))
# dump(c("MYmodellight"), file = paste0(mywd, "Quoramodellight" ))
# source(paste0(mywd, "quoramodellight/Quoramodellight" ))
MYmodellight <- list(error = list(tr = 0.499167425251271, cv = 0.498817718183576), 
    hpar = list(modexec = "trainwpso", verbose = TRUE, numiterations = 900, 
        layersshape = c(267, 33, 1), layersacttype = c("relu", 
        "sigmoid"), layersdropoprob = c(0, 0), printcostevery = 25, 
        psopartpopsize = 450, minibatchsize = 145458L, learningrate = 0, 
        lrdecayrate = 0, chkgradevery = 0, chkgradepsilon = 0, 
        beta1 = 0, beta2 = 0, useautopar = FALSE, overfitautopar = FALSE, 
        seed = 4, costtype = "crossentropy", costcustformul = "", 
        lambda = 0, epsil = 1e-12, batchnor_mom = 0.9, testcvsize = 10, 
        testgainunder = 1e-06, psomodeinit = "angdlpso", psomodecost = "angdlpso", 
        psovarvalmin = -10, psovarvalmax = 10, psovelocitymaxratio = 0.2, 
        psoinertiadampratio = 1, psokappa = 1, psophi1 = 2.05, 
        psophi2 = 2.05, nblayers = 2), mydl_W1 = structure(c(-0.759608530355707, 
    1.17618369010312, -0.769122183266178, -0.0364246677280511, 
    0.0620034306672309, -0.0592326932368065, 0.0162813928826086, 
    0.699191891833064, 0.00812493154552208, 0.0311027213767393, 
    -5.52603472365344, -0.122679722038241, -0.84716355773495, 
    -0.107395073959465, -0.257610566667832, -1.34294491371559, 
    -0.706214548273459, 0.0762697106002232, -0.127560825783557, 
    0.0619836876925059, 0.112283821548988, -0.16147196757641, 
    2.10389594941621, 0.0473570252370909, -0.168535968710037, 
    0.601467014346494, 0.932623866333555, -0.828686149114662, 
    -0.556240524676513, -0.560093966679475, 0.475464488114221, 
    -0.45422166901458, -0.177074384677972, 1.49175824970301, 
    -0.00342592421726094, 0.0243571562518205, -0.780109937192703, 
    -2.1004355925014, -0.187746019061956, 0.637487511152333, 
    0.066438857101768, -0.0171593035999663, 0.00156417110458639, 
    -9.69692102181625, -0.0976562295427061, -1.19594797651062, 
    -0.655213503625557, -9.99418927875063, -0.150908966627087, 
    -1.10593076884756, -0.213223234712768, 0.10345533021356, 
    -0.183104820737873, 1.57324816632, -0.500548614644012, -0.817070085814823, 
    0.581589042540171, 0.284361439246709, 9.98155407134901, 0.196056823379545, 
    0.312196464615093, 4.28673507985922, 0.309855936294048, 0.893128471673821, 
    -0.314896275744746, 0.702744738596605, 0.957297074364846, 
    -0.87266414105632, 0.190071405886902, -2.27881550649705, 
    -0.061807020212881, -0.512141403058056, -0.0424916252248206, 
    -0.624453768489125, 0.175291619475144, -0.0504826961011365, 
    -1.96740736902219, -0.575457372471861, -0.203244338550826, 
    0.00440589039911125, 0.0122043724743908, 2.36825545747607, 
    -0.530935142888947, -0.803143995773618, -0.12780230919098, 
    -0.1160548767923, 0.0492369692870358, 0.00350130304258822, 
    -0.389654208548532, -0.0201355153304628, 0.138243745341013, 
    -5.37713088129545, 0.809213000286503, 0.981019464971105, 
    0.12633081598929, -0.0375755255739132, 0.00871750311417894, 
    0.0458026450131593, 0.00189230507171048, -0.0121348966859191, 
    0.296506850262628, 2.24284801361855, -0.0876763606019408, 
    -2.37102163778084, 0.274955824808157, 0.251098598910571, 
    -0.103080184705868, -1.3408948718355, -0.0953803881562184, 
    4.64394435148974, 0.125952743903442, 0.40914715737055, -0.580098421206519, 
    -0.369163918308573, -0.0233495799835778, 0.00811784470466496, 
    -0.007199663587797, 0.137812179260015, 0.105220620045573, 
    0.0994193161208836, -0.0860613385924332, 0.382292759688465, 
    -1.10620290216294, -0.0419290907785343, -0.568066015098097, 
    3.5159268143998, 1.70163659166937, -0.126210783715536, -2.63615702685023, 
    0.652154463784163, 0.17780482377184, 1.4044641644279, -0.0682228865208088, 
    -0.41931328703586, 1.44901838511411, 0.0541248586452886, 
    0.0215722363814854, 0.736529682882422, -0.781431813226138, 
    -0.105975301423397, 0.515127201023441, -0.0495253133561679, 
    -0.63312198654481, -0.0133426116176806, 0.213599745491373, 
    0.145789376185553, 0.844989027997878, 2.29658274746302, -0.214350756428584, 
    -0.227223707760716, -4.13694670591902, -0.361221285350835, 
    -0.0116682773535643, -1.17804184576081, 0.48982068565483, 
    7.32626293165842, -0.491194582003702, 0.429785162092718, 
    -3.56357760002077, 0.15947200137032, 0.099792932840679, 0.0661610891067896, 
    -0.0554522526375097, -0.00193488011407493, 2.78552018760306, 
    -0.29398258288722, 0.420450837298702, 0.0580167822292893, 
    0.924323857476387, 0.0454540587772365, -1.50998329659117, 
    -0.218141969341811, 0.151583321756655, -0.0290862368324928, 
    0.0388126216949684, 0.0322490875822363, -0.227827902810221, 
    -0.902230413039757, 0.0688892642263148, 0.155062985115098, 
    -0.114585372604288, -0.147760160579849, 0.0869510524196892, 
    0.0693663323040852, 0.367257470603574, 0.0221163679096256, 
    -0.0559722527165809, 0.167429848689723, 0.994292024948747, 
    -0.865206680262043, -0.078500915416617, -0.0728032783976561, 
    0.542003931994438, 0.0357622569762803, -0.429458830178068, 
    0.193826572784693, 0.403533562260972, -0.107137513523946, 
    0.208174592094294, 0.442569978822383, -0.00515178319768175, 
    -0.0515987465574553, -0.264621535041969, -0.299051261588507, 
    0.144465509227314, 0.803930657360168, 0.0952745574103195, 
    -0.0414633623694995, 0.0939561638600146, 0.185579837873041, 
    -0.111311535642797, 0.0740288273746131, -0.0573086825227103, 
    0.00288275084368747, -1.2790334375965, 0.0818770178583305, 
    0.123481478383727, 0.312089727342033, 0.602098514764788, 
    0.1053229322545, -0.925801063674431, 0.634049749476205, -0.0159663621614341, 
    -0.125715482916873, -1.68546189830684, -0.584140784550474, 
    0.480678064287272, -0.0193818499669723, -1.98542572806062, 
    -2.87633905683197, 0.027827419866514, 0.229197735079489, 
    0.320582261819333, -0.105532469327547, 9.32317126560361, 
    0.456191345535294, -0.161563909282617, -0.135298852460298, 
    -0.734435585338596, 0.171348664057707, 1.55773062814266, 
    0.738726666874302, 0.125932311463833, -0.101533632184177, 
    -0.89141796221885, -1.29707436646504, 0.0416131292247007, 
    0.292665671835968, 0.600376522565799, 0.247191878787077, 
    -0.125364304372505, -3.6751334587409, 0.0696836228281781, 
    -0.391082897846223, 0.317690553176168, 0.0808379876559533, 
    -2.45559052115546, -0.53807242092915, 0.0192508090264815, 
    -0.115535005252751, 2.13462974614379, 0.858822969808072, 
    -0.458926655942108, -0.414897284817445, -0.154457235311005, 
    0.00227958376655785, 1.08538254907559, -0.318844710820341, 
    -0.061458898406516, -0.324292449923621, 0.0596390674391413, 
    1.26398438949366, 0.8472500882168, -0.0321728675734555, 0.194058457970974, 
    -0.193527167249467, -0.0137876651012487, 0.0676634088554876, 
    -2.22876884894356, 4.35442239237016, -0.369881226289963, 
    0.0348768659470094, -0.0456501967276828, 0.305685380401419, 
    0.0999466063179823, -0.09960369387324, 0.9180682985999, 0.0437773514582517, 
    -0.0448884900898057, -0.0486670526484474, -3.95835101333914, 
    -0.0147375255431429, 0.147353342699571, -0.0856459546406132, 
    0.000523405553232116, -0.252799919939618, 0.0836550434049824, 
    -0.101456028078728, -0.0320634482364764, -3.25547615497979, 
    0.179750081019666, -0.224737177579305, -0.668632896328148, 
    0.308673083378304, -0.611560054626907, 0.0628109798998013, 
    -0.0275620188610838, -0.326540946249043, 0.258464345077426, 
    0.413076722568282, -0.00431411896036526, -0.129702413259728, 
    -0.0190397190331747, -0.663205347297689, -0.108271640812735, 
    -0.015112563938986, -0.00487960438852004, 0.339598545433026, 
    0.225914527812496, -0.0337017408064723, -1.01460996525347, 
    0.241970431329538, -0.834221732931416, 0.174715655236195, 
    -0.00452446399268922, -0.473742215775227, -0.494833708933759, 
    -0.172666077213016, -0.0533062494362394, -0.0364660754942494, 
    -0.00410497544292971, 0.151033136643337, -0.479048577995823, 
    -0.941911166682678, -1.24578584008357, -0.731540946452465, 
    1.84396569354368, -0.0823087091136493, 0.0989195931256022, 
    -0.0566059861421923, -0.432128347758042, 0.230729317970467, 
    -2.89942951630989, 0.120851957490576, -5.3766395190038, 2.15394708264806, 
    0.938704923020469, 0.283734225057127, -0.401646098725126, 
    -7.74531953657493, 0.197152201522113, 0.174062197641618, 
    1.42490212546598, 0.168786324322574, -0.85744010251035, -1.92361509511108, 
    0.735645638705527, 0.0133032773043826, -0.13204170977664, 
    0.28992066913149, -0.133713214249905, -0.126671031751499, 
    -0.0203980259739017, 0.369829191467019, 0.342476016004819, 
    1.96098133193947, -0.529002313017288, -0.0924260890242522, 
    -0.118528542684733, -0.0367334960582956, 0.117292069202973, 
    0.191777722573142, -0.128327430784766, -0.135215105910638, 
    0.16775403066156, 0.0576220602507258, 0.263026822422658, 
    -0.153398641174941, -0.650258729020213, 1.53341107074801, 
    0.316794623997248, 0.0334812232974774, 0.00357211017105142, 
    0.0463248632423426, -0.419043270068734, -0.0368262715769667, 
    0.238142831436092, 2.53578383483369, -0.392111684304933, 
    -0.0771968028059422, -0.180288903798827, 0.0104872584268797, 
    -0.626070725505289, 6.63475799758239, -2.28713805663697, 
    0.290008743561544, 0.528977037223693, -0.0878448024698827, 
    -0.0892823619834564, -0.0202233657198396, 0.801149005543299, 
    -0.0642452404033359, 0.133497367354737, 0.0703249895413362, 
    -0.139219806641148, 0.407978718832841, -0.685509125481692, 
    1.531041168318, 0.0624103723941605, 0.145209387108068, 0.00926302083874714, 
    -0.559311649177354, -0.265007731542952, -0.1838738138306, 
    0.5523601395781, -0.214068832260174, 0.558889705224433, 0.0300512625854094, 
    -0.288814034308813, 0.931555825288234, 0.00879569419923409, 
    -1.20080165672691, 0.520943158040874, 1.27386938738058, -0.191045614070732, 
    0.421649110978263, -0.208774798135914, -0.0900066011003481, 
    -0.399303111543317, 0.635995181440703, -0.191669232045999, 
    0.0575822919440095, 0.447265053144591, 0.398305306625333, 
    0.318156605389705, -1.43331238502757, 1.72131400739428, 0.121610054386789, 
    0.600180230309411, 0.236350512333399, 0.308845846779643, 
    -0.0961871643650963, -0.615895774028037, -0.21198400875524, 
    0.0912647276575512, -0.79306904784505, 0.0174722643630272, 
    0.0371950072841477, 0.343473350305716, -0.174873372135272, 
    0.103799711785519, -0.0128724952882297, -0.246176194325573, 
    0.322800316156992, -0.0354998741916789, -0.149350798221599, 
    -0.0500673312325261, 0.801037587777517, 0.31032159446817, 
    0.403621099971938, -0.408670953715001, 0.765537352346342, 
    1.19946124809532, 0.504120420457337, 0.152129328557482, -0.0193600864369415, 
    -0.120940111749209, 0.24270597165994, 2.21183171754091, 0.0140126065743769, 
    0.537360592263771, 0.099232868386137, 0.187618809149494, 
    0.40071222854926, 0.465190132150645, 0.188942551299634, -0.673452673763977, 
    -0.293468443420846, -1.62887230458837, -0.197154171745485, 
    0.0101905825825392, -0.102138088688683, -1.62243433808653, 
    0.329423142772886, 0.802191693610981, 0.049070532814075, 
    0.000812304096760978, 0.284393706500858, -0.264934127862156, 
    -0.640627573644606, -0.168040556376663, -0.683100624070308, 
    7.91642935228064, -0.524436100516538, -0.151683259301439, 
    -2.45809745429566, 0.00549708560135834, 0.0807970185860479, 
    0.0806891594549512, -0.106012411095165, 0.274887675325717, 
    2.46037270818879, -0.683742140253427, 0.146825258262138, 
    1.25118980755994, 2.47897805158295, -0.099268956648808, 0.203275193595589, 
    -6.39490799542352, -0.00616264556206475, 4.90525274348244, 
    -0.588051853765755, -0.237558326924293, -0.0730678182812463, 
    -0.0102665170028006, 0.301871719995381, 0.153711119790183, 
    -0.0293989139154757, -0.120642836417993, 0.99925659420602, 
    0.131553742735412, -0.0602219793788188, 8.86810874705827, 
    -0.141265992309843, 0.180691872794206, -0.987177692300685, 
    -1.30567330245561, -0.0904958770368479, -0.00892386369766525, 
    -0.239333104747671, 9.97973958009342, 0.101718627125712, 
    -0.0990203391250937, 0.136418266705014, -0.649130906826008, 
    -0.333759508290154, -0.028022555470681, -0.221107086383064, 
    0.985721028591003, -9.76566621510725, 0.0144508104938059, 
    -2.1349273737164, 0.176781225247549, -4.43377456008976, -2.28542393199632, 
    0.803633306650641, 0.0333026049780494, 0.155782610619312, 
    -0.123494431227366, -0.0681345809258028, 0.272108069103655, 
    0.349425196051645, -0.372298394577047, 0.304037894151722, 
    0.170344468481915, -0.49018047482487, 2.88283395856693, -0.805613156461881, 
    0.161109356852752, -0.704352474369819, -0.193768860658779, 
    -1.56062426962566, 0.247979698483536, -0.772325309742602, 
    -0.0486355701967979, -2.50085355455453, 0.133294125981113, 
    0.291922032137027, 1.21312512802109, 0.971314551795159, -0.101018287442503, 
    0.232313343287492, 1.91741840669722, -0.312250094010016, 
    0.134073991230759, 0.052373398621235, 0.031825387822458, 
    1.59259137389723, 0.531513691387992, 0.56086578247831, 0.144888401675756, 
    0.0511028103662518, -0.160652223449494, 0.263846082400675, 
    -0.0327967445332874, -0.283353731096004, -2.33020069124274, 
    0.159684103251423, 0.0493171713985851, -0.131283637642958, 
    0.1540986901699, 0.617334555263377, -0.39259788024259, -1.35016837445622, 
    0.378601546551235, 0.00439339929641047, -0.219673450008374, 
    4.0056653471282, 0.0777282415060031, -0.0407604424481527, 
    0.168549595957651, -0.078787749779302, 1.85045938424825, 
    -0.0312146311419936, -0.410686581444109, 0.229770080835525, 
    -0.0660947167768926, 1.17488000596333, -0.203777108017624, 
    4.96492495014717, 0.190819945474011, -0.406361415732706, 
    -0.574081194971079, 6.2104401712913, 0.0483543726138766, 
    0.00872268947296648, 0.0540631354074823, -0.0337043497664767, 
    -0.116333814967876, 1.38957919251678, -0.056531523695297, 
    -0.221187662418725, 0.169864246485782, -0.0907244993121173, 
    -0.275287596245628, -0.0386877416069735, -0.0214351594087509, 
    2.33944335050567, 0.0019954796988272, -0.333468386039581, 
    0.96627143648803, 0.0432050771624211, 0.0760403621058065, 
    0.207492756964325, 0.0550993704160884, -0.077034781225974, 
    -0.596622148921661, -1.81775995873194, -0.0800005536597256, 
    0.0198792880328346, -0.0278248168778378, -0.147722413257628, 
    -0.247643631416643, -0.259856261016288, -0.0702572971151437, 
    0.0110885546214354, 0.0248486801510756, 0.708349588639997, 
    -0.060182367600456, 0.701861562042265, -1.73255721951082, 
    -0.143974601004398, -0.140899714377128, -0.25190821080908, 
    -0.0184539307394111, -3.40603588930315, 3.17624217090218, 
    -0.988392443458467, -1.06293173518912, -0.0742821820841125, 
    0.127615324123904, 0.258938857555718, -0.0169309773073101, 
    -0.48862151154024, 0.321921228894369, 0.363286182798381, 
    -0.0781048611954299, 0.947850516119807, 0.50501286491771, 
    -0.912953258567428, 0.133733808135357, 0.70013958076876, 
    0.198625486935148, -0.187204387489358, 0.209134975205402, 
    2.82843092807144, -0.11978624476278, -1.57157626560531, 0.0597365673162517, 
    0.475305087179907, -0.138435973967239, 0.0110443577513498, 
    -0.0169052852313209, 0.347592571179452, -0.109403966624374, 
    -0.0844474293602737, 0.0341152439884684, -0.0885726225622374, 
    -0.735100221068985, 0.135593983247768, -0.0093376465969047, 
    -0.0724980980946447, 0.788960237023286, 4.86423064932378, 
    0.26638403363726, -7.41916617911841, -0.510827938968855, 
    -0.253687222375366, 1.07081704073423, -0.0412272804142171, 
    -0.101255220910974, 0.11876947800908, 2.27115767476198, -4.68217817061404, 
    -0.407248624348982, 0.808835409390509, 0.103949480537358, 
    0.305436464667688, 0.0402335221611584, 0.0263503858925403, 
    -3.35401543111837, 0.0437978107151214, 0.208408538152628, 
    0.0571453270497019, 0.250314225588671, 0.455662728376731, 
    0.127664720557872, -4.62084962620079, -0.0129283873314838, 
    -0.238090979061113, 1.27521672812428, -0.138102790752123, 
    -0.00448250166708095, 0.000420656025554994, 0.0241008701679621, 
    -4.76281457932506, -0.0236225838908993, -0.0880698615156192, 
    0.615319131161707, 1.14861198317237, 0.165735686424121, -0.0938608041183162, 
    0.158241724365615, 0.0495567641884658, 0.369105610113327, 
    0.0898873484900379, 0.134454123461522, -0.17975852406746, 
    0.111222476550322, 0.103013852301903, 0.196170875626097, 
    -0.474743909631154, 0.875295461909013, 0.508210795823781, 
    -2.54096474608148, -0.0545063763774612, -0.119880622202053, 
    -0.0245604329520501, -0.218618472122234, 0.0586150065636739, 
    -0.0710554707631761, -0.0429227228760917, -0.149792405943835, 
    -3.37085921540674, -0.025332906463675, -0.251735903276446, 
    0.0568038889032852, -0.0964520110105002, -0.0736156817386563, 
    1.64586980648641, 0.0912213152437208, 0.112336201659211, 
    -0.11046548561653, -0.00680292382685872, -0.0121385460907553, 
    0.0918353830878712, 0.131336208143376, 0.0140648991485975, 
    -0.0468070113223256, 0.0287023048605136, -0.262717234416356, 
    -0.540492660524075, 0.0248233926612208, 0.14992428814498, 
    -0.0594330110468676, -0.171883990439851, -2.02682261183294, 
    -0.0742683148630751, 0.0655781260515852, 6.28256189659641, 
    0.804832767731809, -0.197384436536604, 0.374999184393649, 
    -2.03723947660474, -1.35890738935427, -0.114884133818958, 
    0.129598205954189, 0.223245902903183, 0.720724367206331, 
    -0.0434413854771451, 1.94603520570709, 0.132323631007706, 
    0.318339468871807, 0.248095372207343, 0.034189567553796, 
    0.183839199469533, 2.33389956755373, 0.0263298439420477, 
    0.474203258595734, -0.337210183524217, 0.0567456684268021, 
    0.157004570467943, -1.19958585918352, -0.0141854781399619, 
    0.0229228786041778, 0.140052427796217, 0.0343405542533121, 
    8.29335472781099, -0.0936379607724591, -0.250709839595136, 
    -0.0622984397078207, -0.0443648341143227, -0.543408935130078, 
    0.0406728835406156, -0.153304142006183, 0.942374354135856, 
    0.441465761348165, -0.734597740038905, 0.178839877478042, 
    -0.197570140212454, 0.185154241336191, -0.0665820923681175, 
    -0.756132181233585, 0.288218795395175, 0.825483844247674, 
    3.17692179921958, 0.203123836772355, -0.072143815225952, 
    -0.438266248428803, 0.0600752411975292, 0.332532676951413, 
    1.57516632496941, 0.0457064532219445, -0.671274069123251, 
    -0.365395219960171, -2.25817172914145, 0.124483064691878, 
    -3.13389252321327, 0.0327103183408419, 0.243963897578256, 
    -0.123476218362786, -0.076094921858644, -1.51824630707735, 
    0.0432195992320381, 0.512628253788417, 0.219950413976386, 
    -2.3797369081707, 0.168330455095777, 0.0165738855983665, 
    -0.14953418399967, 0.400297322446792, -0.582285167140707, 
    0.0719607946654459, 0.263258127434896, -1.40841605661156, 
    -0.87815631440447, 3.38584636564747, -0.0214362196840013, 
    -0.310940012410316, 1.01324044123267, 0.0136087605738766, 
    0.296845033993517, -1.6169117258112, -0.0991845620406169, 
    -0.0410807081698408, -0.466424284465556, 0.00237583885613077, 
    0.0344378549573355, 0.0134256983889906, -0.0627199094204816, 
    0.06461712168032, -0.52978976062615, 0.156766284469046, 7.5447544957776, 
    0.840523032990715, 0.055486161135404, -0.713691515824343, 
    -0.417218549008403, -0.0768875666735525, -1.49144780078671, 
    0.0211087732269289, -0.0869515467018442, -0.729284379240276, 
    -0.042826743533215, 0.323279721517369, -0.155816366089161, 
    -0.286744947301365, -0.138252158808686, -0.970517401579832, 
    6.69753618001527, 0.0384426604317141, 0.161448046447332, 
    0.650665213023461, 1.20146389469138, 0.111405195303411, 0.0127088697919431, 
    0.0437608505954982, -0.187982403879167, 0.131768297992233, 
    -0.166543142611643, -0.0858530461665084, 0.0116820110429308, 
    0.0287566669261796, -0.563633369366489, -2.68723532824468, 
    1.12908647692946, 0.349021984857739, 0.065542318123875, -0.0768789492619185, 
    -0.0391841481322672, -1.33123351362714, 0.381052143526344, 
    -0.132740740758175, -0.0209029228083028, -0.00455132143551859, 
    0.101282652352657, -9.09661030893514, -0.399479484558788, 
    0.0254437088635621, 0.109762125245134, 3.74115119528409, 
    0.331204632706131, -0.0172378190051254, -0.824074121412856, 
    0.120165129368752, 0.00450929893220077, -2.82589999321255, 
    -0.129123694500399, 0.129557224240635, 1.72897832291316, 
    -0.246152888420335, 0.910719235632682, -0.0340557400050711, 
    0.0614881852727723, -1.03606771112659, 2.6739344986604, 0.152090637230431, 
    0.399177418123952, -0.00247335202672624, -1.04766243384001, 
    -0.0561210057111556, 0.0541764742162872, 0.863408837261966, 
    -0.0576826736179677, 0.242736234172549, 0.399321424835643, 
    0.420745828789561, 0.79761974815531, 0.163519384925651, 0.392319021277117, 
    -0.0247420743914076, -0.176760907512901, 0.429423789706079, 
    0.0986840852176713, 0.184454956823121, -0.0554128219722445, 
    -0.346562437914714, -0.10839513077172, -0.079590276262416, 
    -0.15402509945074, 0.029028245579084, 0.0306919252370215, 
    1.03053143731608, 0.634935582429335, 0.145573638076981, 0.0424919714559168, 
    0.0370801116518136, 0.110067160673113, 0.00266931202761631, 
    0.0300682088512159, 0.549699611198862, -0.436450576472756, 
    -0.229815133092523, -0.184872021486744, 0.0545392862865383, 
    -0.577198738716842, -0.352383124219373, 3.32736651580885, 
    -0.823410654992065, -3.06882308595168, -0.111150875723602, 
    -0.0614810919624692, 0.235074653270182, -0.0408266735095266, 
    0.0172845112402883, 1.33891737145349, -3.10525800627315, 
    0.0305259457747165, -0.0460462469118713, -0.0132942883558379, 
    -0.138030941890817, -0.204904694424093, -0.498766790316836, 
    0.875788147273776, -0.503480639373298, -0.130514484514981, 
    0.198656157883423, -0.0173551964053538, 0.264934613062848, 
    -0.142118720247868, -0.14209992823511, 0.0359112169095152, 
    -0.0917221011360475, -0.081564321875581, -0.443105118886049, 
    0.00464371807661732, -0.758617772339347, 6.46790387186227, 
    0.146993841252209, 0.28846933706888, 0.0950613148068159, 
    0.0203569926747958, -0.142730490082551, 0.0242807152691158, 
    0.0126371214262371, -5.76679990287514, -0.065759081458424, 
    0.0676050930256674, 0.244370285265335, 0.219074876049356, 
    -0.0342317016883613, 0.0936576470669001, 2.49839446730425, 
    0.0181305015379779, -3.21429004687901, 0.433803759466909, 
    -0.0257015966127932, -4.93593825296463, -0.193156885648309, 
    -0.548755219189082, 4.65729129611411, 0.0766120646656825, 
    -0.689286219329382, -0.140342515224932, 1.86071210569057, 
    0.190297311511241, 0.20753380863153, 0.0276166021086452, 
    -0.361746644987652, -1.4889000133119, -0.291105586568907, 
    1.76762209314198, 0.202687180315299, -0.0605418776499708, 
    0.957147687158025, -0.0571900298062485, 0.152702852983326, 
    1.14083127577924, 2.54281873274567, 0.0224861367196319, -0.0884051122030848, 
    -0.0408637106556858, -0.308551568313305, 0.0899982672552603, 
    0.0769800726917365, 0.0628836619172812, 0.0345440615100914, 
    0.855668673341954, 1.49416556117873, 0.02759080297173, 0.139007897217946, 
    -0.654403689471586, -0.595283305643307, -0.709580411644164, 
    -0.0664937052226951, 0.0831606490629386, 0.500478447580979, 
    -0.000844326346989967, 1.24783890428965, -0.0256526487065363, 
    -0.042197046176551, 0.347068536041763, -0.265572962888659, 
    -0.0485864154451944, 0.880767324400601, 0.260964940803391, 
    -0.103737836682965, 0.321509247041187, -0.0306034197038781, 
    -0.0588936731542743, 0.0109423403377715, 0.0780378973272197, 
    2.2883814954589, 1.78301705887576, -0.760042198883474, -0.473933074047956, 
    -0.0779731348321724, -1.99101411356735, 0.429642761078352, 
    -0.0258949623323004, 0.364292359264678, -1.14723012548706, 
    -0.328164560975138, -0.00493850502806445, 0.27263432921882, 
    -0.0642375641827586, -0.618124181140803, 0.388620585561366, 
    -3.41554325383009, 0.936520171245945, -1.63846668263894, 
    0.257551691809268, 0.19370496291767, -0.276530775176502, 
    0.10271053450079, -0.196662707140824, -0.126354897020861, 
    1.45004673043258, 0.051628556544799, -0.596910432300928, 
    1.57260386375208, -0.164008216933079, 1.02191599906207, 0.463376108941632, 
    0.0987674290157343, 0.0235146194566949, 0.0844662902683509, 
    -0.931105446293058, 0.0383491139678586, 0.0681757703598439, 
    -0.450850849879608, -1.38250611864173, -0.0104451038108137, 
    -0.567709988031673, 0.0217333195683163, -0.0244709510378633, 
    2.11035282945624, 0.0135118809722095, 0.545460713543327, 
    0.0808564127725738, 0.504477286615043, -0.0678784332661069, 
    -0.0135358163350724, -0.0351405169579491, 0.0394232236892029, 
    0.1885936270755, -0.024188103162626, -5.33472906916756, 1.0011000340039, 
    -0.0768922183820075, 0.30031643994496, -0.513976249564636, 
    -2.77435567249825, 0.149985842782695, -0.0567498668598683, 
    -0.0928876040675931, 0.287160399088336, 0.436184285733824, 
    0.033236511341437, 0.244546837249655, 0.0710382656340666, 
    0.558929102131494, -0.0808495867001861, -0.234690131770127, 
    -2.75515055611126, 0.315289528126374, 0.194380065194424, 
    -0.661447921486403, -0.0108007292535544, -0.316053364163573, 
    0.991304104509553, 0.232741677203053, 0.0947028055455109, 
    0.443784521797229, -0.0645382890885636, 0.451182917234239, 
    -0.133365465549055, 0.965567368735455, 0.00894466700497791, 
    0.404130530392847, 0.170676423206668, -0.305416238714323, 
    -0.696452041784252, 0.155926303399283, -1.25721117555674, 
    -0.158799478455966, 0.694028931334579, -0.841950472622407, 
    -0.291239246202788, -0.0207205420922305, 0.0525218012552848, 
    -0.255396441915366, -0.645961236452243, -1.25550987526693, 
    0.0205654352792921, -0.614318174361699, 0.181490406401725, 
    -0.232098940257265, 0.115839991724315, 0.0200831157463123, 
    0.0990008080409654, -0.849542176229851, 0.308345370675834, 
    0.0237475141683597, 0.149182702153499, 0.205993023709296, 
    1.27789960942029, -0.199319645612623, -0.0849603315484018, 
    -0.027584581209277, 0.802097019136913, 0.138297316803168, 
    1.65235425885475, 0.0656323687493786, -0.792826051016245, 
    0.115015126502655, 0.0925282822181168, -0.113226375610032, 
    -0.161719476193097, -0.203392202645124, 0.126998700070575, 
    0.146888480073148, -2.35921183363539, 0.0821449623813025, 
    1.13108188764012, -0.0186351981632295, 1.14369170511201, 
    -0.00246550388873578, 0.341977444029474, 0.0794979945402079, 
    0.0367638611087844, 0.0862721356266305, 0.0424803710361485, 
    0.0918370070644772, 0.0245238199758174, -0.0794569574124911, 
    -0.0192183251117794, -0.0229878339174791, -0.196784054143833, 
    0.892730335851984, 2.57600286314234, -0.0994602625983624, 
    0.0140814805229704, -0.151841062977042, -0.038705684018693, 
    -0.697222631763868, -0.550779021282235, -0.217656005920696, 
    -0.44902867370012, 0.441151060627519, -0.530738762491675, 
    -1.74245728437474, -0.0287947459415356, 0.0757927058047643, 
    -0.140746421476013, 0.370965572393465, -0.07254199539911, 
    -0.779017272401569, 0.280245435207644, 0.0907128183037712, 
    -0.109901831991932, 0.427948466487671, -0.316426412034027, 
    -0.486714938714939, -3.69651900101649, 0.419412156837758, 
    0.436729136421688, 0.270777184466953, 0.278216697740997, 
    -0.0874283684947662, 0.828236217916258, -0.0224903836987553, 
    -0.146621867169874, 1.89259692043595, -1.57077196748116, 
    -2.32716174330654, -0.98394450118983, -0.483389999787306, 
    2.75363706216582, -0.312519961759219, 0.137072049257524, 
    0.186632276876571, -0.22749529056194, 2.9632154289962, -0.128073794796928, 
    0.0280877590352498, -0.167347786091771, 0.104065489587918, 
    -0.131817614918693, 1.71204382385547, 1.13363390355762, -0.742427581641847, 
    0.0842792238381509, 0.753871685955595, 0.140452344620487, 
    1.5070810730772, 0.0186008864979961, -0.0401707295825885, 
    -0.133197001894022, -0.00765436622327077, 2.13933243417938, 
    -0.0192614746943959, -0.00753381606342816, -0.301388205625958, 
    0.0798408056074544, -0.239480335696197, -0.123729752335035, 
    -1.37320568642744, -7.86956436709986, 0.00897230248286691, 
    -8.46246187698217, -0.0333344048689985, -0.641948282382502, 
    -0.00795339351823744, -0.292253672807061, -0.641562490292378, 
    0.552434858532211, 0.0831842453809725, -0.00124142605242649, 
    0.0351725249445261, -0.17704274958188, -0.0397945255514696, 
    -0.443811216649101, 0.0363229263443784, -0.57332135241726, 
    1.73935042780806, -0.0681904400037627, -1.47444789536339, 
    -0.0322978726286869, -0.688798646259993, 0.62795582174787, 
    1.04941465618062, -1.57395416672986, -0.0950030695408779, 
    0.0575852721441989, 0.226510787170551, 0.0892541554581726, 
    0.260750984587691, 0.0403691029855165, 0.0287889270476926, 
    0.0636245104926039, 0.637000524651008, 0.444361681208391, 
    -3.88524158006751, -0.882621522573488, 1.28112166481687, 
    -0.624115559298499, -0.00953665073050995, -0.348246759630731, 
    0.0333075214174422, -0.40055199133204, -0.175696029902513, 
    -1.11009235653913, 0.708087309946617, -0.0861450989671707, 
    -0.0713502508890813, -2.12386539201762, 0.498993970086659, 
    -0.166073837443287, -4.91836264411493, 0.136024937953275, 
    -0.0244771592819381, -3.2905991437181, -0.162607107640186, 
    0.338348462609604, -1.39334251652484, 0.5557326670947, 1.35351738935346, 
    -0.179945711882258, 3.78128947054015, 0.138924098121404, 
    -0.00941931284689793, 0.726016485705707, 0.00369646597506246, 
    1.06467179363306, 2.91377391978404, 2.41939025842047, 0.0471626709991965, 
    0.007948735212265, 0.378881524108936, 0.050056170589808, 
    0.409322307898739, -0.369766691403653, -0.356100214979664, 
    -0.268600359827117, 1.32006680259718, -1.55591027904312, 
    -0.205050302084145, 0.129108609168589, 0.15990290950013, 
    0.150443995078152, 0.82817946218663, 0.0863017822256563, 
    0.716691477951902, -0.549600783705897, 0.485901451784011, 
    2.23956900435886, -0.273216238653904, 0.486813294271231, 
    -0.101227107848809, 1.78762460184913, -0.66405626246759, 
    -0.374298021491209, -0.0277670988450998, 0.0296929538966591, 
    -0.574078263729423, -0.137061753446828, -0.207687350196875, 
    -0.0489426875353878, -1.05574328763941, 1.85677236044352, 
    -0.00959372362186067, 0.0402560680951129, 0.0717242225833702, 
    0.0358490474156919, 0.537522821974161, -0.428536103322279, 
    -1.77290651051235, -0.135941338471136, -0.926528582195895, 
    0.0382015685486003, 0.110342893689058, -0.0622697426178331, 
    0.541150745151033, -0.597009412056165, -0.0186337146966746, 
    0.0788361899950669, -0.0625654786956185, 0.0408101695909507, 
    0.0264118031019113, -0.190442429185164, -0.589084383866214, 
    0.505746478135573, -0.337947222950718, -0.557502460337755, 
    -0.00455764675618426, 0.816884935845889, -0.00267695445211724, 
    2.16885253419863, 0.0658200756096292, 0.465159315754749, 
    -0.0677100733475857, 2.06440911338186, 4.16059258314417, 
    -0.227605485394993, 1.70473798483385, 0.160277601877508, 
    0.145286330645681, 0.0196218551201317, -0.00230137329052247, 
    0.100500420212375, -0.127912250867193, -0.33158624109981, 
    -0.0896845327657224, 0.444200893344707, 0.255789110791214, 
    0.31753079772596, 0.106643300962573, -0.0625215388220449, 
    0.988428661797631, -3.50984763416863, 0.949109243431806, 
    0.146305044234392, -2.11626641407382, 0.0791535086280511, 
    0.123898763860273, -6.33221764452731, 0.930162089974884, 
    0.0356485387327578, -0.0170136202156612, -0.49921991160301, 
    0.0606582586889441, -0.630453128357427, -0.502480478805535, 
    0.161315152128228, -0.523018236886181, -0.0121525921531511, 
    3.99987777777249, 0.13028111380847, -0.18000940136672, -0.319319581339645, 
    0.0196677415922498, -0.211135123984793, -0.0584030957251113, 
    -2.10237644538567, -0.148270314717769, 0.90040040672022, 
    1.17691671712606, 0.0152203002611981, -0.072076527381794, 
    -9.94295736413293, -0.174710651524808, -0.512755011271851, 
    0.203363514315048, -0.406966318632016, 0.023503990867302, 
    -0.829094519176508, -0.138542171975155, -0.0865658628009744, 
    -0.735205310572263, -0.117459149362662, -1.95302572227607, 
    -0.175658895782071, -0.0920031594949091, 0.0180975477106356, 
    -0.185771314061777, -0.167544576945624, -0.59199897972939, 
    0.307219627876742, 0.100261600028825, -0.267403452204039, 
    -0.291600350802659, -0.142540134738217, -0.142455265249487, 
    1.20806653680384, -0.105887896632578, 0.0541758290357558, 
    -0.0308683383395441, 3.3023300751386, -0.0262045907226017, 
    -0.23885814185638, -0.0608033227334268, -1.76699156218916, 
    -0.912522874988379, 0.0640519047088713, -4.54738357899167, 
    -0.11872201523507, -0.898227423696175, 0.343984134922859, 
    -0.147631255097013, -0.261915072143806, -0.0251510204963013, 
    0.0316479561559754, -0.0606650153035368, 0.0531019944540988, 
    0.0179848479674982, -0.0851656334467024, -0.0541004880620147, 
    -0.0613368501949014, 0.350419106566275, -0.272824292388786, 
    0.123349602940385, 0.0872990980373697, -3.0514027933828, 
    -1.78041294538719, -0.024961258152889, -0.425332333394585, 
    -0.0549024786369281, 0.105631755946427, -0.0535609765115829, 
    0.210062846688225, 0.00779349374628008, 0.147880300285118, 
    -1.12318645641587, 0.752858407320183, -0.0581267996153592, 
    0.233457659974515, -0.197602054773162, 0.0264847886297255, 
    0.401499396138099, 0.865816086874242, -1.03763052213118, 
    -0.659989058463658, -0.100787487951525, 0.0244169904678647, 
    0.667093091074218, -0.107610791400255, -0.0995756283308206, 
    0.615690237620097, -0.399946336387893, 0.373144029949432, 
    0.0940864105596236, 0.0723389377834347, 0.393500528309148, 
    0.00060276233973683, -1.28850048560142, 0.00524506179960391, 
    0.065367601254409, -0.0289073093037227, -0.121353362953524, 
    0.0282431144431805, 0.00752020441639908, -1.26229529734706, 
    0.0448244265915885, -0.0100864603040612, -0.11927067056619, 
    -0.12228020243005, 0.128724060424098, -0.307558827328392, 
    -0.103514350466454, 1.54272082091568, -0.335726221973288, 
    0.0132055293179705, -0.924901877075234, -0.103038071497614, 
    0.0429402153570489, -0.103696063469564, 0.0691724996853798, 
    -0.0937284908262106, -0.376156207444144, 0.37337041795057, 
    -0.131983943177179, -0.18138375384719, 0.744415670640534, 
    0.779223808567572, -0.330401839093545, 0.187528441860245, 
    0.167533489559062, -3.33409434264286, 0.331633820544432, 
    -0.0734607747514364, -0.0530205171206245, -0.447348164650979, 
    0.426281072156791, 0.720574610348204, 0.268872382367205, 
    -0.577832955968054, 0.25865996558179, -0.545019638779932, 
    -0.18331809557609, 0.0985087772616007, -4.82048714647061, 
    -0.601025672666932, 0.443830807036348, 0.0156850642692547, 
    1.33489201814292, -0.161960744196743, -0.659300560476277, 
    5.80490513979729, -0.0197447639668778, 0.0685272842967963, 
    0.267165751689239, -0.464431345190803, 0.00884881694705624, 
    0.539650325874647, 0.135462867510379, 0.108263865517754, 
    -0.0798070757157093, 2.35746938476717, 0.561573794621424, 
    0.167211460447933, 0.112896907360409, 0.494149453811411, 
    0.950666559246737, -4.22778986091954, -0.107961423535126, 
    0.0137001517333643, 0.316558112813324, 4.01642380979308, 
    0.373000764786139, -0.0133360450853231, 0.514780785407033, 
    -0.015279103801126, 0.278752691872077, -0.805394879437923, 
    -6.59494277786533, -0.181252133662508, -0.299345851260557, 
    -0.123430839706414, -0.00229331353257346, -0.879165626110111, 
    -0.574165949123807, -0.143099020996398, -1.17945416400486, 
    -0.215081663195309, 0.12113324427077, 3.2502546165047, -0.0133457701523557, 
    -0.298649579797485, -0.68897734013756, -0.382153983594428, 
    0.329432850884041, 0.144086557626582, -0.144724246188581, 
    0.106098575867041, -0.0328417991038607, 2.64324596325545, 
    -0.122023870092461, -1.51005800106618, -0.272641838014521, 
    -1.60468497693187, -0.122529974046277, -0.683995577564955, 
    0.187760415879303, 0.174232220800036, -0.00214956870445594, 
    -0.230389279858226, -0.949725177894602, 0.359626631786511, 
    -0.0917017795631407, 0.0882554250661659, -0.101767586833324, 
    0.0490128894845705, -0.206343003059565, -0.0353471526447066, 
    -0.00815581024522297, -0.0416149297466838, -0.253519161375303, 
    -0.0607412469434474, 0.0688924138861603, 0.194187339970427, 
    0.999675115688178, 2.53209204450286, 0.050356481683789, -2.4234458812035, 
    0.261103584665743, -0.0475131237395241, 0.741202423043645, 
    0.129456738970908, 0.0506426460555162, -1.97366633522087, 
    -0.295901103532245, 0.202615334783071, 1.10370496321906, 
    0.00569620266199789, 0.777520520176008, 0.271717484466642, 
    -0.151641928714705, 0.210756495312, -0.0604464861220664, 
    -0.658700516640064, 0.300636707678129, -0.305041108607743, 
    -1.4580614175527, 0.0860536184525217, -0.423463424711363, 
    0.892242241550189, 0.191378073339628, -0.00210616835512261, 
    0.0637407250474939, 0.669199297020394, -0.0675434772243504, 
    0.282981383463538, -0.0299359108010171, 0.521687021333655, 
    -0.471898479011718, -0.198158577282483, -0.0624050358638363, 
    0.111061990818541, -0.0230354740873474, -0.513016476379001, 
    0.823476114410456, -0.144582272145963, 0.469017029065574, 
    0.0669275540624101, 0.820851513147305, -0.0553986571959173, 
    0.0216984347998323, -2.72719289816566, -1.04658991937008, 
    -0.0193554953529111, 0.60329243809462, 0.00595387970735938, 
    -0.248179499012581, 0.901168997157541, -0.955099436670158, 
    -0.89688287067595, 0.0621174746811637, 0.567489755887657, 
    -0.385004723246779, -0.130231045802878, 0.139816032854522, 
    -0.645189190499584, -0.998634381928808, 0.0553508130226803, 
    -0.197115425261452, 0.0893284962588674, -0.030194688126092, 
    -0.0439879082991182, -0.032559803261077, 0.312802228406959, 
    -0.0912975606422108, -0.27232316204568, 0.22779889526527, 
    0.509548680561313, 0.442611352595216, 0.0496652295252512, 
    -0.0335100312958294, 0.531212029702304, -0.128061145565725, 
    4.07992987203201, 0.0772333854324979, -0.24419351820039, 
    -0.00230622880285524, 0.0971839878980415, -0.54309157597128, 
    -0.509107896326405, 0.0255302894470104, -0.00073772675610426, 
    -0.0575192097087255, 1.97047261135539, -0.751630266906776, 
    0.0222188460310202, -0.249799513505608, -0.00436350354179073, 
    -0.694505124957931, -0.0460418066374206, -0.67230940112583, 
    -0.738085064797516, 0.0846829992754947, -0.143894844415911, 
    0.598545622546424, 1.18692316156345, -0.0359626633403585, 
    -0.280638702392317, -0.276772451647003, -0.728671577242836, 
    1.22454676077748, 4.53569103941846, -0.308670059880879, -3.99166068518233, 
    -0.622205722581845, 0.0549297226188729, 0.654866949431434, 
    0.566680486068732, 0.666570759143238, -0.895233580689377, 
    -0.0983596172962433, -0.0840215775811319, 0.0472022228805763, 
    -0.057967411054079, 0.248990263645013, -1.05692126878861, 
    1.34146781529941, -0.0448784624118107, 1.39799103360072, 
    0.0475924401636687, -0.234033460056679, -0.916866540163651, 
    -0.892053655357956, 0.840243905810031, -0.419407773815444, 
    -0.175735095659636, 0.0521131446961336, 0.0731291438215557, 
    -0.678260544486959, -0.109292798668398, -0.0961576190321359, 
    0.400745626171996, 0.0025526538031388, -0.0598903963468343, 
    -0.0360599483898625, -0.102202596678179, 0.104029377639327, 
    0.211207505858284, -0.0408145458840033, -1.89377281573598, 
    -0.225796801407071, 0.482285147012656, -0.0293156117098183, 
    0.40726822478103, -0.0055759429681259, 0.210808362995346, 
    -6.26698498980894, -0.0147893368524917, 0.0511018649409646, 
    -0.0802509271745891, 0.293947962806237, -0.296052270289191, 
    0.280454176677162, -0.214384904606324, 0.151284330012287, 
    0.049676970052702, 0.0718446291965852, 0.020403874031663, 
    -0.156262974796508, 0.0108531516698973, -0.119274543753913, 
    -1.23560121197659, 0.0249821407559276, -0.315013408919978, 
    0.30276008010813, -0.00710635925549387, -0.235625368659345, 
    -0.0893468483066447, 0.00934180178751721, 0.239772897322367, 
    0.772475949955387, -0.0560456367613694, -1.32335047806672, 
    -0.0528114478785831, 1.49832567421268, -0.897386526199249, 
    -0.269070044540381, 0.381477009645088, -0.230332971938844, 
    0.0429928698543844, -0.0399346920387262, -0.0201185523859906, 
    -0.0349290490020091, 0.403174568698639, 0.00279652383859336, 
    -0.0436683966658656, -1.17761716601793, 0.529133983998342, 
    -0.0818422290605339, -0.907438024283665, -2.73261087595679, 
    -0.0162909409823765, -3.27174834624871, 0.288309937640721, 
    -0.550617477805971, -0.992569273716914, -0.0698167841821753, 
    -0.721231916621083, 0.228285814512575, 0.125144357482974, 
    0.0562273245849291, 0.0195601687373382, 6.06325482581669, 
    -0.599575500289234, 0.0191676046184854, -0.000553171627922737, 
    -0.121879307386645, -0.00625414907235086, 0.124410029398783, 
    0.223921539526836, 0.877778007368323, -0.108240873242594, 
    -0.0100689603343746, 0.964076574582339, -0.0901140355198605, 
    0.0277265649535617, -0.105237589823481, -0.372362881773225, 
    0.255998133991066, 0.709033252873659, -0.139965724778539, 
    0.975051301595495, 6.18205382075026, 0.0795265950588112, 
    0.756787556278339, 0.609247105778373, 7.27321921086067, 0.424943497443062, 
    0.903634701871769, -0.601959787714306, -0.231676538194997, 
    -0.372523880855536, 1.03811910398623, -0.171140488251587, 
    0.245602034661576, -0.162709053562176, -0.210319747847771, 
    -1.88116495300185, 0.0412436689745964, 0.05067958295224, 
    -5.83395592522675, 0.874377624782403, -0.0175457812442199, 
    0.082316812108123, 0.892663412765165, 0.333657649478374, 
    -2.05915952340856, -0.257045586144244, -0.274206478556369, 
    -0.108721038689473, -0.00827231582376593, 0.464844132125132, 
    -1.5620908353414, -0.726852097779473, 0.143126753052284, 
    -1.0112158343066, 0.303329959336556, 0.0387402879425564, 
    0.301285187909373, 2.53383205139453, -0.0591894916533432, 
    0.056425936328585, -0.613374677340594, 0.0262392447871409, 
    0.542732004082843, -3.04825807633546, 0.305311689144384, 
    -0.417683966316072, -0.094483463793171, -1.6375218045487, 
    0.0341327149955079, 0.291078192346094, 2.74283602310454, 
    0.139362846494305, -0.00913889413710404, 0.378200207771409, 
    1.63191950047169, 0.037374115423852, -0.911051164396155, 
    -0.158517167866142, -1.82411205060893, 0.508982280946168, 
    -0.108170046570904, -1.1680073486147, -0.0364924152000484, 
    0.00705316868944644, 0.153528305181364, -0.110297074625099, 
    0.0584962079994956, 0.10711469165593, -0.103391439105419, 
    0.0901690566844192, -0.15955120521534, 0.650528934511481, 
    -0.289784954341989, -0.25246024983306, -0.119003048721286, 
    -0.0520378244121399, 0.111013822654996, 0.156192686869142, 
    1.48550071502288, 0.187706403219079, 0.0808712487377242, 
    0.0615612579692833, 0.530999913605099, 1.85513682267737, 
    1.19686766640938, -0.292860580037363, -0.000197156134513003, 
    0.0719118651363698, -1.71294895937473, -0.362181034454246, 
    0.10392764898651, 0.619268987194715, -0.51782608580984, -2.21011183912331, 
    0.0170539101662926, 0.221970515660282, 0.997782383942232, 
    0.589704651572548, 0.266540011707792, -1.06892625678941, 
    -0.101738849249998, 0.655840476872479, -0.268701387953632, 
    0.103200090095565, 0.140733820967853, -0.964557419667443, 
    0.0533631252390934, 0.101203748571479, 0.208223233757045, 
    -0.150230116916823, 0.0277514811200489, -1.74730783999484, 
    0.682864503392412, -0.22483891096046, 0.0628229195829553, 
    0.270686931171265, 0.00804035844704395, 0.102668779375565, 
    1.61445989125924, -0.380916740881188, -4.76179182832695, 
    0.851489259816365, 0.00659484833282995, -0.150887173127283, 
    0.187817748234364, -0.0952303733132737, -0.855351965609587, 
    -0.0510146009204217, 0.151677414421635, -4.31211688773763, 
    0.0819799857149922, 0.0216966517811375, 1.65434778476723, 
    2.16991504772416, -0.287608926051224, 0.0275526488905137, 
    -0.348265768198267, 0.16706098783572, -0.0683619967176393, 
    1.71025405797623, 0.0134067170454768, -0.0536576090926735, 
    -0.333913634876766, -0.503597397445614, 0.101098443770934, 
    0.846023723302727, -0.176508697081185, -0.636273308977171, 
    0.301815018662995, -0.857819867531608, 0.0354462691451512, 
    -0.0555319674857917, -0.0243140724511172, 0.0478306340150281, 
    0.16676522036981, -0.574552172637305, 0.228106062235706, 
    -0.214919668164229, 0.0677287859021121, -0.073859983919991, 
    -0.580738666905233, -0.0190103018335573, 0.600892865476803, 
    0.179501663887906, -1.61662468532619, -0.0244081413308718, 
    -0.241897086013767, -0.298780207102352, 0.0538253658610771, 
    0.703077286869129, 0.0393681139592413, -0.154928966669171, 
    0.352188895599296, -0.181874458025298, 3.83080684915741, 
    -2.52068489881459, -0.684934100833323, 0.00867433529219515, 
    0.368442703679822, 0.0252024114149385, 0.360829069274167, 
    -0.0343700694359469, -0.0633631439726661, 0.0559181709678521, 
    2.32130776497929, 0.00509196113327607, 0.690780253909041, 
    1.0420647739955, 0.36978710282344, 0.581137678840718, 0.0966831444453112, 
    -0.42685754521387, 0.144535622901633, 0.0850400722964704, 
    -0.155598680905804, -0.499160383014488, 1.81822764014885, 
    -0.119335991438962, -0.301836837708374, 0.748220273590321, 
    -0.0920297716959268, 0.0866460188691383, -0.247247275857018, 
    -0.121202450632456, 0.0554063062595463, -0.627864398287545, 
    -0.579553383498452, 1.65607434611954, 0.873947977025809, 
    5.93312362660297, -0.542153198571472, 0.163568860552962, 
    0.224435978424239, 0.236788801439339, 0.132202328993298, 
    -1.15516212515481, 1.11558828482828, 0.105260636162237, 0.0114200750115161, 
    -0.183920449976851, -1.31497245814777, -0.190414642240075, 
    -0.540181556892206, 0.15153229534429, -0.0199573170556202, 
    0.123067072440978, 0.0841465902517962, 1.24743686400822, 
    -0.318079374852647, -0.479980922698063, 0.95360746888968, 
    -0.0533477863480283, -0.371386780137482, 0.779967227206659, 
    -0.228507818415088, -0.147768487542114, 0.320334585737983, 
    0.107774758312841, 0.183530116079628, 1.02855638979947, 0.969426309316721, 
    -0.123058596547932, 0.0941066425240928, 1.19438749630381, 
    -0.0128005551821589, -0.110760038525521, -0.370714561481569, 
    2.96018510007313, 0.172427197066949, 0.10468077482285, 0.148117160060859, 
    -0.0236485580729853, 0.135283147007257, 0.331514379155685, 
    0.056933083589715, 0.205405139146367, 0.166814222507876, 
    -0.110524724814852, -0.0313352741994627, -3.26965202540445, 
    0.561300229366245, -0.0507910615252012, 0.116816108079612, 
    -0.291740800093709, -0.303911416109779, 1.32043615050274, 
    -9.29606087394771, -1.05335317374185, -0.155696473117436, 
    0.0349095240162996, 0.0136446348341211, -0.0295027852905719, 
    -0.255411451565019, 0.152867346625716, -0.173487212031925, 
    -0.773067211029929, 2.72072809013906, 1.53932536906839, 0.211588480116861, 
    0.0209596945686441, 0.0567686164867949, 0.767331993574198, 
    -0.252864599389727, 0.00525423194297945, -0.105597952870088, 
    -2.77234513564245, -0.0252687094266669, -0.370949412658687, 
    1.64469948741976, -0.0154659417129352, 0.306565249083375, 
    0.172564152941149, -0.0282622276616817, -0.403712981986838, 
    -0.0344341254202569, 0.00430459006802126, -0.0459324958204021, 
    0.373362675893729, -0.29553205523675, 0.0144782120656722, 
    0.122988302690219, -0.0459773918649308, -0.0155034931512067, 
    -0.993958259991111, -0.129744384410405, -0.857895691013681, 
    0.0127592681173827, 0.437869202851339, 1.52503869264374, 
    -0.0578194401188527, -0.0223463440355816, -0.0721447880205334, 
    -0.603797119038631, 0.108852898167004, -0.356770476237568, 
    0.0227258967106012, 1.84639511369425, -3.92174632319056, 
    0.434967590189124, 0.338526728898223, 0.1416366317886, -1.29330732209647, 
    -0.00670913166625409, -0.150876922350801, 0.300252184738161, 
    -0.063405270543818, 0.288892644657556, -0.402107331294628, 
    -0.0424814599416072, 0.0798757401971626, 0.0363084935459556, 
    -0.0472903000583238, -0.177750566313977, -1.55592891000488, 
    0.812722114143148, 2.34508612321725, 0.358224129399358, 0.0485240630903773, 
    -0.0236859320245525, -0.0938784247768182, -3.2664241159178, 
    -0.0697424128563558, -0.141565466738066, -0.446611784111849, 
    -2.50043937114965, -0.0691565404778514, -0.18947825810664, 
    -0.457850254288119, -0.529952277659566, 0.0180341349866254, 
    0.377344204340428, -0.180386136247345, 0.0477518638768587, 
    0.0488056563386472, 0.163525064095714, 5.51996064666484, 
    -0.583654279378633, 4.45792295878808, 0.571365393477377, 
    -0.0603535837059647, 9.99486046484843, -1.14507841585419, 
    -0.872528825897023, -0.0831758466928363, -0.197109288002983, 
    -0.399712665052613, -0.322009784627845, -0.544385902103908, 
    0.783530066785433, -4.35175711412704, -0.0319691811373199, 
    -1.75635970146668, -4.20755607595725, 0.131959481510965, 
    -0.555999280937475, 2.47935434051544, -0.877342530293632, 
    -0.633349912389155, 0.177302247484106, 0.134407294542897, 
    0.153274083180873, -0.250359898841844, -0.0414452880714743, 
    -0.0819502782013499, 0.0417853857619328, 6.51106956809928, 
    0.0230219746723679, -0.146341765473098, 0.106957569476576, 
    -0.0337999669250408, 0.14717556567292, -0.0843609938230055, 
    0.00821851321137522, -0.750355433122593, 0.143393774178973, 
    -2.35822009719975, -0.481223783905334, -0.34037180226727, 
    -0.154874415449541, -0.0180959551603986, -0.814692505445599, 
    0.0727921563871795, 0.751834490538032, 0.275732369568434, 
    0.159913564841598, -0.311783581553916, -6.49791564797378, 
    0.318050933697194, -0.19254112726452, 0.0570607586993589, 
    -0.189159381024066, 0.053737418279595, -0.387335258245203, 
    -0.0472042700068101, 0.0438284972081797, -0.0276885630681067, 
    -4.11551261036655, -0.399055399028514, -0.170560929662951, 
    -0.106818268353394, -2.7963827451579, -0.687026769241474, 
    2.23395189796939, -0.479312529824511, 0.437332350096554, 
    -0.00490862989352458, 0.164362041213308, -0.169153519753431, 
    -1.92377041298759, -0.0924645262502772, 1.52564330730389, 
    -0.215171268523057, -0.475634823638269, -5.14248855687038, 
    -0.0609744401222364, -0.78381705183625, -0.878096837954828, 
    -0.908469115385889, -0.30547760998904, -0.252644690971443, 
    0.0297121156282516, -0.076047912939441, -0.249123999151091, 
    -0.333664325403026, 1.1948698729014, 0.13731986812986, 0.138410321575174, 
    0.313617024868184, 0.0547558638633617, -0.102174301501076, 
    -0.0578835015576718, -0.149936883639395, 0.744403172142055, 
    0.0064654690319272, 0.0107247921263929, 0.0344115939640183, 
    1.23855538011939, 0.175847783767371, -0.0311151877751314, 
    -0.283632611255598, 0.702620304781728, -0.0220872097443304, 
    -0.025795096859974, 0.264544295037123, 0.515347176089278, 
    0.0663498484390455, 0.0213620108098553, -0.0557510868932855, 
    -0.0682130670150421, 8.3477598530909, 1.42507194451153, -5.28606956939032, 
    -1.60979062943266, 0.0773387177482764, -1.15021293164801, 
    -1.84606674384449, -0.244135673587063, 1.14244536258778, 
    -0.140787946171551, -0.377531539466453, 0.0914961984893119, 
    0.133748233773116, -0.0617115659029094, -0.641096203224971, 
    -0.05252164850522, 0.0525851007154022, 0.622169316130899, 
    -0.0390037670730453, 0.527881446411195, 0.328921518327266, 
    -0.043313958917631, -0.132210727669914, 0.13252349372449, 
    -0.719667102580097, 0.178102012108026, -0.0695377485614583, 
    -0.475902443167899, 0.0700093576450173, -1.03259223995577, 
    -0.200108001801706, -0.0668682398429892, 0.518982978951162, 
    1.39663743068494, 0.0316027068820109, 0.00934084498281158, 
    -0.152717162873361, -0.214874320114476, 1.31042951175637, 
    1.0043854081641, -1.11904151726688, 1.01550924425704, 0.0138221544637068, 
    0.464462246306402, 0.0102661238423098, -0.721169145545916, 
    -3.16831576729961, -0.0263632383215079, 0.075533066231957, 
    -0.136445206904122, -0.557507023706702, -0.0697912789997618, 
    -0.0580527819012266, -0.450303904737852, 0.828972313017041, 
    0.0356107320833911, 0.188810077448183, -0.027250064015395, 
    -0.0579523953960181, 1.13726913503387, 1.05861018969614, 
    -0.0194617421166358, -0.139965880590224, 0.204165301158521, 
    -0.067788299428037, -0.0366909062606117, 0.0802716252336159, 
    -0.0131606248085168, 0.0852100007831359, -0.214550875993474, 
    -0.173304366481892, 4.3565663446385, -4.88986282713623, -0.654230421573265, 
    0.483225895989354, 0.0145999777373438, 0.528743562718683, 
    -0.657015940770162, -0.068918923818432, -0.0155058305538051, 
    -0.0503870510049829, 0.0378264717611101, -0.246863526944888, 
    0.0553522179750311, 0.177724230056079, -0.180641889766431, 
    0.0443126769150288, 0.0394543529664734, -0.0862318842677099, 
    -0.932612968112783, -0.588831753966177, 0.0156892497000198, 
    -3.46600026811127, -0.551116722620778, 0.104670333340951, 
    0.0713479358056948, -0.00755635879236164, 0.000645186224774082, 
    0.0518283180009617, 0.0261294536264839, 0.0423261362511534, 
    -0.510625710708797, -0.0015239043352142, -0.312665149328123, 
    0.569466379146861, 0.945768270971758, 0.107423162019686, 
    -0.0478131262806816, -0.112117020328925, -0.0223851731911647, 
    0.000271471604416471, 2.51407993644888, 0.104341969407465, 
    -0.0630693356778984, 0.035122201062237, 0.198320078367864, 
    0.0780572697256422, -0.255546220029234, 0.0746293447164574, 
    -0.76330990556298, -0.118439834079201, -0.0201549629429016, 
    -1.02545363269214, -0.11868386029696, -0.303545871402833, 
    5.44549634334964, 9.12657393488243, -0.000706007725338655, 
    -0.0179088824641969, 4.33372374081164, 0.254366464194156, 
    -0.0427984209669486, -1.20732949465809, -0.124877212986169, 
    0.0639641669777973, -0.329574002711724, -0.185882042172933, 
    0.00701135507982254, -0.0798832264199709, -0.132826652557346, 
    -0.465804699028925, -2.37591437417666, 0.575510451361343, 
    1.34986953419121, 0.203927932602318, -0.899559534130307, 
    -0.0393439221191858, -0.305619300971778, 0.141016856099157, 
    0.374164111842132, -0.215587931350638, -0.0486535760586235, 
    0.062477110062483, 1.97391202165716, -0.0575557105409472, 
    -0.021484965320836, 0.0560242204994004, -0.00827263290340979, 
    -0.204590466623654, -0.145964077694055, 0.0635324973939006, 
    0.0996894118507295, 0.136226074905873, 0.628754425736496, 
    3.11767492010595, 0.840550124721823, -0.490121117699784, 
    -0.485313068941957, 7.37401353744991, 0.0204142671455131, 
    0.203134302307459, 0.169278676130846, -0.0139055456956553, 
    -0.297226417554738, 1.25354111909342, 0.340339420507675, 
    0.76566882934144, -0.856646881746476, -0.579757578361345, 
    -0.0691894750151164, 4.69136638753735, -2.33374158205287, 
    -0.14378406694737, 0.604643848947901, 9.08564214641305, -0.04856378937827, 
    0.103712053383943, 0.15316935253617, 0.265677166520553, 0.274036197722404, 
    0.0602301462800537, -0.492991815939307, 0.138839435036568, 
    0.413505889605673, -0.0880452468854972, 0.00460645955301773, 
    0.0242604726920632, -1.28282563878064, -0.0933716511387944, 
    -0.02512249073887, -1.70674736988217, -1.08171531967256, 
    0.111509801600835, 0.174082840059535, -0.207665267567472, 
    0.23637320406051, 1.91231431151393, -0.114926212638236, -0.159709082452218, 
    -0.0952509003188379, -1.30529389695694, 0.077184666298965, 
    0.110252336290641, 0.544926927202103, -0.18917307939907, 
    0.0253446317283101, 0.225249060446879, -1.17561954850095, 
    0.167695803571958, 0.311588157281009, 0.136389506475777, 
    -0.146098018672647, 0.210844079903963, 0.241512062838558, 
    2.54178272799316, 0.90128314382352, 0.0602870223674842, 0.214870503232642, 
    -0.0323539096193384, 0.862493486965667, -0.883212250778467, 
    0.172487431311432, 0.358701795751031, -0.175238195034265, 
    0.146963461339999, -0.0332196599505574, -0.0797629561299608, 
    0.633786310698138, -0.432993761833724, -0.156268309352329, 
    0.176111003416978, 0.142524007153215, -0.102761566840388, 
    -0.846484701802307, 0.120705651824483, 0.463090134816465, 
    2.82429671252736, -0.0447002974557565, -5.17963915501544, 
    0.0165519222018273, 1.62895688600524, 0.0555106548154482, 
    -0.0752377848831408, 0.00360609717749019, -0.13344866741576, 
    0.143550319209338, -1.37999693836235, 0.0928641017263172, 
    -0.846098863254701, -0.357843799203329, 0.280349752828654, 
    0.0491971979606078, -0.0731586444799364, -0.0684339970046097, 
    0.0118414130286184, -0.570040926526779, -0.410908296659226, 
    -0.0426164505915248, 0.165593846289831, -0.752782267500369, 
    0.789082507444728, 0.109207887893127, 0.10178337410177, -0.05110242184317, 
    0.0228571867023273, -0.00922364328836321, 0.211705704964171, 
    0.978555776350827, -0.00378724912126744, -0.536018128225061, 
    0.0790410994260172, -0.048248143689892, -2.01838704842341, 
    -1.24939261629316, 0.340388840647595, 0.132732999667846, 
    0.370911342284911, 0.285221309035855, -4.71447347780009, 
    0.889087942839171, -0.0637556441026005, -0.391884986042156, 
    -0.186434932316087, 0.808107311043992, 0.615692406499651, 
    0.565939054990533, 1.31149015765755, 0.0304951759466175, 
    0.044660818325767, 1.33921553073865, -0.568724630170545, 
    -0.905715649603312, -0.972492890859886, -0.0613430693679056, 
    1.08899022612496, 0.00488865504362984, 0.300530121632692, 
    0.694672147945768, 0.0296358474532628, 0.0980418841363948, 
    0.0891868012578769, 0.871923247949372, 0.278884768903664, 
    0.104755603928652, -0.297954228996818, 6.13183446566489, 
    -0.191674066735289, -0.0477692645564626, -0.24208484981131, 
    -4.58131654812074, -0.0340284291582444, -1.6265726814458, 
    -0.0394319358277258, -0.538629227402153, -0.164752936712315, 
    -0.110198738719254, 2.82464584601494, -1.66053288852444, 
    -1.01203001723719, 0.0976498458552563, -0.062434693773946, 
    -0.121778920076666, -0.294634566597963, 0.0462141922506085, 
    -0.812959151555971, 0.460558639859774, 0.0304942700402246, 
    0.241058084802478, 1.99393872963441, -0.16682402291586, -0.115231272920973, 
    0.966512105180414, 3.75113050656171, 0.144743971466926, -0.0592411977139162, 
    -0.536730624590202, 0.31785787290373, 1.23838442785454, 0.242659678350237, 
    0.473633754075083, 0.000637567219065305, 0.118055202266041, 
    -0.300664028643149, -0.913667312646064, 0.109077772104372, 
    -0.0549772409213728, -5.19042660341257, -0.0759498896126043, 
    0.228077468150237, 0.0347398359266319, -0.0831763946758618, 
    1.02231010928895, 1.61410040759502, 0.246859476209045, 0.731857721681731, 
    -0.104704054152231, -0.141546021814229, 0.97658387858073, 
    0.390327170323998, -8.76845093585793, 0.296991347397729, 
    -2.4421672012159, -3.82415350477013, 0.023406571795832, -0.1296060633283, 
    -2.8834332587754, 0.0326815679257977, -0.176151421723061, 
    -4.29396665245091, -0.0226487094445742, -0.17348801665687, 
    1.59103479502773, 0.745629784433547, -0.148797120775561, 
    0.0279545857894035, 0.207000294614065, -0.0383171507303278, 
    -0.113905943985062, -0.0975009189923489, -0.625961534442872, 
    0.748320330023572, -2.14927779359988, 0.0823689138813157, 
    0.00917046478069677, -0.0502519792473042, 0.199922784239318, 
    0.128225111521136, -1.91925342037091, -0.177618764337754, 
    -0.471044015125235, -3.0753396288817, 5.32367684552012, -0.0498472988744861, 
    -0.713537435002378, -0.0190001633498702, -0.5784364144205, 
    0.14518751924676, -0.0544448650177052, 0.0722951429345688, 
    -1.45900107326994, -0.0362521175365987, -0.0391716486837704, 
    0.0119254993924174, 0.419643901081065, -0.024431894765317, 
    0.381679594509571, 0.0752215195240805, 0.0190510444540159, 
    0.175180555291682, 0.683208065562423, 0.696772548984809, 
    0.23723450186253, 0.0218678822464616, -0.0568311496264657, 
    1.52342847863111, -2.07337030085242, 0.178533487053397, -0.00613971271848853, 
    -0.0591975042883764, -0.76892469226386, 0.622448409684146, 
    2.56613889158585, 0.161638382389396, -0.285168621277424, 
    1.56583242503219, -0.191527443544071, -0.145722482961537, 
    -0.106210352453044, -0.398739540032616, 0.192562579202677, 
    -2.09926012589648, -0.0966405570502327, 0.440565839107871, 
    -0.0246968989592612, 0.032180319530567, 0.162694394668713, 
    -0.694631699247959, -0.204156154175479, -0.0073559645430445, 
    0.026474958829206, -4.27806758827821, 0.482877744987499, 
    0.587010496469626, 0.215951497506666, 5.09162652655464, 0.0471151783828884, 
    0.184058242694446, 1.91473493774639, -0.0707218218624185, 
    0.138745257894727, 0.0571849691471892, -0.0160991583148484, 
    -0.0374022177693588, -0.0276668485844109, -0.342321186083596, 
    0.134258475381586, 0.0151436796568564, 0.0351556974468542, 
    0.0101192944181881, 0.153275622811076, 0.485973285859929, 
    -0.247914027779996, 0.0546322668655969, 0.554422874952146, 
    0.122877630109913, -1.1796176522166, 0.113259918841599, -0.562076670452086, 
    -0.333908970228151, 0.0282401611736076, 0.561486586599597, 
    0.0183657830983101, 0.120504902661213, 0.738722516764624, 
    -0.364575321029824, -0.46640301067485, -0.0746263045239528, 
    0.153731460022244, -0.89184544047982, 0.288276647351158, 
    0.862113324436263, -1.67720399786033, 0.271482943313318, 
    0.11168125281355, -0.591171792415555, -0.620471341581361, 
    0.0408401525083389, 0.741281252985265, -0.00343517441224375, 
    -0.0567148714871294, -1.36664722258405, 0.174839821798476, 
    0.439770961671504, -3.24418953502227, 0.174820902047797, 
    0.184448024973343, 0.0438758766305747, -1.67389198844269, 
    -0.859408328517269, -0.316940574283739, -0.464636387215588, 
    0.702603405184397, 0.0629127685245263, -0.214236192352741, 
    -0.585441686947582, 0.125354582829714, -0.314352089428285, 
    -0.190768329416414, 0.496151241328743, -0.157118561648809, 
    -0.5794078904003, -0.230412122327287, -0.242188458879732, 
    -0.11628970276075, -0.0412065595963964, 0.995458413287483, 
    -0.0318699768164429, -0.806113345489419, -0.159937066524458, 
    -1.58742946860531, -0.137859129738863, 0.019794716919478, 
    -0.0464782422606414, 0.0385547086158765, 0.463642407104385, 
    0.372847846829928, -0.12597033810475, 1.79815785782858, 0.189050223199136, 
    0.00201549915473438, 0.0570403713838167, -1.35845195253143, 
    -0.0223489283295715, 1.94044416816975, 1.14335127248381, 
    -0.0828587414652181, 0.259465513883382, -0.0358861423183526, 
    0.0466903513481783, 0.748243289890287, -0.266807110670178, 
    -0.223607094087077, -0.0264005736755724, 0.993387392197542, 
    0.0432474853963906, -0.449111626780765, 0.307095738042961, 
    1.82811749025445, -0.4308635445488, 0.219333926862973, -0.056891821683537, 
    0.142696656232412, -0.00386420760554651, 0.834222992803155, 
    0.0413674899676818, 0.12151771042846, 0.163737404840304, 
    -0.413735007922673, 0.296044438455981, 0.249893844362217, 
    -3.11306114450773, -0.851468989263495, -1.91108296901516, 
    -0.125424068568876, 0.805675491602607, 0.224449996281802, 
    0.0164783798794987, -0.710850122141954, 0.68480418332904, 
    -2.06295188114516, 0.0158029921997095, -0.190571960459129, 
    0.983306178886658, -0.116207544675512, 4.54438334260631, 
    0.0922612447895114, 0.00941319309511542, -2.29124072048312, 
    -0.439419254201923, -0.146940264958021, -2.02628199202398, 
    0.975433790728167, 2.29926553685103, -0.25975699543483, -0.151472754878769, 
    0.0386184899028558, -0.841770050038861, 0.446701616010226, 
    -0.179511525459823, 0.168208261418961, 0.175176779735647, 
    -0.0905400228684744, 0.195772703913813, -0.538001935356459, 
    -0.0951988750896437, 0.296043100078931, 0.650192447579425, 
    0.212917330090876, -0.132379058500098, 0.0175364420287697, 
    0.720887264450786, -0.0353087718238628, -0.790516961973781, 
    -1.14332806965375, -0.502612632569399, -1.14724779133105, 
    -0.107688656163702, -0.253911825702578, -0.215472583328977, 
    0.17204260124594, -0.125872499643187, 0.229396487781885, 
    -0.0933767161331247, 0.186278458138647, 1.35918007277495, 
    -0.193411246803141, 0.0822540657701921, -0.0941431631482057, 
    0.984773626532838, -0.220460425417563, 0.0487468470597934, 
    -0.0230571258170054, -0.712644221017522, -0.657083338299296, 
    0.09932814083153, -0.0327804071566272, 0.673399345958557, 
    -0.303886310925606, 2.3552589492802, -0.555108904133558, 
    2.12674552354626, -0.173408302279095, 1.08439320108435, -0.695471065974319, 
    0.76142111399561, -0.0404315647274471, 0.214471433395288, 
    -0.0364628520029192, 0.14236507836057, 0.31316577026022, 
    -0.00485963262117075, 0.133553179082337, 0.0378691301885441, 
    0.112499811377875, -0.330200080162279, 0.120972616182322, 
    -0.577316743763531, -0.0863869916674018, -1.09498845956959, 
    -1.20771904466636, 0.172758603368082, -0.0768544596041468, 
    -0.0978523467707258, -0.0848024149261161, 0.0604954717615076, 
    0.00996267378273301, 1.69153752774988, -0.0166539803133282, 
    0.0722870052589602, 0.00781542500948264, 2.0986832951154, 
    -0.170172499971426, 0.132888547536567, -0.0439039045925438, 
    0.0684199103753399, -0.031314003189987, -0.253807820733023, 
    0.0277518328064784, -0.238517181690648, 0.145830952120781, 
    1.811355183525, 0.120888733203671, 0.0301977232677126, 0.0764283160363277, 
    6.12621184678925, 0.242481589196061, -0.0427163606877542, 
    2.62760741597119, -0.554136809222341, 0.376303012364809, 
    0.404154195105398, -0.393516645660824, 0.0442954801671645, 
    0.147760091322602, -0.0509218971188292, -3.52028456546009, 
    -0.092646335422402, 0.255890988319662, -0.00615001111299728, 
    0.104942295595859, 0.257243648223831, 0.223425732926017, 
    1.71854675240062, -2.02270243247538, -0.0728283408294154, 
    -0.044747396002651, 6.97619805697013, -0.285463807074204, 
    8.42767642474372, -1.45899159387489, 0.456225154716509, 0.2924308604835, 
    0.0767128506828992, 1.06496248424695, -0.430204272544566, 
    0.0849185042090936, -4.03278819023625, -0.453373385715469, 
    -7.35721032008656, -0.107601552570429, 1.38917455521334, 
    -0.473534862681577, -0.0508335699077141, -0.00990244268999948, 
    -0.229408692198445, -0.0861022480672652, -0.302803647309463, 
    -0.250146224482587, -0.240830486481548, -0.377714372741254, 
    0.117613557839843, 0.0215042077642606, -1.51907330168374, 
    -6.94675618190061, 0.0685156246267948, 2.00720420020154, 
    -0.637262793919861, 0.112834930280795, 0.393865080953195, 
    -1.25226886679177, 0.0249228898570324, -0.216771969089802, 
    0.15163004426528, -0.0480971799908216, -0.0273523518921471, 
    0.492478805147642, 0.334820277366273, 0.0804339513340741, 
    -0.0963073391109169, 0.0667468841072111, -2.80402685836594, 
    -0.93418932995039, -0.0337013879032883, -0.309482171988524, 
    0.237751547290933, -0.025856254351672, 0.00545601025836004, 
    -0.0893542277890336, -0.575590828305142, 2.82834340694559, 
    -0.10853303621294, 3.41549850179681, 0.196122330385416, 0.508262689084091, 
    -0.0121106707423764, 0.00517424966078275, -0.695006743849959, 
    -0.228064764857921, -2.54676540400226, 0.0904078835908173, 
    0.144238312074166, -0.00977677281325875, -0.230483434391981, 
    1.14270602730186, 0.422998765544302, 0.403164528593761, 0.239625870338153, 
    -0.00185953963506796, 0.314691348414188, -7.03049258508477, 
    -1.33648769720076, -0.0729310810239077, -0.0214693423540249, 
    -1.2371496387467, -0.45706999653587, 0.11176986132614, -0.113700754364946, 
    0.287885280376352, -0.182131610640525, -0.0367784755273311, 
    -0.0736652725995398, 0.0387141992168936, 0.735542290611544, 
    0.415684460104997, -0.39975109083255, 0.354730254511537, 
    0.0201634957554106, -1.17641753339311, -1.53406682222354, 
    -0.140190281049668, -0.0215275210666739, 0.00354195949874515, 
    -0.056009646346297, -0.0264860595633842, -1.17583693304343, 
    -0.433246053995704, 0.409259666812114, 0.051727439743828, 
    0.111557479038254, -3.05384277067276, 0.533693305973669, 
    -0.347314173651861, -0.335664944638438, 1.32276739833613, 
    -0.101479844508668, -1.1445511740748, 0.0612652605166827, 
    -0.345299213609441, -0.0983254834068525, 0.101388612018778, 
    -0.0471295730365337, 0.357171153816943, -0.114069142833934, 
    0.6653446924601, -0.0527958099080018, 0.00954964996535612, 
    -3.6662413267952, -0.0382860136044617, 0.871009849459955, 
    -0.00605525902604116, -0.315285047918543, -0.611321102890063, 
    0.0928179851600932, 0.00594308756636875, 0.352033235799497, 
    4.44283931224267, 0.0361061533097118, -0.115241113202133, 
    1.00578694998888, -1.71073653774887, -1.0946282891292, -0.10083598631776, 
    5.33828457905882, 0.0850359925260606, -0.945211158353358, 
    0.133185390063158, -0.107837860237677, 2.17074001442234, 
    0.438670684558369, 0.0655488113160028, -0.338902463253217, 
    0.836732950027975, 4.61695500567704, -0.0787646661659091, 
    -0.0289562430171063, -0.214358044783582, -2.22952264469688, 
    0.270430817385152, -0.0757879405506912, -0.0560089971187964, 
    0.547018772291108, 0.012187097288184, 4.99285783763952, 1.2726515305811, 
    -4.83464721182582, -0.0310055869842854, -1.08090877688844, 
    -0.606101797956603, 0.0725128334838149, -1.52786720571387, 
    -0.578209233834541, 1.76713100930825, 1.16606222846073, -1.36315651461364, 
    -0.121711827652042, -0.0580757908334991, 6.5390158729797, 
    0.60671133105064, 0.227002174136756, 0.186094577068396, -0.301707376815183, 
    -0.985775536671579, -0.121528728966927, 0.0360484803455385, 
    -0.38635927484395, 0.402727917790613, -0.6462380542555, 0.0312378002409137, 
    -0.194410281664705, -0.118480112140767, 0.0033639726462512, 
    -0.58162417221959, 0.0142978163918951, -0.112915565333359, 
    0.204116069164515, 9.15982378804681, 1.99728001848407, -0.0126409457854003, 
    -0.87239901440371, 0.174528805873801, -0.460011143164206, 
    -0.186302553753065, 0.0783764537081253, 0.400301311164743, 
    -0.269008187930003, -4.55409617165942, 0.161349166916012, 
    1.25173569270266, 4.02887919036782, -0.5155728111646, 0.0645129195129552, 
    0.0556953400498242, -0.636979993511801, -0.0754793251450943, 
    0.00659679586427411, -0.0611864183161101, -0.0394973497888018, 
    -0.00796798558625933, 0.143673809677996, -0.0616799762573596, 
    -0.832323056967172, -0.0313926235488088, -0.583200147449997, 
    0.0615844629864844, 0.00391067191617144, -0.297807155033274, 
    0.495586598632841, 0.515117021922934, 0.568497300546291, 
    -0.0157869119959501, 0.0661149683352161, 0.603033163755866, 
    0.0614020907083485, -0.0533275316916799, -0.15495828279969, 
    2.25187750590518, -0.463852824265419, -0.335444099667478, 
    -0.175000871324931, -0.0374048368218932, 0.0343114891175783, 
    0.116689238192235, -0.179727294986089, 0.00481884227657733, 
    -0.0510373500182834, -0.199864950383325, 0.441377567164228, 
    0.598637517246471, 0.496252706817067, -0.594293276175342, 
    -0.845930872609369, -0.157404707829191, -0.0168984346885365, 
    -1.08750617336998, -0.0490480535134809, -0.00328070753509132, 
    -0.456863648710154, 0.437910938527432, 0.0908542147551512, 
    -0.0446710264890412, 0.789440555589675, -0.171395245933586, 
    -0.0520868065682969, 0.190779340116864, 0.0596915541945915, 
    0.158303783971193, 0.542235480575294, 0.162133424536575, 
    0.112474780795257, 0.0380072326099888, -0.872845120568238, 
    -0.0650958068575955, 5.98583493866102, -0.264666273922083, 
    0.0402643481488026, 0.126310335576297, -0.129306202310421, 
    -3.16447537805012, -0.0203623712423483, 0.0233375239900849, 
    0.0101561504833433, -0.000142719374543957, -0.28063745433294, 
    0.131530201063868, 0.904235410072304, -0.94957633740781, 
    -0.142846468532365, -0.162652710238684, 0.252202124061536, 
    -0.400816394695886, 6.24067487231656, 0.01167198826047, 0.144867739066272, 
    0.0787827660768518, -0.629972559988845, -0.124769094769496, 
    -0.0290376016072669, -0.011425528125203, -0.419378473871982, 
    0.00692890391348477, -0.0822976398700591, -0.120930701173825, 
    0.197017895895052, 0.21428161417694, 0.273284613508521, 0.677082735558009, 
    0.0320613454826365, -0.0091726990460604, -0.0628357780458535, 
    0.302839767183144, 0.133248797724086, 0.0453089377979373, 
    0.0163442847079797, 0.589486050854179, -0.244334141086548, 
    -0.438060154004925, -0.279368443052302, -0.0380562692776112, 
    0.153131599122334, 0.0169880086149177, -0.093583743199871, 
    0.184874597866626, 0.0653697429179164, 0.762882595367663, 
    -0.0555643090027219, 0.625090086586795, 1.07671886934534, 
    -0.192429870381796, 0.101895879257644, 0.0278754722569886, 
    0.228330840154312, 0.110877945928058, 0.017649524454315, 
    -0.0246452771433157, 2.37254447163936, 0.0325026111432849, 
    0.562260058226106, -0.595897629493791, -1.43822775950074, 
    -2.30207963473752, 0.0234787309136362, 1.01349871466679, 
    0.465627145246383, 0.623788919879871, -0.0464116027428179, 
    -0.0601335756285757, -0.019255810606774, 0.189997792318027, 
    1.51810962477153, 0.259525297505067, 0.248490256505213, 0.37997407028416, 
    -0.062997570681123, 0.0388813466183276, -0.248939285866895, 
    -0.0418483172687742, 0.360902007465287, 1.21587893679329, 
    0.335514761359445, 0.0417841268800951, 0.0895405026448983, 
    -2.94787170470179, -0.26275611117752, 0.468268400591735, 
    -0.0461140892776536, 0.730737790297247, 0.0429724909525354, 
    1.73918650988097, -0.0586639165493578, -1.12871055599518, 
    -0.0926946342252528, 0.31746993659879, -0.3324995362016, 
    -4.78889676451723, -0.255241790276699, -0.167592741876463, 
    -0.161130907249186, -0.0683253670485828, -0.00695035952668509, 
    0.787433574089572, -0.00476347603578325, -0.313843971633273, 
    0.135981163965443, 0.525412095007339, 0.0252290650313638, 
    0.00510999788986256, -0.00771306030302036, 0.18552142656493, 
    0.280437843541481, 0.48875568867311, 0.114591908592737, 0.0959278834399406, 
    0.396577719759509, 0.173590435808131, 0.0896151225368711, 
    -0.0396671356932845, 0.0833070788974044, 0.317322922261467, 
    -0.146584112275314, -0.0749717432998097, 0.128900304860295, 
    0.207844683325113, -0.337926497429201, -0.208902708645758, 
    -0.0117862642604505, -0.496875902271695, -0.532040809664097, 
    0.255153985214752, 0.272702064548253, -0.283647725279181, 
    -0.187429436133467, 0.0531933550828694, 1.40641993301912, 
    -0.14671685225706, 0.0787608123692026, -1.21016215594226, 
    0.197710175100931, 0.467139888971388, -0.0451547749086326, 
    -0.0131232659823473, 0.552469520464965, 0.210043548305183, 
    -0.0193843017787834, -0.0641734981746176, 7.97229944758078, 
    -0.169536715925768, -0.281760966088983, -0.100403888547565, 
    -0.636629313954052, -0.0513124066437831, -1.92068008337348, 
    -0.774647351075941, -9.50981719616295e-06, -0.659922280862454, 
    0.929773958431454, 1.00646704485937, -0.0365791406741397, 
    1.06993585267776, -0.0228088590533691, -0.312693309780768, 
    0.0725800539798288, 0.15904260481678, -0.375543032712749, 
    -0.0581232381441433, -0.0310316165813177, -0.752857493836415, 
    0.446633499901086, 0.539108608254885, 1.25529470100294, -0.195605383242885, 
    0.904974986982405, 0.178158739402864, 0.20422812970832, -0.872023393010556, 
    1.15968375379115, 0.0111308968380358, 0.288758747974975, 
    -5.881982750421, -1.45444001665588, 2.37772136791923, 0.36116697158999, 
    -0.0209645719035083, -0.842263311032702, -0.0131239652629085, 
    -0.0252282235192789, -0.0770120803932169, -0.334307903976455, 
    0.0687131202457029, -0.934678663390069, 1.4668813033642, 
    0.118290997021121, -0.0735286897969131, -1.57488986176948, 
    0.304016935061837, 0.664161317923925, 0.0651969690763889, 
    -4.25094784926215, -0.328832021289806, -0.895310819588531, 
    0.0244935150728113, -0.104639985859845, -0.295852518842831, 
    -3.28409750581079, -0.112860914446551, 0.0861645188587136, 
    0.288352640893668, 0.0336459003097387, 1.38109393174775, 
    1.12466541174738, -0.0455477575517618, -0.109256298160719, 
    1.39152279097982, -0.0414224581619646, -0.369800929107961, 
    -1.55748013116212, -2.45041011403312, -0.0451198991591965, 
    -2.83546305159803, -0.266233168840076, -0.102690087312233, 
    -0.667672438157835, -0.356454435999532, -0.277078563662494, 
    -0.366976326407559, 0.035344218661217, 0.38891382094867, 
    -0.135384922218421, -0.0759043235831229, 0.0499212810922831, 
    0.00378838112793958, 0.412606843350155, 2.33467084855411, 
    -0.074947617580658, -0.00291148139511911, -0.213098059282663, 
    0.201435696461068, 0.244976789007746, 0.672803589402939, 
    1.49090963919287, -0.0288523202527265, 0.0333198653229415, 
    0.160064359556787, 1.53048042140199, -1.16269662933697, -0.138376355872362, 
    0.210808618008983, -1.61944255684737, 0.314289667765948, 
    0.843714409047518, -0.106867292175747, 0.297597340726833, 
    4.02339027426314, 0.4489621758202, -0.0766767767642087, 0.126854609852482, 
    0.0827042364208657, 1.80284780261024, -0.0904911046983604, 
    -0.741985847963604, 0.0403114104050011, -0.0397998859017569, 
    -0.10690291656705, -0.00892871496699465, -0.0205475117014543, 
    -1.48752186911228, -0.133379237878718, 0.295413730820712, 
    -0.0308349740208227, -0.188554581868822, 2.19864065724723, 
    0.171258441254235, 0.0605698971395052, 0.368624020305357, 
    -1.82482067768901, 0.379576788958051, 1.13668929749961, -0.443581638891418, 
    2.40680247342719, -0.587150614073535, -0.160251504598579, 
    0.390065204008634, -0.0546383712414371, 0.109932656517833, 
    0.734082006884624, 0.0650599668379285, 0.264119230345408, 
    0.230775595481679, -0.00612123582450665, -1.80568182182672, 
    0.141251116638628, 1.04502765988372, -0.00281048613701174, 
    -0.791364924919475, 0.842744012851521, 0.36218726065645, 
    -0.113581754117608, -0.129000844706427, -0.299679486172645, 
    0.189926868361242, -0.0173118558042789, -0.556303267113747, 
    -0.164027777738374, -0.0698942883614001, -0.325489509767042, 
    -0.0190221933297614, -0.231354175963926, 0.278783884164204, 
    0.108381746913505, 0.0757469468673486, 1.32446201209745, 
    -0.336342580573697, -0.363741863720277, 0.0953862422751005, 
    -0.233565253325567, 0.5563892665463, 0.315306938888803, -0.103475431404394, 
    0.395366788136331, -0.212813728577817, -0.268262369702702, 
    -5.35520687163972, 0.388641116914877, -0.474016510361931, 
    0.266813682166366, 0.223513343241994, 0.31515617769755, 0.244685980754746, 
    -0.0560716175408814, 4.51694370948141, -2.35791255767401, 
    -0.387311977766693, 0.00551037635839779, 0.720435268199987, 
    0.131282382053813, -2.19714289041569, -0.661299989750632, 
    -0.310625405825402, 0.0441772563983839, 0.180846467980209, 
    0.0540105623016983, 0.192726952014525, 1.03247682147146, 
    -0.0976575076645671, -2.09836783675338, -1.02300467412864, 
    -0.535038662490945, 0.0195238678313065, -0.177796787547979, 
    0.237486991844427, -0.638488594519411, -0.121740573495781, 
    -0.0660683097884517, -4.51477144186337, -0.078406292270202, 
    -0.117295654334354, -0.00953557248247203, -0.783990146198959, 
    0.0746692525254185, -1.11020619073885, 0.351508886483966, 
    -0.169993767450533, 0.255318492595894, -1.96790488616311, 
    0.101467340239707, 0.108897229914003, 0.0873876551365233, 
    -0.242661321900307, -0.0474451872074722, 0.0356308976349063, 
    0.434519082652435, 0.0398828737249161, 1.79130645731569, 
    1.21150076755653, 0.0568518560518554, 0.119173500331067, 
    -2.13903960544796, -0.063539423061896, -0.164498002925267, 
    0.478967353785172, -0.624235230676855, 0.275748735677041, 
    1.33616286546561, -0.41300719129797, 2.33965532298212, 3.58375084107741, 
    0.048835158369497, 0.126513771488228, -0.0930050731837393, 
    0.0600641580768988, -0.943494421796186, -0.0223909879415046, 
    -0.189695298738724, 0.131295394425941, -0.222679808790142, 
    -0.0637012746217068, 0.306516076980907, 0.382887882595788, 
    0.0800370639829703, -0.760614197594027, -0.379651407546413, 
    0.0668045440491066, -0.179346453915278, 0.0943084217112335, 
    -0.792350173216724, 0.0118189151946888, -0.169249330607177, 
    -0.121371013844755, 8.18747860349636e-05, -0.12334059125697, 
    -0.485290693970934, 0.344639473792911, -0.514322842100445, 
    0.488797724012521, 0.0209102986668449, -0.0525999839891366, 
    -0.676816377821676, -0.216783229789701, 0.667785208600624, 
    -0.0846204459633138, 0.134605696947858, 0.27639273674683, 
    -0.024123428867155, 0.0170177365924684, -0.364996045951778, 
    4.53941901926491, 1.3378181714832, 0.147893720558646, -0.0995927750152856, 
    0.297268643593305, -0.452502741778089, -0.0836497685070613, 
    -0.0364785959065663, 2.59103890645386, -0.722293505269998, 
    -0.163421811675497, 0.310343748850747, 0.0150954347504951, 
    0.22104003447585, 0.277824045726359, 1.74881623927677, 0.286958185909551, 
    -0.0317520382134826, -0.00538050489115706, 0.409558041895812, 
    9.36407777692283, -0.238982009753137, -0.00562332909407947, 
    -0.553193066917003, -0.127712017549662, 0.618069923780741, 
    -0.350941846069706, -1.213562105314, -0.140374577734096, 
    -0.443641887961, -0.249769678910608, -6.48615447095379, -0.778909947112175, 
    1.41713356263341, -1.10612526207698, 0.193210485791142, 0.204632732269499, 
    0.132578819500579, 0.0239675463954553, 0.988314303894439, 
    -0.204551653513809, 0.0837309293012549, -0.117964853434168, 
    0.0674735037885264, 0.146224747935212, -0.464465466119585, 
    2.0474221305355, -0.122743212485471, 0.260326602957739, 0.0225473173082923, 
    -0.186394496520258, 0.542899566799292, 0.30236218592825, 
    -0.690046912872838, 0.233946543731525, 0.00468572722351759, 
    -0.364456335133898, -0.128317984894418, -0.735280269114507, 
    0.0311671252049972, -0.032106890712685, -0.0812368196522267, 
    0.651096462841161, 0.480678459671205, -0.344994574043292, 
    -0.639249626944065, 0.330512845962416, 2.08678779199869, 
    -0.0262518037794345, -0.216347294624353, 0.230350257902646, 
    0.0880607891553013, -0.241780611053723, -0.203744566274332, 
    -0.101592475774295, 0.0930031949849277, 0.122262648556157, 
    3.09591240447822, 0.0253296359361268, 0.0715717995439145, 
    -0.486119381869326, -0.83353524431452, 0.845709240284389, 
    1.30272264062546, -0.16831942393658, 0.355486172365564, 0.274344071869612, 
    0.0132028674811113, -0.066577712571237, -0.226619301332532, 
    0.731925805533426, -0.55404019124329, -0.607389785159304, 
    -0.00605377522166496, 0.487941827232191, 0.0063644435949255, 
    0.186490104726304, -2.14746671115937, 1.94124830266867, -0.233709102504164, 
    0.0516851604643458, 0.0154841835327616, -0.083755248138871, 
    0.0341735533714943, -0.957583234322031, 0.128816442582435, 
    -0.118764883796251, 0.018104219848471, 0.109280284541556, 
    -2.58652786928088, 0.0061215890788339, 0.297012441213495, 
    -0.495451231320638, -0.0700266108664412, 0.41530212172071, 
    0.262238747872548, -0.108136320214136, -0.0286163223870644, 
    -2.16180124160216, -0.0380486954856894, 0.288217002082414, 
    3.6388534800156, 0.444489017293384, -0.100860467231021, -1.31752718165631, 
    0.158350019427049, 0.493212917516041, -0.0669472455518634, 
    -0.0459512664645855, 0.149985432253718, 0.0345002898400325, 
    0.115711191199517, -0.71728371162155, 0.0967094448399184, 
    0.39128322030404, -0.331961516454824, -0.0832512486067178, 
    -0.0542549141402742, -0.744970341477327, 0.17314259526491, 
    -0.0887988591542521, 0.106267796466179, -5.0753281274124, 
    -0.474960243356205, -4.36813339712358, 0.10297279476946, 
    -0.0226565762139195, 0.322895717394907, -1.48745278370093, 
    -2.55837475460478, -0.0503891284883655, 0.428617241583195, 
    -0.504362702800492, 0.171938803584066, -0.170832227766685, 
    -0.159934149782962, -0.0876512223169583, 0.00658393327721787, 
    0.0550656556013226, -0.0974124138597816, 0.257246833695703, 
    0.0190675062309365, -0.125826578749442, -0.0117304632527449, 
    -0.0921253975132583, -0.0331434518863502, -0.907011875910459, 
    0.349280962659192, 0.95478008448738, -0.614372951365394, 
    -0.0498057936339717, -2.91500631741191, 0.374044564352816, 
    -0.372851608938591, -0.158789363478276, 0.179526478690871, 
    -0.048353308296803, -0.0340513123799638, -1.20150111286377, 
    -0.550968337025984, 0.0591686481288055, 0.0401585179934278, 
    -0.00434541757666072, 0.232324011235824, 0.0315201833406308, 
    -0.378075793259193, 0.219078747147931, 1.71109852262124, 
    -0.031412721150862, -0.678433366129084, 0.0377050423755518, 
    -0.301998919585588, -0.0973712802596362, 0.0787394056339226, 
    0.860436016377115, -2.67367486711153, 0.928629785848962, 
    0.23794041073346, 0.151064225386832, 0.223652235541003, -0.110183867925871, 
    -0.671562399470124, 0.317115357259933, -0.19295042673861, 
    -0.561668091800259, 0.547827021510006, -1.36112417505943, 
    -0.465467041282322, -0.224618482114521, 0.963549423887916, 
    0.834562550518691, 0.69249536143427, 0.227591147952561, 0.214062272885654, 
    2.34451210009359, 0.343159683566963, -0.025502594610329, 
    -0.0201744196137917, 0.00126713788107806, 0.705011761669663, 
    -0.141753754256184, -2.0939436777144, 0.0599516642778475, 
    0.234649902030712, -0.0413262228646123, 0.242318521589022, 
    -0.465144916149208, 0.064206579170574, 0.297504770328366, 
    0.0412858353053176, 0.185537206483423, 0.0509173123936132, 
    0.177637682026097, -0.110335032572647, -0.150256428228223, 
    -0.138949357751465, -0.0275904836843822, 4.81115913097669, 
    -0.479933466140583, 0.210520132606364, 0.121336032006194, 
    0.138712038390065, 0.237571594207475, -0.0852562016699683, 
    -0.149559158718881, 0.163846360715663, -0.0523039391877067, 
    0.28529657167177, 2.30889179011498, 6.14096202285498, 0.102226931814845, 
    0.0664233990313435, 0.439262782183144, 0.0244306564260729, 
    -0.459095882299913, 0.287948464118575, 0.175191268540663, 
    0.0139460318440128, -0.364606545401722, 0.0341334673132283, 
    -0.00188798357727045, -0.524363127008027, 0.429847890536271, 
    -0.0645684512604851, -0.201387013936695, 0.443158966784389, 
    -0.380571068960305, 0.521360752836391, 0.406272167575106, 
    -0.0195766097554506, 0.294355172179169, -0.201695790405357, 
    -0.115879662777174, 0.0238492917357973, -0.016608648060153, 
    -0.0196231936744978, 0.198388489294041, 0.301285064569886, 
    0.00541215971062109, -0.468325583644048, 0.272187692357554, 
    -0.00710124536699252, -0.00951153587061829, 0.191982003078838, 
    0.378258744482458, -1.05407303669625, 0.0447647264134877, 
    0.0861658538373868, 0.0225120061636645, -0.504365606249923, 
    -0.333210225054351, 0.054544834910043, -0.855653913682162, 
    -1.64575571580042, -0.0362689527333432, 0.261553672649142, 
    -0.397004042988937, 0.122247969197241, -0.25362231067288, 
    0.627406661641671, 0.213431022886867, -0.0840835615710546, 
    0.715096302143417, -0.0281291676119208, 0.245194980493355, 
    0.23373961519196, -0.181717865360113, -0.671514181587903, 
    0.644216779056559, 0.688302441800646, 0.333955971889183, 
    0.0177600551579945, 1.00455593810072, 1.29750106434776, 2.97706719898294, 
    0.0716497844833785, -3.4244553184339, -0.0535824998520155, 
    -0.536091349902617, 0.0994482906010771, 0.0456290361619006, 
    0.00454664644980098, 0.0258869632596055, -0.33277141832606, 
    -0.116916799404411, 2.77670167026582, -1.92485180611817, 
    -0.0456519282222077, -0.615007140343223, -0.213620363418502, 
    0.695133708755218, -0.933016983810899, 0.43599981281251, 
    -2.82508077168189, 0.506923255758546, -0.37469142461417, 
    -0.276210844786174, -0.303541213661027, 0.105470429652742, 
    -0.112142334812891, 0.191106786721967, 5.6969844313345, -0.693965354336525, 
    0.0335947994944336, 0.628337328001847, 0.053842726343514, 
    -0.383038815460602, -0.0218335741748727, 0.00475568529983577, 
    0.0150897937481036, -0.0810382751851308, 0.227263153702551, 
    -0.109640604072181, 0.0924023112847707, 0.0207713388734133, 
    0.886542539762374, -0.41797335455686, -0.459502875338459, 
    -0.0260425832692037, -0.190461526693196, -0.32044057012031, 
    0.196377750673959, 1.54187966388101, -0.00251647137252919, 
    -0.0508559870218834, 0.114448438975297, 0.0664388522596207, 
    0.518403769089342, 0.0181632893635524, -0.675428109871189, 
    0.0140969678808393, -0.0144958853888735, -0.125116451205488, 
    -0.00393961475730133, -0.00942107004318546, -0.78578221099578, 
    -0.0460660637114601, 0.104617372268786, 0.120906409351775, 
    0.109552770337918, 1.77153343473846, -1.37577110637625, -0.0348420323639009, 
    -0.101364799856183, 1.43465403652184, -0.196722305202003, 
    -0.16790559985268, 0.305870504287964, 0.0536006469315658, 
    1.5316837862974, 0.0623234368328495, 0.0194915554472931, 
    0.70703574769451, -0.293337119348829, 0.0981461640015189, 
    0.0269546608964286, 2.15748072296589, 0.0736226572460013, 
    -0.693850295908786, -0.0145700912725001, -1.98934080460166, 
    0.305372224488765, -0.203182173711473, -0.840561570701982, 
    -0.482306268155538, -0.942832906497755, 0.880697644621586, 
    0.0138513262347756, 0.141797180173233, 0.143017255241974, 
    -0.00125599172471245, -0.00932237637636485, 2.3083029050117, 
    -2.75920001010948, -1.8110428285235, -0.215293981130671, 
    -0.436872640410146, -0.229925923173716, -0.0253253817565019, 
    0.0919385766293572, 1.04317549855415, -0.171995124648421, 
    -0.759768073186698, -0.180936833502169, 0.525325547799589, 
    0.408648163724035, -0.0261777756805989, -1.39549364796797, 
    -0.232165095856884, -0.0761100731887723, -0.72421432368698, 
    0.0456726581707648, -0.11350667191901, 6.23969233687647, 
    0.0906034555209753, -1.61892459076889, -0.034275512943497, 
    -0.936378981919575, 0.465332361877102, 2.23386334884903, 
    0.121275195540329, -0.301393491079322, 0.0755571906076171, 
    -0.0264382383640169, 1.84453091303518, 0.11268356440843, 
    -0.428022987446751, 0.151282945355518, -0.233505536858469, 
    -0.580463788653776, 0.0236661064834689, 0.0176237641224724, 
    -0.00723505986778994, 0.190815750510501, -0.278705765629332, 
    -0.0246769008737653, -0.0346892265722556, 2.39246390630434, 
    2.09430695121175, -3.13568826851624, 0.150456148085611, 1.01855538354863, 
    -0.336086790203886, -0.000165812739028783, -0.0445779919508944, 
    -1.5114912662115, -0.00520615486660493, -0.437393887032543, 
    1.43209716295169, 0.0349988650387725, -5.42581568153703, 
    0.631545471635178, -0.731531583341044, 0.0130221225591976, 
    -0.652694754677917, -0.418162089793038, 1.44945172489632, 
    -0.362007271364782, -0.280326075313491, -0.0103221764331123, 
    0.0588743009468717, -0.114263901342268, -0.0077175267551783, 
    -0.175261148125668, 0.0837048336141179, -0.407313626184994, 
    0.400044427194428, -0.583026078760278, -0.200434329854517, 
    -1.54010710539455, -4.57793573295154, 0.627285865587522, 
    -0.0100000466874494, -0.117898894622233, 0.0692403463472632, 
    0.0927226507400079, 0.069793834328337, -0.369965313023187, 
    0.127412632670655, 0.148124621774973, 0.189508713026571, 
    -0.892263463593969, -0.150099090770073, -0.0114918610526318, 
    -1.67060802170979, -0.142237175690233, -0.0919006390309833, 
    -0.0067450277772522, -3.79123516719994, 0.312869663318789, 
    0.0110359631329012, -0.0726457359879649, -0.0808906042789071, 
    0.0261291944130052, -0.360551384092062, -0.0834156710631666, 
    -1.01724343262441, 0.119455592478286, 0.154357067561878, 
    0.0641776963606185, -0.318474675177924, 0.967888644290486, 
    -0.0389464480380578, -0.00522137434802476, 0.13120187404112, 
    -0.0391265758165051, -0.0532201468942755, -0.0218895776330735, 
    -0.929692675601133, 0.629047584772222, 1.73582890260676, 
    -0.066294284474584, -0.0522949595808691, -1.94837898301776, 
    -0.609430094084463, -0.0544409286133274, -0.0456602461731812, 
    0.0233252559390603, -1.98774561376932, 0.00569460046572238, 
    -0.409717425536774, 0.0627947107708073, -0.0344430710571249, 
    0.179000858244676, -0.00492446209256527, 0.0804090182354137, 
    0.0864229516181385, 0.358792863731993, 0.16020980726489, 
    0.0662988963491739, -0.578079146611653, 0.0262037186376649, 
    -0.0789167500958389, -0.020723175728715, -0.925067838553357, 
    0.513768517390136, 0.0312177592833056, -0.0879779280232461, 
    0.709674417584782, 0.22049087130836, -0.0683405128077134, 
    0.0892376134383152, 0.156589011337182, -0.0756605439193199, 
    0.10632903174556, 1.05619259075966, 0.140661739978208, -0.011675673705836, 
    -0.0525482901971707, 1.47747886623254, 0.806867620748837, 
    0.166758225808868, 0.934408279143356, 0.120980957776348, 
    -0.0864256486682682, 0.0642847267692788, 0.270377918733377, 
    0.741036405390547, -0.20252966632927, 0.47904231668018, 1.41057492728061, 
    0.00511565052459883, -0.195152647594421, 0.0688447993427116, 
    -0.136169375383215, -4.26096564157889, 2.43735112753781, 
    0.061813543431994, 0.0524334862964256, 0.117311040567083, 
    1.18215118071402, -0.0177850198743933, -0.00493856166583641, 
    -0.0299396639617977, -0.332878353468713, -2.3211357943303, 
    -0.143325966492768, -0.245004509206822, 2.01857517662551, 
    1.18058960551589, 0.0582748361830196, 0.023447378016417, 
    0.493134651083942, -0.038108748466987, -2.37606673448002, 
    -0.0984329474325775, -0.15161251722242, -0.616289474073381, 
    -0.117564583899984, -0.0403884933635194, 0.0261544702581973, 
    -0.0435392622823974, 0.0149593829282815, -0.197091108372992, 
    -0.0594932487965584, -0.0379203926824858, 0.233184600392207, 
    -0.217114164257431, 0.355939143430069, 0.0353709446456012, 
    0.176957471110591, 0.0369464704047167, -2.77033916106042, 
    0.207604137005393, 0.148333828486097, -0.0237685299981578, 
    0.228140871552835, 0.124865904361153, -0.0494313123343448, 
    0.11506165687602, 3.80531672324547, -0.356798637596942, -0.451924825770819, 
    1.15425740134572, 0.508821781527726, -1.47285245720599, 0.484480665063979, 
    0.0405378044861488, -0.0848990650923554, -0.162060140140835, 
    -0.466546258816275, 2.81905460234596, -0.117441261288133, 
    3.90221419986252, 0.00917250582290517, 1.07906826850316, 
    -0.610251291092569, 0.153564329270614, 0.449841651226868, 
    0.219331763026317, 0.0629191170780079, -0.191990385139921, 
    1.59845275265178, 1.90848695080543, -0.157419277047578, 0.0899577200759082, 
    -1.35699610255973, 0.241257705277752, 0.808615829974247, 
    0.0401067006170832, -0.0333121232633944, 0.145212919430508, 
    3.90909336537574, -2.80838854368759, -0.237784670529479, 
    -0.0671403728420725, 0.233530700780676, 2.25944699391214, 
    -0.495743854967555, 1.02039611215153, -0.0113436914777969, 
    -0.270311884154876, 0.0501904632290131, -0.157553936666553, 
    0.0407483576182217, -0.585364492608683, 0.779812197352121, 
    -0.969144332940958, 0.468267693079492, -0.21840347674132, 
    0.287631733740872, -0.442926057248449, -0.0955255728554919, 
    0.0775937590805978, 0.420996847329031, -0.309407682792727, 
    -0.474948122292735, 0.253607775332428, -0.343652911357494, 
    -6.83242528860468, 0.432415380889866, -0.0178267268943035, 
    -0.0670265726149912, -0.0918484443024478, -0.151893754044872, 
    -0.429754520663937, 0.0105842589692045, -0.0817460937990891, 
    -0.174894902287516, 1.71186556473925, 0.0748166954968231, 
    -0.00224273486823326, 0.120491610365239, 0.902209042179609, 
    1.64121414353528, -0.241375378913449, 0.0155739118021378, 
    -0.264010506695306, -0.0453708353064813, -2.86515946425999, 
    -0.191048591731007, -0.0654205703891434, 0.163615899330394, 
    0.0596346092738742, -0.0724927590524102, -0.0810610759474111, 
    -0.410249549883457, 0.166347385968277, 0.158494570191782, 
    -0.0732811368711466, -0.0191936429106922, 0.975969438091329, 
    0.195991267568225, 0.174173030226267, -0.00652130617055275, 
    0.599240686183007, -0.0115425484807341, 0.0988220019349808, 
    3.4903228354813, 0.0939038241231381, 1.2781872473283, 0.181623302226969, 
    -0.923337381101779, 0.0317803632298689, -0.7740522274402, 
    -0.205518353001824, 0.115533202456423, -0.0884684930228596, 
    -0.120367818285427, 0.0500029825367647, 0.0755370498429018, 
    -0.0307696886457795, 0.0180144260771032, -0.0600411413013995, 
    -0.144728406934473, 0.0195697292840862, -0.544137002983924, 
    -0.10396905584198, -0.0621943334581033, 0.220612169722939, 
    -4.41698345415083, 0.246681556290607, 0.291470388840286, 
    -2.75755799935924, -0.400938223211753, -0.715308115271886, 
    0.0587670293092181, -0.0738297630808347, 0.275812754860406, 
    0.0121722342388372, -0.729856729472702, 0.453402811970222, 
    -0.153804063231306, -0.118451513466651, -0.0706689531568129, 
    0.487265858130027, -0.237921476679633, -0.015498812666141, 
    -0.0228566247514151, 0.262010638637981, -0.629897090529035, 
    0.634134066256414, -0.184460725122689, -1.61815606819189, 
    -0.0298268708455276, 0.170062972823462, -0.467574399249699, 
    4.41595779530172, 0.512773812005983, -1.06973192046366, 0.0145856828035106, 
    4.83144204569333, 0.00336149223177293, 0.0235946045550701, 
    0.318359443603069, 0.139088130794632, 0.00787813947522611, 
    0.106594867805436, 0.0499027107126213, 0.0429957251327137, 
    -0.0160171690974163, -0.760801757571892, 0.384490661325907, 
    -0.182393646080045, -0.0358803468482527, -0.103091463502107, 
    -0.0808782457064136, 0.188861021649221, -0.125817183670413, 
    0.113650604008588, 0.398694708383979, -0.00798174046076095, 
    -0.33476463543629, -0.375470126881964, 0.0398043486354388, 
    -0.00296282007053802, -0.17967169324141, 0.0753351709189174, 
    0.184704883519082, 0.0489807192681928, 0.00238048941321779, 
    -0.0996903942812248, -0.0964062953874087, -0.0404146348032774, 
    -8.5123852099986, -0.191565489041717, 0.344240173242495, 
    -0.549550972252157, 0.0380718189271331, -0.332593903921387, 
    -0.0171982893961094, 0.115848909996959, 0.49047595471951, 
    0.0639769888969213, 0.553703487912305, -0.655959815571514, 
    -0.0605487272030649, 0.688312969924303, 0.00900350175945535, 
    0.388727712055827, 1.80678426278433, 0.782614998891015, -0.243717037691246, 
    0.92025546053812, -0.0131282151905357, 0.624841705970129, 
    -0.0508559981033572, 0.399417301258897, -0.0414718066549171, 
    1.49087698108093, -0.0263105930085571, -0.117559435168082, 
    -0.00985759579365119, 1.73631466207927, -0.132082564211776, 
    -0.0266572989024661, 0.220245950761612, -0.0096229398415348, 
    -0.0560042607471716, 1.87381702184932, -0.252064997421292, 
    -1.06582697047378, -0.197956265640539, 0.0635511399477603, 
    -0.0643065846067957, -0.079837436098261, -0.359808839274197, 
    -0.440487697404979, 0.1214386611398, -0.655752265236732, 
    -1.57013656663264, 0.140238618028622, -0.0865725559631707, 
    -0.352438828882427, -0.143185152413035, -2.64668765980591, 
    0.149863481326186, 0.21911691068163, 1.18256662723646, -4.48458052711194, 
    -2.02318831114637, -0.0595978427485149, 0.0332239960228832, 
    0.090747626918329, 0.199295862796902, -0.0299295360880633, 
    -0.9092689738308, 0.00396357716126507, 0.0557236750128624, 
    -2.65004267356812, -0.34479597311938, 3.01425291945535, -0.190130856469875, 
    -1.85782875420935, 1.61047598947977, -6.5114209375743, 0.00283776298998899, 
    -0.0531848151980288, 0.130599425671827, -1.28395742572114, 
    -1.02342662876159, -0.276403424483606, 0.50546012823929, 
    -0.322935133665203, -0.222700429240212, 0.335345962270892, 
    -0.151972189252021, 0.0955821034594596, -0.228209048169685, 
    -0.18778963705457, 1.68413434296734, -0.0795555917836843, 
    -0.0937797559971265, 0.02468458224744, 0.00775851812786518, 
    -0.50853722844669, -1.87453497266901, -0.244176749198875, 
    0.00781579624836257, -0.0348019903480708, 0.134596263761437, 
    -0.249252946862536, 0.00144869795344604, 0.198270982586668, 
    2.82104532730883, 0.105100511372955, -0.406215276900125, 
    -0.765976060799261, -0.0598279583708666, -0.216284405967206, 
    -0.0721207272066226, 0.132371289758047, -0.110359278111155, 
    0.261769733620306, 0.256352243547559, 1.0609461882451, -0.0385138684954535, 
    0.0187006407036879, -2.63087609493207, -3.02633443028875, 
    -0.0677412393304798, 0.391458103445454, 5.10170865516608, 
    0.151113311382872, -7.09146060951895, -0.258677300105077, 
    0.00178475567922332, -0.19450591568291, 0.0987182489180171, 
    0.59936747606048, -0.25344116070754, -0.647222072846472, 
    4.41300328265741, -0.0916754014482086, 0.645570519707016, 
    -0.0256350776144062, -0.0963000703548599, -0.266906593438639, 
    -0.00776019152701534, -1.04980750584054, 0.244482663593148, 
    0.587347969657244, 0.10108034809382, -0.0387892781103435, 
    0.431608155986411, 0.0972139327437112, 0.0230444640897751, 
    -0.517931037463412, -0.0568573116591587, 0.08330576901804, 
    0.0565991575587445, 0.176397746532127, 0.94769772440698, 
    -0.0403316351951704, -0.0117498758911307, -0.568076836284835, 
    0.685888010512141, 0.0496956613572829, -0.508758733826195, 
    -0.810577081795929, 0.388035966694465, 0.0331993259111761, 
    -0.134239694656213, -6.66798194441459, 0.129439747338727, 
    0.124591229312627, -0.394593643870616, 0.247960145483355, 
    -0.072992809074748, -0.172863525799904, 0.0400716981210623, 
    -0.281860425865141, 0.162899651562842, -0.228164308267818, 
    0.356422233646422, -0.0192503973645519, 0.75754029675368, 
    0.11303092187884, 0.174486048435628, -2.07202322549835, 0.0461777503450068, 
    -0.14524006094126, -0.0751930671664674, 0.174051664356057, 
    1.20930159324926, -0.209421166092083, 0.655179271183015, 
    0.025371400451579, 0.117799629437288, -0.0144578130501873, 
    -0.0251109223428347, -0.390402547019572, -0.0139286054503594, 
    1.33266876628397, 0.251178147187788, 0.0113548576719717, 
    -0.0191474848706313, -0.146669200593111, -0.161185922764694, 
    2.43995703672954, -0.199156191271162, 0.25388465089432, -0.118538263780062, 
    0.129271649447582, -1.99108043912805, 0.0152039116760031, 
    -0.201526286145291, -0.486744209099517, -0.0822491192338019, 
    -1.07431307663891, 0.0943571172220527, -0.337766736430886, 
    1.07528765192765, 0.304465911873149, -0.162779363357165, 
    -0.286479018390094, -0.911674198114388, 0.143296142313517, 
    -0.117560237815367, -0.278460789368579, 0.0596782837408429, 
    1.00679395133258, 0.361322541359263, -1.76725952306902, -0.259804919930361, 
    4.47188769629612, 0.0270996714608836, -0.315213044310828, 
    -1.55950362178985, 0.14612791224977, -0.0586917011827579, 
    0.260838356915864, 0.661174805028833, 0.0588083949720837, 
    -0.133131797867897, -0.0348680567311033, -0.46889064215396, 
    0.211161927812124, -0.266435554731481, -0.00665702926310405, 
    -0.444847100348676, 0.129424185922776, -0.0460964787362154, 
    0.664319783681099, -0.0826739671584556, 0.335075115949013, 
    0.721215020048948, 0.360723378721201, -0.0933597170431502, 
    -1.03052138462763, 0.553715978964685, -0.0894294411435278, 
    -0.0447789091278469, -0.136560556456672, -0.0946451143311716, 
    0.0222299360441746, 0.114775011020345, -0.100096747136073, 
    0.292190127772108, 0.0273672345641082, 0.671839570406069, 
    -0.643221494914256, -0.0617080529041799, -1.90043693164575, 
    7.11704515598774, 0.167060682591918, -0.127335663566244, 
    0.176304874840124, 0.479452917836088, -0.369834945380584, 
    -1.067595738684, 0.0356494212071636, -0.219093134446837, 
    -0.230653457241475, 0.296949862312261, 0.963252070876759, 
    0.0759815568003087, -0.217318438095626, -0.0306615404083129, 
    0.389442036648133, 0.0505491084876052, 0.447262544158779, 
    -0.209626441854961, -0.0426148403343324, -0.532370223447795, 
    1.42063162984035, 0.732679331240668, 0.0787388184605626, 
    -0.294376363051526, -0.240983604251116, -0.0216670604859418, 
    -0.0607890156756874, 1.59285331335326, 0.0776080750570232, 
    1.62555600047564, -0.00307976658005867, 2.2380890984568, 
    0.0557588121435161, 0.0746466921262756, 0.214269254764209, 
    0.0904118654794056, 0.0060139950019921, 0.804943983571943, 
    0.317363129028964, 0.262966969068922, -0.0843359734214029, 
    -0.211135746158985, -0.0777943332651218, -0.0125296994019876, 
    1.36384330218302, 0.120600352607829, -0.115175681573237, 
    0.0752864476292233, -0.116732379318024, -0.0414635198297418, 
    0.961540898628435, -3.75165192127344, -0.0970773127470155, 
    0.0569730907541382, -0.530699744427818, -0.349574306225164, 
    0.119748283882695, 0.410082881564197, -0.000716776818474671, 
    -0.645725280508679, 0.343870224755878, -0.0698103815459174, 
    0.0374401602060933, 0.632691050671638, 0.0836360484257441, 
    0.840179570916022, -0.124902228211564, 0.146880738130247, 
    -0.157134039007883, 0.0638139265189143, -1.40014882016453, 
    -0.958860983908822, -0.0384696587808083, -0.490367412284544, 
    -0.0611422590439893, -0.419509237664152, 0.0784938532874449, 
    -2.82257761564527, 2.79560276015982, 0.0888771586066298, 
    0.0478642321704903, 1.40094468986376, -3.31702300223452, 
    0.497508681671712, 0.49647468619225, 0.18249043985485, -0.344548723394365, 
    0.0867204790881964, 0.227584432901005, 0.336577080163333, 
    -0.12400796096445, -0.605663846388424, -2.43231757703566, 
    -0.0901221676286015, -0.635348581850865, 2.03575249068984, 
    2.49500957116471, -0.0580756805127924, -0.0220481073297966, 
    -2.34332247259118, 0.146588218274812, -0.144410361844022, 
    -0.0759670523859909, 0.0716082346252153, -0.352993441772654, 
    0.00173581702822062, 0.136011463501379, -0.123808204606791, 
    -2.09295915727405, -0.00338781924535509, 0.609815553894325, 
    0.225132350424197, 2.98436907836617, 0.529312568606429, 0.280214782423811, 
    0.139336472451138, -0.29382056746948, -0.143137224126863, 
    -0.117384408318991, -0.39165428858187, 0.0660566021663792, 
    -0.0514403790798916, -0.728972166783436, -0.0214943714022755, 
    0.318360791108583, -0.0496688004203077, -1.0683483492529, 
    2.69940854432872, 1.41336504129286, 3.03567964116309, 0.211280243742057, 
    0.412321110524599, -1.09648555430917, -0.276652218678316, 
    -0.0449418000133798, 0.935567613076918, 0.0147974896588921, 
    0.264074718213267, 0.00582719543931714, -0.523989944132697, 
    0.0852850218663698, 1.71027746142417, 0.14780785313757, 0.0466872395890158, 
    0.188521035024449, 0.376746447623798, 0.0638663842715657, 
    0.233650991702991, -0.117623001338585, -3.29420278933139, 
    -0.314063889194015, 0.239661512935004, -0.136796807880925, 
    0.0630671008760096, 0.140699587563695, 0.037554365922064, 
    0.375405798372334, 1.57110695292889, 0.174995024221371, 0.0913840403318775, 
    -1.08298110076212, 0.107087663364913, -0.2130505385924, -0.0157932877611759, 
    2.03084212865785, 0.0341324595758623, 4.90920249674325, -0.00337903144332785, 
    1.16375832674798, -0.633433249470381, -0.253972457891774, 
    0.12211274774496, -0.202275153709051, 2.48437235350001, 0.0315009535859269, 
    0.202120452138776, -0.154133842704977, 1.86091591639682, 
    0.0397020313549551, 0.0430173514419159, 0.464818624098565, 
    -0.121508890878539, -0.124959488778348, -0.00452740452323508, 
    -0.295026682570468, -0.0696792732122349, -0.53695586631579, 
    -1.53566381934064, 0.06978647453286, -0.179795198033459, 
    0.215055761774991, -0.762103427486088, -0.0762952023923476, 
    -2.16815460658808, -3.71267364551034, -6.61601618489351, 
    -3.98032842849717, 0.0158126250554366, -0.0603998034279368, 
    0.207458405107892, -0.173584648409356, -0.135645517813685, 
    -0.142506784839881, 0.29460894552636, -7.93081589667506, 
    -0.0198741423931963, 0.332892837637106, 0.40964021267227, 
    5.17677168811244, 0.153119753561022, 0.194341661019555, -0.0740128469588408, 
    0.716528513616444, -0.177830332236617, 0.0823351814242606, 
    -0.00800826477680092, 1.55619503922784, 0.171670843735287, 
    0.174603184222052, -0.0227963376020189, 0.17544003089375, 
    0.0188716716929766, 0.118719137196276, 0.0954569998872318, 
    0.109505877789745, -0.00591220671545209, 0.0421615422063075, 
    -0.172829926660685, -1.6992628800246, -0.0922194485192874, 
    0.770147591622543, -0.266935467781225, 0.0110753337476897, 
    0.0804511899912177, -0.0105489643997569, -0.464789208230481, 
    0.000498901856160346, 0.0127295824370053, -0.0127840908057972, 
    0.0403119142411807, 0.267653203580142, -0.251584974905031, 
    -0.178871138642339, -0.12673138463262, 3.06580663655696, 
    -0.228369650436942, 0.0448479618404045, -0.204406242069329, 
    0.598167644239359, -0.0624204963893752, -0.0172377946974556, 
    -0.136111045297809, 1.2807294772797, -0.16205930167845, 0.103656647017765, 
    5.29038991558836, -0.62912043836935, 0.0421154874362862, 
    0.33789665023289, 0.178603009263896, -0.344900713628976, 
    -0.0969788514601781, -0.184515083964704, -0.502628027765536, 
    0.0297264910268208, -0.203594710079004, -0.0454471415171022, 
    -0.250484406753067, 0.0633479799432669, -0.158455761794474, 
    -7.18839530196233, 0.116719327289399, 1.02023451877496, 0.305758426836657, 
    0.000879456136436946, 0.63178043359895, -0.00576769694110588, 
    0.0417505499116199, 0.0238884458031134, 0.0617001956397198, 
    0.132213473621334, 0.113003603447807, -0.0432771584244633, 
    0.00482671667779043, 0.0600572230005087, -0.123735862111037, 
    -0.0302843019262774, -3.65657398857758, -0.0325930110848635, 
    0.25926118067508, -0.494800040355848, 0.842444763049752, 
    0.0539924299490079, 0.0654053116845224, -0.145328493318903, 
    -0.115144363906227, -0.0576246931099888, -0.073966799061988, 
    -0.0760335201246213, 0.325575111314229, 0.223374338385219, 
    -0.586375076530928, -0.257728255471474, -0.00213690194392123, 
    -0.142759130672052, -0.728388472537134, -0.141354956406477, 
    0.0712131182605622, 0.159602494191013, -0.287753844417885, 
    -0.0733976162887778, -0.0283586669800015, 1.79468803012086, 
    0.121364148523671, 0.17564030935513, -0.0407694910469022, 
    -0.164017501757644, -0.174583682200358, 0.130953870117884, 
    0.089795740877531, -0.246329091691982, -0.0926887018589062, 
    -0.658322676707912, -0.0124248084437818, 0.200020494049742, 
    -0.0227817241129849, -0.129054742160365, -0.129147621539853, 
    -0.363801169797626, -0.570124882890685, -0.217136846876064, 
    0.109053079413656, 0.0603004664957821, 0.000536347764603443, 
    0.0346880602354051, -0.44690352138766, 0.762356121988046, 
    0.113175722316928, 0.142496852521718, -0.619838200744026, 
    0.0594292162367418, -0.0806361010943359, -0.23832869221986, 
    0.306606243626668, -0.361392428388547, 0.943770674032552, 
    -0.106314874834041, -0.0165105496650904, 0.10459486768795, 
    -0.375748219093937, 0.431495794856725, 0.0086034618316181, 
    3.08364153885985, -0.650736698644582, 1.1068237255551, 0.0454875311022046, 
    0.535557001948323, 0.781721825042662, 0.423763937989526, 
    0.401784767739035, 1.7875866698047, -0.69479202871568, -0.0307365809262212, 
    -8.99564761092747, 0.053506417938932, -0.26205901038522, 
    -1.53505485768238, 0.261383958028723, 1.07123049404209, -2.48936748476084, 
    -0.235019257195363, -0.0848051232996493, 0.77291109293865, 
    -2.95561242181591, -0.216935266443251, 0.0207189313305938, 
    -0.705182278003365, -0.0890693299009424, 0.122340868760608, 
    -0.0266116853897801, -0.17320515284152, -0.691765088253196, 
    -0.0954849074545617, 1.31145882479255, 0.0883546314874371, 
    0.905403415439919, -0.678799946321876, -0.0487760630493137, 
    0.120122151015396, -0.0826354446677998, -1.65057633378107, 
    0.200625695098764, 0.509691108740788, 0.300680687781761, 
    0.00331240568801428, 0.412798968037094, 0.040254953122964, 
    -0.00307202071789695, -0.301974332523513, 0.284881293275329, 
    0.0536648653699288, 0.0398442904101961, -0.00653473209949729, 
    0.158781131715196, 0.256187193506345, -0.441508673940281, 
    -0.105509087114568, 0.223450947397513, 0.0187996800729652, 
    0.0703444101288314, -0.0148193994977895, 0.132823215416494, 
    0.30166397194479, 0.472486088556413, 0.519192921389786, -0.968612340782057, 
    1.08058338547688, 0.231500009725433, 0.488969463866069, -0.218807149200407, 
    0.478093271270252, -0.00321985485371987, 0.71448091923301, 
    -2.56287632485961, 0.023377167788782, 0.591497864176516, 
    -0.0632571939678693, 3.96036200283531, -0.0222001681129166, 
    0.672049401323127, -0.104583454650286, -1.43522903494236, 
    3.41956935722514, -0.406765380649465, 0.141674056296684, 
    0.0102395122223241, -0.472241591060136, -6.2906674253448, 
    0.00246666006358036, 0.272822353470089, -0.202378991507298, 
    -0.299034023761881, -0.369064300935562, 0.290471530352603, 
    -1.23986333391712, -0.33272780604786, 0.0928119096435966, 
    -0.124750941360954, -0.241678582435552, 0.3146435535172, 
    0.596999796310559, 0.0168915712839534, -0.115585933591935, 
    3.83181845944432, 0.0517803809296927, 0.256279687195902, 
    0.529609391293036, -0.0396615318445909, 0.110454739356198, 
    0.050356326158983, -2.49692356237647, -1.94099397708971, 
    -0.613338474617767, 0.262744979358666, -2.11945192125118, 
    0.908846727481586, -0.138466073333287, -0.37817292063895, 
    -1.06123489859607, 0.00430970892416225, -0.108219288307906, 
    0.417439753880809, -0.10525533953088, 8.13110787035283, 0.436114438406891, 
    -0.234929203770102, 0.166977005205681, -0.0890379785493953, 
    -4.62608989176197, 0.259148269419792, -0.315099427090169, 
    0.052034515152157, -0.0283181090512207, 0.064967899974194, 
    2.1876701240283, -0.106884938797473, 0.405601219724862, -0.185760998343103, 
    0.376038152443739, 0.477502651058118, 0.283329125286889, 
    -0.134479525794182, 1.07879436286011, -0.0756269566231031, 
    -0.161674413772651, 0.0025798198654854, -0.131550562360124, 
    -0.0748756334399078, -0.0916773631009377, 0.327262999912763, 
    0.095397690548016, -0.272281554245744, 4.60489761833686, 
    0.24551708972146, -0.0768091043631967, 1.11946295152396, 
    0.113004888926491, 4.57988382779869, -0.320118380106683, 
    0.263010743743144, 0.51655087687296, 0.568604750711099, -0.0308005964882596, 
    -0.103194125826883, 0.426502950412701, 0.105782110171835, 
    0.239135486097652, 0.0934534927306155, 0.169159865330316, 
    -0.728538636403251, 0.262045318623573, -0.0967425212056368, 
    -0.291194452113884, 0.339698996899404, -1.3628467901401, 
    0.0863646757848938, 1.34541128746775, 0.205680758952333, 
    -0.0740585664466666, -0.193387711841751, -0.985250079607251, 
    -0.208335240485735, 0.0604479629583118, 0.331172908179008, 
    -0.195607476983859, -0.089695976033646, -0.22994597054156, 
    -0.449450990502073, -0.0408067222334879, 0.830506076378164, 
    0.143218569684228, 0.0997551524896543, 0.0337589355550657, 
    -0.0997742469420842, 0.0741079910593501, -0.0263807167765605, 
    0.00386419839206168, -0.0550782257932979, -0.0292931227628801, 
    -0.0755234690757844, 0.0406119291442912, -0.197743971392114, 
    -0.42046704397104, 0.677672656368881, 2.62597565201755, 0.268514830226824, 
    -0.489773218235875, -1.81110043683367, 0.0541391436555694, 
    1.1646298443109, -0.0164912391585225, 0.437384961255551, 
    -0.258829066650854, 0.0747046956069564, -1.55486106562911, 
    0.0312230974013137, -0.151498069994539, -0.191392299522362, 
    -0.00349555971561795, -0.0668312172460909, 0.153825190078604, 
    -0.0364798388335292, 0.125825193054774, -1.06633666166059, 
    -1.40725290034142, 3.06464742377137, -0.244136334474567, 
    -0.235207068621294, -0.0231341483132467, -0.0717187950873415, 
    -0.669454822151967, 0.0310485764945369, -0.0459715493430034, 
    0.593248117910944, 0.726889000346619, 1.02422756668082, 0.486151172587345, 
    -0.455095903417556, 0.344830217139532, -2.24056990819612, 
    -0.0328471103292883, -6.09355179335195, -0.14853673037455, 
    0.233686507517165, 0.0809049366454661, 0.642985701103248, 
    0.115201458190484, -0.951417765207023, -0.279047556709874, 
    -0.862451067713964, 0.208877973372023, 0.00391657371807947, 
    -1.25085003114329, -0.151056156247423, 0.326834640182587, 
    -0.0237728453445107, -0.633158035267535, -1.33966604955615, 
    -1.29823303741575, 0.117577712417175, 0.10897419598972, 0.66039254154142, 
    0.404744042923301, 0.171751620488051, 1.2447578665082, -0.498410694230142, 
    -0.20558268013696, 0.00995563756178712, -0.425913120755377, 
    -0.0759688105770978, 0.392257365343809, -0.319734953708555, 
    0.020663848846231, -0.296841513444688, 0.582792717920481, 
    -0.482455484669626, -0.00997303885123535, 0.465771900182959, 
    -0.177483359077415, 0.580108749951677, -0.350662996340371, 
    -0.508174746680745, -1.29694121801518, -0.194679172325952, 
    -0.987343726397642, -2.42572599264929, -2.23705703876783, 
    0.175718090919844, -0.00581698806268868, 0.0265507127720331, 
    -3.68451394074103, 0.177285842165057, 0.0681757845301368, 
    0.0135425723879293, -0.155594688650904, -0.246991217437492, 
    -0.312300685782193, 3.0349564561674, 7.99405724290079, 0.597280008574416, 
    0.51405745192538, -1.1138528371493, 6.97741625494726, -0.44108970913181, 
    0.103666143010487, -0.494943184177754, 0.0200695064770774, 
    0.00461077159912251, 0.0775943010980704, 0.26151023046371, 
    -0.866995366102753, 2.67772579225532, 0.0366153293142906, 
    -0.0537715488760688, 0.225137509609306, -0.126980964610312, 
    4.5336867358946, -1.70500000489175, 0.0773247338583691, 0.0309062156637929, 
    -0.666752001971086, -0.315901290309656, -0.313627752716612, 
    -0.0554670592941433, -0.366016141202358, -0.036137173731722, 
    -0.0605992320919208, 0.638461171870837, 0.0438518353447504, 
    -0.0365419202327913, 0.589182403811055, -0.299160430347555, 
    -0.636553241593238, 0.455562737000555, 0.016216244234031, 
    -0.0102045579503034, 0.0805017688746589, -0.218002154514226, 
    1.49279528534902, 0.296834684372222, -0.0784137108947309, 
    -1.47499466170061, -0.11965487027306, 0.208702204229549, 
    -0.120762115658883, -2.49829047774818, -1.00104114865819, 
    0.974619002959937, 0.709738760346738, 0.166902587473203, 
    0.12020923861986, 0.0584426724284519, -0.763477882726595, 
    -0.0817813396528703, 0.224931105658565, -0.0809972842727883, 
    0.0864926496787147, 0.0873005243531974, 0.428925524601498, 
    -0.209568551140397, 0.305073946983831, 0.0757565312405932, 
    0.398635482683104, 0.0664535675717925, 1.70713339656021, 
    -0.306965011696249, -0.10781783841214, -0.223350299844633, 
    -1.44489826115859, -0.032564666734404, -1.00886841000304, 
    0.0302556974795215, -0.119442188281855, 1.03833234850095, 
    0.0276386867293468, -0.335203782630046, 0.0776866445160568, 
    -1.31378826416146, -0.12549758237132, -0.0479708862277487, 
    -0.111173142184036, 0.447541367850557, 0.0547801145031885, 
    0.0651031186572304, -0.577331175170643, -1.17503078677687, 
    0.0272164923539796, -0.599320093634831, -0.657842081358895, 
    1.35530736861219, -0.0209902101773327, -0.102684481255616, 
    -0.0644332367410581, -1.3056686047337, -2.56873207095773, 
    -0.563593747287278, 0.537873310369762, 0.00211210662218101, 
    -0.0973133635388448, 0.25379707483817, -0.238396371474625, 
    0.334506336767743, 0.079724310703591, 0.0692285556110583, 
    0.37407228213499, 0.0797425519428777, -0.0530241784502654, 
    -0.417080491735754, 0.74805665225422, 0.33803990876341, -0.324452193976503, 
    -0.0170604756887331, 0.152641302763263, 0.0569093676674354, 
    1.44484831395212, 0.68412140681591, -0.961722505155286, -0.0322032466898732, 
    -1.24099632988756, -0.180176724995733, 1.23384200849388, 
    -0.00262567164600562, 0.314881629610233, -0.0660176050340462, 
    -0.44470887919272, 0.0676458701903364, -0.685544221045867, 
    -2.53627461256026, -0.350483228268406, -0.03328067131645, 
    0.82070905720965, -0.413314334560941, 0.686686108935106, 
    -0.27569356928429, 1.299542831695, -3.49184088541766, -0.0692168287635474, 
    -0.161912538415676, 0.101533503070107, -0.0165354915544622, 
    0.356846496422878, -0.0569132660606814, 0.0168496050115229, 
    -0.246169356296515, 1.7871404300667, 0.229387822190084, -0.773135570489426, 
    -0.0048608997987728, 0.0168662038869047, 0.940360790186249, 
    -0.178634603818403, 1.8287560438009, -0.00520265422771288, 
    0.00655118511898071, 0.0126541851687514, 6.98552505022386, 
    0.49238509170335, 1.37701016705992, 0.200575021851017, -0.502403005473165, 
    -0.236037027180983, 0.00408427054778039, -0.0782674936750203, 
    -0.319643340763773, -0.241034565221871, -0.0715286357077462, 
    0.504704261441742, 0.0851202110468288, -0.0554856929143773, 
    0.555487983184823, -5.20813729795808, 0.258555949566899, 
    0.20655789857026, 0.033927496332656, -0.0419991533351495, 
    -0.0786310693130725, 0.136402050209777, 1.11847995462945, 
    0.648264181533348, 0.0900419399706088, 0.774775823979633, 
    0.550914895334423, -0.370735405486401, 1.75397111330819, 
    -0.654993435057703, -2.04691272264862, -0.267252397761481, 
    0.0458099411830708, -0.0473654122182656, 0.376961059591097, 
    0.0321557022257534, 0.150685379531161, 0.320392932018536, 
    -0.0955813421652284, 0.0688032177735021, -0.639147125828738, 
    -0.420398649291057, -0.65628472716037, -0.0681456379532456, 
    4.09940465150178, -0.0696306902842872, 0.460192696655554, 
    -0.361536167449164, -0.754174173968857, 0.0708624455596289, 
    0.0620880461091153, 0.928302692877473, 0.157972892481124, 
    -0.389088906757213, 0.0737957817139534, 1.20775605548069, 
    -0.0150010981691503, -0.388246033890404, 3.0023211414821, 
    -0.416086587460892, 1.9579479767513, -0.0878175330664498, 
    0.0107177737981598, -0.170239301557865, -0.173822481787774, 
    -0.203404511362216, -0.083538590905791, 0.308882897776826, 
    0.0298040785321904, 0.133653395886449, -0.0797650645705117, 
    -0.708460973673734, 0.0974911833676274, -0.174142308128943, 
    0.0592738633870459, -0.0968181387528808, 0.0506437516009605, 
    -0.045339933488007, -0.180525588590783, -0.459134760215862, 
    -0.055367570343443, 0.0461709343467991, -0.0317453568306671, 
    -1.66167494687549, -0.0374234259616644, 0.12177712415862, 
    -0.108657795219889, 0.0228983784352598, 0.0887117242245577, 
    0.395468599331824, 0.345160015764931, 0.311005831947955, 
    -0.478006357615152, -0.135074178893334, -0.241607850797992, 
    0.328969674555168, 0.0613307502959064, 0.465679867652134, 
    0.699110026452904, -0.0177507439020374, 0.514174024422604, 
    0.0307268604693831, 0.221995941804988, 0.192397733718101, 
    0.354846923045256, 0.854492385742523, 0.249933916794134, 
    0.00296513404751821, -0.927776828784423, 0.134522382784527, 
    -1.1040135574972, -0.513500324580014, -0.0109318804117238, 
    -0.0125289414991469, 0.0383377557520741, 0.109746365875418, 
    -0.218903276380238, 2.58375053338302, -4.85876009420722, 
    -0.819112380692034, 0.0563832212494739, 0.149385141289157, 
    0.0991816467726152, 0.0484676565592691, 0.0515824887070071, 
    0.118230505263926, -0.246322883794345, -0.0435028853546619, 
    -0.0739159327100556, 0.101630089775559, 0.00288064662942565, 
    0.0099715705276621, 0.0345174522436997, -0.926732242359106, 
    5.82174247494681, -0.690975460316305, 0.00695939629924361, 
    1.39076860738419, -0.170706566999759, -0.100310365371252, 
    2.03682746258255, 0.00781086798793485, 0.517143837955995, 
    -0.0800234484816555, -0.252234747856409, -0.224833499035897, 
    0.0914487806854009, 1.14569374100308, 1.15819330545352, -0.106011304622043, 
    -0.0464656596152133, 0.279547821941111, -0.0692975031766709, 
    -0.100002365570469, -0.072074129534251, -0.689557236283265, 
    -0.138509555819877, -0.0630467455157262, -0.865083309918099, 
    -0.459195451269173, -0.0833061451011208, -1.71763302091659, 
    0.0140562716653339, 1.00064621444569, -0.0638172004350059, 
    0.0631907588731145, -0.0462773726426612, -0.0413920069171999, 
    -0.684343535338051, 0.391678732651291, 2.66266272371438, 
    0.0505313987268702, -0.998959507329467, 0.73445907994198, 
    -0.209424704714106, 0.337843370372502, -0.00161511722282463, 
    0.261006965014315, 0.394239345130323, 0.552877865898579, 
    -0.250074080874462, -6.02282807019228, -2.6791213561085, 
    -0.0357380651842302, -0.0777709093471607, 0.242608611027207, 
    -0.0600104662133408, 0.147240852043555, -0.493703135918838, 
    -0.229803082851751, 0.226511255108099, 3.72806514976539, 
    -0.23287800953556, 0.184465969613478, -0.0896473197525868, 
    0.114329160558131, 0.0813298540365495, 0.0719736829043498, 
    0.0435890650408824, 0.00893323553819251, -4.68064492066952, 
    0.00543240605830652, -0.0746580054310673, 0.0991422116380866, 
    0.131992161884316, -0.578696040413261, 2.44659799274021, 
    -0.0540942978686468, -0.00401257692962258, -0.0141165426719668, 
    0.00367640473784096, -0.961813105586189, -0.270115966029635, 
    0.213942001743611, 0.0152049059318486, 0.033887501320388, 
    -0.103459820051854, -0.353351518829253, -0.523343762500741, 
    -0.494029423929137, -0.0973182351924198, 0.0709251691406274, 
    -0.59628673654083, 0.50725650673506, -1.98921817808304, -0.0736917564838651, 
    -0.119673175733059, 0.00809238343203863, 0.327026565190981, 
    0.190694496656177, -0.161901592930486, -0.169289454116691, 
    -0.00693884149861951, 0.0048402496745344, 0.064797261324116, 
    -0.0144806185723199, 0.378956076064684, 0.630555004587958, 
    1.28305391083652, -0.00450155338573642, -0.122776131048954, 
    0.556324118653937, -0.886266629049121, -0.201636965013356, 
    -0.109172570473024, 0.824010140623936, -0.0294753344901175, 
    0.373494191079318, -1.46942213511002, -0.153188375209381, 
    -0.0370526495601323, 0.109116184344741, -0.188470690108798, 
    -0.0505509388317768, 0.0156321336762094, 0.0296277064240783, 
    3.60553381709894, -3.26245347477277, -0.0261141667057687, 
    0.715530902679005, 1.32749598127052, -0.723121052748856, 
    -0.25860848351385, 1.06432777753116, 0.183245379551693, 0.0648175235754328, 
    -0.0546464186454213, 0.0330969912311639, -1.22785929822006, 
    0.017843766122369, -0.0574526277716697, -0.388719544820696, 
    0.452744183983016, 0.835770915434941, 0.267424588044307, 
    2.68723806480676, -0.372696711896313, 0.464426925367794, 
    0.110680831502805, 0.33424123486366, -0.180914681381393, 
    0.623369383577866, -0.0485693288607197, -0.0317057293827649, 
    -0.0169138115160559, 0.272150487439109, 0.308376980483505, 
    0.377184048337898, 1.52443027229526, 0.554774394022037, 0.136726432897764, 
    -0.0673398295887611, 0.119644474209475, -0.133454603493471, 
    0.129648499738093, 0.627508418322081, 0.0467995604074261, 
    -0.141964135695478, 0.193705357837831, 3.58917694746273, 
    0.265990429899117, 0.577386896313983, 0.546355629370991, 
    -0.0397050885746688, 0.324347124572627, -1.13411775158774, 
    0.143582448445205, 0.155739293318586, 0.0464812716410572, 
    -0.30018740341787, -0.206255372511263, 0.903689838028418, 
    0.211360528213312, -0.00489825970454685, 0.141313786332072, 
    -0.144827648683875, -0.0557276757910398, 1.88290728325875, 
    -0.596137840116651, 0.272146490142342, -0.00258637538955092, 
    -0.174820013992735, -0.324243058626024, 0.0507632911874005, 
    -0.110008732151585, -0.251566889532234, -0.0593279264296631, 
    0.0308260243964521, 0.251560913554778, -0.38337088581122, 
    -0.142840789696276, 0.103935524507054, -0.385092423613985, 
    0.0498415057154731, -0.0471000187863701, 0.537692465859583, 
    -0.0203700533358035, 0.019768472408715, 0.0433869639604742, 
    -0.00324872497758305, 1.03675370547451, 0.224633121536259, 
    0.0954095306613505, -0.0945281838316736, 0.297760272362897, 
    1.64240264534918, -0.186126769610384, -0.201201076416831, 
    -0.0726579809081075, 0.681245195318928, 0.0518355039838367, 
    -0.255788510649793, -0.117865918646163, 0.0378075914312479, 
    1.59422708492697, 0.0655096285436857, 1.83501700899374, 0.1811207463069, 
    0.0115158800562728, -0.689040729929401, 0.0612012906980169, 
    -0.0153362215024755, 0.00872560096666593, 0.839885330422401, 
    -1.52177313444358, 1.94640610578552, 0.546475550832201, -0.766446186186494, 
    -0.0887835752028315, 0.30162758435526, 9.93542706003282, 
    -0.0451570882950833, -0.250321928406607, 0.0842767992896967, 
    -0.264876811385559, 0.227805795806565, 0.052426841586117, 
    0.101809784585013, -0.548139675022165, -0.190253451283863, 
    0.331517569392067, 0.0461475344324371, 0.457811258100394, 
    1.45706401672796, -0.0179323447149923, -0.335876654803362, 
    -1.99453967706356, 0.0246052135110254, 0.101444411198724, 
    0.0952728521172801, -0.811206779628885, -0.0326205903207799, 
    -0.424040546320088, -0.04933641713033, -0.405120142986382, 
    0.474945290114803, -0.428587760607758, 0.523087305408504, 
    0.370693538089662, -0.0694544138776638, 0.107864145281824, 
    0.175317514122277, -0.287204114335278, -5.05252871164621, 
    0.101077571917512, -0.13339662421565, 0.0609375060504972, 
    3.07146869575343, 0.0156332409698386, -0.0837132201990488, 
    0.0101644285263771, 0.185108320436748, 0.137546210161089, 
    0.0471904854920066, 0.195685541732088, 0.0376247612037513, 
    0.191277689965371, 0.0170404382921022, 1.46962790348025, 
    0.322616880853975, -0.180423478777087, 0.640864497315906, 
    0.0148822182123892, 0.0262328488003883, 0.989107187015368, 
    0.0569524353879906, 0.222118949409284, -1.03255254453162, 
    0.0901966238623828, 0.273135312770205, -0.394826646970178, 
    0.86545362144395, 0.0750969370781749, 0.0837142675023314, 
    -2.19908240352131, -0.173498529065995, 1.46569724691412, 
    -0.239519278422283, 0.0805636833401457, -0.0730990538146507, 
    -0.146599872417866, -0.108017612310596, -1.1963599938867, 
    0.670616020391837, -0.109649427142964, -0.415157942450474, 
    -0.0198440669028919, 0.10877080432475, 0.0166934594835269, 
    -0.359207355288395, 0.0056300669782065, 0.0911736335586263, 
    0.0209169067523863, 0.0668950153413268, -0.543248958809922, 
    0.0119301879234176, -0.105501405960694, -0.595036626299205, 
    -0.203536573388905, -1.12640536730921, -0.0323270933511558, 
    0.125364707849876, -0.157388572563974, 1.3044011260871, 0.0147266695809049, 
    -1.1425077762668, 0.00251788498968375, -0.317255664331667, 
    -0.115776748657154, -7.4037161992751, 0.345777711645973, 
    0.3427012058088, -0.00289837632887542, 0.871985741933934, 
    -0.581199515607487, -0.946632742601532, 0.210076142437947, 
    0.220076262703942, 0.433115940452122, 0.167487841728886, 
    -0.195735961736086, 0.446511789169793, -0.0874198466297584, 
    0.00593698539342351, 0.928837162161786, 0.670685819158924, 
    -0.403520473855088, 0.077667031153812, 0.189267491324781, 
    0.555981823498121, 0.701629187292289, 2.41406482063479, 0.153021841320413, 
    0.25340021245802, -1.32842695751974, 0.287141028527371, -0.00528012050059595, 
    -0.277684917803367, 0.686556002457158, -0.159265565999985, 
    -0.152218287609214, 0.295531009284786, -0.192767797925014, 
    -0.204734180157483, 0.00128383215729132, 1.13319056860785, 
    -0.17299320941643, -0.113014182285429, -0.0420156555039272, 
    -0.112676995413889, -0.58698067302689, -0.17934823291202, 
    2.21861734392245, -1.4368050971411, -0.191576893590179, -0.192645445754861, 
    -0.213300308538571, -3.16435535792011, 0.380297100572834, 
    0.753011297190809, -0.0555477018293713, -0.245207741629978, 
    -0.275060674295339, -0.155778412139491, 1.63317977534806, 
    -0.515218042616563, -0.0655126956998793, 0.20030626307621, 
    -0.204138334670822, 0.123756324723957, -0.170837526785741, 
    -0.0206963965066093, 0.308211635999037, 0.0788831970842047, 
    -2.75610066487138, -0.548796876872069, -0.109359683652661, 
    -0.0394833937002206, 0.102273455473776, 0.00526496651940069, 
    -0.0312060376647742, 0.455779384377644, 0.0761032743634891, 
    -0.568128397199672, 0.0209043841803151, 0.485766389685495, 
    -1.32023730649499, -0.465128185863458, 0.385344807985155, 
    -2.40235694018453, -0.361080585494514, -1.19691644785851, 
    -7.23160154969738, 5.2919330484891, 1.9129639497618, -0.139475631645961, 
    0.414017904397461, -0.330654652314757, -0.102258800091902, 
    -1.16907783825311, -0.0909623617137735, 3.21598795540828, 
    0.365303357152908, -1.05013782936471, -0.379080412617779, 
    0.0236306037983463, 0.110850816537298, 0.173327288206639, 
    -0.0605043196222834, -0.031332921586503, -0.337121755407945, 
    -0.417125734192664, -0.105018141858821, 0.0869033793382342, 
    0.258841818934133, -0.0396329413050754, -0.704058244810804, 
    -0.00569397993378295, -0.254149899274813, -0.417414781044173, 
    0.925436762640488, -0.105714628228089, 0.508917349697708, 
    -4.80080608602151, 0.936580984791323, -0.200818738845651, 
    0.0315096372046596, -0.12650805352611, -0.390432047927488, 
    -0.067600789679161, 0.158092185154512, -0.152896691146307, 
    -0.310403854944422, -0.652732533532754, 0.499808021185771, 
    -0.120650297688548, 0.0170568364194995, -0.0620828120651131, 
    0.10964679152918, 0.119423015399412, -0.157501240526131, 
    1.22157372686854, 1.56860236973851, -1.54033485336487, -0.322760348246637, 
    1.45264838642801, -0.457873190429432, 0.445967556197217, 
    0.0637942269646936, 0.0827500778559492, 0.330275428207755, 
    -0.194371387466742, -1.43775461080186, 0.218503116725591, 
    0.189944844192788, 7.57622992270525, -0.830115849680664, 
    -0.559557975357325, -0.0719574354607243, 0.209979096611686, 
    0.0754946250808438, 0.6650535391778, -0.863585123601558, 
    0.0271039023574535, 0.433890233816854, 0.361360846137434, 
    0.0476519805009974, 0.473905572973607, -0.16796516853846, 
    -0.521301301667556, 0.126943869730542, 0.521164147640401, 
    -0.0433171423202046, 1.12963935485591, -0.00276114186371047, 
    -0.835756969568021, -0.00828079089210705, 0.544405711320996, 
    -0.0399568907432442, -0.17116740469018, 0.146511736812209, 
    0.216989838558405, 0.0297815940677558, -3.25048743146578, 
    -0.0473337236175265, -0.136675973354971, 0.206078074555712, 
    -0.159678690164794, 0.0969374966227289, 0.106824373489161, 
    0.17371626904644, 0.0343589506154506, -0.141406144101443, 
    -0.0421895448494188, 2.11263974990521, 0.00848051924483258, 
    3.18407062447848, 0.0488006918903497, 0.0581237604899772, 
    0.126570367270265, -0.113866659987006, -0.0118049342702018, 
    0.575963880793278, -0.092095251107358, -0.804062936636609, 
    -0.0213157096458508, 0.657565166362867, -0.247405169518491, 
    0.00781399633643208, 0.198402196815046, -0.122687395671106, 
    -4.94584998752223, -0.54176904729808, 1.89924121779372, 0.00974251654893459, 
    3.17781878195675, -0.168406674048262, 0.328634724316565, 
    -0.236442053340908, -0.481613563425164, -0.14013338826103, 
    -0.0459775279745288, 0.227124326230661, -0.0271904663550044, 
    0.124865173110658, 0.555328872909462, -0.000850849274576935, 
    -0.064338914847463, 0.105443443350266, -1.09170446350216, 
    -0.0925185742239551, -0.07366851595067, 0.0778663209328478, 
    0.0333517495011071, -0.00618434334071096, 0.479033833008508, 
    -0.743280799524848, -0.141236121134663, 0.240424976102569, 
    -3.01164453554532, -0.548025874051539, 0.643291694844749, 
    0.0235225829254521, 0.15979487270886, -0.0538907015703127, 
    -0.0959082381952175, 0.0230635768313277, 0.152735166333084, 
    -1.11248234119403, 0.0631543718440489, 0.305468926773057, 
    -2.32147662955194, 0.00630687754719462, 0.0923002607239287, 
    -0.234846652953039, 0.215764409722407, -0.276029593715505, 
    -0.0590384419729618, 0.0126847737330859, -0.626179118146477, 
    1.13439476405363, -0.03649015774696, -0.107376827610418, 
    -2.24416946049226, 0.164445813362574, -0.316773097355926, 
    0.096137383464365, 0.0309204796309525, -0.0413500162258705, 
    3.42061657150368, -0.526071762987985, 0.2279731134231, -0.759621140820308, 
    -0.0998361499204191, 0.0726976500122808, -0.181372015137564, 
    0.28252591457728, -0.0187588728980401, -0.0935096687187551, 
    -0.00894009907145353, 1.78662954089566, -0.322590410098088, 
    -0.311561948158848, 0.29057629990058, 0.0105509412397756, 
    0.172556024660795, -0.00721654563990843, -1.69818626431295, 
    -0.837448380248448, -0.0606618948663983, 2.76654612717511, 
    0.851850089562581, -0.561625322931863, -0.198251604224763, 
    -0.358226186209433, 1.13259025427891, 0.320966764221385, 
    0.0805999816079211, 0.101195060886808, 0.0983784584022513, 
    -0.072746567136262, 1.0340632059942, 0.0336888793901956, 
    -0.480200756684392, 0.25141476657123, 4.04048912867374, -0.241587958196507, 
    -0.426975289513486, -0.177365890511345, 1.65876872279135, 
    3.59307890910768, -0.612048153885774, 0.0977364292863261, 
    0.149523182850461, -0.719517838267365, -0.0538730388769542, 
    -0.261348985667893, 0.0549769857825857, 0.995956632255269, 
    2.05378574347457, -0.161795266694732, -0.0345885159828568, 
    -0.0498491343739719, 0.120056422858782, 0.550634327368522, 
    0.390417837101861, -3.26897907478946, -0.136315196186115, 
    0.360245637766237, -0.0344565809728342, -0.480031882569301, 
    -0.205788346053748, 0.119088904948898, -0.112934568321516, 
    -0.334114772563033, -0.0215140503392146, 0.720655781538409, 
    -0.78283730931419, -1.82517743358419, -0.818680952106396, 
    -0.0208016925060751, -0.715248740227892, 0.210046697832619, 
    0.206518796072766, -2.00296250529738, -0.139814877090896, 
    0.0902764700672555, -0.482876638801828, -0.429591453091452, 
    0.133701314146928, 0.236537164206516, 0.78313994746244, 2.33858785861939, 
    -0.0719115185169352, -0.184450106343371, 0.0768285255304336, 
    -0.123104954508079, 0.326057470337638, 0.214661094549272, 
    0.00266156699767948, 0.842829791335127, 0.110945257945845, 
    0.237766569880111, -0.421204997942125, 0.139169643587593, 
    -0.161947270927902, 0.907056584819924, 2.53969519837851, 
    -0.18814332390142, 0.0836888122437365, -0.0362671303756268, 
    0.107791490144204, -0.0823791477893899, 0.374726268672249, 
    2.84898339253166, -0.205751299253961, 0.174528622835402, 
    -1.06000562753454, 0.39638264496685, -0.565324092740827, 
    -0.0804484295539244, 0.165360041440864, 0.475366607819247, 
    0.164637100949803, -1.10050669477727, -1.66568247596759, 
    -1.21621684387043, -0.121223130019147, 0.523854935815234, 
    -0.0523130079665278, 0.0167161359856407, -0.0683730703235917, 
    -0.192769261120636, -0.060358266812069, 0.583149848126356, 
    -1.31891715392256, 0.150934055084943, -1.33397761634407, 
    -0.0252326266858269, 0.189659180739525, 1.498493957321, 0.142768008722251, 
    1.00857745122744, -0.0746819720649771, -0.11013282550286, 
    -0.135104588090762, -0.11686958538957, -0.0827829294863658, 
    0.261766953572958, 0.0630265517723417, 0.380168379427678, 
    0.350804487823289, -0.0393873980364457, 0.13143960465816, 
    -0.172927539511344, -0.0360128781595564, 0.352747577958802, 
    3.44215833569967, 0.553304447669096, 0.0670546508421292, 
    0.0596468846394644, -0.100708914454791, -1.38881307206699, 
    -4.66141569317809, -0.0522787585176403, -0.339990449463206, 
    -0.0711234597527373, -0.0926172438253033, -0.110684777528987, 
    0.0226301885156239, -0.110293554489428, 0.022715032409531, 
    -0.55142217765938, 3.1112383178147, -0.159597013885071, 0.0176462387133786, 
    -0.165492782001645, 1.30075821669119, 0.344162222078581, 
    -0.418794405866595, 0.0913327565599757, -0.555468630018576, 
    -0.0353939809213828, -0.00674488978936669, -0.279193478852158, 
    -0.349650859114123, -0.655771678262621, -0.170427119766754, 
    0.270557681382946, 0.0194566458108182, 0.018830181369518, 
    -0.226045014383387, 0.0256641349511211, -0.21775068958063, 
    -0.545182522234785, 0.0473723440470285, -0.895000588146647, 
    -0.0338412890107078, 0.0882842966973517, 0.0133181119922747, 
    -0.0746797267314445, 0.192604847181118, 1.66054635365894, 
    -0.020061237764081, -0.0472939050229504, -0.309659079435321, 
    0.582559120786886, 0.0464310329486224, 1.54884839266229, 
    -0.572554647617422, -0.12331329858705, 1.57120949762865, 
    0.111930755927731, 0.0839775088017892, -2.56475800798454, 
    -0.609173675304981, 1.05109942528887, 1.34496869973899, 0.550657496673855, 
    -0.0723327450937915, 0.0289013162392105, 0.0213380655245928, 
    -0.0901369291726002, -2.0503407145977, -0.00882395057491252, 
    -0.156757781588116, 2.42377158671659, -0.222447365726634, 
    -0.0933551652032655, 2.11785455160262, -0.142075957776139, 
    -0.00279887289697404, 0.0035689103785445, -0.0746851895439097, 
    -0.146949297938212, 0.0776495623435593, -0.26315351281969, 
    0.183949482663472, 0.4382985605909, 0.172786698874517, -0.00980513148978853, 
    0.0287668159633238, -0.197397918749284, 0.781565311830336, 
    0.0603725460797946, 0.0999873461275134, -0.722684986507738, 
    0.226179102689423, -0.183872216040132, -1.22879769094142, 
    -2.56907172451599, -0.256570834334402, -2.1651660161952, 
    0.00773148583633992, 0.55620754432305, -0.0207543093195, 
    -0.414769648015634, -0.0762801986174266, -1.2982044786021, 
    -0.411269583434727, -0.463083650818275, 0.991508537327899, 
    0.123362779717066, -3.40541975594527, 0.629407460593594, 
    -3.18259991516549, -0.419683125161537, -0.322768298700228, 
    -0.0849683530243335, 0.144402474449647, -0.575477467826261, 
    0.236743905032834, -1.01085738687243, -0.0609623529861013, 
    0.179060965930496, -0.142379568118309, 0.0845300224970521, 
    0.393400851029344, -0.0309931371212457, -0.0208658250584975, 
    -0.285205194346633, 0.892458790932006, -0.226091701903578, 
    0.529866744946055, 0.734853155613177, -0.292758330401372, 
    0.00163477743427514, -0.268853197882635, 0.130409906574835, 
    -0.0923580952571404, 0.078431254599134, 1.89961560653802, 
    -0.223020615043571, 1.65514225674488, 0.0019099885157671, 
    1.15278667174679, 0.193966846433899, -0.17286980866345, -0.233840162888523, 
    -0.122729556845098, 0.0302083629802625, -0.103776003587874, 
    0.404281109093002, -0.14119549548016, -0.17376348530032, 
    -0.288929921040454, -0.210991281440196, -0.376817857478983, 
    -0.282956966249011, 0.0437724265978627, 0.24543201419279, 
    0.445733577870816, 0.97523374848882, -0.0501307095930794, 
    -0.147433123976629, 0.684059534162793, 0.95044299611737, 
    0.332083276826194, 0.0661382697587031, 0.245199764247893, 
    0.0888672075177294, -0.0643407249598842, -1.34078880687357, 
    -0.214712434493406, -2.89117653802667, 0.921107818608506, 
    -0.6707540816411, -0.187190585449821, -0.0274720315614592, 
    0.750916421816743, 0.157237346932059, -0.0680037930010866, 
    -0.0381535027874488, -2.23522899960693, -0.0252868383361488, 
    -0.179975451606237, -0.212778060368789, 0.127251307883025, 
    0.112033341365266, -0.172128967344106, -0.292084468983316, 
    0.40555696125558, 0.0470972122853139, -1.57613174197241, 
    -0.204331199622728, 0.0665751133831293, -0.971399608953448, 
    0.0669514831385422, 0.035216011479733, 0.286361410517867, 
    0.365012590778472, -0.108125704773598, -0.100334158903651, 
    -0.176191078471488, 0.0876829329677916, 0.165577044718187, 
    0.153431489554579, -0.30375519691656, -0.289897159562028, 
    0.0865666685685036, 1.21880776620302, -0.0427859465091599, 
    -0.0431381757418116, 0.0281809970173654, -0.163398252982946, 
    -0.406253033089764, -1.45947703030456, -0.0500738338135113, 
    -0.0570804419372652, -2.00999437327004, 0.0154248828723978, 
    -0.526145120797433, -0.074705305011809, 0.219624725342043, 
    -0.112332774847284, 0.146697929016216, 1.7424650191571, 0.0485059312857198, 
    0.106657017908939, -0.0274175976140181, -0.313960743018536, 
    -0.244010509019583, 0.0848648860787746, 0.216699481770168, 
    -0.0467246200202604, -0.49276513909682, 0.196324993614452, 
    1.08614599983863, 0.510078404611411, -0.50913966315323, -0.0719647877283006, 
    0.307165486326175, 0.094357267040268, -0.113055366932479, 
    0.185099897343235, 0.15465289072242, 0.426879520696572, 0.47587808672881, 
    0.0522127220249987, -0.225677545192856, -0.224215956409016, 
    5.17933536629647, 0.0510490674596875, -1.06776962248215, 
    -0.0452773960976988, 0.136122885854374, 0.0813810875788891, 
    0.0416266053440187, -0.17244988827681, -1.8492532286011, 
    0.0927957403107157, 0.343218300771928, -1.00806522791826, 
    -0.0356447257856104, -0.0322346966679114, -0.657069791048792, 
    0.681945110605567, 1.41100253536805, 0.483256983585337, -0.0685415396019045, 
    0.0644719694617168, 0.0908698209483302, 0.0113621015964702, 
    -0.0257654090362412, -0.65345498596286, 1.37562385728436, 
    -1.90207297496584, -0.105268988302541, -0.781464118769468, 
    -2.03980240355512, 0.0423692970119405, -1.27422010266322, 
    -0.131372124609981, 0.000646949540447613, 0.13322487027633, 
    0.523981359710539, 0.0674493269138709, 0.00827722157401851, 
    0.0125867117609498, 0.470828749483492, 0.0593036983404735, 
    0.102501284879136, 0.0794864216618388, 0.0632870510730195, 
    0.913275184109603, 0.696796355371419, -0.284123848106484, 
    0.00700679719831577, 0.305549773971097, 0.056003200824213, 
    4.49267257411643, 0.388462672781589, -0.0162454639587861, 
    0.372503296948438, 0.130322678516842, -0.0809696446375766, 
    0.0994817828582951, -0.581393664840941, 0.00657370490543864, 
    -0.113323037250598, 0.0095184141867215, 0.109765053809407, 
    0.301932617359332, 0.275951135616265, -0.0583475168537386, 
    0.0640759623124996, -0.840072851262605, -0.124351899269215, 
    0.234706960770835, 0.503596406085237, 0.48727239580632, -0.140094198943835, 
    0.548961770892727, 0.0940782633501049, 0.135423445719869, 
    0.876924671542839, -0.0515923387150179, 1.19987892036621, 
    0.0599427891425697, 0.179946187407737, -0.277201106393001, 
    -0.114785304372765, -0.776096315749025, -0.711994217548946, 
    0.123266033448377, -0.427069171657292, -0.0653483993749631, 
    3.99877003073392, -0.27613880463673, 0.00255774303449914, 
    -0.28445234872387, -0.00198129410675038, -0.153462091797021, 
    -0.0655172901188612, -0.0199103749158352, 1.53160527104558, 
    0.496604736971826, -2.416349071942, -0.128886598647549, 0.0115845735260318, 
    0.422627137660945, 0.381633365693721, -0.124041397022029, 
    0.0658523404409617, 1.22702588606728, -0.237481158079978, 
    0.00182030693878529, -0.00546940443073557, -0.181683721420398, 
    0.461445399991117, -0.0273689029144882, 0.239421098642365, 
    -0.0604900244551488, -0.437578999672534, 0.00456248559200699, 
    -0.0121357485178348, -0.718628280969825, -0.0575745280828647, 
    0.271745878931407, 4.80918681223223, 0.0527537405295298, 
    -0.029894847435692, -5.87033073112414, 0.0955064763452105, 
    -0.0247820049860659, 0.175617032429969, 0.517879495173737, 
    0.0232604886613787, -0.456154608816555, 0.0733567132178097, 
    0.135588379536747, -0.831637565311281, 0.183887928580814, 
    0.743298932670624, -0.136336521713311, 1.07993883681307, 
    2.65506007449327, 0.0471659212569438, 0.176405215107276, 
    0.107270933732515, -0.761955513703022, 1.23583640662793, 
    0.171324749640286, -0.446846626183989, -0.418556654852157, 
    0.274361749135495, -0.184198577691792, 2.42086101095868, 
    -0.202493065770487, -0.838022174381446, 0.0517229858000987, 
    0.659077794929153, -0.105406256011548, 0.797958174497665, 
    0.0820303735939957, 0.0405356085886043, -0.475763761402204, 
    0.539902687831773, 0.41044430404905, -5.92121003249268, -0.218139988728531, 
    0.602548936510964, 0.434804308735954, 0.13945069295094, 0.697985647083525, 
    0.173268770194194, -2.18492518517776, -0.042325141643463, 
    -0.358386615551811, 0.0401434858803083, -0.611936076435349, 
    0.204421584366223, 0.00780656631441919, 0.244958928264718, 
    0.0620577387799134, -1.06178631197312, 0.501498949268561, 
    -0.134681227458675, 6.86273295966266, -0.0311463869209893, 
    -0.0627930377817238, 0.271756466750425, 0.223575116418662, 
    0.446568420059128, -0.909757034116868, 0.0125675157246677, 
    -5.75033799859011, 6.07302738846614, -0.146819894216198, 
    0.317640403831549, -0.151249499321755, 0.720117413986412, 
    -0.171129028665096, -4.41668712413562, -0.62056032958154, 
    -0.0297670935126186, -0.402402412714587, 1.28971692980515, 
    0.0513879408817846, -6.50033606441233, -0.450563948830823, 
    0.867668411851582, 0.630817832504731, 0.466277235570647, 
    0.0472259108837177, -0.0255612715930938, -0.0271493417488937, 
    -0.201549719534526, 0.514606136131484, 0.117087044467533, 
    0.0567035856375312, 1.24163333357946, 0.116298198478515, 
    -0.152087252172671, -0.18724807709874, 2.39619337071899, 
    -0.0156305781683831, 0.135588555119395, 0.00583018262206811, 
    0.234338130059362, -0.170456539644423, 0.00510608169422368, 
    -0.426671223184759, -0.0650000049813805, 0.0371742866626279, 
    0.00437009483476662, -0.314876347400769, -0.0623255222401599, 
    -0.31325773969233, 0.117043164164087, 0.283450927543653, 
    -0.175542866330652, 0.293866138400789, 0.689309168921065, 
    -0.377176533101442, -0.289765557157554, -0.199611131416906, 
    0.188205596416952, -0.893963676773256, -0.341790452646335, 
    0.156341914231104, -0.587887664897641, -4.74316420493956, 
    -0.113830972737845, 0.237183496580487, -0.53724658927778, 
    0.104387761029121, -0.0264751343813263, 2.53454007233637, 
    3.82019009827689, 0.28885356619142, 0.052423678310166, -0.0014612031458386, 
    -0.116310085935644, -0.143482559928199, -0.589564437725805, 
    0.354659765836031, -0.0206814428891471, 0.175476244534918, 
    1.30578294734961, 0.211879596636511, -0.0476910847907771, 
    -0.0776728307440046, 2.26828164705685, -0.223451111091085, 
    -0.503980559286622, 0.763319145115996, 2.55400427963576, 
    0.986602852127657, 0.289094757150173, 0.285169051599808, 
    -0.00579765285573084, 0.0619991583708006, 0.332316875626407, 
    0.128741395544901, 0.0432705137881183, 0.213230628297992, 
    0.425271432527776, 0.279654375745015, -1.73482961506778, 
    -0.441852855247922, -0.117241781347611, -0.115882109278379, 
    -1.30214771527127, -0.596146307045152, 0.0894759889511724, 
    0.809781699887602, -0.226440089880156, 0.0646213362843298, 
    -1.59421269939891, 2.02544042688537, -0.0594995191490974, 
    0.0687829513811591, 0.650417314137785, 0.102010635109575, 
    -0.525317814681099, -0.0693558037302061, 0.300751032451295, 
    -0.00270455007735723, 0.642827452523217, -0.309623061533795, 
    -0.658320512542096, 0.0288369069884957, 0.62094175985366, 
    0.0103415095470637, 2.90190014124639, 0.0796791279661177, 
    -0.196804836049005, 0.568990407852565, 0.547741699953499, 
    0.0839627273042666, -0.0131182760982331, -0.0639282810324934, 
    -0.380122887201211, 0.0394334921466589, 0.00426209906168038, 
    0.018422118811115, 0.00395352392888679, 4.53750740455549, 
    -0.636773013003961, 0.149816071048738, 0.252198698039564, 
    0.0474244710058894, 1.2044780122811, -0.253814820502708, 
    -0.285175195941102, -0.728244626643663, 0.389492116348972, 
    2.44961172948219, -0.358192637035188, 0.00877458947660885, 
    0.0909150031393129, 0.776584296457185, 0.0876279998752351, 
    0.949353769604832, 0.107978138784914, -0.363355107923907, 
    0.246892541644756, -2.92207742132102, 0.22481863653002, -0.0907434717420959, 
    -2.97437821157392, -0.166881644481555, 0.46712784321118, 
    -0.551700440882786, -0.22177361655596, -0.0991272803148863, 
    0.550678293191372, -0.0497959275849615, 0.982010838808475, 
    0.00911135958486974, 0.0320352003256344, -0.0815341798094541, 
    -0.147421665794136, -0.0123783174596959, -0.231182408635489, 
    -0.0941719214400572, 1.19088301322719, 0.0495560090352905, 
    0.240518982566884, -0.770349171948107, 0.0509733404298181, 
    -0.463531378774335, 1.58056148658831, -2.90639477656907, 
    1.95237225425736, 0.350056936837678, -0.375865943406793, 
    -4.10400894635176, -0.443409160490997, -0.0585566372492029, 
    -0.00446000638429915, -3.28421656486468, 0.0998487590221773, 
    -0.382800212054938, 0.38974564832508, 0.018716753258617, 
    0.0764048561058879, -0.0772419955416588, -0.788535567965524, 
    0.350743841576962, -1.01876395894127, 0.248767954633099, 
    1.03876653676968, -0.234467912135834, 0.0293293725246044, 
    0.0921012238856091, -0.877862938846381, 0.423332808273809, 
    -0.205192447220535, 0.0524332500231843, 0.0232778391660386, 
    0.0605714047235145, -4.08386962999786, 0.295899707197951, 
    0.274240992877307, 0.0208603652830654, -0.560928036809456, 
    -0.229199347734832, -1.10516327712397, 1.68623478914741, 
    0.0192655104885819, 0.378706379083289, 3.45625712739388, 
    0.492118965817921, 3.50636905144629, 0.471269153404442, -0.874919319719371, 
    -0.0457667507771526, -0.0247780038363163, -0.184296896573346, 
    -0.250310597424092, 0.0675508542496598, 0.15904719092221, 
    6.12894375654948, -0.13849996305707, -0.019199678551002, 
    0.799498599264545, -0.577898859526723, 1.68728305768162, 
    0.335343811416272, -0.347522533737049, -0.582885116367588, 
    -0.451317650536387, 0.406010842777599, -0.520422341909616, 
    1.02523948053691, -0.0773735045718171, 0.146561018629209, 
    0.617677480523311, -0.0314030233575977, 0.618854664611868, 
    0.909909071590812, -0.161343158218559, -0.150344109927329, 
    0.939730885915609, -0.0738183197033166, 0.0862033437837479, 
    3.10878710049623, -0.102605914372424, 0.0171322180687991, 
    0.0982897284300801, 1.01766145518424, 0.130353497588908, 
    -0.0898769177376391, -0.119341517130027, -0.00454513665638555, 
    -0.794417083768797, -1.39000216640395, 0.365233388448617, 
    0.0694660377238564, -0.36858048032432, -0.0138944204742878, 
    -0.050408813128158, 0.0755092871555935, -0.119379242358412, 
    -0.275040118471111, -0.342241778601548, -0.0981380708574837, 
    -0.766031075143779, 0.235228277746778, 0.550038036207247, 
    0.0755680960575535, -0.194079396915005, 1.27695359676097, 
    0.254415124648646, -0.45387415149255, 0.231441756857236, 
    -3.97703093676299, -0.176699288758108, -4.6280703859462, 
    -1.64766604428399, 0.998336895047623, 2.68146331447058, -0.271555116096709, 
    0.0818866561223131, 0.169193628882834, 0.0566784942064434, 
    -0.00959808102707066, 0.567754895320972, 0.187454309902772, 
    -0.452934487648501, 0.168198950052542, 0.0150360621736528, 
    0.367401853028016, -0.0487241348206385, -0.343837669425838, 
    0.957568238062422, -0.172352947845525, 0.99282181531728, 
    0.078382218712186, -1.43390129546071, 0.0561679210878584, 
    0.732546186350662, -0.882425042152656, -0.597326865603439, 
    0.804739630641619, 0.00107387094523036, -0.0334813476680189, 
    -0.101748573494027, 0.129572794225755, 0.257773492652725, 
    -0.275316683630907, 0.178578054328926, 0.0426834953586147, 
    -0.0553878271686739, 0.0309766862320605, 0.0687058256910046, 
    0.584054483191384, 0.442495341960575, -0.0718637326566515, 
    -0.233605426376558, 0.0423621781245815, -0.0234890820839041, 
    -0.148503731628729, -0.519664720269658, -0.863478805310044, 
    0.0485631553496928, -4.10572677065226, -0.904870892278776, 
    -0.0802954356325874, 0.0306209995257207, -0.076775789483276, 
    -0.0415655684215573, 0.183419797821478, -0.0879658492674426, 
    0.669530596657277, -0.494841927239328, 0.282880522581496, 
    0.0444577891315801, 0.379734810586242, 0.672207639260076, 
    -2.71308437124883, -0.00301867598598122, -0.0609951914045937, 
    -0.185832174344443, 0.0406372971030488, 0.228792648022069, 
    -0.273166317432218, 0.700634781937938, 0.12187474840533, 
    0.0469027579885638, -0.106839485963957, -0.0103789151198333, 
    1.00723417624793, -0.154613109268326, 0.752917298500529, 
    1.17343133350287, 0.080086770799627, -0.0635070783721486, 
    -0.680133453338691, 1.7257278779377, 0.420545221100498, 0.356777922911587, 
    -0.139780804667721, 0.351356696544125, -0.040060147495912, 
    -0.0392452044696418, 0.772525835474035, -0.365521204862304, 
    -0.142390442353161, 1.34678777946942, -0.0754913224262791, 
    0.0820109099591948, -0.274354072838727, -1.90100236729, -0.185542220896618, 
    0.612114633965475, -0.15509010903908, 0.321677656964942, 
    0.280706668363765, 1.42732668028651, 0.174803016952584, -0.176755840605344, 
    0.52582245942595, 0.734727903949907, -0.0175520501891264, 
    0.0982747124442022, 0.448152549061105, 0.172276612697798, 
    -0.22943946704359, 0.437393317766008, 0.282944328734146, 
    0.543926903340371, -0.26012504901056, -1.13177419545581, 
    -0.349338403553085, 0.343717903549633, 1.25819689975503, 
    0.24263794453898, -0.651536596172786, 5.52544358757464, -0.791410648791111, 
    0.092990892590416, -0.015085986545623, 0.205008700479592, 
    0.0904944727047654, -0.359066136082668, -0.0539744405112594, 
    -0.0732200015924716, -0.0238605948489818, -0.0195201998025095, 
    -0.150950890723746, -0.173551848400168, 0.26890766215266, 
    0.150154386263468, -0.001899525590582, 0.420257953939732, 
    -0.219901934168806, -0.0643823566348055, 0.532726516353333, 
    -0.193541243786061, -1.17361877686285, -0.00841583585119745, 
    -1.15052744850613, 0.259165903084721, 0.146432865653558, 
    0.0515319308071508, -3.92089611571723, -0.0609582696982002, 
    0.491049048008527, -0.184707678108779, -0.903147950725767, 
    0.402144968252232, 0.228836781444674, -1.17600534514037, 
    -2.72662343450778, 0.177558264739883, -0.0327771187965608, 
    -0.188881948943217, -1.61951728203901, 0.569852293148734, 
    -0.0248951890586967, -0.297470362525076, -8.10941698808692, 
    -0.106748341538422, 0.0414251058517165, 0.0138393623397316, 
    -1.51325271701712, -0.104672709459644, -3.40337276301033, 
    7.72583020373696, -1.66772318763261, -0.0391498176884469, 
    -0.105645812072183, -0.151572206737696, -0.00102343015523625, 
    0.129162682269017, 0.304697709732846, 0.002733658167352, 
    0.14249298809798, -0.158460155453603, 0.748573623941618, 
    0.0349523301335627, -0.0047893008105911, -0.0531364025099568, 
    -0.066039134267286, 0.016391258453696, 0.272688710449681, 
    0.0599280456179123, 0.0220677203520843, -0.0626899055621261, 
    -0.208086749696045, 0.0256965605451029, -0.64126493737485, 
    0.389943071243369, -0.244155169569367, -0.318451321431254, 
    0.129039549661037, -0.567475564857985, 0.0588507486798144, 
    -0.162062880881507, 0.0169703960343005, -1.21966295561613, 
    -0.00480523687252291, -0.25396219382905, 0.0720855788132712, 
    0.172825247198648, 0.065223875796479, -0.082112323395976, 
    -3.05130474496524, -0.0681637964758686, 0.0165215495883876, 
    0.0176146795765461, 1.65155574293278, 0.13933577327636, -1.39652347017853, 
    -0.0263195841868716, -0.708093720440379, -0.396613984046015, 
    0.184469077065552, -0.37924594631115, 0.0250664806284635, 
    1.28063180390473, -0.108086910153603, -0.215334400741739, 
    0.0531048662147742, 0.229855554112087, 0.774368336485097, 
    -0.582089235502375, 0.341868409720948, -1.47631908599824, 
    0.113586857584628, -0.13271449498473, -0.0524750539827135, 
    -0.273663273492576, 2.17150843839151, 0.257939967987927, 
    0.312569545456745, 0.0865552076575563, -0.0420011392547612, 
    0.961798041586481, 0.346017679946595, -0.557615369368444, 
    0.126461298030031, -0.314554807279762, 0.735792815465635, 
    -0.00750348187982615, -1.32384480880165, -0.398285266207179, 
    -0.19358246423435, -0.225334644935418, -0.391702364333672, 
    0.0334899883432943, -3.77371307634133, 3.01848349360938, 
    -0.945019406600787, 0.464510245240246, 0.226291992370529, 
    -0.0321213618205936, 0.13956161279747, 0.119746839757757, 
    -0.715969727458488, -0.347799739440016, 0.0448562096915084, 
    0.161150023827204, 0.169941285533865, 0.402031017852619, 
    3.94109266055093, -0.421665255509278, -0.0209001162757521, 
    -0.0492205614891625, 0.26529054478689, 0.000740143825753336, 
    -0.136644349216072, -1.19435244547879, -0.239106503169033, 
    -0.0997753810333422, 2.08428668771479, -1.05497422314634, 
    0.0880990283316959, 0.145302488879928, 0.0209123610166024, 
    0.716743622864773, -0.0367530668089093, -0.0210901015935344, 
    0.213471721328478, -2.12306999499335, -0.888448287804049, 
    3.02075959816577, -0.0383606248631152, 1.14979228473642, 
    0.200833205514733, 0.0923603839985399, 0.0864739837294436, 
    -0.141914519157349, -0.0430488554129951, 3.61133355277579, 
    -0.128722876051807, 0.20217407696485, -0.0606800774489783, 
    -0.146317341841141, -0.0471166262317573, 0.173012235662172, 
    -0.308455975616823, -0.0863856835157686, -2.77900584313821, 
    0.904630055068703, -0.901347723919399, -0.702007833959253, 
    2.5842421142426, -6.1297581925284, 4.2315034176062, -0.0701839795245472, 
    -1.07625624827008, -0.119697812403511, -0.0257950611130262, 
    -1.42179244411245, -0.0952905653451337, -0.704657903122132, 
    -0.142246222712531, -1.83137915864834, -1.73233882483724, 
    0.0903604363974185, -0.00398043819229198, 0.0891990144110811, 
    0.149942680403764, 0.0175484629759435, -0.315644956545704, 
    -0.081398496846592, -0.207248686628219, -0.459847656482422, 
    0.0452982702339715, 0.305747461926457, 0.279255170965752, 
    0.0533514411751643, -0.0339446061708071, -0.128799747645215, 
    0.131349110167791, -0.317393830642804, 0.0316981495427173, 
    -1.91770293742971, -0.344914693022227, -0.229127855168147, 
    -0.0843165470568689, -0.116552940696151, 0.0422502370455497, 
    0.138256833493277, 0.575612611683183, -0.0418535984385444, 
    0.242199319280779, -0.468268356563453, 0.684353535096657, 
    -0.384459580550459, -0.153189380122283, 0.624853715278818, 
    -0.51222291918034, 0.0674670944261874, -0.163934234130196, 
    0.105153126139932, -0.0057814797924785, 2.59546327617342, 
    0.477859873046985, 0.0543710017318279, -0.0443309895118244, 
    0.199003866294973, 0.33361746245849, 0.0679664428816235, 
    -0.866272706222212, -0.470364862257279, 0.242808755868302, 
    -0.0578116356496242, 1.4160864734506, 0.0548065932334196, 
    -1.06172225944216, -0.303827791244767, -0.922923120534778, 
    -5.97070167632627, -0.110867441457025, -0.112120595691025, 
    -0.71856440593941, 0.300113244766474, 0.0482171128866397, 
    0.0765325525388133, 0.0333437633122831, -0.0109724167996701, 
    -0.459573607829982, 2.04475352126265, -0.0587253611703521, 
    0.299631961850424, 0.0568399120835623, 0.0340386817388605, 
    0.156603409453703, -0.208346550094877, -1.07468519621557, 
    0.0472721203681702, 0.041117488156572, 0.285361372594146, 
    0.425582119141955, -0.404454523708184, 0.468156743733099, 
    -0.676018475504852, 0.0705441638388109, -0.119349082474347, 
    -0.300864857361711, 0.0157785459755947, 0.503667661802396, 
    0.373840136829859, 0.0133847942558169, 0.099469505189916, 
    0.0230009648342856, 1.24147942144659, 1.27325894294141, 0.0115869193193846, 
    0.0670575627128189, -0.0725568423776568, -0.0592188058454097, 
    -0.397963333833603, 0.0733139492185896, 0.0276688608463234, 
    -0.290191159744222, -0.947882546951406, 0.190420942786522, 
    0.229413699597392, 0.319450614544187, -0.195578143386947, 
    0.207828004268654, -0.204865092439927, -0.241466946306538, 
    0.0348168865954443, -0.119678368838129, 0.601714981906192, 
    0.252871646229601, 0.115503759493771, -0.0847483449850819, 
    -0.0934480609207493, 3.22129390665738, -0.134201888869266, 
    0.276832067410299, 1.33037509835324, 1.00569146771685, 1.96715839207738, 
    0.27722099475053, -0.101188974369189, 0.294153960117785, 
    -0.0274779603415479, 0.322385691634951, 0.394449227564901, 
    0.0301538086620264, 0.0772238088374909, 0.351624503628723, 
    0.390776693745209, -0.0823897716286399, -0.0735752168285669, 
    0.031008830954656, -0.567549290243903, -0.289147967004146, 
    0.0849964530238825, 5.05339770872369, 0.257452743323014, 
    -0.132767971709211, -0.0315720555120551, 0.349298326849492, 
    0.0760684300056759, 1.37705449021679, 0.45193476681197, 0.0119008703643733, 
    0.0542750229179203, -0.176528174090267, -0.0273284246673685, 
    -1.40864675314564, -0.772458819033058, -0.316022148122296, 
    -0.167446114463439, -0.0308833347494372, 0.100310740328242, 
    0.29005521593477, -1.8711086918191, 0.0219765162572996, 0.756383709503235, 
    -0.769259830677135, 0.719458849815359, 0.0782913346661163, 
    0.22301126459168, 0.0370306768794922, -0.0507321895689598, 
    0.0654709916862438, -0.00161955023043355, -0.0191387700313931, 
    0.568019258359691, 0.0552412775428358, -0.983533946953425, 
    -0.00439618314114605, 0.572728210102133, -0.190041057332229, 
    0.0555186890146924, 2.26302483705735, 0.0610918553415395, 
    0.510573328979828, 0.85220631325791, -0.0933330272164531, 
    0.269575319103826, 0.4751481904327, 0.109088126152219, -0.69067682035202, 
    -1.68202597753055, -0.28810139507949, 0.00195439875891725, 
    0.972508706460742, 0.11981866843499, -0.0716426112011059, 
    -0.0204113364227368, -1.01360035606783, 3.28463789517298, 
    0.357291708759359, 0.0342777218223524, -0.866726046207653, 
    1.51884953376699, 0.601325794703542, -0.383435999879267, 
    0.0928353928178273, -0.348930311644093, -0.0304407462530964, 
    -1.96269388339099, 0.304279886577274, 1.09662140007554, 0.115786698435531, 
    -0.0994360199309685, 0.0706894575699407, 0.207742698606379, 
    0.154631761332044, 0.244477674855667, -0.342166463875636, 
    0.614663596555931, 0.209371765809918, -0.13175340078014, 
    -0.309217281293658, -0.163915419518545, -0.667135460447683, 
    -1.90634077400859, 0.248357583856367, 0.98503611985581, 0.0187858490576528, 
    -8.44312984506417, 0.121330887634141, -0.484013553923018, 
    0.024824725313758, -1.56456190054261, 1.31010283181517, 0.0822102032693628, 
    -0.0572931618614548, 0.0590622566123927, -0.4195891092289, 
    0.0489131036062987, 9.12523383151546, -1.48105105511485, 
    0.23700236968929, 2.48891950757033, -0.347167800923758, -0.0262838541458289, 
    0.0432993268224189, 3.10483794391099, 0.179053211941632, 
    -0.65092450688978, -0.125905826739978, -3.03811867957296, 
    -0.0212972098083609, -1.65907098768402, 1.67437413874933, 
    -0.0567083570548404, 0.0563864029869785, 0.246191523237972, 
    -0.0500828594893174, -1.5249369707448, -0.108302042520168, 
    -0.76288330859088, 0.132005952211818, -0.476848174967936, 
    -0.159272317921536, 0.283170815207709, -0.281619640034866, 
    0.0367163293352731, 0.358280661782384, -0.0788034980614776, 
    -0.0686123729889542, -0.508989103908302, -0.0591480665848817, 
    -0.62385522900011, -0.799303516369283, -0.477082564194108, 
    -4.30738990043523, -0.0891378769830492, 0.0813996618691748, 
    -0.127419419397892, -1.20745820830905, 0.0660136551079554, 
    1.50815775007015, 0.147024439204917, -0.297782686846029, 
    0.0860595458046067, 0.0719132916817116, -0.0167603525881851, 
    -0.0768064342831529, 0.784898375878275, -0.0710918175845375, 
    -0.0822801669112033, -1.46431322365699, -0.0366982531595172, 
    -0.153426916468786, 2.64135319826347, -0.0288349271656645, 
    0.247718266765819, -0.036807432143192, 0.400862163257104, 
    0.00915334059312963, -0.318094292881072, -0.452914914012621, 
    -0.282830740485159, -0.0534797478687511, 0.248985821206746, 
    -0.0119586562233166, -0.695758765771951, 0.527286953280805, 
    -0.680069618008353, 0.112729723358414, 0.874608283947796, 
    -0.0315941055986568, 0.0770911216754348, 0.0969773709659173, 
    0.0519000811448381, -4.74902088356476, 0.166183068282584, 
    -0.491303216326572, 1.75986465903626, 0.936175443819311, 
    0.186806861525454, -0.117299254429375, -0.416132532508195, 
    -0.00224988640422439, 0.616289483280728, 0.262011203479398, 
    1.1628966828682, 0.0301067035069122, 0.0756890570803344, 
    0.0949843270247591, -0.0125932574497455, 2.27851401759364, 
    0.279008140087694, -0.237209549213011, -0.0988330391269584, 
    0.608806190301533, 0.2318588199584, -1.51425139105332, -0.0911495334144756, 
    -0.199092848299593, 0.187488449238046, 0.000256516143097171, 
    1.42801764727973, 0.590457329157042, -0.400159474623924, 
    0.0505734198515826, 0.184542971105746, -0.486589507865572, 
    -1.19466484116264, 0.530178218916483, 0.11939627785578, -2.69713742400549, 
    0.25070113605654, -0.0746192652693776, -0.0279816873869286, 
    -0.103880167126978, 0.0121329404725325, -0.522712964011598, 
    0.0373143777605325, 0.0511763711676689, -1.01191656537443, 
    0.182637708729249, 0.340225398315674, -0.214524961027814, 
    0.309398627802371, 0.310906448884579, 0.158306895554271, 
    -0.249527724677596, -1.14616694247669, 0.178965629995236, 
    0.158645126135133, -0.0546076954087185, 0.0255573202918314, 
    -0.0231115864572244, 0.0562388874066799, -0.0693517911900784, 
    2.07609528145551, -0.783208523120868, -0.216690150771773, 
    -0.446734795488501, 0.126537407438752, 3.65196366341447, 
    -0.173854297326514, 0.203509937233782, -0.0418102937865081, 
    0.173888389797285, -0.0372523849286703, -0.185528770899602, 
    0.627899318702509, 0.132220445757554, 0.85487466682098, 0.519522309354457, 
    0.145069963775859, -5.86925585604354, 0.127461093289706, 
    0.0448317638648793, -1.98968643711286, 0.129982436869581, 
    -0.104749618844899, 1.49664460925867, 0.0112605256509128, 
    -0.00036642228119016, -0.0759110486576973, 1.10188767733351, 
    -0.735582880706053, 0.250938702975622, 0.383925678281555, 
    -0.533629919203811, 0.0432630796221734, 4.85135797923886, 
    -0.247793320031263, -0.00799997282607201, -0.538011265512709, 
    0.114000217447651, -0.0032084622243498, 0.122702048849018, 
    -0.986763182040729, -0.427001338537644, 0.0849063304979719, 
    -1.15465170552679, -0.14069794529902, 1.21229645744253, 1.73472032152922, 
    0.0185253489742253, 0.113944482310287, 0.463013899778187, 
    -0.160580566665128, -8.97397443533649, -0.0776929881882119, 
    -0.0428020636902228, -0.00098877140304061, 0.0679755990487245, 
    -0.155813669406694, 0.0806827745244162, -0.0559025669776391, 
    0.0394352634085774, 0.0252320259115919, 0.228798433260092, 
    -0.065924683778527, -0.314735495303989, -0.0774620431930011, 
    0.19940399233325, -0.0326087860611198, -0.049170559502796, 
    0.368585326955899, 0.112391667682851, 0.0390093975718019, 
    -0.0355225167983712, 0.782694352895803, 0.141534294904086, 
    -0.169814987975046, 0.0261142407573073, 0.0864914570922619, 
    -1.0668110392871, 0.282390248364366, 0.186496361850657, -0.168211852722041, 
    0.717861610299764, 0.151654884755359, 0.39348673171889, -1.4209896833285, 
    -0.0534890714212435, -0.15073309740697, 0.30729787037593, 
    -0.426072106082385, -1.57561921247125, -1.09144199257206, 
    0.258396731048647, 0.0393781664471227, 1.60105678035289, 
    2.31005639284606, -3.0929527990233, 0.164719894992377, 0.034574262829032, 
    -0.138015560901429, -0.348108020935551, -0.342188057231844, 
    0.188238688947776, 0.422120401669742, 0.102344735782251, 
    -1.23610145266839, -0.0282414711258996, 0.0558269053152726, 
    0.0438361024030569, -0.042498022549312, -0.41692125315052, 
    -0.866011466638313, -0.267124882776141, -0.0522348738472783, 
    -0.223435920412527, 0.0875346711657483, 0.2207123833302, 
    -0.13431524236719, -1.54318155882937, -0.527309514093962, 
    0.0776805871131941, -0.054167574984577, 2.39699477793242, 
    -0.201679157405087, 2.12633371011977, 0.0409821698203986, 
    -1.59736144202688, 0.677628659314227, -0.326656679410844, 
    -0.660540980022355, -0.83987816806277, -0.10837925006913, 
    0.284823935290064, -0.0776346055959153, -3.38756871578144, 
    0.421592658173679, -0.0278323189854732, -0.383512056951429, 
    0.629835078959794, -0.403193881352077, -0.138534637445236, 
    0.01781475003124, 0.760782298827209, -0.0815694597452497, 
    0.0917177568893974, 0.044467703730151, 0.114625321768004, 
    -0.0273201945477416, -1.95322586172855, 0.388828797335725, 
    -0.282700819845294, -0.160692096770954, 0.111175213686368, 
    -0.0312373638641938, 0.0563278964613951, -0.0599617798143375, 
    -2.15770989969295, 0.0312630565943186, 0.0152857931148072, 
    -0.0582992594604677, 0.323989795165217, -2.8245231767728, 
    0.0434768002175914, 0.422346697884499, 0.00762085816556441, 
    -9.37568743267042, 0.0901678815375597, -0.57841289401268, 
    -0.299577998912089, 0.187855705060828, 0.385352142826422, 
    -0.0461531077546251, -0.0823079339204024, 0.0317308760161207, 
    0.0691004559288284, 0.0758037572940468, -0.68599503735776, 
    -0.647246005546583, 0.102675731625088, -0.0505036643474816, 
    1.37783107425673, 0.682609124538237, 0.0940237716983077, 
    0.891589315582644, 0.388900348645492, -0.00543744638974343, 
    0.446365921610818, -0.291789252944273, -0.0645230109929736, 
    -0.0538748316347663, 0.0136214806285398, -0.0782092433627186, 
    1.04560592393546, -0.111577301947389, 0.949967606754845, 
    -0.230774575339139, -1.38677296294333, 0.208554906603931, 
    0.454936914832616, -0.114762627969093, -0.0323053769180163, 
    -0.587675794905036, -0.0778857751268874, 0.870197731464951, 
    0.00728682126717112, -0.155427618496928, 1.42986561768532, 
    0.0878765428541893, -0.525995322289314, -0.158353683507596, 
    -0.238645981541631, 0.356142646994356, 0.0136758523502414, 
    -0.281299394323045, -0.248713385170081, -1.34826689800656, 
    0.281496121631548, 0.0270605614351769, -0.241830952870567, 
    1.68922825313727, 0.189019230311108, -4.1727093805953, -0.0944454187975339, 
    -0.0397965749452889, -0.169004997944169, -0.00873943074925395, 
    1.11203084482827, -1.36124383448733, 0.477619374765797, -0.0897525432908857, 
    0.534381079621388, -0.0197923221765876, -0.155194954585265, 
    0.218540130123339, 0.458934384427316, -0.126076502645515, 
    0.063113732381393, -1.18762805480614, -0.0588710601040363, 
    0.947085832885338, -0.0999490894368294, 0.36136507421069, 
    0.243271748455521, 0.552212687671416, -0.40765388064766, 
    0.0279054863162034, 2.86717036610008, 0.0653133799661165, 
    -0.410129649732009, -0.0949455069210542, 0.112676242052248, 
    0.0338197315267155, -0.692572939077372, -0.719886035103259, 
    3.64312446551908, -1.50209357169882, -0.0980296496040221, 
    1.49400961778058, 0.00276185656138581, -0.153120590344261, 
    0.154893778143154, -0.400300390860445, 0.238419531106312, 
    0.209983060411419, 0.146684979053639, 0.515597817168335, 
    0.154301808664096, 0.863472818882052, -0.0300390375506851, 
    0.357726493965248, -0.555862408007326, 0.184025494992089, 
    -0.34822490251996, 0.458957854741435, 0.167927076167484, 
    0.464980613710567, -0.695378954186684, -0.248891595449914, 
    0.130200912766378, 0.0173234932268346, -0.140623609810111, 
    0.323602293876659, 0.893067777983326, -0.0729728356430396, 
    1.01022248698306, -0.0717645614563185, -0.0412204353707349, 
    -0.151646190328115, 0.153528617889596, 0.383472697471853, 
    -0.241877449487761, 2.59787057588083, -0.990229813961804, 
    0.00238426487818598, 0.0312854195090638, 0.0423477971150319, 
    0.312449761913237, -5.55524668542687, -1.93026446734157, 
    0.0830707444061212, 0.274498380755059, 0.00913690756513421, 
    -0.432662414253037, 0.0105928187356277, 0.740732331010151, 
    0.287981062087277, 2.59089549717888, -6.55373887930324, -0.476787854864015, 
    0.218153313529133, 0.0980148432260047, -0.382204187718848, 
    0.0711401169787049, 0.842791163435321, -2.096656463739, -0.201744271629028, 
    -0.0845010935124681, -0.508992864904051, 0.832196839413721, 
    -0.286467543290118, 1.08169490587811, -0.0873785251241584, 
    0.103494282531655, 0.221827567230768, -0.118534531285537, 
    0.62653420545875, -0.318608472370522, -0.141205666835251, 
    -0.0678062117317164, -0.839840291608872, -1.29961320812838, 
    0.342101085523251, -0.0107877989649968, -0.1472199045977, 
    -0.705225725363355, 2.96818558304885, -0.1676767821518, 2.06002789257168, 
    -0.014095659750481, -0.0558977910991238, 0.842791204469718, 
    -0.0498750727920998, 1.26764610471501, 1.53580185527457, 
    0.105106614296596, 3.56747512921787, 0.195494488527574, -0.0387006407036221, 
    -1.27364295864428, -0.599909577920797, 3.18907962085708, 
    0.0519047183738342, -0.239973218335214, -0.529188674185497, 
    -2.59039130075902, -0.0756381217612061, -1.30153604295931, 
    -0.347981231321948, 0.279959642835228, 0.267255478096481, 
    0.376776375608469, -0.0640499200664004, 0.0182289042126149, 
    -0.0559188410491079, 6.59536792922624, -0.0563637420697271, 
    0.0653088614601502, 0.129094527849311, -0.133714634751136, 
    -0.193204918227581, 0.0249021350899548, 1.08429303113355, 
    1.77244469022655, 0.00357973578842984, -2.08640300350698, 
    2.0972807296989, 0.0603814281133226, -0.0438510374489334, 
    -0.0499778106429578, 0.021562895905594, -0.0394674739704717, 
    0.540515856823086, 0.519161450386402, 0.104895930954584, 
    -0.453124999155723, 1.12372119104089, -1.574724458041, -0.0287535913029994, 
    0.121793522762003, 0.0299276769626545, 0.504950523450937, 
    0.100758980323157, -3.66271943201878, 2.42171098121704, -0.583567297213164, 
    -0.039168821514886, -1.51922536521219, 0.0516532401991999, 
    1.00664421583327, -1.42979124478874, 0.269999507829685, 0.169084876935232, 
    -0.187862926958484, -0.103137706056184, -0.238981120071882, 
    -0.0096520894854747, 7.81189423259941, -0.268776139454593, 
    2.55583202029375, -0.0388139815604921, 0.387942567216259, 
    0.204670910380623, -0.0121742850207921, 0.0929097073105539, 
    0.997973147588159, -0.0492074928876489, 3.73858771240399, 
    0.0936138209753394, 0.290542341622609, 0.201915474709451, 
    0.795615704153909, -0.301765804173677, -0.238627301604505, 
    -0.0632889869656957, -1.22938294047763, 0.182374520287235, 
    0.0254229647121066, -0.284346171622847, 0.0953021524441591, 
    -0.0385617390123747, -0.106203446917703, -0.0512843579188229, 
    0.272076104650415, -0.645882837200803, 0.727704277159264, 
    0.0125550088532224, -0.115936524947335, -0.727599477392628, 
    -0.0882541193609185, 0.0137333487886897, 0.119035835882664, 
    -0.0595910796093128, -1.45974865915667, -0.354238393215443, 
    0.0840408361709806, -0.0913766680052138, -0.403673072549362, 
    -0.00407905039606941, -0.448846374849114, 0.0253548951494854, 
    0.0315510980174498, 0.686694056437028, -0.089801274929901, 
    -7.11493839617683, -0.27236029073429, 0.192559006974248, 
    0.14567495552392, -0.0991053838484183, -0.0652382096092944, 
    -0.759964541636109, 0.688095687952018, 0.149559199140456, 
    -0.749285244446024, 5.43568435256742, 0.941666227599982, 
    -0.297145268806175, -0.0422196707852791, -0.584075234640223, 
    0.0483282033627078, -0.009600701424645, 0.73445553320331, 
    -0.34059675613691, -0.499978970050409, 0.17390105973, 0.082076990507208, 
    0.0191376568557614, -0.307477934956385, -0.670488946688223, 
    -0.0366432491166665, -0.00353628494868847, 1.12871000352075, 
    0.0525263122171414, 0.08783314427695, -0.241955591740527, 
    0.16290138359303, 1.13600285844502, -3.97999320706819, -1.17689615670901, 
    0.572278572613107, -1.14160718852513, 0.0725206886774196, 
    1.07938475795282, 0.155675645520383, 0.481065669661345, -0.0274724998943726, 
    -0.186169080384571, -0.523942948903993, 1.86828760023139, 
    -2.24652502881856, 0.138333066537203, -0.340697608822931, 
    0.01843700300074, -0.109796292574903, 0.152791660692642, 
    0.52817960718302, 0.212061877445652, 0.056972887336769, 0.213049951708973, 
    0.268721433342409, -0.775561866050575, -0.322228301349678, 
    -4.13035273149727, -0.293565886606869, -0.0507329098262899, 
    0.0779791226001129, -1.02978011874645, 0.330764510860659, 
    0.62628346965187, -3.1233678450449, -0.612542439394863, -0.00882164868358099, 
    -3.3002925650173, -0.608718417843343, -0.0138686532782148, 
    0.0236113180394348, -0.0158310635055982, -0.0505831981283347, 
    1.09960927258025, 0.451066802404274, -2.45299528768459, 0.25493558186946, 
    0.113945573924312, 0.081084526959884, -0.506618265955248, 
    0.519343856331225, -0.37519207213283, -0.857035376818347, 
    -0.282647849107032, -0.471232221161729, 0.000732035301219854, 
    -0.0703862575121487, 0.13231389894216, 2.43994909753165, 
    0.139771169742348, 0.106369837225591, -0.249728183100326, 
    0.537552762030511, -0.288859417730408, -1.01641634055264, 
    0.206173520514571, 0.390222194290508, -0.75284490132595, 
    -0.0227595024095824, -0.23063318629875, 0.00440764662770039, 
    -0.0209497892010664, 0.247197126294526, 1.16977378265735, 
    -2.35534471303904, -0.265941000913171, -0.00828601927689445, 
    -0.208957406763356, 0.539371905396947, -0.0642967681651536, 
    0.0777974146589595, 1.31574872355358, 0.23724610777057, 0.00478816349024069, 
    -0.186200093139284, 0.0421253464496592, 0.0287880431818186, 
    0.203690343848075, -0.00083553345913039, -0.593446124669694, 
    -0.048863038305883, 0.0601817850941619, 0.780082745597988, 
    -0.0631190525909281, 1.13342066909945, 0.122937392383302, 
    0.203297699644422, -0.210398865954871, 0.347834708261756, 
    -6.90104004310251, 0.187442414959544, -0.361408678175637, 
    -0.0320480360082087, -0.324980916518773, -0.400025708523026, 
    0.0339223002452724, -0.017067374961172, -0.478070339882685, 
    -0.542077879163085, -0.0983319128479778, -0.385958146245365, 
    -0.451578276966226, 0.912436324383768, -0.263134078996598, 
    -0.483237040831473, -0.371307319633269, 0.714067591702574, 
    -3.03995088345547, -0.0648526427680217, 0.370980346521062, 
    0.0466803599144983, -0.499920327181309, 0.508569122762097, 
    -0.0614526801810172, 0.891482075206742, 0.269769023675596, 
    -0.705199590367808, -0.0339659556327094, -0.15387927950293, 
    -0.342492276604647, 0.264797610191724, -0.115410979937748, 
    0.0210411707652807, 0.258876670233999, 0.0234322147013685, 
    -0.0512053284521118, 0.500243020135475, -0.120120287090491, 
    -1.56293646064758, 0.0683300540643599, -0.480634029135841, 
    -0.156624912774224, -0.441528564533645, -0.953399405741206, 
    0.0285545195149538, -0.299067362978847, 1.9989037128092, 
    -0.305850865576706, -1.06105462280006, 0.179945912826225, 
    -0.431909679861461, -0.506096511811215, -0.414488239535367, 
    -0.114662355394595, -0.747862988159361, 1.18199984590253, 
    -0.277607109199244, 0.081362262250897, -0.175863860780937, 
    0.72376781615225, -5.10051793922325, -0.000173656281102731, 
    -0.342694549937072, 2.55022692282355, -1.09711496367057, 
    -0.039497603205047, 0.0426130240223173, -0.6443714309053, 
    0.203586062965631, -0.0504425249948426, 0.0362727136377653, 
    -0.106832339179448, -0.0259960812616461, -0.238383414064504, 
    -0.0672657850956203, -1.08222344614417, 0.241349540478151, 
    -0.00211514195416141, 0.227818558102394, 0.462341029075987, 
    -0.155664429014711, -0.115946355866167, -0.0532872444570601, 
    0.0610032374470617, -0.508615296817855, -6.68790727259485, 
    -0.14347716411528, -0.123100964283498, 0.0397485077142214, 
    0.104035619055287, -0.0293303762854021, -0.804580823939007, 
    -0.637010392952884, -0.924514958444446, 2.07624965725264, 
    -0.308153521208399, 0.495664791989048, -0.711425142977426, 
    -0.0922674474406514, -0.856105058293734, -0.206564593579579, 
    0.242624290840833, -0.110068975437302, 0.567763490916647, 
    0.337164624030246, -0.0598822808233366, -0.13202806448933, 
    -0.0105784121838337, 0.0908285081529248, -1.64867464956714, 
    -2.27297703557622, 0.405663374317783, 0.137780023623045, 
    -0.0790051500751375, -0.426351630507017, 0.0693981311913223, 
    -4.28717930207283, 1.01498622968134, 0.0600998725608316, 
    1.43472499528207, 0.115544912118837, -0.0788127917754056, 
    0.659619353717105, 0.166171876315626, 0.159341503568165, 
    4.68357893880505, -0.908210050254729, -4.67264161316336, 
    -0.440734382296033, -0.940173461066923, 0.736119673561957, 
    0.0406973608183423, 0.0299692985167313, -0.0359097985897211, 
    0.476682136941618, -0.0267151466171607, 0.124018882746339, 
    -0.481164936226208, -3.59433738944153, -0.192137247337705, 
    0.0209715768824235, -0.127657592295801, -1.61187599367791, 
    -0.0135848139302849, 0.634142448019281, -0.0601786836867065, 
    0.0222415286441492, 0.742185299362095, 0.279957806794686, 
    -0.0226716440675961, 0.182291445896166, -0.0290109647306951, 
    0.256540672122445, 0.822178838956845, 0.372687001845187, 
    0.261396091272924, 0.0537339126100261, 0.222969596688814, 
    -0.0852306852693041, -0.020964937622498, 0.122655551441843, 
    0.596425056392657, 0.233617484913359, -0.183252992953041, 
    0.160258738539484, -1.83262517612852, 0.0267258139151805, 
    -0.0772022564755139, 0.324971192311047, 0.52937521676436, 
    0.0843704443908276, -0.131255979607209, 0.0655355005523423, 
    0.108255926662624, -0.426776857431508, -0.00815239972631661, 
    0.23936659538633, -0.647237990727168, 0.0765924755040608, 
    0.078160272684186, 0.545148508246287, 0.157021190257764, 
    0.124372696406802, 0.176875274472575, 0.58629322085529, 0.478640724017066, 
    0.149336453398762, -0.22699715776274, -3.09094017147274, 
    -0.388264484721866, 1.65208996049937, 1.23391659723386, 0.129951851210104, 
    -3.60268448694721, -0.358145053184815, 0.0631095694598503, 
    0.376987764063605, -0.251576214621532, 1.01263206865554, 
    0.0827372175321609, 0.145886111484949, 0.425793512437765, 
    0.872283406733471, -0.0360139690457839, 0.648229217509726, 
    1.89467723667537, -1.22500673509919, 0.396917716762889, 0.0839429391133642, 
    0.0193333852580589, -0.169113778278471, 0.833867572153003, 
    0.137204444252514, 0.123425140455975, 1.79439664827843, 0.20226987260813, 
    0.0332041064135638, -1.14147764388474, -0.109446669934551, 
    -0.119235497330888, -0.254037196809303, 1.46240533716996, 
    0.0735555879036717, -3.59589160187876, 1.15514730426384, 
    0.262243157781323, 0.104182032807352, 0.27853663581191, -0.55437339184346, 
    -0.897413436789391, -0.334714061854847, -0.684201808073549, 
    -0.34199752724341, -1.69603284970682, -0.136685004249258, 
    -0.17697537932311, -0.0866682869302237, 2.37023189225698, 
    -2.90032590398599, 0.276815087196249, 0.207578123382332, 
    0.0450577209536534, 0.252116183290001, 0.0759914684149866, 
    -0.146077818528914, -0.131383727354886, 0.0402638598732861, 
    -0.463883252083851, -0.608782040970174, 0.0393183935826338, 
    4.93178332471187, 0.749801479238059, 0.665140136479599, 0.173298624308407, 
    0.183337636893977, 0.48782376306987, -0.276264738968804, 
    0.213102088582351, 0.0897920723989382, -0.0264416744765843, 
    1.24187728526573, 0.00739624907183828, 0.0158580020998034, 
    1.88463109491646, -0.00045367586841158, -1.04974308526196, 
    0.00224502057891237, -0.0963837726294115, 0.936424943018074, 
    0.0808974847982334, -0.0576099722486131, 0.0280813129116215, 
    -0.105769329621828, 0.113692121573029, -0.0878532700654795
    ), .Dim = c(33L, 267L)), mydl_vdW1 = structure(c(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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 
    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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 
    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, 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, 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), .Dim = c(33L, 267L)), mydl_sdW1 = structure(c(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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 
    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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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), .Dim = c(33L, 267L
    )), mydl_bB1 = structure(c(-0.00511408252343938, 0.0424645742767817, 
    -0.40529660111666, 0.0504467149446889, 1.82218931867361, 
    0.071739765269375, 0.0179727330294529, 0.38282300253511, 
    0.120430006547999, -1.09115264961196, -0.0584002226457068, 
    0.274258896462299, 0.0402269892101542, 0.157094937543343, 
    -0.0962763510282475, 1.3581138352875, 0.0170776150673807, 
    0.110239550366772, 0.0132026323579063, -1.00214832427818, 
    0.0517387227293998, 0.0229497357721224, -0.146241715399894, 
    -0.034309649303895, 0.0266256693951156, 0.425946575887512, 
    -2.56233251946768, 0.0186786517689336, 0.0240290479472008, 
    0.00218580789541934, 0.166227356145746, 0.138639039864318, 
    -0.510638114586748), .Dim = c(33L, 1L)), mydl_vdbB1 = structure(c(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), .Dim = c(33L, 1L)), 
    mydl_sdbB1 = structure(c(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), .Dim = c(33L, 1L)), mydl_j1 = structure(c(1.2600564359856, 
    0.991492810281773, -2.71803854595698, 0.99024251673795, 1.02844096079834, 
    -2.23906096877484, 0.913284854740123, 0.94696391627506, 0.921093641036377, 
    0.959098942818335, 0.982419799425296, 0.813085573935359, 
    1.57814267176841, -8.71388148530033, 0.930881573650168, 1.04840385438313, 
    1.00727730097888, 0.963978015441425, 0.766502141750306, 0.956415709090106, 
    2.82433112428833, 0.977377864859644, 0.973566883864412, 0.743913824307157, 
    0.849805329799179, 0.979879541104654, -3.10342178581324, 
    1.38532216330203, 0.931852384906, 2.45326205213384, 1.42940550366403, 
    -0.518319173035389, 0.748128570859867), .Dim = c(33L, 1L)), 
    mydl_vdj1 = structure(c(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), .Dim = c(33L, 1L)), mydl_sdj1 = structure(c(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), .Dim = c(33L, 1L)), 
    mydl_M1 = structure(c(-6.83265226994501, 13.4223956345639, 
    19.6167822376979, 6.66878599719052, -8.67953664374224, -31.1817046120955, 
    8.63589590846894, 24.7909690297085, 13.6399153286665, 5.34556219854291, 
    -14.5521208799255, -8.82228438445282, -26.9482139945131, 
    -5.28680500889283, -58.7517029379271, 81.7708979421808, -6.85664061436105, 
    2.8345174420076, -17.1431658501863, -29.2701395895105, 3.01395792367555, 
    -3.16928392365869, 26.5156771266032, 30.4989133695583, -23.3367928862638, 
    -13.1637687710706, -52.1762952262954, 12.7859634036047, -4.47034545692554, 
    -10.3744992940078, 8.47581866857671, 8.62274713419242, 0.458713292959812
    ), .Dim = c(33L, 1L)), mydl_vM1 = structure(c(-6.83265226994501, 
    13.4223956345639, 19.6167822376979, 6.66878599719052, -8.67953664374224, 
    -31.1817046120955, 8.63589590846894, 24.7909690297085, 13.6399153286665, 
    5.34556219854291, -14.5521208799255, -8.82228438445282, -26.9482139945131, 
    -5.28680500889283, -58.7517029379271, 81.7708979421808, -6.85664061436105, 
    2.8345174420076, -17.1431658501863, -29.2701395895105, 3.01395792367555, 
    -3.16928392365869, 26.5156771266032, 30.4989133695583, -23.3367928862638, 
    -13.1637687710706, -52.1762952262954, 12.7859634036047, -4.47034545692554, 
    -10.3744992940078, 8.47581866857671, 8.62274713419242, 0.458713292959812
    ), .Dim = c(33L, 1L)), mydl_V1 = structure(c(85.4603004625428, 
    133.926787944495, 209.51465087381, 144.579722249692, 52.9679103908936, 
    300.880288219698, 53.7759712009706, 262.010397305714, 112.644420828216, 
    95.5727442131961, 346.380701875337, 158.990864283234, 94.1004258071209, 
    117.601210300453, 292.522456790392, 1715.81657411569, 115.838028150092, 
    98.727938751459, 196.103691337249, 170.831705185324, 38.3004010605102, 
    66.1473356471664, 187.179015397784, 474.414004765183, 160.466225938568, 
    77.7955810700938, 1101.44711416216, 136.79836220241, 96.4576749643802, 
    85.7443790947377, 72.9266511446306, 133.63969481161, 79.877719428842
    ), .Dim = c(33L, 1L)), mydl_vV1 = structure(c(85.4603004625428, 
    133.926787944495, 209.51465087381, 144.579722249692, 52.9679103908936, 
    300.880288219698, 53.7759712009706, 262.010397305714, 112.644420828216, 
    95.5727442131961, 346.380701875337, 158.990864283234, 94.1004258071209, 
    117.601210300453, 292.522456790392, 1715.81657411569, 115.838028150092, 
    98.727938751459, 196.103691337249, 170.831705185324, 38.3004010605102, 
    66.1473356471664, 187.179015397784, 474.414004765183, 160.466225938568, 
    77.7955810700938, 1101.44711416216, 136.79836220241, 96.4576749643802, 
    85.7443790947377, 72.9266511446306, 133.63969481161, 79.877719428842
    ), .Dim = c(33L, 1L)), mydl_W2 = structure(c(0.0612514278982929, 
    0.0121350613581999, 0.119839758743749, -0.0677006342858309, 
    0.00170579661988218, 0.0138029104484988, 0.0121858378796801, 
    0.0461676678307052, 0.00839395358755444, -0.0273289344223249, 
    -1.09718800456744, 0.7949249828888, 0.0747901455837002, -0.0268523784309286, 
    0.506363692717705, 0.920747198872327, 0.118517927389977, 
    -0.0385669393165517, -0.0265936531466982, -0.137749517477638, 
    -0.00498345576568316, -0.0976387264818836, 0.0753954471019561, 
    -0.032613326950535, -0.0294307705926195, -0.133894836757398, 
    -0.152503824235558, -0.0081037675881705, 0.015995152369166, 
    0.00350903551353504, 0.00485171290051306, -0.356863384952526, 
    0.00157166786089822), .Dim = c(1L, 33L)), mydl_vdW2 = structure(c(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), .Dim = c(1L, 33L)), 
    mydl_sdW2 = structure(c(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), .Dim = c(1L, 33L)), mydl_bB2 = structure(0.0227052610920046, .Dim = c(1L, 
    1L)), mydl_vdbB2 = structure(0, .Dim = c(1L, 1L)), mydl_sdbB2 = structure(0, .Dim = c(1L, 
    1L)), mydl_j2 = structure(1.5961652691047, .Dim = c(1L, 1L
    )), mydl_vdj2 = structure(1, .Dim = c(1L, 1L)), mydl_sdj2 = structure(1, .Dim = c(1L, 
    1L)), mydl_M2 = structure(1.31799340893084, .Dim = c(1L, 
    1L)), mydl_vM2 = structure(1.31799340893084, .Dim = c(1L, 
    1L)), mydl_V2 = structure(1.16970508447447, .Dim = c(1L, 
    1L)), mydl_vV2 = structure(1.16970508447447, .Dim = c(1L, 
    1L)))

#---------------------------
cat("Making submission file...\n")

read.csv(paste0(mywd, "sample_submission.csv")) %>%  
  mutate(prediction = ifelse (automl_predict(model = MYmodellight, X = MYmXte) > 0.5 ,1,0)) %>%
  write_csv("submission.csv")