ScatterDraw: Added trend lines and doc

git-svn-id: svn://ultimatepp.org/upp/trunk@6009 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
koldo 2013-05-01 06:40:29 +00:00
parent 738a428a0d
commit 0aeff6240e
25 changed files with 2024 additions and 367 deletions

View file

@ -7,7 +7,7 @@ NAMESPACE_UPP
double DataSource::Min(Getdatafun getdata)
{
double minVal = -DOUBLE_NULL;
for (int i = 0; i < GetCount(); ++i) {
for (int64 i = 0; i < GetCount(); ++i) {
double d = Membercall(getdata)(i);
if (!IsNull(d) && minVal > d)
minVal = d;
@ -18,7 +18,7 @@ double DataSource::Min(Getdatafun getdata)
double DataSource::Max(Getdatafun getdata)
{
double maxVal = DOUBLE_NULL;
for (int i = 0; i < GetCount(); ++i) {
for (int64 i = 0; i < GetCount(); ++i) {
double d = Membercall(getdata)(i);
if (!IsNull(d) && maxVal < d)
maxVal = d;
@ -29,9 +29,22 @@ double DataSource::Max(Getdatafun getdata)
double DataSource::Avg(Getdatafun getdata)
{
double ret = 0;
for (int i = 0; i < GetCount(); ++i)
for (int64 i = 0; i < GetCount(); ++i)
ret += Membercall(getdata)(i);
return ret/GetCount();
}
double CArray::xn(int n, int64 id) {
switch (n) {
case 0: ASSERT(yData);
return yData[id];
case 1: ASSERT(x1Data);
return x1Data[id];
case 2: ASSERT(x2Data);
return x2Data[id];
}
NEVER();
return Null;
}
END_UPP_NAMESPACE

View file

@ -5,31 +5,33 @@ NAMESPACE_UPP
class DataSource {
public:
typedef double (DataSource::*Getdatafun)(ptrdiff_t id);
typedef double (DataSource::*Getdatafun)(int64 id);
DataSource() : isParam(false) {}
DataSource() : isParam(false), isExplicit(false) {}
virtual ~DataSource() {}
virtual double z(ptrdiff_t id) {return Null;}
virtual double y(ptrdiff_t id) {return Null;}
virtual double x(ptrdiff_t id) {return Null;}
virtual ptrdiff_t GetCount() {return Null;}
virtual ptrdiff_t GetCount(int series) {return Null;}
bool IsParam() {return isParam;}
virtual double y(int64 id) {return xn(0, id);}
virtual double x(int64 id) {return xn(1, id);}
virtual double xn(int n, int64 id) {NEVER(); return Null;}
virtual double y(double t) {return xn(0, t);}
virtual double x(double t) {return xn(1, t);}
virtual double xn(int n, double t) {NEVER(); return Null;}
virtual double f(double x) {NEVER(); return Null;}
virtual double f(Vector<double> xn) {NEVER(); return Null;}
virtual int64 GetCount() {NEVER(); return Null;}
bool IsParam() {return isParam;}
bool IsExplicit() {return isExplicit;}
virtual double MinX() {return Min(&DataSource::x);}
virtual double MinY() {return Min(&DataSource::y);}
virtual double MinZ() {return Min(&DataSource::z);}
virtual double MinY() {return Min(&DataSource::y);}
virtual double MinX() {return Min(&DataSource::x);}
virtual double MaxX() {return Max(&DataSource::x);}
virtual double MaxY() {return Max(&DataSource::y);}
virtual double MaxZ() {return Max(&DataSource::z);}
virtual double AvgX() {return Avg(&DataSource::x);}
virtual double AvgY() {return Avg(&DataSource::y);}
virtual double AvgZ() {return Avg(&DataSource::z);}
virtual double MaxY() {return Max(&DataSource::y);}
virtual double MaxX() {return Max(&DataSource::x);}
virtual double AvgY() {return Avg(&DataSource::y);}
virtual double AvgX() {return Avg(&DataSource::x);}
protected:
bool isParam;
bool isParam, isExplicit;
virtual double Min(Getdatafun getdata);
virtual double Max(Getdatafun getdata);
@ -38,18 +40,18 @@ protected:
class CArray : public DataSource {
private:
double *xData, *yData, *zData;
ptrdiff_t numData;
double *yData, *x1Data, *x2Data;
int64 numData;
double x0, deltaX;
public:
CArray(double *yData, int numData, double x0, double deltaX) : yData(yData), numData(numData), x0(x0), deltaX(deltaX) { xData = NULL; }
CArray(double *xData, double *yData, int numData) : xData(xData), yData(yData), numData(numData) { zData = NULL; x0 = deltaX = 0; }
CArray(double *xData, double *yData, double *zData, int numData) : xData(xData), yData(yData), zData(zData), numData(numData) { x0 = deltaX = 0; }
virtual inline double z(ptrdiff_t id) {ASSERT(zData); return zData[id];}
virtual inline double y(ptrdiff_t id) {return yData[id];}
virtual inline double x(ptrdiff_t id) {return xData ? xData[id] : id*deltaX + x0;}
virtual inline ptrdiff_t GetCount() {return numData;}
CArray(double *yData, int numData, double x0, double deltaX) : yData(yData), numData(numData), x0(x0), deltaX(deltaX) {x1Data = NULL;}
CArray(double *yData, double *xData, int numData) : yData(yData), x1Data(xData), numData(numData) {x2Data = NULL; x0 = deltaX = 0;}
CArray(double *yData, double *x1Data, double *x2Data, int numData) : yData(yData), x1Data(x1Data), x2Data(x2Data), numData(numData) {x0 = deltaX = 0;}
virtual inline double y(int64 id) {return yData[ptrdiff_t(id)];}
virtual inline double x(int64 id) {return x1Data ? x1Data[ptrdiff_t(id)] : id*deltaX + x0;}
virtual double xn(int n, int64 id);
virtual inline int64 GetCount() {return numData;}
};
template <class Y>
@ -59,9 +61,9 @@ private:
public:
VectorY(Vector<Y> &yData) : yData(&yData) {}
virtual inline double y(ptrdiff_t id) {return (*yData)[id];}
virtual inline double x(ptrdiff_t id) {return id;}
virtual inline ptrdiff_t GetCount() {return yData->GetCount();}
virtual inline double y(int64 id) {return (*yData)[id];}
virtual inline double x(int64 id) {return id;}
virtual inline int64 GetCount() {return yData->GetCount();}
};
template <class Y>
@ -71,9 +73,9 @@ private:
public:
ArrayY(Upp::Array<Y> &yData) : yData(&yData) {}
virtual inline double y(ptrdiff_t id) {return (*yData)[id];}
virtual inline double x(ptrdiff_t id) {return id;}
virtual inline ptrdiff_t GetCount() {return yData->GetCount();}
virtual inline double y(int64 id) {return (*yData)[id];}
virtual inline double x(int64 id) {return id;}
virtual inline int64 GetCount() {return yData->GetCount();}
};
template <class Y>
@ -81,26 +83,23 @@ class VectorVectorY : public DataSource {
private:
Vector<Vector<Y> > *data;
bool useCols;
int idX, idY, idZ;
Vector<int> ids;
int beginData;
ptrdiff_t numData;
int64 numData;
public:
VectorVectorY() : data(0), useCols(true), idX(0), idY(1), idZ(2), beginData(0), numData(Null) {}
VectorVectorY(Vector<Vector<Y> > &data, bool useCols = true, int idX = 0, int idY = 1,
int idZ = 2, int beginData = 0, int numData = Null) :
data(&data), useCols(useCols), idX(idX), idY(idY), idZ(idZ), beginData(beginData), numData(numData)
{
Init(data, useCols, idX, idY, idZ, beginData, numData);
VectorVectorY() : data(0), useCols(true), beginData(0), numData(Null) {ids << 0 << 1;}
VectorVectorY(Vector<Vector<Y> > &data, Vector<int> &ids, bool useCols = true, int beginData = 0, int numData = Null) :
data(&data), useCols(useCols), beginData(beginData), numData(numData) {
Init(data, ids, useCols, beginData, numData);
}
void Init(Vector<Vector<Y> > &_data, bool _useCols = true, int _idX = 0, int _idY = 1,
int _idZ = 2, int _beginData = 0, int _numData = Null)
{
void Init(Vector<Vector<Y> > &_data, Vector<int> &_ids, bool _useCols = true, int _beginData = 0, int _numData = Null) {
data = &_data;
useCols = _useCols;
idX = _idX;
idY = _idY;
idZ = _idZ;
ids.SetCount(_ids.GetCount());
for (int i = 0; i < ids.GetCount(); ++i)
ids[i] = _ids[i];
beginData = _beginData;
numData = _numData;
if (IsNull(_numData)) {
@ -113,32 +112,31 @@ public:
numData = data->GetCount() - beginData;
}
}
virtual inline double z(int id) {return useCols ? (*data)[beginData + id][idZ] : (*data)[idZ][beginData + id];}
virtual inline double y(int id) {return useCols ? (*data)[beginData + id][idY] : (*data)[idY][beginData + id];}
virtual inline double x(int id) {
if (IsNull(idX))
return id;
else
return useCols ? (*data)[beginData + id][idX] : (*data)[idX][beginData + id];
void Init(Vector<Vector<Y> > &_data, int idY, int idX, bool _useCols = true, int _beginData = 0, int _numData = Null) {
Vector<int> ids;
ids << idY << idX;
Init(_data, ids, _useCols, _beginData, _numData);
}
virtual inline ptrdiff_t GetCount() {return numData;};
virtual inline double y(int64 id) {return useCols ? (*data)[beginData + int(id)][ids[0]] : (*data)[ids[0]][beginData + int(id)];}
virtual inline double x(int64 id) {
if (IsNull(ids[1]))
return double(id);
else
return useCols ? (*data)[beginData + int(id)][ids[1]] : (*data)[ids[1]][beginData + int(id)];
}
virtual inline double xn(int n, int64 id) {return useCols ? (*data)[beginData + int(id)][ids[n]] : (*data)[ids[n]][beginData + int(id)];}
virtual inline int64 GetCount() {return numData;};
};
class VectorDouble : public DataSource {
private:
const Vector<double> *xData, *yData;
public:
VectorDouble(const Vector<double> &xData, Vector<double> &yData) : xData(&xData), yData(&yData) {}
virtual inline double y(ptrdiff_t id) {return (*yData)[int(id)];}
virtual inline double x(ptrdiff_t id) {return (*xData)[int(id)];}
virtual inline ptrdiff_t GetCount() {return xData->GetCount();}
VectorDouble(const Vector<double> &yData, Vector<double> &xData) : yData(&yData), xData(&xData) {}
virtual inline double y(int64 id) {return (*yData)[int(id)];}
virtual inline double x(int64 id) {return (*xData)[int(id)];}
virtual inline int64 GetCount() {return xData->GetCount();}
};
class ArrayDouble : public DataSource {
@ -146,10 +144,10 @@ private:
const Upp::Array<double> *xData, *yData;
public:
ArrayDouble(const Upp::Array<double> &xData, Upp::Array<double> &yData) : xData(&xData), yData(&yData) {}
virtual inline double y(ptrdiff_t id) {return (*yData)[int(id)];}
virtual inline double x(ptrdiff_t id) {return (*xData)[int(id)];}
virtual inline ptrdiff_t GetCount() {return xData->GetCount();}
ArrayDouble(const Upp::Array<double> &yData, Upp::Array<double> &xData) : yData(&yData), xData(&xData) {}
virtual inline double y(int64 id) {return (*yData)[int(id)];}
virtual inline double x(int64 id) {return (*xData)[int(id)];}
virtual inline int64 GetCount() {return xData->GetCount();}
};
class VectorPointf : public DataSource {
@ -159,9 +157,9 @@ private:
public:
VectorPointf(const Vector<Pointf> &data) : data(&data) {}
VectorPointf(Vector<Pointf> *data) : data(data) {}
virtual inline double y(ptrdiff_t id) {return (*data)[int(id)].y;}
virtual inline double x(ptrdiff_t id) {return (*data)[int(id)].x;}
virtual inline ptrdiff_t GetCount() {return data->GetCount();}
virtual inline double y(int64 id) {return (*data)[int(id)].y;}
virtual inline double x(int64 id) {return (*data)[int(id)].x;}
virtual inline int64 GetCount() {return data->GetCount();}
};
class ArrayPointf : public DataSource {
@ -170,9 +168,9 @@ private:
public:
ArrayPointf(Upp::Array<Pointf> &data) : data(&data) {}
virtual inline double y(ptrdiff_t id) {return (*data)[int(id)].y;}
virtual inline double x(ptrdiff_t id) {return (*data)[int(id)].x;}
virtual inline ptrdiff_t GetCount() {return data->GetCount();}
virtual inline double y(int64 id) {return (*data)[int(id)].y;}
virtual inline double x(int64 id) {return (*data)[int(id)].x;}
virtual inline int64 GetCount() {return data->GetCount();}
};
template <class X, class Y>
@ -182,9 +180,9 @@ private:
public:
VectorMapXY(VectorMap<X, Y> &data) : data(&data) {}
virtual inline double y(ptrdiff_t id) {return (*data)[int(id)];}
virtual inline double x(ptrdiff_t id) {return (*data).GetKey(int(id));}
virtual inline ptrdiff_t GetCount() {return data->GetCount();}
virtual inline double y(int64 id) {return (*data)[int(id)];}
virtual inline double x(int64 id) {return (*data).GetKey(int(id));}
virtual inline int64 GetCount() {return data->GetCount();}
};
template <class X, class Y>
@ -194,9 +192,9 @@ private:
public:
ArrayMapXY(ArrayMap<X, Y> &data) : data(&data) {}
virtual inline double y(ptrdiff_t id) {return (*data)[id];}
virtual inline double x(ptrdiff_t id) {return (*data).GetKey(id);}
virtual inline ptrdiff_t GetCount() {return data->GetCount();}
virtual inline double y(int64 id) {return (*data)[int(id)];}
virtual inline double x(int64 id) {return (*data).GetKey(int(id));}
virtual inline int64 GetCount() {return data->GetCount();}
};
class FuncSource : public DataSource {
@ -204,10 +202,17 @@ private:
double (*function)(double);
public:
FuncSource(double (*function)(double)) : function(function) {}
virtual inline double y(ptrdiff_t t) {return function(double(t));}
virtual inline double x(ptrdiff_t t) {return double(t);}
virtual inline ptrdiff_t GetCount() {return Null;}
FuncSource(double (*function)(double)) : function(function) {isExplicit = true;}
virtual inline double f(double x) {return function(x);}
};
class FuncSourceV : public DataSource {
private:
void (*function)(double&, double);
public:
FuncSourceV(void (*function)(double&, double)) : function(function) {isExplicit = true;}
virtual inline double f(double x) {double y; function(y, x); return y;}
};
class FuncSourcePara : public DataSource {
@ -220,40 +225,37 @@ private:
public:
FuncSourcePara(Pointf (*function)(double), int np, double from, double to) :
function(function), numPoints(np), minT(from), maxT(to) {
function(function), numPoints(np), minT(from), maxT(to) {
isParam = true;
lastT = Null;
isParam = true;
}
virtual inline double y(ptrdiff_t t) {
virtual inline double y(double t) {
if (IsNull(lastT) || t != lastT) {
lastPointf = function(minT + t*(maxT-minT)/numPoints);
lastT = double(t);
lastT = t;
}
return lastPointf.y;
}
virtual inline double x(ptrdiff_t t) {
virtual inline double x(double t) {
if (IsNull(lastT) || t != lastT) {
lastPointf = function(minT + t*(maxT-minT)/numPoints);
lastT = double(t);
lastT = t;
}
return lastPointf.x;
}
virtual inline ptrdiff_t GetCount() {return numPoints;}
virtual inline int64 GetCount() {return numPoints;}
};
typedef Callback2<double&, double> PlotFunc;
typedef Callback2<double&, double> PlotExplicFunc;
typedef Callback2<Pointf&, double> PlotParamFunc;
class PlotFuncSource : public DataSource {
class PlotExplicFuncSource : public DataSource {
private:
PlotFunc function;
PlotExplicFunc function;
public:
PlotFuncSource() {}
PlotFuncSource(PlotFunc &function) : function(function) {}
virtual inline double y(ptrdiff_t t) {double y; function(y, double(t)); return y;}
virtual inline double x(ptrdiff_t t) {return double(t);}
virtual inline ptrdiff_t GetCount() {return -1;}
PlotExplicFuncSource(PlotExplicFunc &function) : function(function) {isExplicit = true;}
virtual inline double f(double t) {double y; function(y, t); return y;}
};
class PlotParamFuncSource : public DataSource {
@ -266,26 +268,25 @@ private:
public:
PlotParamFuncSource(PlotParamFunc function, int np, double from, double to) :
function(function), numPoints(np), minT(from), maxT(to) {
function(function), numPoints(np), minT(from), maxT(to) {
isParam = true;
lastT = Null;
isParam = true;
}
inline double y(ptrdiff_t t) {
inline double y(double t) {
if (IsNull(lastT) || t != lastT) {
function(lastPointf, minT + t*(maxT-minT)/numPoints);
lastT = double(t);
lastT = t;
}
return lastPointf.y;
}
inline double x(ptrdiff_t t) {
inline double x(double t) {
if (IsNull(lastT) || t != lastT) {
function(lastPointf, minT + t*(maxT-minT)/numPoints);
lastT = double(t);
lastT = t;
}
return lastPointf.x;
}
virtual inline ptrdiff_t GetCount() {return numPoints;}
virtual inline int64 GetCount() {return numPoints;}
};
END_UPP_NAMESPACE

View file

@ -0,0 +1,126 @@
#include "ScatterDraw.h"
#include <plugin/Eigen/Eigen.h>
NAMESPACE_UPP
using namespace Eigen;
struct Equation_functor : NonLinearOptimizationFunctor<double> {
DataSource *series;
ExplicitEquation *fSource;
Equation_functor() : NonLinearOptimizationFunctor() {}
int operator()(const VectorXd &b, VectorXd &fvec) const {
ASSERT(b.size() == unknowns);
ASSERT(fvec.size() == datasetLen);
for (int i = 0; i < unknowns; ++i)
(*fSource).SetCoeffVal(i, b(i));
for(int64 i = 0; i < datasetLen; i++)
fvec(ptrdiff_t(i)) = (*fSource).f((*series).x(i)) - (*series).y(i);
return 0;
}
};
void ExplicitEquation::SetNumCoeff(int num) {
coeff.SetCount(num);
for (int i = 0; i < num; ++i)
coeff[i] = 0;
}
ExplicitEquation::FitError ExplicitEquation::Fit(DataSource &series, double &r2) {
if (series.IsExplicit() || series.IsParam())
return InadequateDataSource;
if (series.GetCount() < coeff.GetCount())
return SmallDataSource;
ptrdiff_t numUnknowns = coeff.GetCount();
VectorXd x(numUnknowns);
for (int i = 0; i < numUnknowns; ++i)
x(i) = coeff[i];
Equation_functor functor;
functor.series = &series;
functor.fSource = this;
functor.unknowns = numUnknowns;
functor.datasetLen = series.GetCount();
NumericalDiff<Equation_functor> numDiff(functor);
LevenbergMarquardt<NumericalDiff<Equation_functor> > lm(numDiff);
// ftol is a nonnegative input variable that measures the relative error desired in the sum of squares
lm.parameters.ftol = 1.E4*NumTraits<double>::epsilon();
// xtol is a nonnegative input variable that measures the relative error desired in the approximate solution
lm.parameters.xtol = 1.E4*NumTraits<double>::epsilon();
lm.parameters.maxfev = maxFitFunctionEvaluations;
int ret = lm.minimize(x);
if (ret == LevenbergMarquardtSpace::ImproperInputParameters)
return ExplicitEquation::ImproperInputParameters;
if (ret == LevenbergMarquardtSpace::TooManyFunctionEvaluation)
return TooManyFunctionEvaluation;
double mean = series.AvgY();
double sse = 0, sst = 0;
for (int64 i = 0; i < series.GetCount(); ++i) {
double res = series.y(i) - f(series.x(i));
sse += res*res;
double d = series.y(i) - mean;
sst += d*d;
}
r2 = 1 - sse/sst;
return NoError;
}
int ExplicitEquation::numDigits = 3;
int ExplicitEquation::maxFitFunctionEvaluations = 1000;
double PolynomialEquation::f(double x) {
double y = 0;
for (int i = 0; i < coeff.GetCount(); ++i)
y += coeff[i]*pow(x, i);
return y;
}
String PolynomialEquation::GetEquation() {
if (coeff.IsEmpty())
return String();
String y;
y = FormatDoubleFix(coeff[0], numDigits);
if (coeff.GetCount() == 1)
return y;
y += " " + String(coeff[1] >= 0 ? "+" : "-") + " " + FormatDoubleFix(fabs(coeff[1]), numDigits) + "*x";
for (int i = 2; i < coeff.GetCount(); ++i)
y += " " + String(coeff[i] >= 0 ? "+" : "-") + " " + FormatDoubleFix(fabs(coeff[i]), numDigits) + "*x^" + FormatInt(i);
return y;
}
double FourierEquation::f(double x) {
double y = coeff[0];
double w = coeff[1];
for (int i = 2; i < coeff.GetCount(); i += 2) {
int n = 1 + (i - 2)/2;
y += coeff[i]*cos(n*w*x) + coeff[i+1]*sin(n*w*x);
}
return y;
}
String FourierEquation::GetEquation() {
if (coeff.GetCount() < 4)
return String();
String y = FormatDoubleFix(coeff[0], numDigits);
for (int i = 2; i < coeff.GetCount(); i += 2) {
int n = 1 + (i - 2)/2;
String nwx = Format("%d*%s*x", n, FormatDoubleFix(fabs(coeff[1]), numDigits));
String signA = coeff[i] >= 0 ? "+" : "-";
String signB = coeff[i+1] >= 0 ? "+" : "-";
y += " " + signA + " " + FormatDoubleFix(fabs(coeff[i]), numDigits) + "*cos(" + nwx + ")";
y += " " + signB + " " + FormatDoubleFix(fabs(coeff[i+1]), numDigits) + "*sin(" + nwx + ")";
}
return y;
}
END_UPP_NAMESPACE

View file

@ -0,0 +1,87 @@
#ifndef _ScatterDraw_Equation_h_
#define _ScatterDraw_Equation_h_
NAMESPACE_UPP
class ExplicitEquation : public DataSource {
public:
ExplicitEquation() {isExplicit = true;}
virtual void SetDegree(int num) = 0;
enum FitError {
NoError = 1,
InadequateDataSource = -1,
SmallDataSource = -2,
ImproperInputParameters = -3,
TooManyFunctionEvaluation = -4
};
FitError Fit(DataSource &series, double &r2);
FitError Fit(DataSource &series) {double dummy; return Fit(series, dummy);}
virtual double f(double x1) = 0;
virtual double f(double x1, double x2) {NEVER(); return Null;}
virtual double f(Vector <double> x) {NEVER(); return Null;}
virtual String GetName() = 0;
virtual String GetFullName() {return GetName();}
virtual String GetEquation() = 0;
void SetNumDigits(int n) {numDigits = n;}
int GetNumDigits() {return numDigits;}
void SetMaxFitFunctionEvaluations(int n){maxFitFunctionEvaluations = n;}
int GetMaxFitFunctionEvaluations() {return maxFitFunctionEvaluations;}
friend struct Equation_functor;
protected:
Array<double> coeff;
int degree;
static int numDigits, maxFitFunctionEvaluations;
void SetNumCoeff(int num);
void SetCoeff(Array<double> c) {
coeff.SetCount(c.GetCount());
for (int i = 0; i < c.GetCount(); ++i)
coeff[i] = c[i];
}
void SetCoeff(double c0, double c1, double c2) {coeff.Clear(); coeff << c0 << c1 << c2;}
void SetCoeff(double c0, double c1) {coeff.Clear(); coeff << c0 << c1;}
void SetCoeffVal(int id, double c) {coeff[id] = c;}
};
class LinearEquation : public ExplicitEquation {
public:
LinearEquation() {SetCoeff(0, 0);}
LinearEquation(double c0, double c1){SetCoeff(c0, c1);}
double f(double x) {return coeff[0] + x*coeff[1];}
virtual String GetName() {return t_("Linear");}
virtual String GetEquation() {return FormatDoubleFix(coeff[0], numDigits) + " " +
(coeff[1] >= 0 ? "+" : "-") + " " +
FormatDoubleFix(fabs(coeff[1]), numDigits) + "*x";}
void SetDegree(int num) {NEVER();}
};
class PolynomialEquation : public ExplicitEquation {
public:
PolynomialEquation() {}
PolynomialEquation(Array<double> c) {SetCoeff(c);}
double f(double x);
virtual String GetName() {return t_("Polynomial");}
virtual String GetFullName() {return t_("Polynomial") + String(" n = ") + FormatInt(degree);}
virtual String GetEquation();
void SetDegree(int num) {degree = num; SetNumCoeff(num + 1);}
};
class FourierEquation : public ExplicitEquation {
public:
FourierEquation() {}
FourierEquation(Array<double> c) {SetCoeff(c);}
double f(double x);
virtual String GetName() {return t_("Fourier");}
virtual String GetFullName() {return t_("Fourier") + String(" n = ") + FormatInt(degree);}
virtual String GetEquation();
void SetDegree(int num) {degree = num; SetNumCoeff(2*num + 2);}
};
END_UPP_NAMESPACE
#endif

View file

@ -0,0 +1,228 @@
#include "PieDraw.h"
NAMESPACE_UPP
static void DrawPie(Draw& w, double c_x, double c_y, double r, int start, int alpha, int width = 0,
Color fill = Null, Color outline = Black, uint64 pattern = 0, Color background = White)
{
const int dalpha = 1;
int n = alpha/dalpha;
Vector <Point> vP;
Point centre = Point(int(c_x), int(c_y));
vP << centre;
int ix;
int iy;
for (int i = 0; i <= n; i++) {
double x = c_x + r*cos((start+i*dalpha)*M_PI/1800);
ix = fround(x);
double y = c_y + r*sin((start+i*dalpha)*M_PI/1800);
iy = fround(y);
double dxy = (x-ix)*(x-ix) + (y-iy)*(y-iy);
if(dxy < 0.1 || i == 0 || i == n)
vP << Point(ix,iy);
if(w.IsGui())
w.DrawRect(ix, iy, 1, 1, Blend(fill, background, 150));
}
vP << centre;
w.DrawPolygon(vP, fill, width, outline, pattern, Null);
}
void PieDraw::AddCategory(const String& name, const double& value, const Color& catcolor)
{
vNames.Add(name);
vValues.Add(value);
vColors.Add(catcolor);
Refresh();
}
void PieDraw::RemoveCategory(const int& index)
{
ASSERT(!vValues.IsEmpty() && vValues.GetCount() > index);
vNames.Remove(index);
vValues.Remove(index);
vColors.Remove(index);
Refresh();
}
PieDraw& PieDraw::SetCatValue(const int& index, const double& value)
{
ASSERT(!vValues.IsEmpty() && vValues.GetCount() > index);
vValues[index] = value;
Refresh();
return *this;
}
PieDraw& PieDraw::SetCatName(const int& index, const String& name)
{
ASSERT(!vNames.IsEmpty() && vNames.GetCount() > index);
vNames[index] = name;
Refresh();
return *this;
}
PieDraw& PieDraw::SetCatColor(const int& index, const Color& catcolor)
{
ASSERT(!vColors.IsEmpty() && vColors.GetCount() > index);
vColors[index] = catcolor;
Refresh();
return *this;
}
double PieDraw::GetCatValue(const int& index) const
{
ASSERT(!vValues.IsEmpty() && vValues.GetCount() > index);
return vValues[index];
}
String PieDraw::GetCatName(const int& index) const
{
ASSERT(!vNames.IsEmpty() && vNames.GetCount() > index);
return vNames[index];
}
Color PieDraw::GetCatColor(const int& index) const
{
ASSERT(!vColors.IsEmpty() && vColors.GetCount() > index);
return vColors[index];
}
void PieDraw::PaintPie(Draw& w, int scale)
{
Size sz = GetSize();
w.DrawRect(scale*sz, backColor);
Size textsize;
textsize.cx = 0;
textsize.cy = 0;
if(!title.IsEmpty()) {
Font FontTitle6;
FontTitle6 = titleFont;
FontTitle6.Height(scale*titleFont.GetHeight());
FontTitle6.Width(scale*titleFont.GetWidth());
textsize = GetTextSize(title, FontTitle6);
if(titlePos == TOP)
w.DrawText((scale*GetSize().cx - textsize.cx)/2, scale*titleGap, title, FontTitle6,titleColor);
else
w.DrawText((scale*GetSize().cx - textsize.cx)/2, scale*(GetSize().cy - titleFont.GetHeight() - titleGap),
title, FontTitle6,titleColor);
}
if(vValues.IsEmpty())
return;
int alfa0 = -900;
int a0 = 0;
double sum = 0;
for(int i = 0; i < vValues.GetCount(); i++)
sum += vValues[i];
double circWidth = sz.cx - pieMarginLeft - pieMarginRight;
if (circWidth < 0)
circWidth = 0;
double circHeight = sz.cy - pieMarginTop - textsize.cy - pieMarginBottom;
if (circHeight < 0)
circHeight = 0;
double circ_r;
if (circWidth > circHeight)
circ_r = circHeight/2.;
else
circ_r = circWidth/2.;
double circ_x = pieMarginLeft + circWidth/2.;
double circ_y;
if(titlePos == TOP)
circ_y = pieMarginTop + titleGap + textsize.cy + circHeight/2.;
else
circ_y = pieMarginTop + circHeight/2.;
circ_x *= scale;
circ_y *= scale;
circ_r *= scale;
Color bc;
if (IsNull(backColor))
bc = LtGray;
else
bc = backColor;
for(int i = 0; i < vValues.GetCount(); i++) {
DrawPie(w, circ_x*scale, circ_y*scale, circ_r*scale, alfa0, fround(3600.0*vValues.At(i)/sum),
1*scale, vColors.At(i), vColors.At(i), 0, bc);
alfa0 += fround(3600.0*vValues[i]/sum);
}
if(showPercent) {
alfa0 = -900;
for(int i = 0; i < vValues.GetCount(); i++) {
a0 = alfa0;
alfa0 += fround(3600.0*vValues[i]/sum);
String percent = GetPercent(vValues[i],sum);
Font scaledFont;
scaledFont.Height(scale*StdFont().GetHeight());
scaledFont.Width(scale*StdFont().GetWidth());
Size sz = GetTextSize(percent, scaledFont);
int px = int(circ_x + scale*circ_r*cos(M_PI*(alfa0+a0)/3600)/1.3 - sz.cx/2.);
int py = int(circ_y + scale*circ_r*sin(M_PI*(alfa0+a0)/3600)/1.3 - sz.cy/2.);
w.DrawRect(px, py, sz.cx, 1, percentBack);
w.DrawRect(px-1, py + 1, sz.cx + 2, sz.cy-2, percentBack);
w.DrawRect(px, py + sz.cy - 1, sz.cx, 1, percentBack);
w.DrawText(px, py, percent, scaledFont);
}
}
if(showLegend) {
double leg_x = -legendLeft + sz.cx - legendWidth;
double leg_y;
if (IsNull(legendTop))
leg_y = int(circ_y - scale*legendHeight/2.);
else
leg_y = legendTop*scale;
w.DrawRect(int(leg_x), int(leg_y), scale*legendWidth, scale*legendHeight, legendBackColor);
int nr = GetCatCount();
int dly = scale*legendHeight/nr;
for(int i = 0; i < nr; i++) {
int fh = scale*(legendFont.GetHeight()-3);
w.DrawRect(int(leg_x) + 2*scale, int(leg_y) + i*dly + int(dly/2.) - fh/2, fh, fh, vColors[i]);
Font scaledFont;
scaledFont.Height(scale*legendFont.GetHeight());
scaledFont.Width(scale*legendFont.GetWidth());
w.DrawText(int(leg_x) + fround(1.8*fh), int(leg_y) + i*dly + int((dly - scaledFont.GetLineHeight())/2),
vNames[i], scaledFont, legendTextColor);
}
}
}
String PieDraw::GetPercent(double a, double total)
{
double p = a*100/total;
return FormatDouble(p, 1) + '%';
}
Drawing PieDraw::GetDrawing()
{
DrawingDraw ddw(3*GetSize());
PaintPie(ddw, 3);
return ddw;
}
Image PieDraw::GetImage(int scale)
{
DrawingDraw idraw(scale*GetSize());
PaintPie(idraw,scale);
return Image(idraw.GetResult());
}
PieDraw::PieDraw(): backColor(White), titleFont(StdFont(16)), titlePos(TOP), titleGap(2),
titleColor(Black), showPercent(true), percentBack(Null),
legendFont(StdFont()), legendTextColor(Black), legendBackColor(Null),
showLegend(true), legendLeft(10), legendTop(Null), legendWidth(60),
legendHeight(120), pieAngle(0), pieMarginLeft(40), pieMarginTop(40),
pieMarginRight(40), pieMarginBottom(40)
{}
PieDraw::~PieDraw(){}
END_UPP_NAMESPACE

View file

@ -0,0 +1,95 @@
#ifndef _ScatterDraw_PieDraw_h_
#define _ScatterDraw_PieDraw_h_
#include <Draw/Draw.h>
#include <Painter/Painter.h>
#include "DataSource.h"
NAMESPACE_UPP
class PieDraw {
public:
typedef PieDraw CLASSNAME;
PieDraw();
~PieDraw();
enum titlePosition {BOTTOM, TOP};
PieDraw& SetColor(const Color& _color) {backColor = _color; return *this;}
PieDraw& SetTitle(const String& _title) {title = _title; return *this;}
PieDraw& SetTitleFont(const Font& font) {titleFont = font; return *this;}
PieDraw& SetTitleColor(const Color& color) {titleColor = color; return *this;}
PieDraw& SetTitlePos(titlePosition pos) {titlePos = pos; return *this;}
PieDraw& SetTitleGap(const int& gap) {titleGap = gap; return *this;}
PieDraw& ShowPercent(bool show = true) {showPercent = show; return *this;}
PieDraw& SetPercentBack(const Color& pbcolor) {percentBack = pbcolor; return *this;}
PieDraw& ShowLegend(bool show = true) {showLegend = show; return *this;}
PieDraw& SetLegendFont(const Font& font) {legendFont = font; return *this;}
PieDraw& SetLegendTextColor(const Color& color) {legendTextColor = color; return *this;}
PieDraw& SetLegendBackColor(const Color& color) {legendBackColor = color; return *this;}
PieDraw& SetLegendLeft(const int& left) {legendLeft = left; return *this;}
PieDraw& SetLegendTop(const int& top) {legendTop = top; return *this;}
PieDraw& SetLegendWidth(const int& width) {legendWidth = width; return *this;}
PieDraw& SetLegendHeight(const int& height) {legendHeight = height; return *this;}
PieDraw& SetPieAngle(const double& angle) {pieAngle = angle; return *this;}
PieDraw& SetPieMarginLeft(const int& left) {pieMarginLeft = left; return *this;}
PieDraw& SetPieMarginTop(const int& top) {pieMarginTop = top; return *this;}
PieDraw& SetPieMarginRight(const int& right) {pieMarginRight = right; return *this;}
PieDraw& SetPieMarginBottom(const int& bottom) {pieMarginBottom = bottom; return *this;}
void AddCategory(const String& name, const double& value, const Color& catcolor);
void RemoveCategory(const int& index);
PieDraw& SetCatValue(const int& index, const double& value);
PieDraw& SetCatName(const int& index, const String& name);
PieDraw& SetCatColor(const int& index, const Color& catcolor);
double GetCatValue (const int& index)const;
String GetCatName (const int& index)const;
Color GetCatColor (const int& index)const;
int GetCatCount() const {return vColors.GetCount();}
Drawing GetDrawing();
Image GetImage(int scale = 1);
virtual void Refresh() {};
PieDraw& SetSize(Size sz) {size = sz; return *this;};
virtual Size GetSize() const {return size;};
protected:
void PaintPie(Draw& w, int scale);
private:
Color backColor;
String title;
Font titleFont;
Color titleColor;
titlePosition titlePos;
int titleGap;
bool showPercent;
Color percentBack;
Font legendFont;
Color legendTextColor, legendBackColor;
bool showLegend;
int legendLeft, legendTop, legendWidth, legendHeight;
double pieAngle;
int pieMarginLeft, pieMarginTop, pieMarginRight, pieMarginBottom;
Vector<String> vNames;
Vector<double> vValues;
Vector<Color> vColors;
Size size;
String GetPercent(double a, double total);
};
END_UPP_NAMESPACE
#endif

View file

@ -139,18 +139,6 @@ ScatterDraw& ScatterDraw::ShowVGrid(const bool& show)
return *this;
}
ScatterDraw& ScatterDraw::ShowLegend(const bool& show)
{
showLegend = show;
return *this;
}
ScatterDraw& ScatterDraw::SetLegendWidth(const int& width)
{
legendWidth = width;
return *this;
}
ScatterDraw &ScatterDraw::SetDrawXReticle(bool set)
{
drawXReticle = set;
@ -171,26 +159,26 @@ ScatterDraw &ScatterDraw::SetDrawY2Reticle(bool set)
void ScatterDraw::DrawLegend(Draw& w, const int& scale) const
{
int nmr = fround((GetSize().cx - 2*(hPlotLeft + hPlotRight))/legendWidth); //max number of labels per row
int nmr = fround((GetSize().cx - 2*(hPlotLeft + hPlotRight))/legendWidth); // Max number of labels per row
if (nmr <= 0)
return;
int nLab = series.GetCount(); //number of labels
int Nc; //number of complete rows
int LCR; //number of labels on complete row
int R; //number of remaining labels on incomplete row
int nc; //number of complete rows
int lcr; //number of labels on complete row
int rl; //number of remaining labels on incomplete row
if(nmr > nLab) {
Nc = 0; LCR = 0; R = nLab;
nc = 0; lcr = 0; rl = nLab;
} else if (nmr == nLab) {
Nc = 1; LCR = nLab; R = 0;
nc = 1; lcr = nLab; rl = 0;
} else {
Nc = nLab/nmr; LCR = nmr; R = nLab%nmr;
nc = nLab/nmr; lcr = nmr; rl = nLab%nmr;
}
for(int j = 0; j <= Nc; j++) {
int start = nLab - (j+1)*LCR;
int end = nLab - j*LCR;
if (j == Nc) {
for(int j = 0; j <= nc; j++) {
int start = nLab - (j+1)*lcr;
int end = nLab - j*lcr;
if (j == nc) {
start = 0;
end = R;
end = rl;
}
for(int i = start; i < end; i++) {
Vector <Point> vp;
@ -201,8 +189,8 @@ void ScatterDraw::DrawLegend(Draw& w, const int& scale) const
Point p(scale*((i-start)*legendWidth+7),scale*(4-12*(j+1))/*+scale*Thick.At(i)/12*/);
if (series[i].markWidth >= 1 && series[i].markPlot)
series[i].markPlot->Paint(w, scale, p, series[i].markWidth, series[i].markColor);
Font scaledFont;
scaledFont.Height(scale*StdFont().GetHeight());
Font scaledFont = GetStdFont();
scaledFont.Height(scale*GetStdFont().GetHeight());
DrawText(w, scale*(i-start)*legendWidth+scale*25, scale*(-2-12*(j+1)), 0,
series[i].legend, scaledFont, series[i].color);
}
@ -320,7 +308,7 @@ void ScatterDraw::FitToData(bool vertical) {
for (int j = 0; j < series.GetCount(); j++) {
if (series[j].opacity == 0)
continue;
for (int i = 0; i < series[j].PointsData()->GetCount(); i++) {
for (int64 i = 0; i < series[j].PointsData()->GetCount(); i++) {
if (series[j].primaryY) {
if (series[j].PointsData()->y(i) < miny)
miny = series[j].PointsData()->y(i);
@ -350,33 +338,25 @@ void ScatterDraw::FitToData(bool vertical) {
xRange = maxx - minx;
}
if (vertical) {
if (miny2 != -DOUBLE_NULL) {
double rminy = (miny - yMin)/yRange;
double rminy2 = (miny2 - yMin2)/yRange2;
if (rminy2 < rminy)
miny = yMin + yRange*(miny2 - yMin2)/yRange2;
double rmaxy = (maxy - yMin)/yRange;
double rmaxy2 = (maxy2 - yMin2)/yRange2;
if (rmaxy2 > rmaxy)
maxy = yMin + yRange*(maxy2 - yMin2)/yRange2;
}
if (miny != -DOUBLE_NULL) {
double fact = yRange2/yRange;
double deltaY = yMin - miny;
double deltaY2 = deltaY*fact;
yMin -= deltaY;
yMinUnit += deltaY;
AdjustMinUnitY();
if (maxy == miny)
if (maxy == miny)
yRange = 2*maxy;
else
yRange = maxy - miny;
yRange = maxy - miny;
}
if (miny2 != -DOUBLE_NULL) {
double deltaY2 = yMin2 - miny2;
yMin2 -= deltaY2;
yMinUnit2 += deltaY2;
AdjustMinUnitY2();
yRange2 = yRange*fact;
if (maxy2 == miny2)
yRange2 = 2*maxy2;
else
yRange2 = maxy2 - miny2;
}
}
WhenSetRange();
@ -517,56 +497,6 @@ void ScatterDraw::ScatterBasicSeries::Init(int index)
markPlot = GetNewMarkPlot(index);
}
ScatterDraw &ScatterDraw::AddSeries(double *yData, int numData, double x0, double deltaX)
{
return AddSeries<CArray>(yData, numData, x0, deltaX);
}
ScatterDraw &ScatterDraw::AddSeries(double *xData, double *yData, int numData)
{
return AddSeries<CArray>(xData, yData, numData);
}
ScatterDraw &ScatterDraw::AddSeries(Vector<double> &xData, Vector<double> &yData)
{
return AddSeries<VectorDouble>(xData, yData);
}
ScatterDraw &ScatterDraw::AddSeries(Array<double> &xData, Array<double> &yData)
{
return AddSeries<ArrayDouble>(xData, yData);
}
ScatterDraw &ScatterDraw::AddSeries(Vector<Pointf> &points)
{
return AddSeries<VectorPointf>(points);
}
ScatterDraw &ScatterDraw::AddSeries(Array<Pointf> &points)
{
return AddSeries<ArrayPointf>(points);
}
ScatterDraw &ScatterDraw::AddSeries(double (*function)(double))
{
return AddSeries<FuncSource>(function);
}
ScatterDraw &ScatterDraw::AddSeries(Pointf (*function)(double), int np, double from, double to)
{
return AddSeries<FuncSourcePara>(function, np, from, to);
}
ScatterDraw &ScatterDraw::AddSeries(PlotFunc &function)
{
return AddSeries<PlotFuncSource>(function);
}
ScatterDraw &ScatterDraw::AddSeries(PlotParamFunc function, int np, double from, double to)
{
return AddSeries<PlotParamFuncSource>(function, np, from, to);
}
ScatterDraw &ScatterDraw::AddSeries(DataSource &data)
{
ScatterSeries &s = series.Add();
@ -625,9 +555,9 @@ void ScatterDraw::InsertSeries(int index, Pointf (*function)(double), int np, do
InsertSeries<FuncSourcePara>(index, function, np, from, to);
}
void ScatterDraw::InsertSeries(int index, PlotFunc &function)
void ScatterDraw::InsertSeries(int index, PlotExplicFunc &function)
{
InsertSeries<PlotFuncSource>(index, function);
InsertSeries<PlotExplicFuncSource>(index, function);
}
void ScatterDraw::InsertSeries(int index, PlotParamFunc function, int np, double from, double to)
@ -644,7 +574,7 @@ void ScatterDraw::_InsertSeries(int index, DataSource *data)
Refresh();
}
ptrdiff_t ScatterDraw::GetCount(int index)
int64 ScatterDraw::GetCount(int index)
{
ASSERT(IsValid(index));
if (series[index].PointsData()->IsParam())
@ -654,7 +584,7 @@ ptrdiff_t ScatterDraw::GetCount(int index)
return series[index].PointsData()->GetCount();
}
void ScatterDraw::GetValues(int index, int idata, double &x, double &y)
void ScatterDraw::GetValues(int index, int64 idata, double &x, double &y)
{
ASSERT(IsValid(index) && !IsNull(GetCount(index)));
ASSERT(idata >= 0 && idata < series[index].PointsData()->GetCount());
@ -662,14 +592,14 @@ void ScatterDraw::GetValues(int index, int idata, double &x, double &y)
y = series[index].PointsData()->y(idata);
}
double ScatterDraw::GetValueX(int index, int idata)
double ScatterDraw::GetValueX(int index, int64 idata)
{
ASSERT(IsValid(index) && !IsNull(GetCount(index)));
ASSERT(idata >= 0 && idata < series[index].PointsData()->GetCount());
return series[index].PointsData()->x(idata);
}
double ScatterDraw::GetValueY(int index, int idata)
double ScatterDraw::GetValueY(int index, int64 idata)
{
ASSERT(IsValid(index) && !IsNull(GetCount(index)));
ASSERT(idata >= 0 && idata < series[index].PointsData()->GetCount());
@ -1040,7 +970,13 @@ void ScatterDraw::Zoom(double scale, bool mouseX, bool mouseY)
{
bool canX = (minXZoom > 0 && xRange*scale > minXZoom) || (minXZoom < 0) && (maxXZoom > 0 && xRange*scale < maxXZoom) || (maxXZoom < 0);
bool canY = (minYZoom > 0 && yRange*scale > minYZoom) || (minYZoom < 0) && (maxYZoom > 0 && yRange*scale < maxYZoom) || (maxYZoom < 0);
bool can = canX && canY;
double plotW = scale*(GetSize().cx - (hPlotLeft + hPlotRight));
double plotH = scale*(GetSize().cy - (vPlotTop + vPlotBottom)) - titleHeight;
double dw = plotW*xMajorUnit/double(xRange);
double dh = plotH*yMajorUnit/double(yRange);
bool can = canX && canY && (min<double>(dw, dh) > 20 || scale < 1);
if (mouseX && can) {
if (zoomStyleX == TO_CENTER) {
double oldXMin = xMin;
@ -1203,14 +1139,14 @@ ScatterDraw::ScatterDraw()
titleColor = SColorText();
graphColor = White();
titleFont = Roman(20);
labelsFont = StdFont();
labelsFont = GetStdFont();
labelsColor = SColorText();
plotAreaColor = SColorLtFace();
axisColor = SColorText();
axisWidth = 6;
hPlotLeft = hPlotRight = vPlotTop = vPlotBottom = 30;
xRange = yRange = yRange2 = 100.0;
xMin = yMin = yMin2 = xMinUnit = yMinUnit = yMinUnit2 = 0.0;
xMin = yMin = yMin2 = xMinUnit = yMinUnit = yMinUnit2 = 0;
gridColor = SColorDkShadow();
gridWidth = 1;
drawXReticle = true; drawYReticle = true;
@ -1303,10 +1239,13 @@ void DrawText(Draw &w, double x, double y, int angle, const String &text, Font f
void DrawText(Painter &w, double x, double y, int angle, const String &text, Font font, Color color)
{
w.Begin();
w.Translate(x-0.5, y-0.5).Rotate(-angle*M_PI/1800.);
w.Text(0, 0, text, font).Fill(color);
w.End();
if(font.GetHeight() > 15) {
w.Begin();
w.Translate(x, y).Rotate(-angle*M_PI/1800.);
w.Text(0, 0, text, font).Fill(color);
w.End();
} else
w.DrawText(fround(x), fround(y), angle, text, font, color);
}
void Clip(Draw &w, double x, double y, double cx, double cy)
@ -1458,6 +1397,10 @@ void FillPolylineOpa(Painter& w, const Vector<Point> &p, const int &scale, const
w.Fill(fillColor); // Before Stroke()
}
void debug_h() {
; // Do nothing. Just to set a breakpoint in templated functions
}
INITBLOCK{
SeriesPlot::Register<LineSeriesPlot>("Line");
SeriesPlot::Register<StaggeredSeriesPlot>("Staggered");

View file

@ -4,6 +4,7 @@
#include <Draw/Draw.h>
#include <Painter/Painter.h>
#include "DataSource.h"
#include "Equation.h"
NAMESPACE_UPP
@ -13,6 +14,8 @@ NAMESPACE_UPP
Color GetOpaqueColor(const Color &color, const Color &background, const double opacity);
void debug_h(); // Dummy function used to debug .h files
class ScatterDraw {
public:
typedef ScatterDraw CLASSNAME;
@ -99,6 +102,7 @@ public:
const String& GetTitle();
ScatterDraw& SetTitleFont(const Font& fontTitle);
ScatterDraw& SetTitleColor(const Color& colorTitle);
Font& GetTitleFont() {return titleFont;};
void SetLabels(const String& _xLabel, const String& _yLabel, const String& _yLabel2 = "");
ScatterDraw& SetLabelX(const String& _xLabel);
@ -127,8 +131,10 @@ public:
ScatterDraw& ShowVGrid(const bool& show);
ScatterDraw& ShowHGrid(const bool& show);
ScatterDraw& ShowLegend(const bool& show = true);
ScatterDraw& SetLegendWidth(const int& width);
ScatterDraw& ShowLegend(const bool& show = true) {showLegend = show; return *this;}
bool GetShowLegend() {return showLegend;}
ScatterDraw& SetLegendWidth(const int& width) {legendWidth = width; return *this;}
int GetLegendWidth() {return legendWidth;}
ScatterDraw& SetMode(int _mode = MD_ANTIALIASED) {mode = _mode; Refresh(); return *this;};
int GetMode() {return mode;};
@ -163,16 +169,25 @@ public:
ScatterDraw &Graduation_FormatY(Formats fi);
ScatterDraw &Graduation_FormatY2(Formats fi);
ScatterDraw &AddSeries(double *yData, int numData, double x0 = 0, double deltaX = 1);
ScatterDraw &AddSeries(double *xData, double *yData, int numData);
ScatterDraw &AddSeries(Vector<double> &xData, Vector<double> &yData);
ScatterDraw &AddSeries(Upp::Array<double> &xData, Upp::Array<double> &yData);
ScatterDraw &AddSeries(Vector<Pointf> &points);
ScatterDraw &AddSeries(Upp::Array<Pointf> &points);
ScatterDraw &AddSeries(double (*function)(double));
ScatterDraw &AddSeries(Pointf (*function)(double), int np, double from = 0, double to = 1);
ScatterDraw &AddSeries(PlotFunc &function);
ScatterDraw &AddSeries(PlotParamFunc function, int np, double from = 0, double to = 1);
ScatterDraw &AddSeries(double *yData, int numData, double x0 = 0, double deltaX = 1)
{return AddSeries<CArray>(yData, numData, x0, deltaX);}
ScatterDraw &AddSeries(double *xData, double *yData, int numData)
{return AddSeries<CArray>(yData, xData, numData);}
ScatterDraw &AddSeries(Vector<double> &xData, Vector<double> &yData)
{return AddSeries<VectorDouble>(yData, xData);}
ScatterDraw &AddSeries(Array<double> &xData, Array<double> &yData)
{return AddSeries<ArrayDouble>(yData, xData);}
ScatterDraw &AddSeries(Vector<Pointf> &points) {return AddSeries<VectorPointf>(points);}
ScatterDraw &AddSeries(Array<Pointf> &points) {return AddSeries<ArrayPointf>(points);}
ScatterDraw &AddSeries(double (*function)(double)) {return AddSeries<FuncSource>(function);}
ScatterDraw &AddSeries(void (*function)(double&, double))
{return AddSeries<FuncSourceV>(function);}
ScatterDraw &AddSeries(Pointf (*function)(double), int np, double from = 0, double to = 1)
{return AddSeries<FuncSourcePara>(function, np, from, to);}
ScatterDraw &AddSeries(PlotExplicFunc function) {return AddSeries<PlotExplicFuncSource>(function);}
ScatterDraw &AddSeries(PlotParamFunc function, int np, double from = 0, double to = 1)
{return AddSeries<PlotParamFuncSource>(function, np, from, to);}
ScatterDraw &_AddSeries(DataSource *data);
ScatterDraw &AddSeries(DataSource &data);
@ -214,7 +229,7 @@ public:
void InsertSeries(int index, Upp::Array<Pointf> &points);
void InsertSeries(int index, double (*function)(double));
void InsertSeries(int index, Pointf (*function)(double), int np, double from = 0, double to = 1);
void InsertSeries(int index, PlotFunc &function);
void InsertSeries(int index, PlotExplicFunc &function);
void InsertSeries(int index, PlotParamFunc function, int np, double from = 0, double to = 1);
void _InsertSeries(int index, DataSource *data);
@ -248,10 +263,10 @@ public:
template <class X, class Y>
void InsertSeries(int index, ArrayMap<X, Y> &data) {_InsertSeries(index, new ArrayMapXY<X, Y>(data));}
ptrdiff_t GetCount(int index);
void GetValues(int index, int idata, double &x, double &y);
double GetValueX(int index, int idata);
double GetValueY(int index, int idata);
int64 GetCount(int index);
void GetValues(int index, int64 idata, double &x, double &y);
double GetValueX(int index, int64 idata);
double GetValueY(int index, int64 idata);
ScatterDraw &PlotStyle() {return PlotStyle(0);};
template <class C>
@ -347,8 +362,6 @@ public:
ScatterDraw& SetFastViewX(bool set = true) {fastViewX = set; return *this;}
Font& GetTitleFont() {return titleFont;};
double GetXByPoint(const int x);
double GetYByPoint(const int y);
double GetY2ByPoint(const int y);
@ -415,14 +428,15 @@ protected:
{
if (fabs(d) <= 1e-15)
d = 0;
if (0.001<=range && range<0.01) return FormatDouble(d,5);
else if (0.01<=range && range<0.1) return FormatDouble(d,4);
else if (0.1<=range && range<1) return FormatDouble(d,3);
else if (1<=range && range<10) return FormatDouble(d,2);
else if (10<=range && range<100) return FormatDouble(d,1);
else if (100<=range && range<100000) return FormatDouble(d,0);
else return FormatDoubleExp(d,2);
if (0.001 <= range && range < 0.01) return FormatDouble(d, 5);
else if (0.01 <= range && range < 0.1) return FormatDouble(d, 4);
else if (0.1 <= range && range < 1) return FormatDouble(d, 3);
else if (1 <= range && range < 10) return FormatDouble(d, 2);
else if (10 <= range && range < 100) return FormatDouble(d, 1);
else if (100 <= range && range < 100000) {
if (d < 1 && d > -1) return "0"; // Never -0
else return FormatDouble(d, 0);
} else return FormatDoubleExp(d, 2);
}
String VariableFormatX(const double& d) const {return VariableFormat(xRange, d);}
String VariableFormatY(const double& d) const {return VariableFormat(yRange, d);}
@ -476,6 +490,11 @@ void ScatterDraw::SetDrawing(T& w, const int& scale)
int plotW = scale*(GetSize().cx - (hPlotLeft + hPlotRight));
int plotH = scale*(GetSize().cy - (vPlotTop + vPlotBottom)) - titleHeight;
if (plotW < 0 || plotH < 0) {
ClipEnd(w);
return;
}
Font fontLabel;
fontLabel = labelsFont;
fontLabel.Height(scale*labelsFont.GetHeight());
@ -497,8 +516,8 @@ void ScatterDraw::SetDrawing(T& w, const int& scale)
p.Translate(0.5, 0);
}
Font standard6;
standard6.Height(scale*StdFont().GetHeight());
Font standard6 = GetStdFont();
standard6.Height(scale*GetStdFont().GetHeight());
if (drawXReticle)
for(int i = 0; xMinUnit + i*xMajorUnit <= xRange; i++){
@ -514,7 +533,7 @@ void ScatterDraw::SetDrawing(T& w, const int& scale)
Array <String> texts;
Array <Size> sizes;
ParseTextMultiline(gridLabelX, StdFont(), texts, sizes);
ParseTextMultiline(gridLabelX, GetStdFont(), texts, sizes);
for (int ii = 0; ii < texts.GetCount(); ++ii) {
int cy = ii == 0 ? 0 : sizes[ii - 1].cy;
DrawText(w, plotW*xMinUnit/xRange + i*plotW/(xRange/xMajorUnit) - scale*sizes[ii].cx/2.,
@ -524,40 +543,32 @@ void ScatterDraw::SetDrawing(T& w, const int& scale)
if (drawYReticle)
for(int i = 0; yMinUnit + i*yMajorUnit <= yRange; i++) {
w.DrawLine(-(scale*4), fround(-plotH*yMinUnit/yRange + plotH - i*plotH/(yRange/yMajorUnit)),
0, fround(-plotH*yMinUnit/yRange + plotH - i*plotH/(yRange/yMajorUnit)),
fround(gridWidth*scale), axisColor);
int reticleY = fround(-plotH*yMinUnit/yRange + plotH - i*plotH/(yRange/yMajorUnit));
w.DrawLine(-scale*4, reticleY, 0, reticleY, fround(gridWidth*scale), axisColor);
if (drawY2Reticle)
w.DrawLine(plotW + scale*4, reticleY, plotW, reticleY, fround(gridWidth*scale), axisColor);
double gridY = yMinUnit + i*yMajorUnit + yMin;
String gridLabelY;
if (cbModifFormatY)
cbModifFormatY(gridLabelY, i, gridY);
else
gridLabelY = VariableFormatY(gridY);
int dx = scale*GetTextSize(gridLabelY,StdFont()).cx;
DrawText(w, -dx - scale*6, fround(-plotH*yMinUnit/yRange + plotH - i*plotH/(yRange/yMajorUnit)) - scale*8,
0, gridLabelY, standard6, axisColor);
int dx = scale*GetTextSize(gridLabelY, GetStdFont()).cx;
DrawText(w, -dx - scale*6, reticleY - scale*8, 0, gridLabelY, standard6, axisColor);
if (drawY2Reticle) {
double gridY2 = (gridY - yMin)/yRange*yRange2 + yMin2;
String gridLabelY2;
if (cbModifFormatY2)
cbModifFormatY2(gridLabelY2, i, gridY2);
else
gridLabelY2 = VariableFormatY2(gridY2);
DrawText(w, plotW + scale*10, reticleY - scale*8, 0, gridLabelY2, standard6, axisColor);
}
}
if (drawY2Reticle)
for(int i = 0; yMinUnit + i*yMajorUnit <= yRange; i++) {
w.DrawLine(plotW + (scale*4), fround(-plotH*yMinUnit2/yRange2 + plotH - i*plotH/(yRange/yMajorUnit)),
plotW, fround(-plotH*yMinUnit2/yRange2 + plotH - i*plotH/(yRange/yMajorUnit)),
fround(gridWidth*scale), axisColor);
double gridY2 = yMinUnit2 + i*yMajorUnit2 + yMin2;
String gridLabelY2;
if (cbModifFormatY2)
cbModifFormatY2(gridLabelY2, i, gridY2);
else
gridLabelY2 = VariableFormatY2(gridY2);
DrawText(w, plotW + scale*10, fround(-plotH*yMinUnit2/yRange2 + plotH - i*plotH/(yRange/yMajorUnit)) - scale*8,
0, gridLabelY2, standard6, axisColor);
}
Plot(w, scale, plotW, plotH);
ClipEnd(w);
}
void kk();
template <class T>
void ScatterDraw::Plot(T& w, const int& scale, const int& plotW, const int& plotH)
@ -588,70 +599,92 @@ void ScatterDraw::Plot(T& w, const int& scale, const int& plotW, const int& plot
for (int j = 0; j < series.GetCount(); j++) {
if (series[j].opacity == 0 || (!series[j].seriesPlot && !series[j].markPlot))
continue;
Vector<Point> p1;
ptrdiff_t imin, imax;
if (series[j].sequential) {
imin = imax = Null;
for (int i = 1; i < series[j].PointsData()->GetCount() - 1; ++i) {
if (IsNull(imin)) {
if (series[j].PointsData()->x(i) >= xMin)
imin = i - 1;
} else if (IsNull(imax)) {
if (series[j].PointsData()->x(i) >= xMin + xRange)
imax = i + 1;
}
Vector<Point> points;
if (series[j].PointsData()->IsParam()) {
double xmin = 0;
double xmax = double(series[j].PointsData()->GetCount());
for (double x = xmin; x <= xmax; x++) {
double xx = series[j].PointsData()->x(x);
double yy = series[j].PointsData()->y(x);
int ix = fround(plotW*(xx - xMin)/xRange);
int iy;
if (series[j].primaryY)
iy = fround(plotH*(yy - yMin)/yRange);
else
iy = fround(plotH*(yy - yMin2)/yRange2);
points << Point(ix, plotH - iy);
}
} else if (series[j].PointsData()->IsExplicit()) {
double xmin = xMin - 1;
double xmax = xMin + xRange + 1;
double dx = double(xmax - xmin)/plotW;
for (double xx = xmin; xx < xmax; xx += dx) {
double yy = series[j].PointsData()->f(xx);
int ix = fround(plotW*(xx - xMin)/xRange);
int iy;
if (series[j].primaryY)
iy = fround(plotH*(yy - yMin)/yRange);
else
iy = fround(plotH*(yy - yMin2)/yRange2);
points << Point(ix, plotH - iy);
}
if (IsNull(imin))
imin = 0;
if (IsNull(imax))
imax = series[j].PointsData()->GetCount();
} else if (series[j].PointsData()->IsParam()) { // It is a param function
imin = 0;
imax = series[j].PointsData()->GetCount();
} else if (IsNull(series[j].PointsData()->GetCount())) { // It is a function
imin = fround(xMin) - 1;
imax = fround(xMin + xRange) + 1;
} else {
imin = 0;
imax = series[j].PointsData()->GetCount();
}
ptrdiff_t numV;
if (fastViewX)
numV = 1 + (imax - imin)/plotW;
else
numV = 1;
for (ptrdiff_t i = imin; i < imax; i += numV) {
double xx, yy;
if (fastViewX && numV > 1) {
yy = 0;
int ii;
for (ii = 0; ii < numV && i + ii < imax; ++ii)
yy += series[j].PointsData()->y(i + ii);
yy /= double(ii);
xx = (series[j].PointsData()->x(i) + series[j].PointsData()->x(i + ii - 1))/2;
int64 imin, imax;
if (series[j].sequential) {
imin = imax = Null;
for (int64 i = 1; i < series[j].PointsData()->GetCount() - 1; ++i) {
if (IsNull(imin)) {
if (series[j].PointsData()->x(i) >= xMin)
imin = i - 1;
} else if (IsNull(imax)) {
if (series[j].PointsData()->x(i) >= xMin + xRange)
imax = i + 1;
}
}
if (IsNull(imin))
imin = 0;
if (IsNull(imax))
imax = series[j].PointsData()->GetCount();
} else {
xx = series[j].PointsData()->x(i);
DUMP(i);
DUMP(series[j].PointsData()->x(i));
yy = series[j].PointsData()->y(i);
imin = 0;
imax = series[j].PointsData()->GetCount();
}
int ix = fround(plotW*(xx - xMin)/xRange);
int iy;
if (series[j].primaryY)
iy = fround(plotH*(yy - yMin)/yRange);
int64 dx;
if (fastViewX)
dx = max<int64>(1, (imax - imin)/plotW);
else
iy = fround(plotH*(yy - yMin2)/yRange2);
p1 << Point(ix, plotH - iy);
dx = 1;
for (int64 i = imin; i < imax; i += dx) {
double xx, yy;
if (fastViewX) {
yy = 0;
int ii;
for (ii = 0; ii < dx && i + ii < imax; ++ii)
yy += series[j].PointsData()->y(i + ii);
yy /= double(ii);
xx = (series[j].PointsData()->x(i) + series[j].PointsData()->x(i + ii - 1))/2;
} else {
xx = series[j].PointsData()->x(i);
yy = series[j].PointsData()->y(i);
}
int ix = fround(plotW*(xx - xMin)/xRange);
int iy;
if (series[j].primaryY)
iy = fround(plotH*(yy - yMin)/yRange);
else
iy = fround(plotH*(yy - yMin2)/yRange2);
points << Point(ix, plotH - iy);
}
}
if (!p1.IsEmpty())
series[j].seriesPlot->Paint(w, p1, scale, series[j].opacity,
if (!points.IsEmpty() && series[j].seriesPlot)
series[j].seriesPlot->Paint(w, points, scale, series[j].opacity,
fround(series[j].thickness), series[j].color,
series[j].dash, plotAreaColor, series[j].fillColor, plotW/xRange, plotH/yRange,
int(plotH*(1 + yMin/yRange)));
if (series[j].markWidth >= 1 && series[j].markPlot) {
for (int i = 0; i < (imax - imin)/numV; i++)
series[j].markPlot->Paint(w, scale, p1[i], series[j].markWidth, series[j].markColor);
for (int i = 0; i < points.GetCount(); i++)
series[j].markPlot->Paint(w, scale, points[i], series[j].markWidth, series[j].markColor);
}
}
}

View file

@ -8,3 +8,24 @@ caES("Sense marca")
esES("Sin marca")
euES("Marka gabe")
frFR("Sans marque")
// Equation.h
T_("Linear")
caES("Recta")
esES("Recta")
euES("Zuzen")
frFR("Droite")
T_("Polynomial")
caES("Polinomi")
esES("Polinomio")
euES("Polinomio")
frFR("Polyn\303\264me")
T_("Fourier")
caES("")
esES("")
euES("")
frFR("")

View file

@ -1,16 +1,21 @@
description "Scatter base class to plot in console applications \377";
uses
Painter;
Painter,
plugin/Eigen;
file
ScatterDraw.cpp,
ScatterDraw.h,
DataSource.cpp,
DataSource.h,
Equation.cpp,
Equation.h,
DrawingFunctions.h,
SeriesPlot.h,
MarkPlot.h,
PieDraw.cpp,
PieDraw.h,
ScatterDraw.t,
src.tpp;

View file

@ -36,7 +36,7 @@ public:
protected:
typedef SeriesPlot* (*CreateFunc)();
template<class T>
static SeriesPlot* __Create() {return new T;}
static SeriesPlot* __Create() {return new T;}
static VectorMap<String, CreateFunc>& classMap() {static VectorMap<String, CreateFunc> cMap; return cMap;}
static VectorMap<String, String>& typeMap() {static VectorMap<String, String> tMap; return tMap;}
};

View file

@ -1,4 +1,5 @@
#ifndef _ScatterDraw_icpp_init_stub
#define _ScatterDraw_icpp_init_stub
#include "Painter/init"
#include "plugin/Eigen/init"
#endif

View file

@ -0,0 +1,143 @@
topic "DataSource";
[2 $$0,0#00000000000000000000000000000000:Default]
[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class]
[l288;2 $$2,2#27521748481378242620020725143825:desc]
[0 $$3,0#96390100711032703541132217272105:end]
[H6;0 $$4,0#05600065144404261032431302351956:begin]
[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item]
[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement]
[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param]
[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam]
[b42;2 $$9,9#13035079074754324216151401829390:normal]
[{_}%EN-US
[ {{10000@3 [s0; [*@(229)4 DataSource]]}}&]
[s3; &]
[s1;:DataSource`:`:class:%- [@(0.0.255)3 class][3 _][*3 DataSource]&]
[s0; &]
[s0; Some classes need sources of data for drawing, data analysis
and statistics. However data series can be defined in different
containers like C arrays, U`+`+ containers or even data grids
like ArrayCtrl and GridCtrl.&]
[s0; &]
[s0; [^topic`:`/`/ScatterDraw`/src`/DataSource`$en`-us^ DataSource]
abstracts many sources of data, like:&]
[s0; &]
[s0;i150;O0; [* Data series]&]
[s0; They are series of data with a number of columns (parameters)
and rows (every parameter set case). For example:&]
[s0; &]
[ {{2500:2500:2500:2500<512;>928;h1; [s0; X]
:: [s0; Y]
:: [s0; Z]
:: [s0; Temperature]
:: [s0; 1.1]
:: [s0; 45]
:: [s0; `-34]
:: [s0; 22]
:: [s0; 3.5]
:: [s0; 23]
:: [s0; 12]
:: [s0; 25]
:: [s0; 2.4]
:: [s0; 78]
:: [s0; 112]
:: [s0; 24]}}&]
[s0; &]
[s0;i150;O0; [* Explicit equation]&]
[s0; A function y `= f(x1, x2, ...) where y is the dependent variable
and x1, x2 are the independent variables.&]
[s0; Examples are:&]
[s0; -|&]
[s0; -|y `= 4x `+ 3z&]
[s0; -|y `= 3`*x`^2 `+ 2`*x `- 1&]
[s0; &]
[s0;i150;O0; [* Parametric equation]&]
[s0; ([^http`:`/`/en`.wikipedia`.org`/wiki`/Parametric`_equation^ From
Wikipedia]) A parametric equation of a curve is a representation
of it through equations expressing the coordinates of the points
of the curve as functions of a variable called parameter. For
example,&]
[s0; &]
[s0; -|x `= cos(t)&]
[s0; -|y `= sin(t)&]
[s0; &]
[s0; is a parametric equation for the unit circle, where t is the
parameter.&]
[s0; &]
[s0; These equations are useful to represent closed functions as
circles, spirals and even epitrochoids.&]
[s0; &]
[s0; DataSource classes can be used to interface data sources and
containers and can be subclassed to be embedded in other classes
like [^topic`:`/`/ScatterDraw`/src`/ExplicitEquation`$en`-us^ ExplicitEquation].&]
[s0; &]
[s3;%- &]
[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&]
[s4;%- &]
[s5;:DataSource`:`:DataSource`(`):%- [* DataSource]()&]
[s2; Default constructor where the data is defined as data series
by default.&]
[s3;%- &]
[s3;%- &]
[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&]
[s4;%- &]
[s5;:DataSource`:`:y`(int64`):%- [@(0.0.255) virtual] [@(0.0.255) double]_[* y]([_^int64^ int
64]_[*@3 id])&]
[s2; Returns the first parameter of the data series [%-*@3 id] th value.&]
[s3; &]
[s4;%- &]
[s5;:DataSource`:`:x`(int64`):%- [@(0.0.255) virtual] [@(0.0.255) double]_[* x]([_^int64^ int
64]_[*@3 id])&]
[s2; Returns the second parameter of the data series [%-*@3 id] th
value.&]
[s3; &]
[s4;%- &]
[s5;:DataSource`:`:xn`(int`,int64`):%- [@(0.0.255) virtual] [@(0.0.255) double]_[* xn]([@(0.0.255) i
nt]_[*@3 n], [_^int64^ int64]_[*@3 id])&]
[s2; Returns the [%-*@3 n] th parameter of the data series [%-*@3 id]
th value.&]
[s3; &]
[s4;%- &]
[s5;:DataSource`:`:y`(double`):%- [@(0.0.255) virtual] [@(0.0.255) double]_[* y]([@(0.0.255) d
ouble]_[*@3 t])&]
[s2; Returns the first parameter of the parametric equation with
independent value [%-*@3 t].&]
[s3; &]
[s4;%- &]
[s5;:DataSource`:`:x`(double`):%- [@(0.0.255) virtual] [@(0.0.255) double]_[* x]([@(0.0.255) d
ouble]_[*@3 t])&]
[s2; Returns the second parameter of the parametric equation with
independent value [%-*@3 t].&]
[s3; &]
[s4;%- &]
[s5;:DataSource`:`:xn`(int`,double`):%- [@(0.0.255) virtual] [@(0.0.255) double]_[* xn]([@(0.0.255) i
nt]_[*@3 n], [@(0.0.255) double]_[*@3 t])&]
[s2; Returns the [%-*@3 n] th parameter of the parametric equation
with independent value [%-*@3 t].&]
[s3; &]
[s4;%- &]
[s5;:DataSource`:`:f`(double`):%- [@(0.0.255) virtual] [@(0.0.255) double]_[* f]([@(0.0.255) d
ouble]_[*@3 x])&]
[s2; Returns the value of the explicit equation based on the independent
value [%-*@3 x].&]
[s3; &]
[s4;%- &]
[s5;:DataSource`:`:f`(Vector`<double`>`):%- [@(0.0.255) virtual] [@(0.0.255) double]_[* f](
[_^Vector^ Vector]<[@(0.0.255) double]>_[*@3 xn])&]
[s2; Returns the value of the explicit equation based on the independent
value set [%-*@3 xn].&]
[s3; &]
[s4;%- &]
[s5;:DataSource`:`:GetCount`(`):%- [@(0.0.255) virtual] [_^int64^ int64]_[* GetCount]()&]
[s2; Returns the number of values in a data series or a parametric
equation.&]
[s3;%- &]
[s4;%- &]
[s5;:DataSource`:`:IsParam`(`):%- [@(0.0.255) bool]_[* IsParam]()&]
[s2; Returns true if the data source is a parametric equation.&]
[s3;%- &]
[s4;%- &]
[s5;:DataSource`:`:IsExplicit`(`):%- [@(0.0.255) bool]_[* IsExplicit]()&]
[s2; Returns true if the data source is a explicit equation.&]
[s3;%- &]
[s0;*%- ]]

View file

@ -0,0 +1,10 @@
TITLE("DataSource")
COMPRESSED
120,156,181,87,137,110,219,56,16,253,21,2,105,23,118,234,40,36,37,89,178,213,45,82,164,215,98,143,22,155,118,47,67,142,104,153,142,137,202,146,151,164,18,123,123,124,251,14,117,89,78,156,19,72,81,88,20,57,51,156,247,230,105,200,140,40,122,242,4,247,240,30,190,229,223,240,21,159,177,60,209,225,72,56,142,31,48,234,6,159,127,126,63,8,140,63,1,127,219,35,182,239,218,196,161,125,248,33,54,161,46,181,29,226,211,129,227,219,182,143,135,113,194,148,10,71,9,245,253,194,137,246,232,30,245,92,74,60,199,119,124,98,123,62,5,95,138,49,197,30,117,137,99,251,212,29,78,185,138,195,17,6,115,27,246,24,244,237,1,38,24,123,132,96,155,122,216,118,29,66,108,10,33,168,71,9,118,135,60,157,134,163,119,253,192,56,56,6,148,219,135,212,251,16,205,113,48,68,55,110,142,77,108,76,109,151,12,220,254,112,194,207,68,186,11,146,123,43,36,15,15,133,230,139,10,17,115,130,253,35,55,32,224,218,239,245,247,60,216,214,113,97,179,129,65,100,
131,27,165,125,119,64,92,7,82,114,48,29,74,254,111,46,36,95,240,84,87,17,4,33,148,4,19,226,5,144,194,247,239,223,45,226,224,146,41,15,114,33,24,242,166,4,230,0,135,71,220,1,30,184,62,241,177,237,57,212,245,0,250,146,73,182,168,144,76,28,26,84,56,252,158,191,215,39,125,96,20,251,144,191,59,128,0,24,64,192,19,136,116,225,191,237,15,117,229,108,252,140,211,160,55,216,3,146,108,23,123,3,236,57,158,235,0,18,74,250,4,136,196,6,63,148,97,152,102,114,193,146,112,244,229,244,219,211,215,191,29,124,58,65,35,244,229,11,49,90,57,178,209,72,225,0,141,246,143,58,148,14,186,14,122,197,52,59,201,114,25,243,48,252,246,237,135,112,164,236,0,153,7,9,134,155,181,104,24,149,50,25,62,61,64,163,163,14,182,176,5,57,119,109,84,137,199,70,167,225,104,223,110,135,51,65,112,25,11,30,39,217,130,151,198,92,161,148,243,41,82,133,153,66,217,12,77,193,11,205,50,137,166,146,93,136,244,172,87,206,176,148,37,107,37,20,
12,192,92,51,45,148,22,177,178,208,187,236,130,159,115,89,90,41,46,5,132,137,89,138,38,28,77,249,76,164,16,93,164,104,42,102,51,46,161,142,40,206,82,205,96,90,42,148,136,207,28,29,35,38,37,91,171,30,250,20,61,139,158,181,215,33,9,8,157,150,161,207,164,152,86,46,47,141,195,177,150,73,145,204,91,88,48,47,214,54,200,209,88,103,75,17,3,91,135,209,225,73,204,180,230,242,21,64,138,14,149,140,163,195,22,159,79,120,26,29,228,106,220,38,12,177,137,210,146,197,90,161,5,75,215,151,9,234,21,137,12,183,118,20,196,197,193,251,162,160,69,164,138,140,154,251,143,115,190,6,168,188,230,168,166,250,66,232,57,98,40,205,23,19,96,17,102,227,44,201,23,169,66,157,66,111,28,210,86,221,2,168,204,46,96,214,144,189,70,205,26,132,3,78,153,226,93,11,189,49,132,173,216,98,153,180,83,3,189,129,174,241,112,251,231,185,75,104,240,98,64,253,96,78,130,82,136,127,133,195,97,57,250,187,25,253,211,140,62,242,197,146,75,166,115,201,
155,57,98,145,102,236,184,205,48,58,176,157,230,133,210,102,104,91,27,27,106,111,162,108,44,104,203,192,218,196,240,252,141,113,219,218,169,62,147,157,53,120,189,90,38,34,22,26,65,19,1,185,102,105,93,137,151,104,150,167,177,153,65,107,20,253,136,102,157,21,233,161,21,237,33,203,178,186,232,98,14,66,133,21,208,186,158,27,17,47,161,97,26,229,158,51,41,216,36,225,69,49,74,151,162,160,198,74,164,87,237,84,173,200,215,101,77,148,177,174,11,115,240,181,25,20,73,56,43,4,226,183,255,219,158,181,163,253,85,52,166,102,137,194,16,152,69,228,90,192,31,74,77,72,17,95,129,220,25,141,231,90,47,203,143,1,228,110,93,136,207,98,201,167,130,69,86,38,207,162,67,243,30,29,110,34,68,167,117,136,49,122,35,179,5,250,179,118,8,187,64,224,242,234,86,70,186,12,197,185,60,231,134,58,134,36,95,74,174,128,144,102,25,106,161,231,50,203,207,230,141,151,2,193,26,51,5,157,166,32,50,206,50,57,21,41,211,229,39,98,166,150,153,72,117,243,
86,238,192,84,83,68,85,238,220,84,39,102,73,2,77,167,249,66,182,190,139,222,118,147,56,248,186,50,52,199,153,234,232,238,54,245,144,209,102,174,122,20,184,118,97,55,253,210,36,151,167,128,49,22,50,134,157,42,33,233,90,72,155,132,182,131,66,99,80,188,69,136,145,84,174,248,44,79,144,206,54,44,66,195,206,20,224,218,192,6,14,202,173,160,119,170,165,144,44,41,187,115,209,51,249,82,104,153,197,243,12,186,230,165,13,55,109,174,57,4,170,134,157,155,13,96,83,224,155,203,25,3,131,178,171,87,205,207,4,111,181,231,226,181,116,84,249,164,12,85,184,195,4,135,110,54,157,150,189,63,3,244,178,217,170,232,224,183,52,231,250,211,125,93,145,178,105,209,151,87,194,54,54,59,128,19,177,236,120,197,9,251,166,67,168,223,125,91,252,30,145,250,180,69,199,64,158,150,121,172,161,104,175,56,160,73,234,227,214,169,2,40,247,242,129,219,122,235,68,221,226,228,221,111,159,23,157,66,41,20,200,45,47,128,134,167,102,147,74,8,243,138,78,208,67,125,
50,66,9,219,231,230,100,109,86,140,191,213,198,115,87,96,31,242,9,144,131,126,229,197,81,242,11,156,208,183,3,91,71,29,168,118,223,169,64,109,174,19,232,92,72,157,195,221,101,107,114,154,193,30,60,60,133,221,214,97,103,116,58,46,156,199,168,120,152,105,184,213,136,105,88,179,241,59,135,243,34,45,245,63,19,82,233,214,193,85,125,207,109,252,163,167,7,85,0,88,130,47,58,201,185,213,186,6,93,143,98,245,96,20,171,123,162,80,28,42,59,125,44,24,105,129,35,234,61,20,76,10,104,90,75,16,166,66,147,134,61,116,47,156,21,134,180,128,240,56,104,65,122,101,238,15,211,222,206,21,72,68,223,71,125,187,154,121,113,35,219,62,208,1,83,141,83,135,119,150,228,67,209,173,238,141,238,58,85,62,34,188,90,170,15,6,121,179,86,239,135,255,102,181,62,30,11,179,135,23,121,118,67,145,87,59,65,150,25,86,152,248,229,219,45,154,48,115,252,194,224,234,125,180,133,108,117,119,100,127,112,115,122,69,207,43,132,47,30,134,241,116,92,198,25,163,
242,25,62,223,97,252,162,194,157,62,2,112,243,7,82,13,62,189,35,250,183,92,31,103,57,200,187,115,19,232,171,253,20,213,142,155,11,65,27,200,230,143,188,34,53,101,110,71,108,171,153,194,109,97,231,13,115,251,62,112,125,226,63,169,226,14,191,43,239,73,150,37,69,142,149,205,142,20,37,208,37,218,29,190,188,37,94,119,237,189,123,82,245,181,237,150,188,106,179,123,166,118,69,18,219,137,225,96,31,70,97,248,63,57,94,39,252,

View file

@ -0,0 +1,136 @@
topic "ExplicitEquation";
[ $$0,0#00000000000000000000000000000000:Default]
[0 $$1,0#96390100711032703541132217272105:end]
[i448;a25;kKO9;2 $$2,0#37138531426314131252341829483380:class]
[H6;0 $$3,0#05600065144404261032431302351956:begin]
[l288;2 $$4,4#27521748481378242620020725143825:desc]
[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:codeitem]
[{_}%EN-US
[ {{10000@3 [s0; [*@(229)4 ExplicitEquation]]}}&]
[s1; &]
[s2;:ExplicitEquation`:`:class: [@(0.0.255)3 class][3 _][*3 ExplicitEquation
: ][@(0.0.255)3 public][3 _][*3 DataSource]&]
[s0;2 &]
[s0; [2 ExplicitEquation represents a generic explicit equation type,
that is to say, a function y `= f(x1, x2, ..., a1, a2, ...) where
y is the dependent variable, x1, x2 are the independent variables
and a1, a2, ... are the specific coefficients. For example:]&]
[s0; [2 -|]&]
[s0; [2 -|y `= 4x `+ 3z]&]
[s0; [2 -|y `= 3`*x`^2 `+ 2`*x `- 1]&]
[s0;2 &]
[s0; [2 where the number 4, 3, ... are the equation coefficients.]&]
[s0;2 &]
[s0; [2 It can support any explicit equation so it is used to get trend
lines and non linear regression.]&]
[s0;2 &]
[s0; [2 Its normal use is subclassed to equation types like ][^topic`:`/`/ScatterDraw`/src`/LinearEquation`$en`-us^2 L
inearEquation][2 , ][^topic`:`/`/ScatterDraw`/src`/PolynomialEquation`$en`-us^2 Polyn
omialEquation ][2 or ][^topic`:`/`/ScatterDraw`/src`/FourierEquation`$en`-us^2 Fourie
rEquation][2 .]&]
[s0;2 &]
[s1; &]
[ {{10000F(128)G(128)@1 [s0; [*2 Public Member List]]}}&]
[s3; &]
[s5;:ExplicitEquation`:`:SetDegree`(int`): [@(0.0.255) virtual] [@(0.0.255) void]_[* SetDeg
ree]([@(0.0.255) int]_[*@3 num])&]
[s4; Sets [*@3 num] as the degree of the equation. In a polynomial
equation it is the exponent of the highest power of the independent
variables.&]
[s4; It is related with the equation number of coefficients as the
higher the degree, the higher the number of coefficients and
thus the complexity of the equation.&]
[s1; &]
[s3; &]
[s5;:ExplicitEquation`:`:Fit`(DataSource`&`,double`&`): [@(0.0.255) FitError]_[* Fit]([_^DataSource^ D
ataSource]_`&[*@3 series], [@(0.0.255) double]_`&[*@3 r2])&]
[s4; Searches for the best combination of coefficients of the equation
that match [*@3 series] data series. The quality of the matching
is returned in the [^http`:`/`/en`.wikipedia`.org`/wiki`/Coefficient`_of`_determination^ c
oefficient of determination] [*@3 r2].&]
[s4; It uses [^http`:`/`/eigen`.tuxfamily`.org`/index`.php`?title`=Main`_Page^ Eigen]
implementation of [^http`:`/`/en`.wikipedia`.org`/wiki`/Levenberg`%E2`%80`%93Marquardt`_algorithm^ L
evenberg`-Marquardt] algorithm based on [^http`:`/`/www`.mcs`.anl`.gov`/`~more`/^ J
orge Moré] et al. [^http`:`/`/en`.wikipedia`.org`/wiki`/MINPACK^ MINPACK]
original library.&]
[s4; It returns:&]
[s4;i150;O0; ExplicitEquation`::NoError&]
[s4;l448; Function returns succesfully. It is a return value bigger
than zero.&]
[s4;i150;O0; ExplicitEquation`::InadequateDataSource&]
[s4;l448; Only data series sources are supported. Explicit and parametric
functions are not supported.&]
[s4;i150;O0; ExplicitEquation`::SmallDataSource&]
[s4;l448; The number of values of the data set has to be bigger or
equal than the number of coefficients to be obtained.&]
[s4;i150;O0; ExplicitEquation`::ImproperInputParameters&]
[s4;l448; There are problems in the input parameters. For example
repeated data may avoid convergence.&]
[s4;i150;O0; ExplicitEquation`::TooManyFunctionEvaluation&]
[s4;l448; The methods converges to a solution too slowly.&]
[s1; &]
[s3; &]
[s5;:ExplicitEquation`:`:Fit`(DataSource`&`): [@(0.0.255) FitError]_[* Fit]([_^DataSource^ D
ataSource]_`&[*@3 series])&]
[s4; Simplified version of [@(0.0.255) bool]_[* Fit]([_^DataSource^ DataSource]_`&[*@3 series
], [@(0.0.255) double]_`&[*@3 r2]) that do not return [*@3 r2].&]
[s1; &]
[s3; &]
[s5;:ExplicitEquation`:`:f`(double`): [@(0.0.255) virtual] [@(0.0.255) double]_[* f]([@(0.0.255) d
ouble]_[*@3 x1])&]
[s4; Returns the value of the explicit equation based on the independent
value [*@3 x].&]
[s1; &]
[s3; &]
[s5;:ExplicitEquation`:`:f`(double`,double`): [@(0.0.255) virtual]
[@(0.0.255) double]_[* f]([@(0.0.255) double]_[*@3 x1], [@(0.0.255) double]_[*@3 x2])&]
[s4; Returns the value of the explicit equation based on the independent
values [*@3 x1 ]and [*@3 x2].&]
[s1; &]
[s3; &]
[s5;:ExplicitEquation`:`:f`(Vector`<double`>`): [@(0.0.255) virtual]
[@(0.0.255) double]_[* f]([_^Vector^ Vector]_<[@(0.0.255) double]>_[*@3 x])&]
[s4; Returns the value of the explicit equation based on the independent
value set [*@3 xn].&]
[s1; &]
[s3; &]
[s5;:ExplicitEquation`:`:GetName`(`): [@(0.0.255) virtual] [_^String^ String]_[* GetName]()
&]
[s4; Returns the equation name as `"Linear`", `"Polynomial`" or `"Fourier`".&]
[s1; &]
[s3; &]
[s5;:ExplicitEquation`:`:GetFullName`(`): [@(0.0.255) virtual] [_^String^ String]_[* GetFul
lName]()&]
[s4; Returns the equation name as `"Linear`", `"Polynomial n `= 2`"
or `"Fourier n `= 3`". n represents the degree of the equation.&]
[s1; &]
[s3; &]
[s5;:ExplicitEquation`:`:GetEquation`(`): [@(0.0.255) virtual] [_^String^ String]_[* GetEqu
ation]()&]
[s4; Returns the equation in plain text, as y `= `-34 `+ 12`*x `-
3`*x`^2&]
[s1; &]
[s3;%- &]
[s5;:ExplicitEquation`:`:SetNumDigits`(int`):%- [@(0.0.255) void]_[* SetNumDigits]([@(0.0.255) i
nt]_[*@3 n])&]
[s4; Sets with [%-*@3 n] the equation coefficients number of digits
when returned by [_^String^ String]_[* GetEquation]().&]
[s1; &]
[s3;%- &]
[s5;:ExplicitEquation`:`:GetNumDigits`(`):%- [@(0.0.255) int]_[* GetNumDigits]()&]
[s4; Returns the equation coefficients number of digits when returned
by [_^String^ String]_[* GetEquation]().&]
[s1;%- &]
[s3;%- &]
[s5;:ExplicitEquation`:`:SetMaxFitFunctionEvaluations`(int`):%- [@(0.0.255) void]_[* SetM
axFitFunctionEvaluations]([@(0.0.255) int]_[*@3 n])&]
[s4; Sets with [%-*@3 n] the maximum number of equation evaluations
done by [* Fit]() searching for the best coefficients values.&]
[s1; &]
[s3;%- &]
[s5;:ExplicitEquation`:`:GetMaxFitFunctionEvaluations`(`):%- [@(0.0.255) int]_[* GetMaxFi
tFunctionEvaluations]()&]
[s4; Returns the maximum number of equation evaluations done by [* Fit]()
searching for the best coefficients values.&]
[s1;%- &]
[s3; ]]

View file

@ -0,0 +1,11 @@
TITLE("ExplicitEquation")
COMPRESSED
120,156,189,88,237,118,218,56,26,190,21,157,76,211,67,186,196,241,23,9,129,153,217,206,153,36,221,204,52,105,207,166,187,127,56,6,9,35,64,167,182,228,149,229,0,211,233,222,207,94,199,222,216,190,178,108,99,3,73,72,102,186,249,17,48,122,63,159,247,83,30,160,87,175,236,182,253,157,253,196,95,239,130,78,73,22,169,96,96,3,135,3,28,231,167,222,185,237,216,246,153,227,216,158,123,102,123,29,223,113,60,215,117,206,220,51,215,177,59,61,202,39,193,128,249,126,183,79,220,78,255,243,175,31,206,251,46,240,186,192,235,157,57,94,183,227,57,190,123,10,255,28,207,113,59,174,231,59,93,247,220,239,122,94,215,238,133,17,73,211,96,240,183,211,190,86,231,105,3,59,167,96,198,105,199,241,125,223,6,62,173,212,247,28,207,118,189,142,115,222,57,237,141,233,140,241,96,16,185,221,110,174,199,111,251,223,185,103,29,176,199,239,250,93,199,59,235,186,192,230,218,182,107,159,185,32,198,235,186,157,222,132,166,225,46,35,59,79,26,121,6,70,138,9,101,138,
198,193,224,203,232,235,225,229,237,241,63,238,208,0,125,249,226,104,192,222,122,104,144,218,125,52,120,243,182,229,186,231,71,62,186,92,38,17,11,153,186,252,87,70,20,19,60,8,190,126,125,29,12,82,167,143,244,135,219,239,109,82,224,30,54,72,244,208,224,109,203,182,108,203,237,116,142,60,84,160,227,161,81,48,120,227,109,9,70,61,20,52,232,147,108,12,4,107,134,11,162,200,157,200,100,72,3,173,217,6,151,205,39,26,184,219,210,36,77,36,77,41,87,41,34,104,70,57,149,44,68,180,160,66,180,36,83,171,132,182,145,154,19,133,88,138,148,64,41,89,181,129,99,154,241,48,39,88,33,252,3,154,182,150,78,27,45,221,54,178,44,11,142,225,129,152,135,35,180,152,83,73,129,76,179,207,41,154,208,4,82,8,244,162,123,34,25,25,71,32,222,48,35,2,116,154,132,241,109,34,176,146,79,234,130,43,234,52,161,33,155,130,241,161,160,83,248,100,218,39,11,93,9,9,238,144,56,137,104,47,88,227,112,252,123,227,33,183,222,95,34,252,23,228,253,182,
125,226,225,55,75,60,116,245,177,11,95,17,62,70,206,14,112,141,139,218,24,158,197,99,42,145,223,70,94,211,202,10,208,134,149,59,100,93,43,20,18,142,210,44,73,132,84,224,245,106,71,84,82,129,88,30,144,44,165,19,29,149,25,85,72,73,192,12,69,140,23,96,113,32,212,79,68,66,176,103,16,236,20,88,119,171,76,129,88,198,36,210,242,180,216,52,27,231,217,104,132,55,146,33,5,153,159,41,164,226,80,137,132,133,144,204,39,248,228,46,36,74,81,121,33,201,2,159,164,50,196,39,239,115,197,85,202,191,162,28,31,103,41,64,217,60,8,64,125,251,73,97,31,69,180,226,34,102,36,218,33,112,251,16,105,169,16,254,167,196,94,65,177,48,186,203,200,141,19,45,175,9,156,169,238,178,43,92,181,28,183,123,244,46,255,255,214,41,59,4,152,150,87,40,186,161,121,82,188,103,169,42,187,131,103,186,67,103,119,119,184,163,234,66,71,140,226,22,227,10,31,53,26,5,186,103,82,101,36,10,154,63,10,54,9,70,131,55,168,226,13,90,245,115,144,163,
143,161,127,65,138,6,71,90,185,223,215,196,41,170,126,69,164,44,81,205,143,196,180,145,185,22,186,230,80,248,73,5,247,58,47,76,46,230,196,203,68,112,93,183,5,243,156,205,230,52,85,192,181,0,4,138,31,119,214,183,85,152,116,157,203,146,52,34,10,178,111,193,212,188,89,63,69,133,129,168,122,37,149,166,231,250,100,205,139,246,230,207,15,241,67,193,168,121,102,164,132,66,183,141,37,83,171,45,16,106,173,253,241,24,94,49,133,91,235,150,140,95,227,246,68,64,62,232,111,27,1,5,210,75,41,133,204,227,7,15,16,185,209,112,205,58,172,119,246,17,126,157,199,43,133,126,77,211,160,221,16,100,20,84,52,210,173,5,154,200,16,34,129,166,194,192,48,214,81,1,63,199,140,27,92,55,1,217,112,220,140,128,152,168,112,142,234,6,160,9,216,86,60,88,232,19,112,0,67,84,67,46,103,97,124,102,162,170,50,201,33,172,140,231,103,131,225,92,169,196,148,39,212,158,181,96,159,89,66,39,140,96,75,200,25,62,209,207,248,228,231,181,89,120,36,166,
120,52,161,80,199,113,97,248,176,110,182,86,218,56,13,80,137,68,45,191,160,201,165,77,221,108,166,213,171,108,57,37,49,139,86,133,122,157,167,75,108,37,243,4,255,85,49,5,161,251,225,134,48,142,71,31,201,12,162,114,169,185,2,196,116,174,196,160,188,194,113,63,183,222,211,123,202,33,21,103,248,240,210,197,135,93,27,31,158,123,55,68,2,126,114,2,158,146,104,38,36,164,127,60,68,107,210,227,138,0,170,181,36,64,99,162,59,53,40,175,107,94,44,22,216,138,195,20,91,132,71,216,154,137,123,248,245,223,177,144,20,159,12,209,47,96,9,69,55,66,254,247,63,1,130,225,65,34,107,79,187,111,174,111,63,254,244,243,175,67,84,124,9,160,213,50,88,210,160,33,68,108,44,137,92,213,160,54,17,79,123,230,23,230,116,236,254,7,104,142,219,5,211,187,21,121,13,24,194,72,175,110,232,170,220,49,10,41,48,150,194,144,166,211,44,138,86,86,209,40,72,113,8,141,36,202,32,173,217,108,150,23,58,140,208,223,168,20,214,211,138,175,57,153,228,89,
78,215,101,86,183,226,3,143,86,245,44,135,225,171,73,210,124,180,23,99,154,78,172,74,116,222,74,18,34,73,76,149,222,169,202,77,201,48,112,161,106,76,79,91,119,7,83,57,218,109,216,167,70,55,203,253,175,202,182,176,87,161,57,201,183,182,113,5,141,94,139,116,137,26,140,30,233,136,134,75,140,21,164,252,94,166,94,199,137,20,9,149,215,60,201,212,71,3,0,149,233,134,201,128,129,198,1,72,161,85,197,105,217,10,152,102,42,97,3,174,198,2,167,151,85,154,207,131,220,175,152,172,16,209,3,15,12,230,247,80,22,148,135,116,15,3,63,9,113,3,251,84,153,86,151,26,178,252,108,19,85,48,97,46,38,105,37,62,7,3,240,20,81,102,122,161,128,61,56,18,139,104,245,71,230,193,159,55,5,170,46,175,123,17,236,194,0,20,216,157,150,237,168,166,100,44,68,244,45,198,140,25,15,19,145,231,119,81,145,141,206,187,23,70,83,220,42,102,228,62,43,79,105,6,120,51,109,46,59,235,19,176,96,233,84,248,252,189,232,35,58,225,76,191,40,167,
220,214,134,93,181,212,237,133,69,243,25,201,47,114,173,253,77,92,220,29,33,115,234,254,249,0,20,91,227,210,65,129,110,119,165,158,103,225,241,79,26,42,33,241,247,5,30,63,190,4,145,209,208,72,25,34,243,25,140,190,223,65,253,99,1,196,55,72,4,221,99,141,112,254,12,239,223,81,117,11,141,14,183,30,246,121,52,188,131,241,193,103,67,100,62,115,151,11,190,160,181,203,145,245,138,12,36,122,33,198,7,230,178,133,15,218,240,125,125,79,194,7,122,10,224,131,226,150,131,15,158,101,248,21,140,223,151,26,95,242,254,65,7,16,215,151,115,119,195,15,243,171,7,238,160,198,235,141,71,174,52,207,241,187,122,124,129,223,213,69,242,113,191,97,22,38,17,209,19,145,46,85,91,35,144,191,133,192,199,158,175,95,65,56,229,59,136,226,181,68,195,250,195,227,39,110,148,183,89,124,1,123,154,74,203,75,37,112,60,116,131,172,104,31,188,68,54,175,144,249,53,109,112,120,108,142,30,126,225,81,219,53,38,185,124,253,234,132,175,239,5,227,213,94,24,90,
207,240,252,93,195,243,109,183,11,159,208,187,134,215,143,134,233,219,121,84,184,178,71,52,111,200,18,70,248,246,42,179,79,116,31,228,125,121,180,99,178,100,113,22,215,208,168,208,162,107,249,208,143,57,205,33,41,22,144,35,232,159,250,98,170,239,135,27,55,211,26,196,102,226,60,51,232,143,0,244,104,18,60,2,206,174,164,248,255,57,94,229,6,10,130,255,1,31,120,231,101,

View file

@ -0,0 +1,101 @@
topic "";
[ $$0,0#00000000000000000000000000000000:Default]
[0 $$1,0#96390100711032703541132217272105:end]
[i448;a25;kKO9;2 $$2,0#37138531426314131252341829483380:class]
[H6;0 $$3,0#05600065144404261032431302351956:begin]
[i448;a25;kKO9;2 $$4,0#37138531426314131252341829483370:codeitem]
[l288;2 $$5,5#27521748481378242620020725143825:desc]
[{_}%EN-US
[ {{10000@3 [s0; [*@(229)4 FourierEquation]]}}&]
[s1; &]
[s2;:FourierEquation`:`:class:%- [@(0.0.255)3 class][3 _][*3 FourierEquation
: ][@(0.0.255)3 public][3 _][*3 ExplicitEquation]&]
[s0;2 &]
[s0; [2 FourierEquation represents a nth degree ][^http`:`/`/en`.wikipedia`.org`/wiki`/Fourier`_series^2 F
ourier series][2 like]&]
[s0;2 &]
[s0; [2 -|][2
@@image:1381&209
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>÷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>è
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>鴿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 <EFBFBD><EFBFBD><EFBFBD>踿Е<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>òЁ<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>ъ<EFBFBD>椿
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
騿<EFBFBD><EFBFBD>Ю<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
氿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>Ё<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>Е
<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>í<EFBFBD><EFBFBD>ν<EFBFBD>
<EFBFBD>Ζ<EFBFBD><EFBFBD>
β觿驿<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
З<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ī<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>Χ<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>潿<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>ě<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>耀<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>弿Е<EFBFBD>鮿<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>嫿<EFBFBD>ɡ
 <EFBFBD>
Δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>Ε<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>ГΖ嫿<EFBFBD>Е
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ρ<EFBFBD>妿<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ε<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>便
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Ё<EFBFBD><EFBFBD><EFBFBD><EFBFBD>帿
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
线<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
р<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>÷<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>
]&]
[s0;2 &]
[s1; &]
[ {{10000F(128)G(128)@1 [s0; [*2 Public Member List]]}}&]
[s3;%- &]
[s4;:ExplicitEquation`:`:SetDegree`(int`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* SetD
egree]([@(0.0.255) int]_[*@3 num])&]
[s5; Sets [%-*@3 num] as the number of sin() cos() sets of the Fourier
series.&]
[s5; A Fourier series of degree [%-*@3 num] has 2`*[%-*@3 num] `+ 2 coefficients.&]
[s1; &]
[s0; ]]

View file

@ -0,0 +1,26 @@
TITLE("")
COMPRESSED
120,156,133,121,233,111,98,89,150,231,191,98,169,187,90,153,53,157,89,94,34,50,34,35,190,228,72,93,61,45,205,42,181,230,83,40,186,34,171,210,85,21,170,172,204,156,140,200,153,145,106,74,194,102,223,119,48,24,48,155,217,204,106,176,49,152,125,49,96,48,59,102,177,217,49,54,24,204,106,118,195,60,103,45,83,149,211,82,223,15,239,241,238,59,231,252,206,61,231,190,115,206,61,188,90,250,219,191,93,254,251,229,191,89,254,55,198,139,127,88,255,229,231,223,125,249,254,245,171,101,128,99,5,224,248,244,147,181,79,151,87,150,151,159,173,172,44,175,173,62,91,94,123,250,100,101,101,109,117,117,229,217,234,179,213,149,229,167,47,214,191,250,226,245,171,183,79,158,60,127,249,249,234,211,151,191,249,143,255,245,211,151,171,0,239,42,192,187,246,108,101,237,249,211,181,149,39,171,159,0,151,149,181,149,213,167,171,107,79,86,158,175,126,250,228,249,218,218,243,229,23,191,248,242,243,119,239,94,191,250,167,79,94,62,194,173,61,42,248,244,19,64,141,79,158,174,
60,121,242,100,25,224,123,4,125,178,182,178,182,188,186,246,116,229,211,167,159,188,248,249,250,175,222,126,245,175,1,62,249,55,1,159,1,128,95,127,177,254,246,253,250,111,95,191,250,114,245,249,243,239,249,158,254,253,211,191,89,125,246,20,88,208,147,231,79,158,175,172,61,123,190,10,176,175,46,47,175,46,63,91,5,244,88,123,190,250,244,197,23,235,239,126,241,250,213,239,126,246,251,31,253,244,191,124,244,223,255,121,233,213,210,239,126,183,242,104,176,207,214,150,94,189,91,126,185,244,234,199,159,125,176,186,250,233,135,79,150,254,241,235,239,190,125,187,254,237,79,255,199,119,159,191,127,251,245,87,175,95,255,254,247,127,247,250,213,187,149,151,75,143,183,213,151,47,126,64,240,230,197,155,63,216,225,197,143,62,90,122,245,217,7,203,31,47,127,188,250,244,233,135,107,75,127,180,206,218,210,207,94,191,250,241,218,15,5,47,189,88,122,253,87,228,223,124,247,243,47,223,254,226,255,209,255,244,127,127,3,60,191,125,255,103,77,30,241,151,129,53,255,225,190,244,
106,245,255,19,249,237,250,55,223,174,191,91,255,234,253,187,165,207,151,190,122,255,235,165,47,214,127,245,237,250,58,0,244,47,191,126,255,254,27,64,213,159,188,249,201,250,87,111,62,254,95,111,127,243,246,155,245,47,222,126,254,230,227,175,191,253,213,155,159,60,62,191,249,201,31,197,189,249,217,187,117,224,254,238,95,254,12,176,244,135,137,215,0,228,210,151,111,127,179,254,175,168,242,209,255,121,124,251,217,103,111,127,251,249,175,214,95,0,110,92,249,187,213,229,79,65,96,255,134,14,244,231,49,242,176,154,236,113,42,158,224,111,123,156,16,170,91,184,225,48,131,15,186,10,29,106,234,146,15,119,15,244,29,47,77,175,139,198,15,101,98,215,105,68,135,6,201,124,27,186,141,238,48,2,242,157,81,220,196,253,125,34,129,160,199,36,93,62,166,142,7,197,6,16,190,251,209,3,199,128,31,50,164,121,76,143,81,44,224,146,224,225,20,30,106,95,155,47,123,185,222,93,203,32,184,206,73,247,98,60,135,210,221,116,237,44,230,53,91,141,20,176,213,106,181,234,
98,241,32,182,80,40,80,74,138,201,162,202,234,115,163,220,107,107,93,26,218,177,112,184,93,114,33,167,23,250,214,245,245,181,56,47,20,182,237,81,151,20,18,142,8,138,110,24,206,46,157,207,231,130,19,204,236,104,208,72,149,220,104,58,155,205,14,177,141,87,198,26,63,46,145,68,194,173,168,45,169,202,47,72,157,8,2,135,155,55,245,154,124,127,50,42,99,245,214,217,195,195,176,145,6,95,164,21,153,3,99,167,124,6,43,185,246,194,69,236,73,56,106,115,58,28,119,240,99,180,17,86,184,189,109,223,150,203,78,176,29,92,130,239,152,167,231,211,65,185,84,42,13,135,67,174,129,203,181,120,92,174,17,97,60,150,158,24,80,212,246,57,106,23,59,139,238,114,252,247,245,132,115,196,46,176,88,52,121,170,141,12,115,54,193,224,252,98,129,126,224,57,225,70,131,1,132,221,82,115,247,246,252,214,233,32,16,8,28,54,221,23,164,3,191,223,239,73,224,216,199,213,51,166,236,176,235,70,36,121,14,38,143,215,198,90,110,194,220,58,198,20,17,156,76,7,
208,166,54,46,178,90,119,66,61,79,0,207,49,203,108,15,102,163,145,137,183,45,224,36,18,105,208,188,0,137,69,34,26,149,154,216,60,118,203,226,41,45,165,114,216,62,109,99,46,131,173,96,48,153,76,138,210,143,240,179,217,44,10,143,70,117,42,142,105,36,81,139,197,112,188,190,21,201,227,240,120,235,228,30,87,63,32,201,28,110,5,24,228,128,5,251,131,78,181,195,59,21,65,122,105,101,88,235,167,171,202,40,15,137,76,166,10,207,160,53,84,6,1,197,178,26,119,147,110,197,7,233,156,24,176,219,173,203,163,72,24,175,117,56,28,96,56,78,220,200,91,243,190,76,188,39,145,60,132,83,182,86,254,210,64,38,16,184,251,244,126,68,224,241,235,142,231,243,217,232,46,123,76,205,2,178,80,25,56,116,142,53,233,116,125,149,85,51,239,246,122,206,147,11,198,65,253,190,83,114,59,235,10,85,246,120,48,233,183,107,187,181,24,143,63,24,216,199,228,198,98,62,45,183,88,134,158,139,102,57,237,215,162,80,79,146,23,42,113,54,187,176,224,4,206,230,
112,238,90,173,60,86,127,151,221,0,195,75,181,22,138,204,117,184,205,48,48,154,229,86,201,229,215,253,126,159,146,158,20,233,78,56,85,108,59,181,79,55,192,83,249,6,62,117,19,167,22,119,153,20,202,130,82,24,0,226,91,102,230,152,224,51,10,11,32,34,216,51,43,22,139,54,190,31,143,64,132,57,41,208,45,164,4,110,165,173,233,180,84,42,141,82,113,157,200,62,4,121,122,151,191,60,34,146,72,37,209,161,47,26,178,46,102,189,197,108,212,241,122,189,105,179,246,250,81,92,226,196,205,27,16,118,153,237,4,175,171,191,160,83,100,211,115,27,116,136,66,163,167,87,219,118,91,45,38,134,179,89,172,70,179,57,21,220,215,175,220,33,93,26,132,42,117,246,13,134,241,69,122,255,138,148,233,105,182,185,220,194,197,97,243,0,188,177,49,30,143,137,196,28,209,58,159,236,5,182,7,168,4,24,102,48,24,160,199,195,214,160,211,169,57,147,202,236,189,171,157,42,34,154,213,74,229,210,72,187,247,199,167,138,8,106,43,225,167,214,236,33,235,197,3,4,
47,85,239,42,175,79,46,46,46,42,181,142,160,211,73,120,157,77,48,70,214,127,152,220,199,111,174,139,14,168,190,149,163,232,149,130,197,109,82,217,196,199,37,17,154,226,66,158,241,114,64,131,205,162,82,118,105,136,158,200,176,17,12,158,232,218,62,108,26,69,229,19,76,157,171,197,228,123,141,152,56,212,11,145,204,226,30,193,232,72,61,72,41,178,115,155,116,251,234,240,46,107,188,14,178,26,168,11,82,180,145,209,141,144,224,86,74,93,12,176,25,218,61,2,44,3,147,246,81,12,69,206,60,209,3,219,72,178,21,76,90,172,243,81,217,133,36,7,238,57,199,90,4,183,218,243,18,5,4,233,130,192,80,65,202,113,240,124,222,27,21,225,209,227,84,10,153,2,80,229,98,113,91,124,116,52,26,119,175,88,144,227,114,107,63,39,157,167,78,109,188,202,41,117,176,119,182,173,247,156,28,203,6,77,153,128,58,164,96,92,118,241,67,43,18,81,71,128,207,45,196,49,111,224,217,199,231,9,103,92,21,43,37,164,49,177,136,22,216,82,247,174,131,206,83,44,
70,215,198,91,103,249,112,36,210,193,91,231,57,245,142,48,122,172,214,206,201,183,212,205,195,13,244,176,113,195,135,165,211,105,61,20,10,5,150,165,137,248,192,91,173,194,21,211,34,103,167,176,27,250,70,44,77,186,185,139,202,101,81,90,53,116,41,111,177,88,199,195,59,7,20,221,111,58,224,210,40,5,122,221,60,184,77,122,131,227,58,190,95,139,209,149,89,18,170,69,219,139,9,71,152,7,120,216,133,189,14,237,12,175,193,113,197,89,52,54,142,29,223,215,33,193,91,51,198,75,27,245,66,214,218,142,105,28,13,23,184,71,153,10,119,211,143,36,23,196,66,44,93,75,205,141,33,224,226,81,186,236,73,226,253,38,35,24,166,11,88,103,35,53,55,16,7,243,46,55,139,198,43,57,33,176,173,41,185,224,59,242,89,65,178,135,74,56,239,77,61,213,176,149,123,216,153,14,67,161,144,120,203,203,54,246,17,72,230,34,59,55,107,114,110,5,34,106,43,137,89,85,163,96,63,111,153,49,230,78,50,218,4,39,48,10,68,242,6,68,113,89,12,7,142,142,
20,138,179,99,204,65,157,43,245,214,229,85,253,109,40,169,12,135,195,164,45,55,222,50,145,200,100,168,76,29,202,193,84,154,140,123,36,12,135,108,100,143,85,201,96,80,105,7,195,198,100,209,217,126,220,2,70,50,200,116,229,214,125,70,113,80,79,152,198,61,11,250,161,31,155,0,31,123,42,94,173,138,70,180,185,21,136,95,48,8,4,82,128,193,78,92,46,211,67,126,112,161,50,117,81,37,38,77,47,16,97,183,245,122,75,63,234,191,60,168,76,125,164,90,76,100,158,162,239,142,163,33,192,23,22,96,31,214,194,60,167,233,238,78,25,60,194,120,61,210,132,161,119,237,12,109,92,1,67,195,34,35,58,195,33,189,15,18,57,98,16,220,142,229,114,203,136,137,94,159,102,141,247,231,229,9,76,116,52,238,37,171,105,237,181,190,22,179,84,43,94,162,151,126,161,65,92,109,113,179,245,155,217,129,96,112,19,1,167,97,140,250,233,22,216,67,219,185,113,222,170,172,56,107,222,108,50,101,244,173,144,154,162,38,56,245,55,160,81,217,52,106,23,122,161,137,
213,122,19,225,183,219,164,246,145,249,190,30,239,167,56,140,98,11,72,112,19,67,66,239,242,120,60,165,30,116,159,213,25,214,217,137,219,254,77,100,11,135,207,21,180,33,203,182,154,91,0,65,184,56,164,16,190,71,219,84,183,171,246,33,194,94,191,62,99,66,167,173,82,222,129,37,147,51,49,109,245,172,146,71,71,33,244,246,208,55,212,4,91,121,11,20,77,183,180,70,37,180,47,99,11,157,21,28,247,173,43,138,201,186,3,135,195,189,81,197,126,212,17,159,148,50,230,211,130,34,117,115,209,50,71,221,188,13,103,248,36,229,156,187,233,121,132,231,161,147,72,230,205,128,237,115,18,76,138,105,152,220,131,100,68,20,150,194,227,176,21,211,186,84,236,186,193,131,64,92,46,87,230,50,68,180,89,183,219,109,144,28,29,113,211,93,143,155,47,150,38,164,24,255,238,20,35,39,157,245,59,29,78,45,165,230,181,15,251,36,132,147,193,236,186,206,40,16,108,254,97,200,30,36,116,69,39,140,129,228,47,24,241,45,12,149,66,201,234,202,30,28,224,145,43,101,
222,202,73,138,204,72,172,91,91,66,31,208,111,199,188,126,36,126,207,157,145,77,32,44,246,12,3,98,104,129,12,19,9,222,155,242,230,201,61,1,103,212,236,75,98,242,102,1,174,112,194,176,229,27,75,188,188,31,160,163,9,249,198,62,45,130,221,35,237,195,237,69,32,99,194,32,51,72,120,84,222,232,52,117,1,44,199,175,85,15,36,82,4,24,14,214,237,64,116,55,4,201,236,6,182,8,221,198,165,224,99,178,249,90,108,241,134,66,173,113,61,75,64,76,239,111,183,147,187,126,186,52,99,155,148,125,209,83,51,59,66,208,40,49,44,82,187,180,209,45,39,224,50,115,199,130,180,206,186,126,2,143,227,108,183,93,165,253,179,42,36,109,93,88,245,100,247,97,49,2,36,0,252,220,212,245,142,58,229,93,196,67,180,130,146,100,179,231,89,3,113,209,17,55,183,51,7,211,34,148,174,62,159,101,10,44,225,245,13,155,112,124,55,217,128,115,56,182,97,223,3,141,207,72,71,40,15,30,118,227,92,208,195,144,201,253,109,249,174,2,129,201,211,90,209,225,
116,120,215,188,56,164,170,174,103,6,196,13,77,145,186,16,45,26,59,85,97,236,84,66,171,131,117,126,112,182,231,38,151,202,229,86,179,217,60,40,51,164,211,186,221,166,178,76,100,116,173,86,123,52,23,154,50,194,69,151,206,194,232,118,65,246,98,16,41,173,184,51,252,205,2,52,122,77,155,14,26,197,9,154,198,7,34,2,7,188,177,237,190,225,20,57,121,72,104,8,164,145,219,163,83,43,156,191,113,224,183,111,29,205,119,13,104,180,127,152,151,47,84,68,200,156,100,42,249,99,58,146,104,247,6,119,197,172,131,237,108,118,159,205,96,11,207,133,26,170,12,82,13,177,88,248,233,68,74,115,91,249,165,233,9,202,141,132,23,203,206,99,221,189,64,165,82,137,128,253,9,132,81,53,246,190,192,168,110,140,43,132,13,44,132,120,231,176,146,161,2,130,98,91,87,59,219,20,81,142,59,24,41,53,181,201,148,107,207,193,20,108,0,142,64,48,157,97,170,209,186,152,207,246,193,80,56,103,226,53,221,222,226,199,234,225,253,237,121,205,167,114,34,55,105,200,
179,75,160,64,20,154,174,208,135,134,249,131,49,118,67,190,60,210,224,98,97,171,145,42,131,199,60,89,226,109,105,183,195,35,84,189,66,160,180,1,235,88,167,14,184,37,178,91,84,169,229,193,76,95,212,195,32,124,67,190,98,84,184,29,121,89,38,53,195,52,227,246,55,4,165,222,17,91,126,146,211,105,6,210,66,1,23,136,1,163,114,208,41,241,43,179,89,199,3,29,237,18,227,91,248,24,8,123,201,106,108,153,70,244,182,0,111,65,13,247,117,53,121,175,56,119,105,88,39,1,42,129,167,98,134,29,6,36,15,201,208,218,99,185,168,192,208,72,19,247,119,81,130,77,4,10,230,211,241,49,174,246,30,231,92,30,62,231,131,225,117,92,161,158,27,95,179,247,187,240,147,189,112,64,239,203,207,98,48,83,36,106,231,103,188,16,183,187,103,151,138,16,59,138,140,238,200,22,8,208,100,100,144,68,220,69,142,231,8,122,60,100,25,11,89,210,161,205,109,228,195,34,147,163,188,193,224,171,48,168,178,27,56,18,83,35,223,139,138,241,102,48,136,211,180,210,
228,144,133,40,14,111,231,72,34,12,218,134,146,204,157,7,67,135,4,38,178,4,24,221,134,54,116,26,221,43,182,193,233,72,85,29,155,160,173,54,115,219,75,197,203,21,136,244,241,37,69,221,198,96,48,178,51,142,202,58,139,214,79,236,8,138,8,72,13,18,104,59,192,196,5,14,218,97,219,157,169,149,51,201,105,129,177,115,14,120,190,74,22,89,184,232,196,130,136,226,16,74,96,24,86,160,163,231,58,210,189,243,7,69,61,46,33,90,173,40,43,137,154,32,159,58,14,51,80,38,224,190,179,10,138,5,146,113,178,48,240,206,21,238,44,204,189,104,145,211,100,210,137,107,231,132,76,245,10,53,44,137,24,133,199,139,69,165,0,73,50,246,121,176,105,255,61,68,27,103,230,114,185,14,38,165,52,111,57,115,9,243,148,65,23,241,180,110,90,148,55,145,103,141,124,10,93,82,83,225,136,132,65,17,17,56,116,240,21,126,93,228,48,80,118,47,180,251,251,147,97,11,111,13,65,224,81,125,126,118,208,195,158,219,213,180,115,110,146,64,24,239,247,248,60,59,
77,201,164,21,25,97,62,159,47,220,105,52,207,163,54,91,82,121,137,196,210,162,85,116,176,160,162,48,44,236,192,142,37,75,159,186,112,26,137,11,146,246,184,99,101,194,49,99,166,11,83,109,51,164,160,170,237,115,205,249,137,157,117,21,153,20,85,124,65,78,80,28,100,14,110,221,152,164,36,7,196,99,9,87,28,209,238,67,226,24,87,26,109,150,73,36,54,20,94,119,151,205,160,114,176,43,102,151,208,212,87,130,42,30,143,199,79,144,113,86,245,198,144,91,228,114,157,92,173,221,120,163,8,37,32,100,50,153,135,204,110,246,135,119,89,234,157,239,196,193,75,64,52,20,254,140,148,58,188,61,151,243,52,30,65,83,136,20,168,115,20,38,69,22,112,80,170,254,61,199,253,214,126,170,130,48,80,227,10,150,72,184,176,51,152,134,43,44,166,136,162,165,8,49,129,211,246,48,155,185,146,86,97,30,225,204,102,217,59,60,65,207,75,63,220,162,28,195,44,15,211,1,113,114,121,52,4,74,212,20,142,109,48,247,45,154,91,44,125,147,12,85,220,72,25,198,
51,28,24,109,227,25,145,82,192,109,80,106,85,212,36,34,15,69,187,161,93,159,9,237,131,143,48,172,40,215,195,153,6,8,199,93,41,172,39,14,106,93,98,208,162,202,184,134,32,54,188,8,207,89,32,230,217,33,219,11,106,101,1,204,38,111,43,219,59,51,210,118,112,8,36,208,192,44,224,69,163,178,13,167,137,91,232,116,58,148,214,14,18,137,140,94,23,181,197,98,124,1,195,5,82,101,180,107,38,240,224,107,167,45,30,146,213,69,214,197,28,194,153,139,214,5,23,192,120,28,176,17,157,64,241,59,219,179,218,69,45,235,3,13,143,169,137,133,34,145,3,89,181,161,205,190,10,143,38,22,233,51,92,101,27,143,234,94,143,218,197,190,50,182,205,54,77,184,168,64,178,1,47,160,18,193,77,22,13,44,182,26,174,16,129,88,218,84,191,104,192,76,243,197,168,220,50,15,57,35,3,42,88,13,178,144,183,91,187,69,231,81,37,136,200,177,55,129,204,46,44,235,118,125,39,96,130,78,16,60,170,241,15,252,27,202,66,20,188,111,28,79,27,59,105,45,
82,56,34,187,36,133,86,203,58,27,119,13,205,222,241,238,2,223,133,72,237,190,78,216,120,205,24,87,108,21,230,241,16,162,164,146,221,28,140,46,87,43,93,13,64,212,242,54,164,86,140,10,125,91,221,253,177,208,92,216,119,225,20,109,26,39,18,129,120,136,20,138,203,225,213,168,79,16,130,1,194,211,164,77,6,13,223,189,135,185,1,218,198,163,80,142,237,196,65,90,15,100,206,217,46,152,87,2,42,66,215,131,90,112,76,206,7,157,27,162,27,26,155,173,200,206,236,137,112,111,220,187,6,59,103,168,180,203,14,247,67,49,81,81,132,135,218,39,162,112,151,37,101,246,234,88,72,180,107,99,30,132,95,123,54,190,226,143,253,247,32,78,0,11,246,128,253,118,242,22,117,107,139,46,105,141,175,92,246,230,193,193,168,83,186,219,133,55,48,227,140,174,22,45,137,196,15,152,109,189,114,74,30,222,197,55,132,33,87,155,38,116,76,108,13,161,79,192,213,157,216,78,176,13,38,244,122,151,18,204,228,119,109,141,112,244,108,187,125,8,5,138,54,121,155,163,
222,101,106,15,208,244,184,146,130,146,49,145,202,1,9,92,192,115,32,170,115,153,80,230,64,152,93,16,203,195,196,187,205,64,193,157,35,36,185,136,149,166,168,6,146,81,87,176,143,54,117,61,224,196,156,73,95,236,170,119,42,205,108,196,120,31,207,109,169,165,232,2,80,52,184,172,51,145,219,84,216,83,118,169,38,251,78,167,38,103,85,250,215,143,213,218,9,193,124,43,48,2,229,31,67,158,57,75,112,4,56,183,123,202,218,60,18,68,138,23,36,28,136,188,121,88,187,164,103,145,248,54,156,169,217,61,144,40,249,250,173,20,174,167,89,72,72,179,138,157,127,163,48,21,85,139,121,153,223,45,129,22,58,136,235,206,237,211,55,122,105,254,195,8,163,108,219,182,110,84,185,172,92,141,34,8,164,8,4,176,10,120,17,153,99,14,138,184,126,20,123,174,132,10,188,248,10,234,86,68,119,115,133,29,79,162,171,227,204,52,118,33,80,121,17,47,98,58,132,144,205,236,90,198,80,56,44,36,108,159,28,204,40,115,224,72,236,79,105,202,145,189,171,243,140,151,
74,135,3,153,86,238,5,124,112,198,216,207,66,73,7,141,59,127,194,78,147,167,75,162,196,72,235,75,230,166,216,83,239,185,69,165,61,218,58,198,129,188,178,1,5,204,217,134,234,85,61,178,250,96,131,45,84,106,52,154,83,14,65,123,158,98,1,138,204,4,88,214,102,4,8,253,193,202,206,72,151,207,231,242,228,129,163,207,163,73,236,198,225,221,165,51,61,73,202,198,179,226,185,66,118,113,58,229,69,207,192,144,33,45,157,87,115,42,27,166,211,238,201,184,147,186,58,166,0,7,158,0,195,114,105,108,220,49,82,243,228,195,164,168,11,240,144,65,23,90,182,97,185,29,237,180,208,187,98,241,116,12,27,23,17,242,125,163,69,193,232,70,71,215,210,122,219,44,231,227,128,90,181,162,129,225,34,195,102,38,158,96,85,137,23,205,224,69,48,40,156,81,57,186,195,120,15,130,35,145,12,27,231,41,167,205,113,116,231,190,60,170,33,85,84,90,17,42,195,197,138,152,141,157,242,49,112,220,45,151,54,75,167,192,167,86,42,45,248,2,129,96,134,19,195,76,
46,98,75,175,215,207,99,195,52,213,115,182,189,175,7,138,5,254,76,83,201,80,175,28,84,184,148,163,62,177,249,124,205,6,168,161,246,241,91,157,78,94,99,181,90,59,161,225,3,5,29,237,18,8,4,51,16,221,206,103,186,235,214,116,208,84,92,232,105,24,156,82,166,150,199,59,157,45,148,64,112,4,6,51,192,163,75,230,128,125,220,30,4,188,94,73,31,193,225,251,60,198,43,186,18,113,51,184,0,159,226,133,161,188,129,120,150,155,143,53,87,12,109,53,30,160,147,250,249,219,176,59,130,172,110,25,188,135,213,192,214,166,159,174,44,222,69,34,142,200,149,229,162,104,114,117,24,198,100,50,217,104,240,27,140,170,107,44,3,9,216,158,134,255,64,21,146,107,60,22,76,48,116,194,185,203,144,148,4,194,157,42,103,98,216,34,53,34,40,17,167,198,59,241,77,208,9,115,116,119,119,87,9,86,42,65,246,113,82,158,74,21,171,155,144,14,81,83,153,78,167,254,161,179,229,32,80,40,66,115,134,233,229,198,123,167,103,61,146,108,104,158,14,70,163,212,
200,27,34,248,192,85,219,104,50,129,193,96,231,45,219,142,230,8,206,67,49,4,164,240,60,233,102,88,35,217,172,217,161,151,107,56,0,57,80,50,23,39,68,147,201,116,201,162,13,173,133,4,243,176,9,151,205,164,84,170,76,30,221,188,90,236,176,116,220,146,27,77,163,90,240,140,36,139,101,2,34,0,219,24,147,87,146,241,150,145,200,219,89,228,36,112,167,19,191,168,84,171,131,26,61,234,14,164,37,225,98,67,17,78,217,52,39,72,47,89,28,4,210,164,8,142,69,116,129,140,70,134,136,2,97,158,202,98,153,207,129,243,83,84,107,84,110,166,26,240,73,120,110,80,103,182,237,118,59,37,138,168,134,92,80,212,222,20,228,128,113,232,244,107,103,169,68,98,179,31,236,52,144,215,23,226,152,24,51,26,173,90,175,215,203,228,178,32,214,100,91,23,142,220,130,18,3,18,133,28,107,166,108,243,8,214,35,204,150,26,20,181,48,75,215,18,135,251,108,211,193,133,113,168,212,132,56,232,97,231,204,83,252,62,168,179,1,134,15,110,207,21,115,224,216,113,
120,120,56,217,178,214,92,247,138,157,197,69,136,101,232,49,56,37,113,169,212,247,136,205,45,112,206,52,222,157,223,7,25,128,46,80,18,44,152,3,53,99,226,208,195,9,29,80,210,126,61,166,49,163,67,64,194,174,232,92,84,111,148,232,219,118,248,238,176,84,23,28,30,238,210,48,214,137,88,234,8,0,224,0,219,166,35,107,157,63,8,176,151,23,62,95,45,194,119,103,178,250,242,225,25,243,224,216,8,24,241,106,96,247,115,79,79,103,15,15,116,229,77,54,227,214,70,120,142,57,138,43,220,128,195,96,151,204,90,182,36,38,8,5,59,120,226,81,183,130,0,33,109,64,116,216,229,68,169,46,241,165,161,11,53,71,11,192,42,234,246,184,135,58,196,81,116,109,252,195,116,120,171,26,110,111,57,82,169,173,209,24,221,104,70,107,188,174,39,233,65,163,80,251,251,251,46,23,143,113,0,75,118,90,155,182,162,251,144,42,139,223,72,144,152,217,162,186,3,134,242,254,170,23,252,135,46,249,159,154,235,255,248,193,202,234,243,15,255,195,247,215,207,86,254,212,
104,95,93,250,111,223,119,186,151,254,243,250,111,127,190,254,237,210,127,122,251,238,253,159,186,236,107,47,127,244,209,247,130,158,188,124,241,195,254,247,99,163,253,159,215,223,255,195,247,45,237,55,31,188,253,234,253,155,15,127,208,115,95,250,159,111,191,125,255,221,231,95,190,254,235,201,175,223,126,241,250,103,175,126,188,244,103,238,215,31,252,229,123,64,210,227,235,207,214,150,190,250,238,183,175,63,124,132,127,250,242,145,248,221,210,171,31,125,244,167,249,165,207,223,45,189,255,245,250,227,239,71,173,191,254,229,210,187,183,95,125,240,225,210,47,190,126,7,92,223,61,82,3,115,143,20,127,221,52,255,248,143,242,254,253,15,230,31,169,255,216,158,255,75,148,95,3,48,171,111,126,252,151,83,111,254,221,210,42,0,179,254,203,95,2,230,120,108,238,127,252,23,127,72,0,38,125,253,250,255,2,51,225,137,135,

View file

@ -0,0 +1,13 @@
topic "LinearEquation";
[ $$0,0#00000000000000000000000000000000:Default]
[0 $$1,0#96390100711032703541132217272105:end]
[i448;a25;kKO9;2 $$2,0#37138531426314131252341829483380:class]
[{_}%EN-US
[ {{10000@3 [s0; [*@(229)4 LinearEquation]]}}&]
[s1; &]
[s2;:LinearEquation`:`:class:%- [@(0.0.255)3 class][3 _][*3 LinearEquation
: ][@(0.0.255)3 public][3 _][*3 ExplicitEquation]&]
[s0;2 &]
[s0; [2 LinearEquation represents a line like y `= 2`*x `- 1.]&]
[s0; [2 By definition LinearEquation number of coefficients is 2.]&]
[s1; ]]

View file

@ -0,0 +1,5 @@
TITLE("LinearEquation")
COMPRESSED
120,156,133,144,75,107,2,49,16,128,255,202,64,181,168,84,153,199,174,251,162,32,165,158,90,218,67,233,41,4,119,213,44,4,183,171,221,7,40,226,127,111,212,82,209,75,115,152,33,204,124,223,76,162,160,211,193,7,188,195,127,78,252,108,242,172,45,26,173,208,17,228,136,104,44,17,18,98,64,132,194,1,138,239,17,9,51,5,28,48,161,31,155,114,169,149,245,188,48,201,216,79,86,47,239,81,194,142,101,199,74,64,18,250,66,30,143,93,32,33,246,89,60,10,57,242,66,145,16,227,69,145,213,181,86,251,217,161,59,125,27,126,126,128,130,253,158,142,139,76,4,84,141,9,168,193,164,199,28,245,61,120,181,165,201,170,233,119,155,53,118,93,106,125,56,220,107,85,83,2,199,196,73,124,93,79,227,244,108,143,187,67,80,147,30,142,112,196,190,223,23,248,157,41,48,211,106,32,55,90,136,65,95,117,111,218,121,97,23,151,246,233,118,227,238,182,249,219,227,56,29,221,139,207,25,20,223,26,43,179,169,76,109,202,166,134,12,10,87,115,97,101,96,7,233,35,
112,58,216,66,58,4,26,233,11,255,180,131,165,201,109,105,79,248,141,173,108,191,230,166,130,117,14,139,181,201,115,183,202,201,108,107,224,179,195,125,136,214,63,168,70,143,77,

View file

@ -0,0 +1,26 @@
topic "PolynomialEquation";
[ $$0,0#00000000000000000000000000000000:Default]
[0 $$1,0#96390100711032703541132217272105:end]
[i448;a25;kKO9;2 $$2,0#37138531426314131252341829483380:class]
[H6;0 $$3,0#05600065144404261032431302351956:begin]
[i448;a25;kKO9;2 $$4,0#37138531426314131252341829483370:codeitem]
[l288;2 $$5,5#27521748481378242620020725143825:desc]
[{_}%EN-US
[ {{10000@3 [s0; [*@(229)4 PolynomialEquation]]}}&]
[s1; &]
[s2;:PolynomialEquation`:`:class:%- [@(0.0.255)3 class][3 _][*3 PolynomialEquation
: ][@(0.0.255)3 public][3 _][*3 ExplicitEquation]&]
[s0;2 &]
[s0; [2 PolynomialEquation represents a nth degree polynomial like
y `= 3`*x`^2 `+ 2`*x `- 1]&]
[s0;2 &]
[s1; &]
[ {{10000F(128)G(128)@1 [s0; [*2 Public Member List]]}}&]
[s3;%- &]
[s4;:ExplicitEquation`:`:SetDegree`(int`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* SetD
egree]([@(0.0.255) int]_[*@3 num])&]
[s5; Sets [%-*@3 num] as the exponent of the highest power of the independent
variables.&]
[s5; A polynomial of degree [%-*@3 num] has [%-*@3 num] `+ 1 coefficients.&]
[s1; &]
[s0; ]]

View file

@ -0,0 +1,6 @@
TITLE("PolynomialEquation")
COMPRESSED
120,156,133,147,219,142,218,48,16,134,95,101,164,93,42,160,11,178,199,54,9,137,42,81,105,105,43,245,40,173,122,101,185,36,128,1,107,67,66,73,216,178,66,188,123,199,156,10,91,164,205,133,227,195,252,243,207,124,78,52,220,222,178,59,118,195,94,121,162,123,59,73,87,89,101,52,35,5,39,69,183,35,186,140,51,22,112,206,4,6,76,40,201,185,64,228,1,6,200,153,138,108,62,54,218,73,25,198,41,170,248,241,243,247,110,140,164,69,210,138,128,139,80,9,46,177,67,3,23,28,21,10,201,67,236,202,80,136,144,69,163,44,45,75,163,63,117,98,111,39,124,129,170,67,101,116,20,151,82,50,210,121,83,41,184,96,40,20,239,170,78,52,180,83,151,95,51,148,175,26,6,100,88,140,173,171,236,220,232,12,195,112,167,83,119,234,6,3,69,13,201,80,134,92,4,33,146,28,25,67,22,32,213,33,66,84,209,216,150,35,163,55,131,109,173,255,173,245,243,1,52,108,54,220,3,235,9,208,37,139,65,55,123,117,196,110,67,194,143,34,123,206,139,185,75,179,
254,239,85,90,185,34,55,102,187,125,99,116,201,99,240,47,140,163,255,99,146,40,217,211,136,106,45,208,189,58,107,179,54,42,213,16,112,96,36,96,96,116,83,92,73,15,17,152,11,197,98,53,204,220,232,159,164,191,94,208,218,85,167,122,124,21,140,154,223,191,65,227,181,172,75,187,88,218,210,230,85,9,41,228,213,12,198,118,186,180,22,22,167,80,200,220,163,133,103,72,222,129,72,154,235,228,23,66,242,22,144,166,144,180,128,95,216,236,123,63,82,251,80,231,24,54,62,238,198,30,63,18,164,50,118,149,195,87,59,31,218,37,124,113,101,117,100,39,98,226,226,39,50,142,94,246,227,217,61,216,234,126,87,95,82,119,121,149,52,94,96,132,39,183,172,86,105,102,46,55,11,55,54,3,221,132,147,218,212,207,207,41,147,63,166,59,206,87,115,211,240,246,42,246,193,37,232,90,235,184,15,105,9,213,204,130,93,47,138,156,120,65,49,217,173,103,110,58,179,101,69,192,254,80,51,135,77,151,143,237,130,126,25,31,247,148,46,93,58,204,108,217,62,100,126,127,
14,151,4,7,226,231,94,179,244,210,155,128,115,24,21,118,50,33,34,254,178,218,103,95,26,81,53,230,47,221,31,37,84,

View file

@ -1,4 +1,4 @@
topic "";
topic "ScatterDraw";
[ $$0,0#00000000000000000000000000000000:Default]
[0 $$1,0#96390100711032703541132217272105:end]
[i448;a25;kKO9;2 $$2,0#37138531426314131252341829483380:class]
@ -7,12 +7,12 @@ topic "";
[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item]
[H6;0 $$6,0#05600065144404261032431302351956:begin]
[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param]
[{_}%EN-US
[ {{10000@3 [s0; [*@(229)4 ScatterDraw]]}}&]
[s1; &]
[s2;:ScatterDraw`:`:class:%- [@(0.0.255)3 class][3 _][*3 ScatterDraw]&]
[s0; &]
[ {{4916:5084f0;g0;^ [s0; [2
[{_}
[ {{10000@3 [s0;%% [*@(229)4 ScatterDraw]]}}&]
[s1;%% &]
[s2;:ScatterDraw`:`:class: [@(0.0.255)3 class][3 _][*3 ScatterDraw]&]
[s0;%% &]
[ {{4916:5084f0;g0;^ [s0;%% [2
@@image:1845&1099
€€€€€€€€€<EFBFBD><EFBFBD><EFBFBD><EFBFBD>€<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ソ<EFBFBD><EFBFBD><EFBFBD>
@ -620,7 +620,7 @@ topic "";
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
]]
::= [s0;> [*R1
::= [s0;>%% [*R1
@@image:1906&1076
<EFBFBD>€€€€€€€€€<EFBFBD>€<EFBFBD><EFBFBD>€<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>ソ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>€€€
@ -1174,44 +1174,307 @@ topic "";
<EFBFBD>ソ<EFBFBD><EFBFBD>€<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>р<EFBFBD>
<EFBFBD><EFBFBD>р<EFBFBD><EFBFBD><EFBFBD>р<EFBFBD><EFBFBD>
]]}}&]
[s0; &]
[s0; [2 Versatile 2D scatter graph control. It does not require GUI
[s0;%% &]
[s0;%% [2 Versatile 2D scatter graph control. It does not require GUI
so it works in command line programs.]&]
[s0;2 &]
[s0; [2 In case of GUI it can be used ][^topic`:`/`/ScatterCtrl`/src`/ScatterCtrl`$en`-us`#ScatterCtrl`:`:class^2 S
[s0;2%% &]
[s0;%% [2 In case of GUI it can be used ][^topic`:`/`/ScatterCtrl`/src`/ScatterCtrl`$en`-us`#ScatterCtrl`:`:class^2 S
catterCtrl][2 that is based on ScatterDraw.]&]
[s1;%% &]
[s0;%% [2 ScatterDraw data is included in ][^topic`:`/`/ScatterDraw`/src`/DataSource`$en`-us^2 D
ataSource][2 .]&]
[s0;%% &]
[s1; &]
[s0;%- &]
[ {{10000F(128)G(128)@1 [s0; [*2 Constructor Detail]]}}&]
[s6;%- &]
[s5;:ScatterDraw`:`:ScatterDraw`(`):%- [* ScatterDraw]()&]
[s3; Initializes the class.&]
[s1;%- &]
[s0;%- &]
[ {{10000F(128)G(128)@1 [s0; [*2 Public Member List]]}}&]
[s6;%- &]
[s5;:ScatterDraw`:`:SetColor`(const Color`&`):%- [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
[ {{10000F(128)G(128)@1 [s0;%% [*2 Constructor Detail]]}}&]
[s6; &]
[s5;:ScatterDraw`:`:ScatterDraw`(`): [* ScatterDraw]()&]
[s3;%% Initializes the class.&]
[s1; &]
[s0; &]
[ {{10000F(128)G(128)@1 [s0;%% [*2 Public Member List]]}}&]
[s6; &]
[s5;:ScatterDraw`:`:WhenZoomScroll: [_^Callback^ Callback]_[* WhenZoomScroll]&]
[s3;%% Callback called when the user does a zoom or a scroll.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:WhenSetRange: [_^Callback^ Callback]_[* WhenSetRange]&]
[s3;%% Callback called when some of the control ranges is changed.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:SetSize`(Size`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&]_[* SetSize
]([_^Size^ Size]_[*@3 sz])&]
[s3;%% Sets the control size with [%-*@3 sz].&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetSize`(`)const: [@(0.0.255) virtual] [_^Size^ Size]_[* GetSize]()_[@(0.0.255) c
onst]&]
[s3;%% Returns the control size.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:SetColor`(const Color`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetColor]([@(0.0.255) const]_[_^Color^ Color][@(0.0.255) `&]_[*@3 color])&]
[s3; Sets [%-*@3 color] .as graph background color.&]
[s1; &]
[s6;%- &]
[s5;:ScatterDraw`:`:SetTitle`(const String`&`):%- [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
[s3;%% Sets [%-*@3 color] .as graph background color.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetTitle`(const String`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetTitle]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 title])&]
[s3; Sets [%-*@3 title] as graph title.&]
[s3;%% Sets [%-*@3 title] as graph title.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetTitle`(`): [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[* Get
Title]()&]
[s3;%% Returns graph title.&]
[s1; &]
[s6;%- &]
[s5;:ScatterDraw`:`:GetTitle`(`):%- [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[* G
etTitle]()&]
[s3; Returns graph title.&]
[s1;%- &]
[s6;%- &]
[s5;:ScatterDraw`:`:SetTitleFont`(const Font`&`):%- [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
[s6; &]
[s5;:ScatterDraw`:`:SetTitleFont`(const Font`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetTitleFont]([@(0.0.255) const]_[_^Font^ Font][@(0.0.255) `&]_[*@3 fontTitle])&]
[s3; Sets [%-*@3 fontTitle] as title font.&]
[s1; &]
[s6;%- &]
[s5;:ScatterDraw`:`:SetTitleColor`(const Color`&`):%- [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
[s3;%% Sets [%-*@3 fontTitle] as title font.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetTitleColor`(const Color`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetTitleColor]([@(0.0.255) const]_[_^Color^ Color][@(0.0.255) `&]_[*@3 colorTitle])&]
[s3; Sets [%-*@3 colorTitle] as title text color.&]
[s3;%% Sets [%-*@3 colorTitle] as title text color.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetTitleFont`(`): [_^Font^ Font][@(0.0.255) `&]_[* GetTitleFont]()&]
[s3;%% Returns the title font.&]
[s1; &]
[s1; ]]
[s6; &]
[s5;:ScatterDraw`:`:SetLabels`(const String`&`,const String`&`,const String`&`): [@(0.0.255) v
oid]_[* SetLabels]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 xLabel],
[@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 yLabel], [@(0.0.255) const]_[_^String^ S
tring][@(0.0.255) `&]_[*@3 yLabel2]_`=_`"`")&]
[s3;%% Sets the labels of the horizontal axis ([%-*@3 xLabel]), vertical
axis ([%-*@3 yLabel]) and secondary vertical axis ([%-*@3 yLabel2]).&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetLabelX`(const String`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetLabelX]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 xLabel])&]
[s3;%% Sets [%-*@3 xLabel] as the label of the horizontal axis.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetLabelX`(`): [@(0.0.255) const]_[_^String^ String]_`&[* GetLabelX]()&]
[s3;%% Returns the label of the horizontal axis.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:SetLabelY`(const String`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetLabelY]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 yLabel])&]
[s3;%% Sets [%-*@3 yLabel] as the label of the vertical axis.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetLabelY`(`): [@(0.0.255) const]_[_^String^ String]_`&[* GetLabelY]()&]
[s3;%% Returns the label of the vertical axis.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:SetLabelY2`(const String`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetLabelY2]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 yLabel])&]
[s3;%% Sets [%-*@3 yLabel] as the label of the secondary vertical axis.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetLabelY2`(`): [@(0.0.255) const]_[_^String^ String]_`&[* GetLabelY2](
)&]
[s3;%% Returns the label of the secondary vertical axis.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:SetLabelsFont`(const Font`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetLabelsFont]([@(0.0.255) const]_[_^Font^ Font][@(0.0.255) `&]_[*@3 fontLabels])&]
[s3;%% Sets [%-*@3 fontLabels] as the labels font.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetLabelsFont`(`): [_^Font^ Font]_[* GetLabelsFont]()&]
[s3;%% Returns the font of the labels.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:SetLabelsColor`(const Color`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetLabelsColor]([@(0.0.255) const]_[_^Color^ Color][@(0.0.255) `&]_[*@3 colorLabels])&]
[s3;%% Sets [%-*@3 colorLabels] as the color of the labels.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetPlotAreaColor`(const Color`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetPlotAreaColor]([@(0.0.255) const]_[_^Color^ Color][@(0.0.255) `&]_[*@3 p`_a`_color])
&]
[s3;%% Sets [%-*@3 p`_a`_color] as the background color of plot area.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetAxisColor`(const Color`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetAxisColor]([@(0.0.255) const]_[_^Color^ Color][@(0.0.255) `&]_[*@3 axis`_color])&]
[s3;%% Sets [%-*@3 axis`_color] as the color of the axis.&]
[s0;%% -|
@@image:756&406
<EFBFBD><EFBFBD>×<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>竿<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>蹿<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetAxisWidth`(const int`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetAxisWidth]([@(0.0.255) const]_[@(0.0.255) int`&]_[*@3 axis`_width])&]
[s3;%% Sets [%-*@3 axis`_width] as the width of the axis in pixels.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetGridColor`(const Color`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetGridColor]([@(0.0.255) const]_[_^Color^ Color][@(0.0.255) `&]_[*@3 grid`_color])&]
[s3;%% Sets [%-*@3 grid`_color] as the color of the grid.&]
[s0;%% -|
@@image:737&400
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>屿<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>Ф<EFBFBD>
鴿<EFBFBD><EFBFBD>ξ<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>
&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetGridWidth`(const int`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetGridWidth]([@(0.0.255) const]_[@(0.0.255) int`&]_[*@3 grid`_width])&]
[s3;%% Sets [%-*@3 grid`_width] as the width of the grid in pixels.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:ShowVGrid`(const bool`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* ShowVGrid]([@(0.0.255) const]_[@(0.0.255) bool`&]_[*@3 show])&]
[s3;%% If [%-*@3 show] is true the vertical grid is shown&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:ShowHGrid`(const bool`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* ShowHGrid]([@(0.0.255) const]_[@(0.0.255) bool`&]_[*@3 show])&]
[s3;%% If [%-*@3 show] is true the horizontal grid is shown&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:ShowLegend`(const bool`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* ShowLegend]([@(0.0.255) const]_[@(0.0.255) bool`&]_[*@3 show]_`=_[@(0.0.255) true])&]
[s3;%% If [%-*@3 show] is true it show the graphs name, color and style.&]
[s0;%% -|
@@image:1418&293
<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>ǐ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
н<EFBFBD><EFBFBD><EFBFBD>М齿<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>Г<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Η<EFBFBD><EFBFBD>Β<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>Щ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>ǐ×<EFBFBD>ш<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>涿<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>γ姿<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
é<EFBFBD>
<EFBFBD>ζ
Д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>τ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>á<EFBFBD><EFBFBD>
á<EFBFBD>
&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetShowLegend`(`): [@(0.0.255) bool]_[* GetShowLegend]()&]
[s3;%% Returns true if legend is shown.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:SetLegendWidth`(const int`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetLegendWidth]([@(0.0.255) const]_[@(0.0.255) int`&]_[*@3 width])&]
[s3;%% Sets the [%-*@3 width] in pixels of every legend element.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetMode`(int`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&]_[* SetMode](
[@(0.0.255) int]_[*@3 `_mode]_`=_MD`_ANTIALIASED)&]
[s3;%% Sets the drawing [%-*@3 mode]. Values are:&]
[s0;l288;i150;O0;%% [2 Drawn with Draw]&]
[s0;l448;i150;O0; [2 MD`_DRAW]&]
[s0;l288;i150;O0; [2 Drawn with PAINTER]&]
[s0;l448;i150;O0; [2 MD`_ANTIALIASED-|`= MODE`_ANTIALIASED,]&]
[s0;l448;i150;O0; [2 MD`_NOAA -|`= MODE`_NOAA,]&]
[s0;l448;i150;O0; [2 MD`_SUBPIXEL-|`= MODE`_SUBPIXEL]&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetMode`(`): [@(0.0.255) int]_[* GetMode]()&]
[s3;%% Returns the drawing mode as documented in SetMode().&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:FitToData`(bool`): [@(0.0.255) void]_[* FitToData]([@(0.0.255) bool]_[*@3 Y
]_`=_[@(0.0.255) false])&]
[s3;%% Rescales the x axis (and y axis if [%-*@3 Y] is true) to show
all graphs data.on the control.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:Zoom`(double`,bool`,bool`): [@(0.0.255) void]_[* Zoom]([@(0.0.255) doub
le]_[*@3 scale], [@(0.0.255) bool]_[*@3 hor]_`=_[@(0.0.255) true], [@(0.0.255) bool]_[*@3 ver
]_`=_[@(0.0.255) true])&]
[s3;%% Zooms plots by [%-*@3 scale] factor horizontally if [%-*@3 hor]
is true and vertically if [%-*@3 ver] is true.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:Scroll`(double`,double`): [@(0.0.255) void]_[* Scroll]([@(0.0.255) doub
le]_[*@3 factorX], [@(0.0.255) double]_[*@3 factorY])&]
[s3;%% Scrolls plots horizontally by [%-*@3 factorX] and vertically
by factor [%-*@3 factorY].&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetRange`(double`,double`,double`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetRange]([@(0.0.255) double]_[*@3 rx], [@(0.0.255) double]_[*@3 ry],
[@(0.0.255) double]_[*@3 ry2]_`=_[@3 100])&]
[s3;%% Sets the horizontal ([%-*@3 rx]), vertical ([%-*@3 ry]) and secondary
vertical ([%-*@3 ry2]) axis ranges.&]
[s3;%% Range is the visible with of the plot in series units (not
in pixels).&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetXRange`(`)const: [@(0.0.255) double]_[* GetXRange]()[@(0.0.255) cons
t]&]
[s3;%% Returns the x axis range.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:GetYRange`(`)const: [@(0.0.255) double]_[* GetYRange]()[@(0.0.255) cons
t]&]
[s3;%% Returns the y axis range.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:GetY2Range`(`)const: [@(0.0.255) double]_[* GetY2Range]()[@(0.0.255) co
nst]&]
[s3;%% Returns the secondary y axis range.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:Opacity`(double`): [_^ScatterDraw^ ScatterDraw]_`&[* Opacity]([@(0.0.255) d
ouble]_[*@3 opacity]_`=_[@3 1])&]
[s3;%% Sets the series [%-*@3 opacity] .from 1 (opaque) to 0 (transparent/invisible).&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:Legend`(const String`): [_^ScatterDraw^ ScatterDraw]_`&[* Legend]([@(0.0.255) c
onst]_[_^String^ String]_[*@3 legend])&]
[s3;%% Sets the series [%-*@3 legend].&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:Legend`(int`,const String`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* Legend]([@(0.0.255) int]_[*@3 index], [@(0.0.255) const]_[_^String^ String]_[*@3 legend])
&]
[s3;%% Sets the [%-*@3 legend] for [%-*@3 index] series.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetLegend`(int`): [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_
[* GetLegend]([@(0.0.255) int]_[*@3 index])&]
[s3;%% Returns the legend for [%-*@3 index] series.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SaveAsMetafile`(const char`*`)const: [@(0.0.255) void]_[* SaveAsMetaf
ile]([@(0.0.255) const]_[@(0.0.255) char`*]_[*@3 file])_[@(0.0.255) const]&]
[s0; [*@(28.0.200)1 Windows]&]
[s3;%% Saves the control as a windows metafile in [%-*@3 file].&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetCount`(`): [@(0.0.255) int]_[* GetCount]()&]
[s3;%% Returns the number of series loaded.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:IsEmpty`(`): [@(0.0.255) bool]_[* IsEmpty]()&]
[s3;%% Returns true if there are no series.&]
[s1; &]
[s1;%% ]]

View file

@ -0,0 +1,340 @@
TITLE("ScatterDraw")
COMPRESSED
120,156,148,187,199,143,171,123,154,30,246,175,52,160,0,89,16,132,115,206,189,183,239,237,238,205,44,180,48,224,133,23,94,54,218,82,75,106,9,3,143,100,99,102,12,47,4,9,197,156,83,49,231,34,89,44,230,92,204,169,152,89,204,44,22,115,206,57,231,236,239,244,140,13,27,48,44,136,40,212,87,100,241,253,133,55,60,239,243,252,200,239,247,191,250,135,255,240,203,63,251,242,15,190,252,87,30,191,253,23,127,250,119,127,252,223,255,234,111,255,240,251,47,128,197,87,192,226,55,191,254,225,55,95,190,126,249,242,243,215,175,95,126,248,246,243,151,31,126,250,241,235,215,31,190,125,251,250,243,183,159,191,125,253,242,211,111,255,244,31,255,237,31,126,255,151,63,254,248,203,239,254,248,237,167,223,253,47,255,195,255,248,155,223,125,3,108,191,1,182,63,252,252,245,135,95,126,250,225,235,143,223,126,13,252,250,250,195,215,111,63,125,251,225,199,175,191,124,251,205,143,191,252,240,195,47,95,126,251,111,254,234,143,127,243,55,127,248,253,95,125,251,229,151,63,27,
253,0,24,125,251,249,39,96,240,31,127,249,241,151,175,63,252,252,203,55,192,246,219,151,47,223,190,252,252,237,167,175,63,254,240,203,183,159,126,251,111,255,244,55,255,230,15,191,255,215,63,126,251,179,201,143,255,236,199,127,240,245,7,96,89,95,126,254,205,151,159,127,252,249,167,31,127,0,108,190,254,250,43,240,246,47,223,167,2,150,255,219,255,248,191,254,245,127,248,227,95,253,127,45,243,167,255,234,50,127,254,242,219,191,252,219,63,253,135,63,252,254,191,255,245,239,190,59,229,215,223,221,248,211,175,1,103,253,26,152,226,199,31,191,0,102,223,93,243,227,15,192,50,190,253,240,211,215,223,252,244,235,223,254,235,63,253,251,191,252,143,127,191,177,191,252,250,245,219,215,223,253,235,175,63,255,14,152,243,191,252,151,255,242,207,129,133,253,221,118,127,6,134,250,250,5,48,252,246,21,120,13,24,232,231,175,63,253,230,203,111,126,250,229,235,47,95,126,248,249,199,111,63,253,12,248,247,127,251,227,95,255,17,152,253,63,253,203,255,252,171,223,255,234,63,253,
167,175,223,195,244,23,63,252,234,247,127,243,229,119,255,232,31,253,234,247,255,244,47,254,201,183,111,191,249,239,126,252,213,255,244,111,254,248,183,127,251,167,191,254,23,127,253,199,255,227,15,127,248,207,255,249,31,255,225,247,127,243,245,251,59,190,255,241,237,119,191,253,127,252,251,95,253,246,95,253,157,231,127,251,171,223,255,197,63,249,242,207,191,252,243,111,63,253,244,223,253,240,171,191,143,198,15,191,250,151,127,248,253,63,253,225,255,53,224,247,65,190,252,253,104,192,34,126,252,205,215,95,255,246,167,47,191,252,248,239,190,252,238,223,127,249,221,255,252,127,175,230,219,175,254,226,47,254,242,63,252,241,223,255,233,183,95,127,249,241,167,127,252,245,203,111,126,131,134,208,192,24,208,195,255,245,56,132,56,19,46,226,66,9,68,232,33,9,253,244,62,91,126,156,147,225,57,117,211,11,106,4,10,41,250,131,204,126,64,10,193,79,129,39,80,58,245,150,34,214,82,74,138,231,52,231,42,195,13,31,229,136,17,34,209,20,177,252,124,63,175,239,197,201,214,100,
38,119,206,189,179,245,224,96,179,153,92,115,89,239,190,206,145,253,62,73,152,146,82,208,104,152,87,240,223,112,125,4,174,58,16,189,22,60,52,169,249,26,211,87,107,79,10,186,164,251,238,189,16,120,206,240,30,247,240,0,129,99,25,230,217,186,66,145,101,28,78,103,69,53,145,191,190,82,76,150,231,73,185,224,197,177,54,198,199,231,51,109,29,235,25,146,88,190,251,182,245,228,235,4,20,74,80,125,165,95,195,29,189,44,131,144,120,93,12,219,70,10,25,186,128,217,34,170,100,215,125,191,181,55,228,50,147,249,110,131,128,137,231,199,199,213,245,180,237,116,59,29,136,113,94,119,9,112,121,135,209,152,125,172,18,250,73,94,119,30,188,105,92,7,239,99,46,102,121,121,121,233,121,97,152,5,149,74,173,188,31,215,215,254,146,30,137,70,81,182,205,123,216,235,245,46,148,238,121,213,22,176,105,58,20,52,236,35,122,28,135,52,238,141,212,242,102,203,67,104,250,251,253,230,192,11,211,233,52,92,225,219,251,247,165,177,38,206,169,89,51,161,80,104,66,216,
45,138,190,169,115,90,54,155,147,76,67,159,187,207,214,116,118,163,161,104,128,246,112,51,95,173,198,11,230,11,146,36,31,249,6,239,199,24,36,22,75,14,191,209,177,18,139,133,145,216,223,204,245,155,8,216,39,224,64,153,120,1,70,39,52,28,251,78,137,146,120,252,159,161,183,219,248,118,236,59,132,183,155,239,214,58,196,34,17,47,158,231,190,157,198,75,135,107,212,61,44,219,22,54,40,248,204,31,177,65,32,40,232,211,35,163,160,3,65,55,7,124,62,157,86,219,104,8,199,130,69,243,91,85,57,68,117,29,123,119,246,101,113,57,109,199,140,64,32,80,209,232,116,94,29,153,106,177,90,157,247,243,204,110,73,156,231,86,55,193,45,150,72,214,213,99,57,86,50,142,173,9,152,72,40,108,200,144,60,156,103,86,115,218,243,251,190,31,69,182,120,205,217,250,45,74,53,13,210,11,239,148,218,139,179,2,215,235,169,23,99,190,190,62,188,86,120,52,26,124,188,95,246,249,247,22,255,229,35,201,119,45,91,126,7,159,117,61,239,249,218,38,216,139,192,115,
133,34,145,102,94,177,250,166,160,26,215,121,114,174,34,10,162,25,174,168,34,234,214,53,79,210,111,213,156,231,170,202,182,73,27,157,252,99,179,199,44,116,43,235,252,91,253,206,53,77,24,148,135,183,99,163,241,244,138,225,226,220,231,137,161,210,101,166,100,149,130,161,159,124,184,161,26,253,62,66,97,88,101,146,238,230,75,67,110,54,78,138,31,241,188,140,109,154,30,100,148,118,40,132,111,174,234,245,58,57,45,10,213,29,7,146,153,158,228,218,247,217,124,175,14,147,210,110,163,180,89,20,178,44,219,79,215,251,133,218,30,74,248,46,219,178,13,207,127,186,174,134,243,231,197,185,253,204,176,181,129,211,126,134,51,213,95,131,217,138,105,202,6,151,226,36,81,208,113,114,111,144,138,197,162,233,227,15,176,234,120,0,116,62,66,203,157,243,110,170,37,162,75,84,142,137,154,167,79,247,245,123,159,160,69,46,214,107,136,15,137,183,61,91,43,60,54,251,44,218,207,170,21,156,9,18,85,107,247,243,218,172,56,111,250,16,138,237,91,85,82,189,250,8,238,142,
252,213,113,88,52,82,79,30,52,220,30,7,234,10,218,79,139,27,139,72,168,139,100,155,103,126,49,2,95,225,52,94,61,220,128,130,45,151,47,222,193,48,12,202,82,247,120,47,151,203,244,85,125,136,155,235,141,13,204,195,94,188,95,142,252,117,118,84,177,109,163,179,181,167,213,106,169,249,228,10,119,236,2,118,222,135,243,89,198,241,203,145,152,241,122,193,23,168,164,119,175,128,234,183,35,140,122,70,69,172,217,104,172,20,235,84,222,222,43,134,9,183,42,67,141,243,234,181,44,11,229,34,86,142,171,195,113,217,218,231,46,103,91,14,73,53,188,252,211,253,66,162,119,58,157,214,98,58,182,77,75,175,114,153,121,226,190,93,95,165,138,135,15,25,5,60,75,198,87,31,31,31,133,209,124,172,113,7,235,199,114,111,145,87,87,75,108,249,92,169,236,140,46,183,163,175,143,245,38,141,4,72,149,127,191,49,21,240,86,93,97,148,197,217,230,113,204,138,204,170,177,160,89,141,245,160,105,212,239,247,173,179,23,109,135,240,1,157,27,14,131,53,31,3,105,12,
109,152,107,67,185,42,17,80,228,149,104,101,90,242,227,128,52,24,109,135,38,0,136,136,176,135,204,226,124,62,223,172,56,73,55,74,215,132,28,65,99,39,49,172,196,156,143,155,225,71,197,139,210,189,244,34,20,89,148,166,172,131,86,247,235,252,110,137,63,31,215,189,48,73,124,89,109,1,47,62,61,235,223,201,47,149,119,154,202,84,254,28,105,179,35,136,250,3,233,86,215,156,172,224,25,240,166,66,237,81,145,26,62,56,206,74,14,25,33,16,95,56,28,86,61,191,147,45,84,142,97,213,79,148,231,78,24,100,48,78,197,212,75,228,198,30,34,240,239,171,168,70,239,59,18,220,151,7,12,191,221,106,105,49,206,115,102,215,120,68,250,72,243,163,23,62,72,61,129,122,160,29,71,219,120,152,16,213,149,230,135,56,250,164,121,32,86,189,199,92,142,22,86,59,142,171,231,60,147,105,111,223,78,155,97,165,254,72,34,121,140,4,112,189,171,122,40,63,60,25,3,22,22,189,3,111,228,119,111,239,214,117,223,178,123,22,220,16,82,246,43,97,72,87,86,44,
139,211,134,63,60,4,247,36,81,40,181,16,76,20,21,10,20,216,106,7,112,245,123,61,145,128,63,202,50,18,114,235,209,190,159,45,170,213,46,102,31,38,137,4,245,142,181,207,107,71,22,121,112,101,97,72,213,29,78,205,121,59,18,155,200,61,35,233,189,83,225,162,28,100,201,202,238,95,80,24,156,28,136,222,56,147,7,0,12,86,208,45,174,34,80,127,57,232,81,110,202,19,232,205,14,46,147,20,51,57,202,178,104,130,161,234,138,117,37,174,145,216,179,143,89,233,117,88,234,254,57,157,253,205,24,116,230,133,162,52,46,254,161,5,84,143,135,70,58,22,83,28,165,167,227,203,191,196,217,41,27,50,184,89,128,101,50,153,37,12,166,215,150,84,14,229,138,92,3,112,89,178,191,238,231,68,147,26,26,21,226,219,21,117,221,227,17,94,63,109,166,118,16,235,173,120,197,37,79,182,153,26,251,253,208,27,90,78,142,27,29,231,221,164,18,68,150,112,81,75,58,152,202,99,24,9,79,146,11,183,5,234,172,17,154,183,225,114,227,219,88,54,235,165,230,153,
186,22,20,218,153,87,212,53,50,178,46,94,10,17,4,126,15,13,138,167,22,106,5,120,197,197,70,93,151,85,180,130,6,211,131,22,104,189,190,109,194,154,163,230,50,36,228,247,89,238,205,128,216,84,67,64,47,121,169,44,219,200,171,43,30,177,74,93,50,182,228,158,228,146,222,92,39,221,132,168,133,208,60,111,50,201,37,10,52,145,169,125,64,37,108,193,20,115,122,145,87,128,243,154,85,28,199,122,149,34,119,156,126,130,12,212,105,175,41,198,243,156,164,8,85,93,115,48,232,79,45,216,126,185,108,234,121,130,217,108,102,193,239,245,142,134,194,230,2,251,14,201,5,183,160,181,64,157,118,13,145,207,39,68,183,141,7,159,184,146,29,38,129,52,183,226,23,99,45,24,64,243,225,200,33,254,94,5,254,123,65,177,33,184,78,97,149,139,40,37,65,115,28,162,182,232,120,181,75,26,196,184,114,233,141,73,162,116,181,137,200,88,147,219,135,19,10,40,152,91,38,95,17,22,160,237,216,131,90,252,176,64,225,3,24,12,198,190,204,187,239,151,117,64,9,211,
56,22,96,250,69,209,107,109,102,35,144,27,76,227,102,22,196,208,141,69,200,82,56,209,161,239,211,50,185,188,116,87,237,101,229,122,233,216,192,109,82,197,14,183,65,48,214,17,172,15,47,236,167,165,112,54,111,198,115,237,112,254,120,17,18,42,100,150,210,30,181,186,223,174,86,116,37,145,133,72,203,83,20,97,129,78,36,93,107,146,15,178,184,196,113,79,238,144,227,186,43,31,118,78,248,173,113,240,108,17,126,2,47,70,53,205,42,90,6,189,5,67,40,52,204,11,117,115,1,24,198,18,116,197,57,59,51,212,185,93,214,113,192,117,215,234,202,30,247,1,2,0,179,16,251,184,135,66,60,86,89,77,75,198,138,94,56,202,202,43,96,58,174,126,193,131,158,218,171,56,73,64,255,222,217,217,251,148,184,177,159,85,134,209,140,132,224,126,185,63,44,108,252,56,172,15,133,159,33,81,136,66,240,210,64,19,111,107,204,194,186,118,88,12,237,71,52,26,109,171,128,169,14,189,254,67,56,102,51,18,210,173,194,118,176,239,166,135,235,167,58,179,0,131,193,23,
106,127,19,61,196,229,72,176,125,77,134,0,249,59,26,176,105,183,128,120,56,52,15,109,182,38,22,44,113,60,63,55,52,21,6,244,33,22,14,35,213,238,61,106,198,81,55,41,156,150,190,160,102,65,77,22,162,47,212,8,111,223,88,161,184,192,135,216,76,212,179,139,218,113,207,57,220,110,138,91,237,71,171,119,211,248,19,60,177,91,163,19,106,130,216,26,133,204,108,42,34,155,234,145,29,250,91,254,21,30,109,232,65,130,186,110,214,40,35,240,106,238,102,195,7,24,89,48,44,216,14,245,241,160,10,203,244,113,181,4,254,206,93,19,133,8,125,190,244,206,187,103,63,23,184,7,182,105,129,137,60,63,26,110,207,186,185,99,9,47,134,133,244,170,84,118,32,236,166,101,43,204,10,243,245,121,149,92,102,49,83,43,194,75,105,90,84,99,182,65,181,133,116,216,105,133,61,0,49,56,40,242,178,151,70,37,184,157,75,106,206,224,252,227,138,222,224,203,4,69,103,53,133,177,128,112,134,6,242,176,165,2,111,60,222,224,15,21,92,155,226,48,153,56,180,123,
23,113,9,235,152,2,142,186,15,119,46,224,232,68,190,24,135,133,146,104,63,172,119,48,33,117,92,224,97,220,173,237,33,60,215,146,200,36,189,238,56,245,116,58,181,6,94,35,204,189,108,7,29,24,141,227,173,158,207,80,37,137,64,187,106,133,101,221,171,46,58,143,151,64,26,21,39,56,14,171,47,157,39,163,122,152,215,216,248,238,118,165,176,53,241,166,165,65,41,76,65,55,97,94,98,181,157,206,174,27,240,194,186,77,182,190,31,62,51,30,243,180,132,243,171,10,175,195,76,37,30,230,67,226,56,178,254,228,247,88,5,151,235,222,92,223,110,42,110,240,250,193,28,211,141,208,120,18,75,125,59,205,107,78,115,193,108,174,244,81,18,222,203,97,245,46,241,156,55,183,227,167,188,81,44,22,203,172,114,19,0,52,203,49,245,9,100,252,34,62,100,25,49,244,176,248,195,13,244,245,181,49,200,96,193,16,211,40,106,210,40,52,158,242,56,59,211,147,193,113,13,53,143,245,99,253,241,241,146,228,197,140,220,36,191,152,64,96,182,138,163,121,98,81,65,168,
73,14,185,10,0,145,188,135,179,118,180,101,143,213,168,35,219,247,243,158,89,22,174,30,87,121,166,23,36,72,141,8,65,185,133,149,199,177,133,193,56,99,232,117,106,213,89,143,53,236,85,171,98,124,94,47,217,237,194,98,217,133,63,113,166,96,217,150,77,151,16,161,98,91,158,173,122,205,107,245,54,77,205,19,136,132,198,47,146,239,116,11,141,38,172,29,249,233,196,181,133,37,228,96,125,63,33,221,14,6,151,109,143,18,176,158,133,47,32,128,197,46,80,230,135,53,207,238,125,152,91,160,187,187,78,96,125,156,42,16,26,151,87,140,161,171,237,29,249,178,21,136,171,225,99,44,152,192,208,62,60,187,175,132,208,70,177,157,249,242,157,197,180,108,162,6,168,7,178,116,101,55,34,217,24,252,24,22,29,192,241,28,100,116,65,33,194,22,157,4,83,15,195,23,159,26,149,45,43,243,112,125,71,97,217,166,88,90,5,249,94,151,229,138,246,195,99,93,107,69,51,6,63,246,174,240,217,207,83,105,214,115,140,24,31,1,242,109,41,234,29,209,133,86,106,160,
94,22,134,134,167,146,1,58,188,161,174,7,58,152,49,147,149,36,0,180,132,110,66,128,223,155,30,199,9,85,61,192,250,110,3,44,243,232,113,118,36,125,23,218,168,66,39,248,50,28,77,255,157,183,47,51,226,184,246,69,97,121,83,121,241,244,32,89,146,232,212,89,114,185,220,75,181,100,250,141,134,172,32,58,16,61,7,0,15,224,208,93,75,2,212,77,207,181,90,21,169,29,14,120,157,230,131,128,198,220,225,111,92,87,139,227,205,125,135,221,20,212,200,118,170,115,206,228,227,89,213,78,12,153,214,161,222,2,28,57,220,27,205,117,47,30,173,210,84,109,87,43,228,245,196,115,139,155,177,49,58,127,202,42,104,136,140,13,54,148,210,82,10,27,68,75,168,14,49,241,253,101,179,176,92,245,242,135,193,195,194,48,233,116,187,2,76,13,171,62,12,53,120,228,77,78,245,57,21,208,52,24,76,45,189,14,64,125,247,10,225,88,74,150,153,197,98,1,180,190,142,113,249,193,0,202,67,135,101,57,150,126,114,5,6,154,221,156,240,168,105,223,18,241,50,35,
236,30,89,209,185,93,189,36,4,126,111,18,168,31,80,187,91,240,100,226,35,165,172,18,203,14,164,85,240,253,70,181,172,222,182,150,142,157,116,31,118,103,111,108,51,78,141,245,241,3,56,195,168,19,38,206,242,55,17,108,28,51,118,214,36,179,246,174,119,206,124,171,163,125,95,221,31,93,150,13,13,116,167,74,43,91,174,152,46,232,187,31,18,160,26,201,201,147,188,107,43,45,94,211,196,157,93,122,236,56,187,194,13,241,206,145,152,97,121,65,90,91,154,248,96,5,200,193,197,25,243,70,11,194,42,196,67,96,86,56,3,210,192,121,228,30,14,109,130,241,133,45,57,174,129,4,32,177,153,238,219,133,61,135,57,64,146,177,83,240,248,128,64,66,253,82,162,59,212,66,48,222,142,253,88,145,161,91,247,98,18,254,229,242,232,10,134,66,201,43,192,102,85,230,154,119,190,70,174,64,134,38,148,130,34,191,145,160,7,75,24,13,47,242,77,211,210,145,99,93,115,184,92,209,89,36,2,132,224,181,199,100,207,87,100,12,88,115,118,110,30,103,12,4,226,128,
80,131,150,129,172,5,153,30,49,80,126,253,74,220,9,15,24,208,131,198,12,116,189,158,153,109,70,207,241,119,216,232,96,20,134,176,12,221,245,180,25,47,212,187,42,24,211,126,248,46,42,110,199,200,75,36,194,208,181,159,220,16,237,12,94,167,178,88,49,22,250,10,221,189,74,124,93,104,28,90,126,40,213,65,10,176,94,175,127,126,59,84,88,166,39,255,73,108,1,135,137,7,68,87,112,44,113,24,12,36,166,99,172,27,81,250,235,137,63,214,248,74,77,230,240,248,249,64,215,230,22,227,44,0,186,11,124,247,141,250,0,210,130,4,231,102,161,217,28,81,237,155,33,17,108,135,229,131,32,59,151,127,187,158,154,48,81,69,36,178,122,93,215,51,161,229,149,74,165,183,238,103,65,86,161,132,199,123,196,172,186,157,171,241,22,5,250,69,250,214,118,55,141,217,70,116,144,8,219,132,147,130,182,130,195,19,161,150,131,101,181,223,239,15,150,82,163,236,229,181,176,232,243,102,0,66,60,239,56,180,10,203,106,179,101,91,35,45,230,179,4,71,77,29,151,195,
194,162,228,53,201,165,94,121,43,163,80,254,94,240,255,55,94,95,255,124,253,52,44,107,7,136,14,187,90,119,27,32,0,41,143,103,130,161,219,14,10,124,25,239,64,106,216,72,245,27,153,90,245,103,131,130,20,188,56,234,63,236,131,250,25,167,42,137,95,217,75,54,237,77,122,219,38,225,186,205,56,68,229,180,254,60,184,194,112,232,160,20,150,117,79,198,160,224,153,96,154,198,28,55,120,228,13,96,46,176,87,80,96,135,66,185,240,148,192,207,21,155,49,44,227,243,58,10,191,238,98,202,15,71,155,228,188,62,188,178,220,181,34,178,105,179,211,111,117,45,72,181,30,150,243,1,143,39,64,133,97,34,104,243,92,4,201,154,211,64,129,162,101,48,175,14,240,101,33,216,204,174,89,32,53,183,142,159,78,203,233,251,189,36,235,50,30,194,92,236,20,65,72,67,81,131,164,201,77,133,93,79,159,82,155,197,229,125,72,178,140,248,193,240,131,5,147,81,70,223,207,69,226,22,237,56,239,32,132,214,73,157,186,238,116,110,173,44,39,190,28,24,62,191,75,181,
117,226,117,52,137,221,174,201,30,155,21,73,58,3,245,91,146,224,169,159,9,67,99,181,74,173,147,31,235,5,77,169,214,246,11,144,223,207,90,226,218,251,201,197,178,102,98,201,22,44,96,156,98,153,173,39,164,20,232,210,76,195,232,229,6,14,115,35,182,141,63,93,135,222,249,28,108,12,130,40,40,237,22,48,135,128,63,10,214,20,116,224,187,83,149,160,144,38,122,152,153,114,159,20,222,37,193,97,241,225,216,126,74,125,27,161,213,199,242,241,208,22,216,146,130,195,247,121,112,31,130,13,68,33,243,33,70,202,250,211,75,99,238,42,175,159,200,185,5,192,130,3,239,159,148,75,55,2,58,131,163,127,62,253,9,244,80,120,140,248,113,187,170,62,62,118,53,54,138,35,150,145,152,158,1,217,198,130,29,209,183,164,123,67,29,176,254,28,127,111,78,176,238,231,58,115,92,61,20,103,43,162,37,156,209,187,159,201,218,125,142,19,141,151,103,249,110,215,140,198,195,239,166,237,18,238,86,216,168,171,212,149,168,144,249,40,104,210,198,244,224,180,217,120,16,233,
92,77,242,61,49,94,83,19,176,185,254,185,170,154,89,146,156,167,160,197,190,21,113,247,14,19,110,161,20,215,148,243,147,103,34,95,238,17,124,121,30,215,36,136,69,192,10,189,104,88,11,229,114,77,86,148,1,113,150,228,160,122,65,172,84,86,127,69,138,226,180,181,9,58,25,57,160,8,209,59,185,72,194,207,52,110,60,235,181,49,139,162,209,41,9,95,218,253,28,230,176,113,118,176,159,3,221,237,187,215,218,83,228,251,118,129,5,8,254,255,175,160,191,115,203,231,235,75,156,181,1,180,190,41,232,81,149,205,181,131,181,141,171,199,139,185,207,7,166,117,213,41,22,153,84,83,83,22,192,208,138,103,55,123,203,214,170,201,227,117,94,43,182,51,90,49,85,108,166,191,183,78,74,205,171,5,121,39,223,90,181,226,52,182,237,48,221,213,151,101,31,75,206,115,181,197,170,210,183,241,53,6,68,111,130,213,21,227,145,78,44,17,227,173,34,169,252,56,47,165,140,178,116,60,57,244,52,160,12,189,52,30,33,5,245,122,103,152,84,125,138,241,106,210,149,164,
220,41,74,121,39,88,160,123,55,166,174,27,0,155,57,117,85,129,153,194,42,235,134,77,246,96,99,47,216,30,234,124,119,158,187,231,87,30,46,215,252,168,217,202,183,232,195,123,237,208,239,36,251,69,157,207,165,174,188,229,94,143,172,37,145,105,113,196,228,85,223,115,210,82,26,203,53,132,24,141,138,148,48,66,132,135,181,157,88,206,23,65,8,97,69,41,27,82,248,57,10,68,227,246,166,213,83,207,221,66,58,53,170,234,172,185,137,207,205,63,92,32,180,213,187,67,159,137,38,244,251,91,145,219,5,28,6,197,190,201,60,119,119,10,199,149,78,3,244,122,133,235,186,88,151,184,55,76,30,104,162,100,219,120,107,65,28,71,109,253,53,166,56,144,231,11,12,64,246,247,186,61,169,232,227,78,66,65,76,164,109,146,10,26,75,244,182,160,44,157,24,66,105,69,169,117,151,66,3,118,60,32,125,17,27,200,130,50,11,118,131,161,227,213,143,230,220,215,29,240,117,246,128,160,48,163,237,118,187,39,87,200,136,231,102,50,253,108,126,82,239,202,155,136,158,79,
128,32,104,84,170,128,201,159,93,92,15,244,141,188,228,80,27,86,11,64,36,210,133,189,135,156,15,125,204,233,197,101,38,71,108,48,139,5,239,17,62,107,191,93,198,70,0,60,137,54,219,240,28,14,207,171,103,231,39,57,221,19,150,51,236,134,59,249,229,224,98,159,223,239,3,82,157,31,48,88,94,226,114,75,101,65,21,68,229,226,42,252,8,18,168,97,247,202,122,233,217,4,164,204,150,199,39,117,153,137,163,176,66,81,4,11,236,89,119,124,74,116,157,183,112,131,131,202,193,247,106,217,93,111,28,200,37,2,3,94,173,229,57,103,163,45,189,150,194,230,207,71,100,112,100,207,247,202,8,155,177,42,135,243,155,67,4,30,206,38,143,241,156,236,191,59,71,2,132,119,59,175,174,66,206,231,29,123,122,144,104,233,202,226,217,91,252,244,108,27,36,72,81,63,209,144,221,35,140,40,87,95,187,91,17,237,78,219,61,51,252,249,200,46,132,63,67,253,142,209,194,249,49,243,100,200,141,23,78,42,87,142,63,159,157,203,108,112,178,166,194,67,140,158,91,31,
110,245,249,230,21,232,34,60,19,92,245,134,149,154,34,215,189,151,55,218,164,99,9,153,148,13,159,241,113,120,145,16,79,246,82,78,92,110,184,5,27,247,232,12,150,240,70,202,52,35,95,85,220,229,242,27,10,207,222,106,14,2,39,14,172,70,223,36,166,21,4,157,187,61,208,3,245,170,147,229,116,251,6,213,17,251,232,238,200,36,167,177,80,51,130,58,222,205,100,41,132,82,66,183,153,21,59,19,130,32,192,53,183,155,255,86,114,62,139,197,158,180,6,129,231,52,34,180,55,85,25,46,86,149,94,3,111,87,134,125,175,206,95,249,39,89,227,233,89,76,179,51,31,167,189,203,147,117,176,91,236,123,172,136,130,127,228,34,45,210,69,62,66,33,223,168,78,238,211,101,228,127,153,15,221,4,230,252,26,188,226,70,217,171,227,19,59,212,131,156,215,225,177,10,77,151,99,139,227,206,59,126,218,124,232,174,244,136,239,227,21,178,51,53,140,149,231,73,193,187,77,121,52,57,254,94,29,63,119,22,44,244,228,35,254,220,166,156,36,164,108,125,43,59,236,29,
34,208,33,178,76,114,198,233,53,36,128,145,161,207,7,150,183,190,162,121,133,14,114,251,120,194,4,100,134,168,105,77,213,200,84,121,155,98,152,95,168,208,140,103,120,79,36,188,21,33,219,124,158,82,47,75,189,147,66,60,127,136,58,205,210,131,236,45,140,243,12,5,68,8,101,195,179,194,47,155,116,168,98,247,45,225,216,230,198,125,91,39,135,18,62,188,94,54,65,148,239,19,177,68,226,163,191,127,202,50,164,169,84,126,232,24,230,254,237,17,238,150,239,29,6,23,78,2,87,234,215,27,217,240,24,77,60,30,39,74,120,129,111,232,158,11,13,235,91,71,66,182,95,112,183,188,184,25,65,232,68,57,203,146,202,117,130,209,38,154,94,151,188,99,63,169,29,199,254,232,46,60,101,163,68,32,76,234,75,204,166,48,115,95,201,7,253,149,99,25,243,192,110,180,32,5,14,52,198,193,62,71,92,89,75,77,59,56,93,80,87,76,57,222,228,89,122,27,97,193,144,101,208,56,151,248,3,152,119,34,192,219,177,131,17,225,26,24,140,120,89,52,121,165,74,5,
137,32,1,186,130,121,92,155,214,43,203,248,185,111,52,198,117,179,247,204,145,218,147,170,57,159,177,143,133,74,190,173,152,168,24,243,7,180,217,152,198,62,38,174,27,90,9,58,63,5,222,207,227,137,131,130,22,39,62,204,243,74,157,88,191,92,46,42,131,187,133,172,170,136,228,183,89,57,181,24,55,250,209,198,36,95,180,143,107,202,249,83,215,195,13,10,243,48,176,66,92,240,40,15,228,90,15,198,214,52,118,199,232,252,217,241,10,51,213,227,154,37,223,187,189,96,161,147,238,153,137,238,250,98,233,222,75,83,188,177,49,33,152,40,32,255,253,54,55,12,143,205,145,23,243,131,91,44,47,233,163,74,222,139,228,40,195,232,35,145,207,221,78,104,223,208,131,2,242,16,61,187,209,247,228,254,182,21,78,216,76,91,50,88,115,130,194,62,204,195,130,238,81,132,212,248,91,165,251,130,107,89,0,185,214,60,55,61,26,232,99,17,253,152,135,103,96,102,164,253,241,221,99,123,153,5,114,36,139,145,234,184,183,95,78,183,206,233,89,214,16,89,205,171,237,115,
83,38,150,148,11,175,151,176,100,233,171,29,185,226,143,99,130,14,86,160,218,133,52,122,103,82,55,154,104,195,85,113,206,122,23,130,185,228,18,165,56,64,94,233,235,75,78,51,102,244,8,157,142,33,232,225,82,131,153,13,120,207,244,202,16,82,88,149,217,15,71,163,99,123,94,205,189,124,26,250,188,164,90,251,250,74,137,156,131,88,38,68,10,102,191,131,163,41,78,175,121,115,72,98,149,112,146,232,133,120,218,193,75,41,99,109,61,235,54,116,242,113,82,82,62,231,61,206,85,105,145,227,116,43,224,182,117,254,88,129,229,201,33,173,161,45,154,86,60,32,205,51,209,134,72,245,97,196,233,194,236,44,162,121,216,23,160,229,23,186,42,245,53,175,83,74,26,135,180,18,19,92,134,173,48,239,48,77,224,225,111,231,93,123,26,137,116,15,233,103,225,59,153,109,158,41,11,40,29,56,59,62,167,73,78,182,12,75,32,184,111,160,171,237,130,195,227,131,182,79,79,220,99,126,61,115,151,189,160,185,85,60,115,246,252,195,168,195,230,13,139,235,93,64,16,180,
59,154,136,3,203,60,73,140,75,236,58,100,209,230,239,244,253,75,197,68,39,149,194,197,80,96,43,181,96,67,37,3,208,54,58,219,249,222,179,35,30,225,157,237,213,121,80,144,23,225,71,187,133,37,183,184,34,211,211,131,192,253,25,165,187,243,203,202,163,7,54,13,65,202,120,233,164,201,67,54,67,7,3,201,166,66,166,4,111,87,13,155,198,16,53,204,175,170,1,45,229,89,30,172,89,180,229,172,247,222,208,154,225,8,169,10,13,116,30,91,47,41,248,228,247,226,44,146,216,90,187,2,132,89,157,22,248,253,126,227,74,235,32,114,5,84,230,103,215,83,115,28,116,178,91,51,127,115,24,202,180,57,175,31,210,82,39,141,183,99,36,186,215,155,85,237,83,253,130,189,179,236,139,178,166,165,154,100,58,139,152,219,95,239,34,152,252,109,75,178,76,30,21,204,245,243,242,124,216,185,88,155,160,120,103,197,220,188,47,81,80,171,175,177,148,100,218,96,209,99,176,199,69,100,13,67,146,52,146,22,53,147,127,176,229,102,92,84,121,183,255,90,173,126,226,124,
3,4,244,38,203,171,215,152,214,200,132,223,96,3,92,14,108,26,139,157,189,204,243,171,223,84,13,11,160,183,140,212,191,91,235,141,217,130,253,149,53,29,125,4,214,251,138,44,50,39,36,225,14,42,177,110,207,222,175,129,54,117,153,64,122,101,219,176,4,76,188,163,41,43,92,14,237,198,122,221,33,222,182,141,218,128,188,163,60,163,126,191,122,192,48,34,56,210,126,182,134,82,169,126,10,192,33,247,161,225,129,48,13,189,103,113,54,140,13,85,173,43,177,223,61,47,192,31,174,40,9,105,160,37,95,11,214,119,6,164,76,192,76,172,146,185,173,14,70,246,107,164,190,228,179,146,154,90,90,183,91,140,72,5,114,222,32,60,223,137,197,117,53,105,46,176,16,61,33,191,203,164,22,46,11,227,181,129,239,183,159,213,122,237,219,44,211,130,43,209,83,208,74,126,193,221,87,37,98,35,186,11,67,94,149,12,166,154,48,17,175,116,193,156,210,164,255,32,133,32,178,120,201,30,212,49,84,231,107,173,239,131,58,92,148,110,91,62,198,102,76,177,89,156,4,78,
245,3,114,2,131,144,195,58,67,60,13,146,56,205,184,100,164,86,225,28,195,121,81,204,86,185,217,231,34,132,194,215,212,54,163,241,23,164,37,29,251,100,207,166,183,8,5,156,179,182,88,228,180,100,159,186,9,154,6,234,150,21,38,219,196,160,96,177,73,200,71,183,133,183,128,231,76,12,65,49,210,142,130,178,132,160,143,206,160,45,73,33,185,154,115,8,225,132,221,16,53,223,233,98,75,63,79,4,194,2,79,60,127,110,248,164,45,249,172,132,163,156,16,189,194,6,61,253,174,150,2,21,91,87,40,141,219,99,148,147,48,250,222,123,57,174,72,161,15,231,211,119,134,73,23,31,52,193,230,43,188,41,249,254,76,172,102,144,150,220,99,34,47,3,45,111,228,99,60,88,43,147,41,252,100,90,58,121,238,83,78,92,244,129,139,221,14,74,178,106,214,62,91,14,82,47,237,89,227,110,49,77,203,200,30,73,48,183,221,27,173,113,194,164,218,90,102,69,125,183,209,237,118,79,167,147,129,154,116,217,135,153,151,106,105,237,157,3,47,143,17,57,21,89,146,76,
68,82,17,185,84,250,16,40,169,76,83,69,114,59,78,156,138,201,144,247,238,213,16,179,198,236,180,252,57,84,140,33,58,117,217,56,186,193,20,68,38,179,104,140,140,243,85,251,110,169,185,237,243,29,141,251,86,2,1,90,53,16,8,204,24,51,181,242,227,37,206,222,84,167,166,121,89,240,186,201,239,50,146,72,217,92,153,106,222,70,76,176,69,170,190,155,52,203,253,99,196,169,46,155,103,184,235,61,25,137,200,229,242,210,209,121,54,43,87,215,51,127,111,84,175,64,16,68,199,52,175,57,128,159,59,80,109,128,206,126,233,197,217,163,125,181,40,106,16,93,141,66,51,190,121,20,120,117,185,113,37,111,52,206,119,7,81,203,117,99,2,219,118,26,61,163,109,84,29,71,159,37,93,211,60,147,238,36,77,117,139,168,108,132,100,226,75,36,73,132,124,151,21,30,160,252,0,233,254,100,159,16,32,217,66,122,92,23,11,145,241,33,78,133,229,222,111,206,112,33,196,116,75,27,189,94,206,186,22,245,17,4,254,10,108,236,245,19,28,194,225,141,153,188,116,222,
201,163,254,129,45,225,157,34,79,99,73,115,170,121,36,65,32,106,201,116,50,225,157,39,58,251,133,227,234,121,32,8,149,161,159,188,189,81,247,206,218,17,161,88,4,232,149,186,227,216,33,195,89,126,220,91,56,112,167,42,16,77,17,227,169,172,89,76,173,171,101,43,112,83,163,56,198,113,46,196,191,130,160,125,57,195,125,115,0,78,0,2,120,160,66,130,120,110,249,227,163,85,124,170,38,3,8,168,145,122,100,24,104,248,240,163,41,22,54,114,31,161,76,144,186,139,155,44,67,162,9,52,95,245,95,48,200,227,62,70,57,166,164,211,71,206,141,141,190,194,3,149,193,213,201,159,10,232,217,104,94,93,65,37,63,63,205,179,74,193,52,97,102,61,129,218,117,95,189,224,90,159,49,162,192,183,178,172,86,254,129,252,97,19,26,164,64,101,88,106,58,17,71,105,111,70,236,173,17,120,162,192,134,237,220,213,118,61,219,246,47,200,187,251,126,99,143,239,66,97,0,3,6,99,147,37,142,225,180,25,112,237,251,202,42,186,157,150,243,208,198,237,67,74,193,35,
253,216,247,189,103,116,72,134,4,105,236,42,98,148,235,95,101,176,253,0,61,225,84,253,59,52,137,42,66,33,63,163,214,48,209,101,224,106,170,246,28,182,103,80,234,245,9,142,21,82,38,62,248,198,220,57,190,135,124,85,98,109,21,247,201,184,65,238,143,81,154,138,160,86,171,95,76,108,118,140,125,62,109,134,133,203,16,193,191,165,78,195,86,134,134,226,160,2,161,143,82,167,67,145,93,37,28,104,163,232,56,44,27,141,227,19,83,229,190,172,162,113,251,110,10,166,157,246,201,153,202,8,142,42,207,11,129,87,229,8,42,113,67,136,102,149,20,119,74,66,136,149,124,18,224,112,158,217,160,3,65,227,87,88,46,108,197,237,77,174,141,15,180,58,254,233,56,234,8,80,245,50,156,72,207,197,254,247,119,148,162,224,189,223,81,218,221,189,164,122,29,166,62,247,245,235,94,114,36,143,95,186,241,49,27,149,203,31,84,199,251,58,203,14,41,52,46,62,154,253,113,57,175,208,52,223,14,62,235,22,80,206,208,83,167,161,18,115,242,81,179,199,1,241,244,20,
73,62,97,90,177,239,132,241,181,4,113,223,249,206,208,210,14,139,122,240,55,184,214,16,113,53,5,115,57,40,103,174,10,223,191,188,202,231,104,158,5,130,128,221,65,207,183,23,165,203,107,24,224,241,248,197,136,231,218,207,107,121,53,184,10,27,25,100,178,119,51,29,153,231,105,123,232,125,161,97,219,142,95,209,188,195,84,224,112,112,36,219,164,138,62,143,133,73,88,17,51,96,127,128,14,171,56,175,96,32,49,241,195,53,165,100,5,66,159,3,48,46,147,182,243,28,37,40,11,220,17,26,150,135,208,2,205,249,174,10,139,133,237,35,45,23,214,42,75,1,7,237,217,85,58,154,38,67,177,241,182,201,102,146,89,127,69,37,138,155,58,105,4,158,139,102,230,75,210,99,240,112,220,28,135,104,75,92,136,249,64,53,149,54,1,253,35,95,104,224,131,219,170,231,232,236,63,105,80,232,254,57,32,119,215,50,164,215,49,211,21,64,118,211,228,107,184,159,230,114,185,42,237,115,135,161,108,213,111,160,179,42,255,17,125,172,95,114,213,241,118,156,95,63,6,56,
11,90,53,52,124,105,31,121,186,54,220,168,229,28,207,103,5,202,178,7,230,64,197,133,101,62,126,124,82,53,122,141,97,180,184,225,56,204,114,37,70,217,178,193,77,36,183,71,190,194,121,72,135,207,108,150,154,117,50,146,40,32,185,159,220,134,62,120,228,122,243,105,95,3,48,142,87,128,196,103,23,3,227,196,128,193,59,238,3,158,29,43,59,239,103,215,220,110,63,49,36,193,123,81,171,213,210,58,195,248,46,95,59,254,254,153,124,161,236,210,89,30,231,138,79,181,1,253,194,12,92,66,250,205,133,216,204,53,105,115,44,109,89,240,106,27,246,32,57,42,36,187,220,65,63,34,46,36,191,156,192,228,6,173,10,127,221,191,10,209,106,16,238,214,75,79,69,68,178,162,5,225,76,60,93,255,50,120,24,164,4,139,60,67,157,135,134,227,109,8,248,156,242,47,201,140,81,126,111,196,188,221,239,215,61,38,207,55,23,172,217,142,174,101,249,12,181,146,189,124,122,73,158,181,14,49,114,60,14,219,67,16,120,94,16,223,209,15,138,29,217,229,113,19,239,165,
69,55,148,149,246,24,21,150,51,53,124,240,211,99,212,14,227,74,27,167,55,175,85,157,138,151,144,243,188,175,162,201,151,145,208,226,142,65,109,139,143,168,6,5,234,233,108,54,150,99,182,174,104,223,95,9,44,108,132,181,124,220,8,84,241,245,64,162,80,245,90,1,1,134,192,115,16,227,92,15,172,149,73,193,242,62,60,220,48,56,232,106,36,246,170,127,209,114,84,213,161,237,51,38,185,220,46,247,117,242,188,159,99,38,183,205,118,148,213,230,8,9,247,205,18,190,233,240,46,207,68,92,218,215,111,60,205,75,6,12,6,47,110,182,21,183,79,36,52,221,145,220,27,166,178,57,92,159,43,101,192,95,101,23,57,38,44,3,107,102,125,95,180,71,105,99,114,26,238,219,161,45,12,222,220,247,218,167,177,233,124,203,228,38,21,107,230,116,201,127,119,203,77,3,180,149,61,6,203,242,91,35,157,7,206,122,201,246,222,25,61,16,87,80,128,237,69,244,230,115,119,90,50,25,6,38,139,232,141,148,93,224,38,42,76,9,191,124,226,100,207,27,213,64,224,26,
215,156,167,61,104,12,116,35,244,188,246,253,235,44,13,150,155,164,242,117,114,170,18,172,169,246,121,189,254,29,102,163,41,33,99,114,136,79,178,16,36,113,212,186,81,5,251,112,11,208,106,56,72,167,60,181,59,125,141,213,148,105,52,189,48,40,117,30,34,163,239,124,215,232,98,233,39,121,203,171,11,44,22,139,181,185,213,209,90,233,184,153,76,166,167,97,182,90,139,29,247,157,177,238,39,201,44,210,53,9,39,43,160,134,129,5,214,169,148,129,146,120,4,246,251,68,11,36,79,47,228,0,194,112,26,193,219,240,186,165,39,222,101,38,5,16,151,24,49,102,157,133,192,232,117,148,165,161,57,143,39,205,236,179,240,73,57,0,173,195,0,11,223,150,229,94,71,111,210,183,27,253,56,43,240,242,12,34,76,244,214,8,218,130,73,12,64,100,54,189,146,70,202,45,112,83,150,26,8,37,39,55,199,231,196,40,195,191,142,139,224,218,5,251,22,8,192,94,45,91,157,249,232,108,87,188,203,113,112,26,165,3,29,103,152,78,167,151,6,160,87,213,57,167,15,48,
16,213,71,242,99,83,199,14,133,66,228,209,131,12,246,161,249,190,255,139,12,70,39,135,133,251,242,188,206,79,40,106,212,198,163,127,192,184,12,11,9,202,224,13,77,85,248,43,155,211,180,100,60,155,69,179,243,86,184,204,128,115,131,135,146,35,131,205,21,108,66,175,3,165,89,206,185,131,9,254,29,153,50,249,138,32,220,229,9,98,146,224,249,196,186,145,158,182,26,56,178,252,179,161,57,88,173,138,155,114,57,250,119,203,167,170,3,243,130,78,196,201,231,185,45,36,14,18,226,169,144,199,176,178,104,8,214,98,252,253,188,94,63,203,150,182,231,93,74,63,194,94,210,152,68,220,159,0,15,8,12,29,216,209,43,188,38,90,125,178,192,207,213,236,19,85,215,177,252,44,36,157,83,235,40,77,86,20,28,243,38,86,192,110,118,114,113,82,240,184,209,200,20,55,22,69,93,108,219,98,14,124,154,210,81,20,190,132,202,230,57,150,124,196,99,69,194,215,210,99,238,84,54,77,133,182,163,227,180,29,201,50,71,137,127,45,161,78,54,49,78,97,204,225,120,61,
31,2,216,7,31,112,140,21,30,239,166,155,88,219,106,158,59,75,101,189,233,187,176,149,65,238,38,181,15,113,175,97,234,106,77,105,129,38,34,247,47,165,71,252,216,118,190,207,233,30,53,199,178,120,123,149,60,209,53,53,199,238,96,121,95,5,19,208,90,17,134,244,166,107,231,87,19,1,67,36,9,244,125,118,12,162,214,23,55,222,180,0,192,18,12,54,187,48,118,38,114,12,190,255,73,213,69,115,2,119,183,28,128,162,136,132,146,121,46,18,189,128,243,217,44,200,222,232,159,233,18,176,79,88,43,114,188,197,251,188,10,114,136,123,88,60,250,166,104,13,80,157,212,122,71,75,235,150,111,214,184,33,128,148,90,112,47,249,98,74,121,162,8,242,175,152,131,90,253,233,201,106,185,23,229,105,63,171,54,177,235,146,34,175,209,87,7,243,15,49,134,129,174,153,44,211,242,162,63,157,170,116,120,123,245,251,145,68,50,133,75,165,82,203,10,83,135,190,129,223,164,250,39,215,240,189,67,225,120,69,178,16,0,19,144,194,140,230,36,21,138,27,222,167,243,220,
146,88,43,152,46,0,242,92,182,40,113,200,66,41,149,76,188,156,113,82,45,248,108,211,64,26,240,164,110,2,151,67,228,241,120,106,124,38,229,91,180,67,137,39,254,99,162,184,185,224,59,148,10,13,40,151,87,204,204,158,84,203,192,10,143,18,147,230,9,119,52,231,188,46,118,21,60,220,246,123,151,153,38,167,250,59,40,165,90,137,246,166,20,53,254,211,183,45,40,109,228,72,249,61,66,90,131,244,236,80,66,72,102,219,66,17,140,17,7,32,239,60,68,19,201,27,172,66,130,246,233,148,32,168,164,227,58,217,35,77,225,211,94,122,119,63,118,233,3,56,59,202,102,91,102,3,26,55,232,149,209,191,227,93,111,167,31,32,221,239,219,174,231,131,18,83,99,106,76,100,133,230,20,91,240,229,172,167,157,214,212,157,122,117,143,60,125,106,132,24,120,94,128,23,89,110,26,80,100,160,56,125,12,7,59,105,133,127,23,174,121,141,77,229,201,197,204,195,1,44,250,14,69,216,137,4,131,167,160,93,163,123,13,220,137,26,6,231,22,200,184,33,212,239,35,226,
154,43,186,223,142,132,254,156,174,182,64,5,20,187,38,125,145,11,3,115,72,104,11,81,213,181,148,166,143,228,44,55,86,210,172,80,196,10,16,196,162,118,9,254,189,165,152,213,160,105,39,77,242,218,61,168,228,38,237,56,214,214,3,184,66,17,54,168,40,123,128,185,85,172,29,11,145,21,204,129,68,4,255,48,45,10,181,102,111,71,7,245,226,141,61,46,6,60,163,245,126,77,210,220,151,5,196,131,79,149,164,91,130,188,49,42,48,62,105,220,36,70,173,137,180,67,57,146,0,82,173,90,78,0,92,158,133,13,107,44,214,169,235,116,194,214,82,254,41,101,37,11,217,86,58,107,80,61,45,8,58,224,197,99,172,156,76,34,8,195,105,27,156,122,24,184,178,203,208,182,207,231,56,207,91,243,181,117,54,121,58,114,231,73,163,147,80,166,221,240,247,48,4,158,103,114,147,101,160,156,16,93,232,250,44,41,76,205,211,131,171,217,200,71,142,225,236,181,81,166,252,254,1,188,187,216,28,120,252,61,64,166,73,23,8,188,178,62,116,215,98,18,226,253,134,57,
76,173,136,79,221,213,183,90,248,96,241,149,255,225,194,224,72,101,178,38,148,95,139,162,253,157,154,75,29,89,197,187,201,59,225,180,116,28,110,83,237,213,26,1,250,64,219,166,84,203,45,175,214,85,157,10,17,170,133,71,226,245,158,173,156,181,143,211,173,158,181,186,69,143,203,234,105,96,89,178,35,194,190,166,215,243,162,174,61,182,100,78,28,189,101,21,59,123,139,128,157,231,84,108,235,217,69,71,25,24,9,194,241,114,184,90,117,243,39,206,67,179,217,108,44,49,123,147,83,120,252,20,105,197,50,170,109,81,59,211,231,164,209,3,128,149,108,25,6,93,123,240,144,2,230,84,1,246,204,87,182,53,172,243,156,178,77,209,59,65,84,55,173,64,205,128,160,181,114,135,226,210,157,36,47,148,141,94,57,206,110,189,164,116,203,250,114,169,205,41,114,42,225,99,81,19,164,181,161,237,26,129,227,18,234,235,142,250,221,117,56,198,125,16,100,74,145,109,183,90,194,134,138,76,38,7,246,134,105,54,119,225,67,171,209,242,249,201,172,244,170,253,168,63,167,185,
200,108,147,53,118,232,130,216,179,154,63,223,19,117,99,210,38,110,124,248,245,178,194,228,162,224,60,180,161,206,74,165,242,182,181,37,63,253,113,65,251,118,62,72,6,18,254,237,177,174,65,164,164,66,221,153,236,0,71,38,67,77,78,89,252,68,221,174,144,139,127,135,194,88,47,7,237,129,64,68,62,45,216,53,85,62,113,225,103,137,145,110,84,69,52,8,66,240,41,135,74,196,8,148,182,241,203,140,233,70,14,116,57,87,56,142,104,185,84,162,209,80,221,132,33,82,85,113,29,25,183,217,41,2,85,40,141,80,154,87,119,219,190,215,46,209,96,215,216,70,126,56,116,59,180,151,213,101,17,202,201,57,152,241,199,3,73,54,162,124,126,48,18,65,6,30,148,13,138,209,238,83,81,151,68,33,115,70,116,236,181,69,249,196,238,189,157,143,41,231,233,254,233,78,62,88,220,198,94,175,39,191,126,62,181,95,83,70,52,86,251,190,58,6,149,59,136,152,249,212,156,235,8,244,128,196,180,163,250,115,119,202,80,162,101,177,6,126,133,146,117,132,227,250,33,105,
142,60,76,48,195,98,208,78,5,114,123,100,47,164,184,116,212,97,12,158,101,122,86,17,9,19,165,69,254,58,60,191,164,146,44,10,232,249,61,190,136,231,250,142,9,124,222,89,98,195,20,110,240,37,33,18,114,153,132,67,213,113,83,164,39,155,225,104,155,44,96,194,169,190,101,196,26,102,229,65,155,203,87,76,147,251,108,243,156,103,223,131,240,170,247,140,139,52,23,189,133,83,198,143,44,142,36,187,137,50,217,176,174,159,8,127,52,159,215,216,135,73,86,244,110,237,197,142,153,183,219,96,112,107,75,107,171,121,200,82,75,150,172,242,160,16,21,84,239,229,164,167,217,155,103,194,85,107,27,29,8,206,130,104,52,181,230,201,235,231,202,216,138,189,174,168,240,184,158,173,203,138,79,88,37,220,33,122,67,138,82,153,44,50,109,110,80,228,204,177,196,178,245,160,82,152,0,210,148,150,230,140,76,225,33,136,146,147,134,198,194,162,197,22,203,131,48,40,10,94,213,202,89,12,255,232,141,32,102,124,10,23,197,7,202,18,130,83,249,68,115,67,112,192,76,116,
23,137,144,139,81,244,34,114,151,39,52,0,250,210,212,66,17,198,155,202,132,86,66,230,148,232,131,107,157,90,176,12,240,84,232,161,109,234,140,77,193,33,249,232,48,208,61,15,88,240,15,229,19,167,112,160,171,74,207,10,60,53,140,181,51,47,62,81,173,212,64,232,63,55,41,157,4,50,233,230,204,143,250,26,185,176,215,171,10,176,160,217,69,84,119,194,173,242,75,230,225,102,187,181,37,29,20,25,201,148,42,189,164,210,3,77,85,244,135,107,122,49,76,16,202,194,109,179,18,118,223,196,238,26,141,7,128,83,41,175,207,177,2,141,10,103,111,76,190,151,215,9,167,144,118,43,145,88,235,163,231,128,59,115,131,240,41,127,169,55,227,31,31,137,16,84,194,102,132,43,206,200,13,170,245,22,124,88,63,196,29,254,35,226,165,17,61,158,176,132,220,67,134,132,92,51,206,78,16,155,3,162,191,241,253,134,11,175,170,112,113,71,234,182,4,146,93,124,26,43,49,67,252,105,185,155,76,251,61,123,139,198,104,188,118,219,151,120,186,234,127,2,219,141,20,209,
241,45,167,37,224,187,115,6,162,238,241,248,131,49,65,51,211,78,75,117,146,4,231,137,26,134,135,58,106,62,223,121,18,65,69,94,157,44,220,79,213,7,250,225,199,51,201,115,109,177,76,19,100,173,107,119,214,226,29,119,221,117,223,251,238,179,139,16,164,207,224,133,204,196,62,178,223,9,48,128,244,111,17,23,241,157,210,102,104,232,173,47,174,231,144,144,15,144,100,179,98,148,132,196,204,93,198,231,194,56,187,244,4,97,59,92,33,42,126,22,54,49,130,36,196,7,25,226,31,143,239,215,161,203,223,151,133,248,103,184,113,150,83,50,25,155,68,8,207,121,175,97,197,59,241,246,211,100,187,141,167,154,178,121,134,26,190,233,212,106,124,238,56,227,41,189,153,57,6,59,80,154,207,245,186,29,185,169,132,164,91,142,205,242,200,193,181,229,224,40,156,117,51,106,227,185,160,208,96,126,22,106,110,135,199,240,19,35,177,192,74,34,62,126,204,29,11,96,232,129,218,154,193,100,190,143,138,217,157,153,20,158,27,210,149,39,138,113,92,126,60,101,82,128,216,72,
95,118,153,81,22,227,232,125,138,179,66,34,208,207,158,110,74,221,11,249,189,65,205,139,53,21,72,56,174,240,58,128,77,22,214,61,249,84,208,78,143,105,79,13,159,254,38,23,227,211,97,129,17,109,205,17,86,219,143,28,119,163,232,68,119,27,208,43,132,24,21,74,102,128,184,17,133,41,172,41,21,219,231,12,51,47,33,212,164,168,74,118,16,55,71,43,221,230,218,188,183,146,221,98,65,182,23,2,4,255,246,176,79,144,64,19,104,215,191,192,246,236,119,247,182,157,171,223,185,119,21,43,131,32,240,119,181,219,116,191,11,188,188,67,31,9,45,126,91,241,146,215,192,185,220,1,91,214,9,15,102,87,20,214,99,245,147,87,42,49,189,17,144,236,245,130,129,173,3,244,143,113,185,195,201,98,132,183,183,154,129,88,136,194,86,82,218,132,64,245,72,209,30,158,70,158,118,7,157,94,80,153,20,63,27,194,42,3,186,4,131,8,239,158,89,146,101,155,85,0,197,196,48,212,250,137,66,41,202,95,134,32,77,12,93,67,243,72,242,223,191,55,234,122,25,37,
121,74,176,230,218,8,189,238,240,92,187,127,241,178,237,132,73,187,73,5,221,121,70,186,70,40,75,231,161,110,223,169,134,120,71,106,2,182,73,27,184,7,134,137,207,91,82,3,217,90,48,253,84,36,83,64,93,158,143,82,15,41,36,238,147,170,133,160,133,154,53,95,154,144,42,104,228,240,151,70,23,16,22,1,13,240,171,207,199,24,165,60,202,109,55,41,14,116,213,179,145,148,97,39,104,121,128,214,146,251,199,29,232,112,28,41,52,113,162,176,216,98,72,193,68,159,42,76,166,16,194,27,117,217,132,61,181,219,158,118,59,187,79,58,150,72,232,161,168,109,128,62,114,142,64,91,89,123,93,176,228,200,11,182,249,224,32,74,165,225,75,158,99,2,177,2,146,171,94,224,125,170,126,46,236,204,115,69,195,88,181,225,196,125,239,57,134,8,24,34,23,250,160,107,147,41,4,162,186,149,247,30,241,20,251,125,37,208,5,197,239,19,95,207,252,134,36,137,26,157,60,153,195,81,178,198,45,1,74,131,36,52,169,73,13,223,52,83,110,68,33,17,161,215,123,94,
227,253,229,29,180,182,28,82,208,41,206,165,8,121,101,159,78,237,172,25,6,131,195,247,96,140,56,74,111,105,74,139,180,119,100,11,196,70,109,64,29,244,180,57,34,219,52,1,116,5,159,202,10,152,185,249,109,90,227,81,161,1,125,172,123,168,223,222,123,97,182,199,172,215,235,27,84,186,230,82,159,1,98,43,147,209,8,174,230,218,41,26,41,79,217,161,204,75,92,149,176,61,79,233,245,27,200,188,171,86,81,213,149,100,8,250,148,195,178,181,87,236,144,60,196,167,38,200,232,119,178,4,8,123,148,179,96,61,66,30,64,46,11,7,182,155,85,21,105,252,56,185,42,74,92,249,113,213,190,247,149,232,103,10,165,224,75,199,217,31,230,35,61,160,238,24,210,131,166,177,46,104,155,19,243,186,9,46,114,220,146,14,169,20,169,16,48,40,1,250,148,225,19,189,127,44,110,149,78,126,164,77,1,172,63,131,125,140,185,133,249,71,50,42,156,186,0,92,148,6,36,82,123,181,90,89,72,211,114,209,156,132,230,141,146,37,204,8,200,206,241,51,159,62,171,88,
33,241,211,225,112,88,136,1,121,233,16,14,211,228,199,71,165,142,251,140,235,39,233,202,162,202,171,81,238,139,155,109,121,156,27,214,64,66,230,32,32,217,56,253,134,193,155,208,71,173,224,216,73,149,176,173,69,38,249,46,20,119,19,242,139,132,66,14,56,119,252,148,101,192,73,19,192,145,221,62,54,29,224,231,96,147,76,137,3,184,9,152,135,62,159,30,45,135,165,80,213,173,39,151,211,121,210,117,6,97,55,33,169,9,145,93,44,140,147,87,140,122,249,20,126,77,160,74,231,173,155,200,83,169,74,142,225,88,189,196,45,187,81,90,14,245,113,91,39,157,18,204,118,169,3,23,55,244,101,86,105,235,93,79,219,25,24,125,0,2,249,228,51,106,181,91,243,179,193,58,200,185,130,11,36,56,163,146,97,63,16,230,102,69,105,19,60,188,230,184,159,49,63,68,110,97,153,116,140,64,50,247,46,92,15,27,204,176,82,222,154,169,160,51,230,112,133,91,19,134,129,64,128,102,114,181,14,139,198,160,159,83,178,138,44,119,150,167,180,49,17,41,33,190,107,119,
244,42,81,140,138,11,41,108,8,36,229,9,219,28,188,148,243,92,36,48,129,243,93,105,83,172,182,119,113,43,83,78,188,180,222,6,128,87,88,129,254,26,179,205,215,125,40,185,96,37,0,1,142,105,167,134,2,31,13,109,193,187,198,198,200,94,213,245,193,39,56,224,41,239,168,38,104,6,40,151,140,178,164,62,1,34,89,167,60,233,173,86,229,137,68,83,46,108,47,6,195,122,213,77,70,115,24,255,184,223,154,143,23,77,95,15,99,89,243,6,236,76,89,63,24,113,104,254,22,188,91,158,88,75,71,239,105,169,147,125,232,122,216,75,70,121,183,49,62,19,100,148,145,42,248,187,241,240,39,85,84,184,46,104,4,220,218,152,92,239,5,140,128,17,59,27,81,30,108,136,155,136,38,235,43,161,109,225,252,68,11,64,205,250,211,203,225,16,37,34,185,109,32,14,250,4,160,234,158,138,27,21,254,114,191,238,133,216,9,85,145,101,176,80,108,81,189,110,228,188,189,189,57,234,34,133,92,142,173,248,123,61,114,223,190,159,189,78,229,244,124,24,59,135,219,184,
142,149,220,66,232,59,118,227,186,94,178,206,75,13,71,197,156,125,80,34,220,124,187,63,106,85,162,217,165,46,184,223,195,248,230,96,245,14,15,176,251,146,108,11,5,106,34,155,82,218,212,74,18,42,148,95,249,233,180,229,129,90,111,196,61,16,56,211,37,171,171,101,97,208,231,19,205,89,171,211,184,16,103,157,28,50,88,198,130,148,209,72,77,58,122,216,220,37,207,86,218,222,247,75,87,124,133,123,156,82,79,229,110,190,6,201,14,134,221,125,196,100,160,134,200,204,72,91,206,15,74,202,204,87,179,27,197,182,190,186,110,159,65,46,159,206,49,191,224,203,12,199,212,214,190,132,141,171,228,227,99,189,8,83,105,227,92,127,31,157,211,31,21,179,87,83,101,171,29,59,163,236,85,7,173,169,236,120,132,97,60,86,145,58,6,22,90,181,35,5,20,229,216,48,56,189,129,88,15,31,144,242,232,222,26,223,218,151,35,92,146,8,165,235,251,73,209,128,27,166,132,86,52,32,248,98,111,55,26,183,61,53,215,225,55,227,105,102,159,63,62,218,31,95,115,131,
18,245,250,160,83,16,73,164,102,44,10,217,138,48,179,209,134,172,170,27,21,69,235,83,190,152,124,232,244,213,231,87,68,212,228,21,185,225,81,15,142,105,129,190,79,162,211,170,227,200,71,48,113,154,52,126,186,169,137,121,182,240,117,34,94,73,220,124,237,243,242,220,10,181,166,232,115,115,234,35,224,139,146,134,109,194,223,236,219,243,75,146,161,13,153,36,160,23,182,21,63,194,1,254,13,3,194,180,10,233,165,183,16,209,210,61,45,155,201,51,228,225,251,189,57,13,163,92,197,83,101,47,64,202,222,149,198,154,107,76,60,136,101,207,37,195,168,224,202,203,148,5,207,115,251,25,72,213,213,115,247,125,61,244,30,228,245,174,102,250,136,114,202,122,141,214,243,242,162,205,137,96,190,68,205,157,246,84,67,9,143,213,253,156,41,64,233,102,177,15,15,192,31,216,152,12,151,111,8,239,26,25,203,78,57,220,192,236,49,144,56,124,247,94,196,115,234,26,93,152,196,18,32,249,252,214,250,28,137,132,208,48,181,179,92,44,192,30,194,106,12,6,163,177,85,44,
15,138,138,34,207,210,168,23,97,162,224,176,178,99,249,238,218,225,229,169,146,25,157,105,92,194,149,167,220,124,191,19,37,28,169,29,154,48,41,40,216,126,123,222,133,123,233,137,202,21,108,180,122,24,158,198,245,96,4,120,244,187,250,29,19,97,231,247,44,129,34,251,1,133,28,131,138,57,100,100,182,137,233,196,9,221,20,192,22,58,147,254,252,193,163,19,155,175,153,7,46,134,215,92,223,90,143,125,51,17,95,107,55,133,194,102,136,96,127,50,195,198,12,229,177,233,246,124,206,98,172,42,173,6,175,172,226,251,41,20,181,237,118,132,202,79,196,159,203,164,61,112,215,28,199,185,251,62,155,28,181,51,222,252,253,131,67,107,194,199,16,4,1,228,149,3,108,142,146,37,185,207,152,196,4,4,106,128,94,140,31,18,253,64,127,89,100,122,218,151,226,103,177,88,191,157,85,133,44,128,143,122,35,233,81,89,220,68,241,58,142,245,1,241,145,201,196,75,169,18,235,145,249,33,121,111,57,25,215,35,95,171,219,45,223,77,47,51,191,68,73,25,217,89,43,235,
132,246,240,104,93,13,159,194,62,238,46,225,106,162,218,251,126,7,66,81,128,215,112,6,223,133,205,178,219,125,179,97,0,237,17,164,101,165,132,44,248,14,49,246,184,144,77,120,240,28,34,85,1,80,94,7,234,203,188,98,209,45,26,111,246,143,42,9,5,104,187,249,11,107,179,217,124,84,93,36,194,237,122,246,201,121,243,178,41,126,8,84,2,190,204,85,113,54,95,172,11,55,210,28,221,235,175,139,187,119,160,90,61,223,244,40,242,231,194,107,212,82,237,231,16,138,60,198,135,17,116,178,132,147,114,69,142,114,4,173,162,246,72,144,176,236,194,136,84,119,211,209,112,55,141,169,197,1,56,2,53,46,246,8,85,241,194,235,90,186,163,74,11,131,16,48,122,219,113,46,16,98,115,132,44,117,185,184,121,42,47,205,179,195,117,63,45,247,16,119,190,227,248,129,205,8,176,91,53,6,79,175,244,15,42,92,82,111,245,66,3,47,113,75,202,22,137,146,36,252,165,105,117,101,194,106,83,206,116,146,236,246,44,102,44,198,80,31,156,72,150,240,91,132,68,166,
124,212,92,245,42,34,50,229,12,105,213,207,190,244,207,199,65,60,172,71,141,225,181,86,180,69,21,167,102,32,12,206,203,59,38,39,240,231,15,244,101,123,105,3,24,213,141,230,114,221,1,125,43,26,3,79,74,166,73,99,120,177,111,165,24,158,155,197,66,207,239,222,45,56,10,129,79,74,38,195,198,64,214,24,239,9,75,79,247,9,232,88,73,53,212,79,112,13,43,211,131,232,225,5,194,186,29,230,129,119,252,203,70,66,46,94,198,106,168,194,194,161,108,105,40,90,32,143,113,82,62,105,74,97,151,224,173,218,99,171,136,234,13,138,169,5,242,136,196,11,152,232,253,115,3,49,235,8,52,85,169,113,204,247,227,169,101,9,47,169,110,249,247,155,245,174,54,115,252,66,79,146,213,60,1,152,27,215,146,193,0,69,58,44,28,181,185,171,127,124,41,37,191,223,135,7,91,25,250,137,79,131,23,181,70,96,25,13,253,235,206,60,204,107,225,220,72,146,231,106,79,54,238,18,129,200,21,40,22,66,85,33,250,253,251,46,13,142,76,83,142,118,212,183,32,241,
214,249,124,22,80,108,31,175,186,239,46,226,27,6,180,148,109,59,190,56,222,243,238,251,205,94,2,56,115,220,28,147,163,154,67,239,66,174,133,243,170,253,78,135,227,190,211,120,252,239,183,112,114,225,124,205,85,151,55,155,233,102,128,104,92,228,11,71,123,195,1,82,205,100,221,197,181,216,119,161,15,82,193,213,251,16,101,157,228,170,228,141,151,151,156,185,225,129,32,124,112,92,207,48,96,117,104,85,228,170,141,229,239,233,20,202,11,67,169,57,72,149,18,126,110,134,45,246,187,239,147,110,207,110,130,239,106,181,92,76,56,94,43,168,70,132,107,183,58,113,32,99,28,222,0,99,51,180,177,89,102,50,225,250,215,250,26,59,249,146,131,200,223,45,172,87,204,204,58,37,148,205,117,211,148,237,154,136,111,187,98,95,32,136,10,108,35,27,29,57,188,230,159,55,150,68,34,33,185,45,67,252,229,125,31,157,150,186,157,215,13,213,78,165,30,30,78,162,80,242,251,141,45,116,178,168,127,189,226,39,180,106,57,237,80,151,209,236,192,30,146,191,101,102,51,53,
82,175,11,235,106,99,174,253,180,247,194,176,183,220,100,63,153,124,255,252,83,211,118,157,208,154,213,229,0,91,246,226,27,215,212,31,212,99,212,231,144,15,97,95,174,97,193,80,85,109,7,233,222,53,179,144,249,221,110,232,221,159,163,31,27,125,224,65,167,86,161,159,44,197,77,213,2,21,184,36,26,36,37,143,55,235,109,113,215,231,44,247,182,125,182,150,70,253,119,127,186,244,253,88,180,151,158,195,188,239,239,195,172,28,159,173,60,105,128,212,216,19,103,36,16,26,141,54,4,177,204,245,188,230,116,86,250,100,222,170,55,72,150,94,135,64,198,90,232,135,13,179,207,123,79,76,18,52,155,196,251,241,28,121,39,103,36,137,165,25,139,234,37,56,195,17,230,14,131,193,158,14,149,42,8,10,130,192,59,189,199,205,201,64,91,250,3,129,2,215,186,130,142,181,19,186,6,136,35,36,42,75,27,207,230,179,193,46,119,230,43,40,3,123,123,70,151,204,203,13,90,86,17,36,63,57,61,125,191,166,223,16,196,123,133,165,38,109,139,208,179,10,148,3,112,5,
249,187,97,224,37,120,243,75,64,46,205,232,5,45,72,211,93,173,48,242,89,229,202,193,34,37,251,130,174,109,109,186,92,187,73,161,243,78,86,205,38,21,143,167,249,254,72,20,31,30,75,74,146,241,184,148,113,16,80,248,169,97,241,86,114,220,27,68,191,104,167,71,12,89,198,39,137,116,244,81,22,93,30,17,19,195,107,197,133,126,191,93,1,0,235,190,117,187,178,59,190,71,126,32,248,23,202,60,107,120,24,14,175,167,13,8,207,89,30,225,143,143,143,249,167,124,190,205,122,231,109,120,126,89,213,217,103,222,235,136,124,78,63,8,151,227,88,181,103,26,164,42,227,30,219,77,145,221,114,104,189,244,88,241,248,68,145,30,233,71,188,73,174,39,199,133,101,136,181,82,163,100,179,198,235,121,151,48,71,242,154,122,93,153,142,172,159,157,25,37,60,94,9,81,156,151,22,195,181,89,36,57,150,180,207,119,240,21,52,179,217,172,82,27,152,1,216,152,231,125,187,170,234,148,235,80,85,18,212,56,16,158,248,88,41,204,12,231,182,84,115,162,138,125,63,135,
147,194,219,37,105,5,198,171,107,208,94,140,233,235,230,7,30,29,98,195,46,104,93,84,157,212,81,30,79,197,252,171,92,34,169,244,17,9,14,200,217,154,207,169,74,244,217,60,196,128,111,159,122,8,106,180,230,73,100,34,3,208,238,218,57,148,53,167,19,97,114,235,101,132,28,27,180,201,34,162,95,222,183,1,0,162,161,67,111,24,175,70,35,88,96,194,109,105,218,186,5,208,79,254,224,207,128,41,235,99,175,156,39,220,110,251,250,221,190,65,12,82,250,110,180,234,139,6,160,224,86,203,82,90,9,90,0,238,93,226,78,182,249,232,157,14,135,153,170,148,177,113,164,69,222,224,229,211,128,140,236,9,179,42,160,255,198,89,152,155,131,99,155,123,34,212,236,62,134,218,13,134,17,89,216,83,216,96,209,155,201,69,169,95,207,181,241,27,8,18,120,215,182,159,22,108,53,5,136,247,227,121,167,68,154,223,143,46,120,106,118,201,78,10,102,99,172,232,182,99,182,43,131,249,70,222,21,252,164,96,93,10,183,110,175,44,110,209,254,56,75,92,203,79,53,133,
229,30,10,75,251,47,104,119,165,76,37,86,114,17,53,166,214,232,6,0,158,248,22,41,51,77,179,243,33,116,117,71,175,7,178,100,124,191,162,182,116,201,96,185,92,182,104,182,197,255,73,178,85,109,41,215,43,193,87,31,220,221,221,221,221,97,112,119,119,24,220,221,237,240,253,231,142,181,216,144,164,187,186,186,42,217,57,30,193,170,8,4,191,228,125,220,159,238,99,99,251,220,162,179,195,104,221,30,183,153,43,210,96,146,58,155,105,46,23,103,165,56,236,211,135,68,219,112,218,93,38,62,152,110,157,106,227,153,185,250,65,154,102,154,231,229,55,82,28,37,158,251,89,150,195,1,196,47,5,193,50,244,55,185,213,0,89,80,242,163,241,217,103,51,231,29,181,20,94,198,253,175,161,241,214,10,155,178,121,118,21,187,243,189,95,205,187,166,105,227,87,95,180,199,5,246,254,195,54,193,87,97,64,213,41,20,188,251,235,182,223,180,109,106,131,232,118,167,223,76,170,239,138,142,242,184,79,207,244,95,25,8,103,150,154,33,11,195,153,71,147,209,40,172,182,138,
88,63,166,2,166,137,161,126,244,160,131,124,206,75,88,236,156,125,249,169,153,228,122,122,176,77,52,32,79,148,190,253,166,233,137,14,247,73,23,46,96,178,8,31,101,243,117,48,139,195,168,74,99,130,130,255,237,199,91,113,218,215,182,109,77,175,154,159,187,34,146,219,45,20,92,16,234,81,148,6,210,172,69,174,94,191,37,247,73,29,168,215,118,84,246,139,253,232,124,152,33,10,152,140,145,178,252,11,211,69,32,168,229,58,239,40,62,231,149,100,134,24,200,227,177,82,30,200,76,89,130,105,150,202,183,250,52,81,134,8,113,14,200,223,222,239,247,40,76,249,214,198,10,182,197,119,143,249,181,198,223,250,54,165,54,74,25,234,22,225,160,209,191,83,253,197,29,152,164,176,108,235,109,226,149,222,253,133,16,26,94,106,229,50,111,224,33,239,42,19,75,172,71,128,77,142,72,199,180,56,9,194,167,213,30,180,109,147,117,179,227,189,124,1,38,195,96,95,218,74,179,166,48,215,80,239,68,219,113,184,76,190,174,242,107,209,28,79,205,143,176,171,170,194,117,107,
212,175,4,73,163,79,7,86,93,215,248,65,172,97,123,199,222,104,70,32,20,23,112,27,200,58,139,49,221,166,149,22,191,176,15,40,181,181,21,224,80,206,73,171,30,96,138,18,98,132,131,152,81,61,227,161,118,250,110,10,157,145,46,83,255,92,186,175,193,65,121,7,39,68,191,203,50,177,52,15,4,111,140,243,46,243,58,148,146,217,224,211,194,118,99,75,18,170,195,161,37,126,115,236,174,4,200,43,164,108,92,107,155,152,74,65,244,42,59,152,229,129,30,8,116,44,204,246,145,197,25,17,74,59,41,120,147,121,197,202,180,188,34,242,11,206,126,244,146,25,51,114,113,42,243,121,22,65,80,154,31,123,12,70,34,8,79,247,175,150,170,205,237,97,170,154,138,155,130,19,204,198,140,195,146,34,59,46,53,48,236,178,72,83,119,10,54,24,246,214,189,206,193,241,127,179,209,208,249,246,191,37,5,11,207,166,107,122,30,151,204,60,109,93,183,19,180,139,134,174,238,60,123,221,207,165,163,79,101,230,217,60,20,56,251,213,3,208,162,81,139,62,76,77,120,159,
156,6,195,154,174,219,230,145,25,52,63,56,231,71,101,98,94,164,11,128,163,40,149,157,196,135,12,69,119,167,169,15,126,204,172,52,251,196,74,147,161,81,17,110,40,189,146,46,106,191,54,102,232,146,30,80,179,127,74,231,159,142,109,171,116,89,231,122,30,91,165,245,171,23,243,85,38,215,238,123,63,191,169,119,45,203,14,247,38,86,135,243,208,242,179,215,187,6,252,236,178,80,241,25,211,47,178,160,88,213,58,233,60,81,84,221,191,101,158,254,21,145,114,58,198,204,152,142,18,65,173,126,200,198,230,17,195,81,132,78,169,40,161,106,184,67,81,57,115,252,222,202,19,80,219,140,248,226,181,32,87,94,212,162,32,161,235,49,4,14,135,223,142,20,90,29,48,199,37,0,174,235,179,141,191,142,63,24,142,102,24,83,162,231,45,226,243,52,230,198,61,68,15,121,45,237,134,78,154,126,49,131,147,17,90,166,8,1,81,230,133,230,214,33,15,137,60,96,95,185,42,145,186,24,211,55,10,31,144,18,134,246,140,97,63,237,53,86,230,162,161,133,242,213,218,202,
228,143,37,210,69,18,132,9,98,224,204,236,229,102,230,92,159,156,221,162,169,202,136,55,123,159,74,254,126,121,62,99,81,44,88,139,112,19,115,201,58,28,10,179,86,103,23,99,45,67,133,254,107,178,120,158,171,250,37,5,142,58,20,210,105,50,235,217,155,30,126,246,186,253,68,182,156,59,235,203,89,54,252,67,136,155,200,213,114,7,143,232,129,84,253,31,214,22,56,180,161,38,157,225,22,141,85,70,156,111,171,136,164,36,72,155,204,216,136,193,177,176,248,96,140,183,22,235,75,130,48,217,142,142,21,213,103,25,123,68,180,204,19,98,99,168,252,101,176,63,253,56,98,66,232,26,19,14,167,213,236,175,118,252,249,9,224,25,234,31,111,47,48,149,169,213,252,44,239,167,121,94,129,214,45,0,35,130,125,189,31,20,71,167,238,97,173,26,224,243,170,16,32,73,5,12,52,213,166,185,93,31,130,235,4,86,251,56,136,155,141,117,139,246,61,233,171,22,66,111,93,151,102,147,243,9,117,188,96,204,43,150,178,159,8,174,52,25,154,159,219,229,237,76,202,251,
163,247,128,65,161,80,185,48,57,185,221,95,191,173,113,103,56,22,82,255,200,129,253,59,245,19,152,241,249,64,190,69,131,39,254,5,136,205,8,123,144,1,24,174,10,82,214,24,44,223,235,222,141,172,245,170,219,219,75,1,208,99,51,222,91,120,30,130,4,80,59,157,76,172,87,0,225,25,57,95,119,133,199,14,212,157,35,70,23,130,247,230,191,183,212,239,210,13,173,162,192,181,218,49,181,31,64,242,69,141,151,218,166,109,237,82,11,34,87,95,226,151,224,191,215,73,121,143,111,127,21,70,28,79,216,61,45,242,239,215,116,63,28,86,212,32,16,65,240,169,247,240,166,206,1,221,215,233,144,200,66,226,142,32,136,148,76,236,206,185,127,90,55,209,112,88,158,85,38,134,111,87,148,100,98,229,37,173,9,90,219,172,68,12,244,23,222,255,234,25,198,132,134,252,89,225,63,188,154,106,12,0,141,214,25,187,43,10,56,233,27,166,145,244,79,104,220,12,133,61,167,198,132,75,129,209,213,23,109,125,243,199,44,85,164,11,102,189,3,171,130,176,97,29,2,66,
166,8,170,157,190,142,212,124,230,174,73,106,227,184,164,35,17,253,83,182,145,16,41,235,191,69,89,191,168,102,168,166,120,87,227,0,121,109,124,245,150,127,211,170,205,95,252,20,60,179,15,5,71,15,24,35,100,112,45,15,9,211,161,17,140,69,13,16,236,130,33,196,164,98,176,70,18,180,99,1,149,246,43,243,168,118,210,167,217,185,23,176,197,113,146,243,181,168,146,0,193,242,121,151,8,24,183,66,16,186,115,38,39,72,178,249,221,133,47,43,109,178,102,105,15,39,65,138,167,191,62,39,170,70,173,217,225,165,62,66,107,187,26,117,31,219,121,74,196,11,237,20,240,248,193,133,206,171,149,111,217,170,205,46,136,222,112,171,118,114,175,254,43,127,51,86,103,244,148,244,37,103,89,201,237,110,220,111,222,242,21,14,41,243,223,152,135,68,213,251,94,248,171,169,64,225,167,217,13,253,55,33,129,107,211,159,72,16,148,182,109,218,224,69,45,241,125,112,56,48,175,167,183,196,96,95,1,33,83,55,50,133,71,204,218,230,251,178,68,140,201,155,68,144,104,131,
180,59,101,19,36,30,178,194,40,128,141,187,31,70,61,119,180,4,156,158,130,30,135,141,127,232,134,147,223,195,12,127,149,11,59,220,240,63,242,53,157,124,136,87,145,247,204,56,140,158,150,103,191,78,22,32,217,121,79,73,5,48,138,123,54,195,118,13,70,74,134,109,90,8,161,40,126,41,162,2,162,219,159,63,39,91,127,227,184,248,176,58,122,143,177,249,35,119,221,162,52,41,186,67,116,201,142,27,118,248,211,207,234,206,64,85,248,219,87,40,25,37,110,246,96,143,124,123,234,139,102,218,102,21,90,239,115,95,105,161,166,107,91,130,91,138,40,245,207,187,169,46,244,94,124,70,124,56,147,119,76,13,34,135,112,13,42,61,152,144,75,23,243,164,10,54,221,11,97,3,28,250,132,72,199,201,154,227,213,34,84,15,184,69,245,240,150,53,106,219,115,191,78,93,215,157,50,176,154,76,128,167,42,183,146,121,222,148,119,99,193,187,225,237,17,30,190,56,234,212,206,222,191,166,169,48,208,205,131,50,239,188,194,126,240,114,123,130,152,22,227,103,106,136,224,253,
188,152,131,72,74,212,163,237,50,91,17,36,66,222,68,54,132,201,9,89,166,45,122,187,177,79,159,229,65,37,209,54,215,216,142,127,206,195,121,127,170,114,48,218,33,99,19,187,245,96,57,251,84,143,46,123,177,8,99,231,132,125,25,111,204,245,176,189,41,236,112,245,80,17,180,48,51,95,67,206,88,36,87,163,88,25,46,19,245,210,248,221,226,19,214,84,51,213,83,199,159,38,64,106,84,15,170,69,13,120,48,223,21,84,192,164,8,166,50,111,209,186,110,190,42,171,82,2,31,35,66,12,219,106,229,136,13,73,226,212,114,34,194,145,42,114,88,37,177,210,16,97,117,51,189,205,69,75,235,193,75,219,161,18,159,130,11,188,213,158,6,32,70,157,88,98,5,150,41,118,197,180,97,127,38,176,232,55,47,197,142,107,51,38,212,3,254,245,36,60,228,252,201,109,253,108,176,238,16,194,86,205,230,45,174,3,170,220,30,21,121,82,179,41,226,36,28,80,130,5,141,124,104,238,178,238,255,244,230,17,181,251,192,31,81,193,147,165,153,218,230,195,234,75,118,145,
141,242,14,122,164,130,163,63,26,204,81,103,90,160,173,106,21,191,78,169,51,206,135,253,25,44,70,203,146,149,44,58,31,89,90,118,33,126,156,222,35,116,102,193,110,34,4,107,207,128,9,106,128,67,23,228,15,206,114,208,230,80,189,30,181,67,96,47,138,205,154,106,123,102,214,196,90,19,79,54,41,61,15,231,19,36,80,45,37,70,177,172,107,192,97,237,49,43,124,113,118,130,231,215,49,247,106,124,165,214,68,26,203,31,128,140,199,162,220,110,151,125,12,146,118,130,18,177,182,33,151,89,251,92,243,223,206,233,245,184,16,17,74,195,148,32,219,241,239,48,161,131,44,29,21,57,0,50,109,59,51,13,203,202,78,111,174,188,228,92,16,97,108,208,74,11,95,84,33,35,217,94,241,250,5,223,138,212,220,208,14,112,24,48,223,78,180,158,182,155,226,158,29,145,24,11,73,22,225,237,82,83,192,206,192,249,121,175,60,20,147,243,195,68,134,234,105,127,155,42,83,47,22,138,98,70,7,36,211,54,147,194,228,247,169,74,202,173,111,234,154,37,48,78,159,1,
39,58,61,123,58,250,4,25,98,79,75,183,44,229,237,213,50,253,250,0,177,12,37,98,217,40,187,75,75,108,14,80,49,77,11,120,205,80,132,104,232,120,96,146,35,134,19,156,174,101,152,116,103,51,132,161,49,61,21,44,97,112,193,75,202,164,108,68,252,110,236,116,162,147,100,180,168,79,101,55,12,97,1,59,197,215,183,130,92,22,110,220,222,155,28,13,71,207,239,37,230,15,250,204,201,171,36,144,173,99,105,234,145,57,224,196,90,18,150,45,188,126,244,246,179,242,208,202,157,224,193,73,15,20,85,58,103,42,191,94,157,128,90,123,222,239,186,2,220,52,12,59,168,206,163,140,79,80,110,167,40,142,145,43,102,9,235,180,7,27,230,22,228,75,27,163,121,139,216,31,80,25,26,87,231,218,158,90,23,243,103,69,35,153,166,10,48,200,33,118,14,160,68,217,78,145,220,62,27,71,29,91,32,206,126,232,241,15,100,18,173,194,139,29,10,89,196,46,11,223,66,66,115,99,161,42,123,243,92,64,237,180,208,13,1,69,183,173,243,38,58,128,9,78,239,15,
209,204,241,145,94,125,175,51,238,43,219,251,156,92,118,113,129,32,79,179,96,166,133,36,36,9,204,17,33,220,154,36,72,75,215,90,94,90,70,240,118,86,61,148,151,248,34,77,92,45,245,251,225,15,2,230,49,53,107,58,205,180,18,92,126,41,212,33,238,255,131,47,89,162,30,39,112,134,153,201,227,59,96,114,239,123,161,180,24,230,29,100,97,199,155,113,193,155,189,56,248,153,135,84,127,200,64,87,150,144,20,186,26,38,148,141,75,0,188,175,128,178,67,110,154,224,105,17,86,205,179,212,239,70,108,208,107,105,1,234,35,24,10,191,106,119,93,26,95,50,102,133,101,71,62,235,202,175,31,111,243,81,184,95,146,238,142,92,5,69,150,89,230,177,164,108,173,48,186,190,248,22,134,41,107,137,98,95,185,191,161,242,103,15,19,115,99,243,221,47,181,237,58,159,251,56,116,90,253,36,191,196,26,145,184,157,108,180,92,141,228,69,162,236,103,83,144,18,134,37,78,135,86,219,204,16,40,7,46,126,77,132,105,160,191,193,117,222,211,186,34,69,146,18,214,218,
180,38,90,46,51,74,170,207,198,199,44,217,200,246,91,66,132,223,136,119,200,71,248,194,177,159,97,72,112,123,244,96,220,152,59,199,101,84,231,109,101,228,137,249,13,236,242,104,246,7,243,32,129,23,143,105,39,240,27,126,124,114,37,164,85,109,234,59,103,239,82,115,211,44,169,46,132,125,199,141,132,152,227,61,54,77,157,48,18,197,69,17,36,105,181,213,57,59,132,111,181,43,49,74,172,221,157,212,190,152,248,131,173,3,124,72,171,72,62,66,72,110,60,147,67,119,160,251,147,226,204,186,170,94,72,133,142,74,112,203,172,31,211,98,65,156,62,219,188,139,83,113,49,168,199,34,230,150,212,204,212,248,126,129,221,174,37,186,42,183,55,140,83,242,207,0,203,205,224,43,235,61,38,62,41,156,144,170,73,161,12,197,11,71,73,155,215,178,55,141,27,4,246,181,0,162,168,106,47,13,227,116,222,19,223,23,121,17,208,117,182,98,208,234,251,156,76,26,61,174,140,40,110,164,68,234,147,34,206,51,72,234,52,222,45,39,42,206,253,184,34,106,5,91,37,59,
161,151,117,3,74,11,80,13,230,27,78,63,202,74,93,135,21,102,164,99,131,31,214,243,253,183,159,119,144,194,199,147,248,111,2,11,101,143,153,83,59,33,52,177,212,168,107,129,1,246,253,69,214,166,56,83,251,190,160,28,114,119,72,90,235,234,176,7,161,155,89,179,99,19,53,114,120,7,161,118,244,160,23,218,200,212,151,151,66,135,6,166,249,143,144,30,7,198,211,78,170,45,29,59,188,59,193,110,35,173,6,61,198,119,23,99,93,141,95,84,121,107,89,234,81,139,117,37,247,197,182,126,222,79,176,186,145,132,109,137,145,122,143,147,252,173,212,35,192,178,138,223,141,141,47,191,212,143,87,66,126,33,192,87,72,27,149,111,61,29,34,96,172,103,63,46,78,127,107,90,174,25,101,225,37,67,100,140,200,23,195,151,249,132,22,207,15,34,163,252,153,89,99,238,216,64,56,237,32,12,181,160,89,41,92,137,176,67,205,168,181,181,6,242,202,178,213,91,39,149,242,89,233,87,163,20,197,200,228,43,80,109,171,79,177,205,9,120,80,27,97,29,231,57,129,26,
174,92,39,200,170,228,213,224,111,31,209,86,85,182,2,86,67,149,80,127,206,63,81,10,238,200,185,184,226,99,65,30,145,46,178,43,171,125,162,127,135,254,237,126,195,115,215,160,18,102,32,8,186,231,143,212,95,125,214,11,234,251,10,48,206,183,211,160,228,5,205,16,247,31,121,158,227,78,110,203,172,144,97,38,103,225,121,111,198,191,186,97,247,128,132,119,52,253,216,245,176,84,31,126,222,126,184,39,239,220,21,193,178,253,4,20,39,239,234,45,101,184,60,144,187,234,97,252,151,237,205,243,67,149,116,31,157,49,42,231,146,75,112,71,106,161,105,33,203,207,112,28,198,9,27,70,234,243,162,179,194,131,95,216,91,247,197,157,174,105,58,196,67,104,188,159,91,103,32,123,85,253,23,51,233,121,137,21,84,143,228,89,168,55,4,125,198,150,225,167,80,63,234,190,62,158,179,108,68,50,5,116,232,207,123,192,194,23,25,33,207,247,5,105,229,204,204,158,67,100,36,40,21,42,195,145,193,178,6,148,22,9,171,220,47,51,151,112,91,253,161,218,49,77,82,245,
58,226,246,214,128,195,228,5,13,42,29,230,17,183,26,23,225,138,242,105,209,59,61,156,109,63,197,162,203,141,211,246,33,55,118,81,123,128,76,158,75,134,173,133,143,178,205,35,13,228,55,93,122,148,92,187,11,22,230,225,51,29,145,145,55,98,216,13,29,53,245,214,26,111,84,203,166,191,45,222,145,216,104,46,240,85,224,220,168,237,223,102,175,105,42,5,238,62,94,149,202,200,24,205,222,53,168,153,163,197,198,231,165,226,183,162,65,23,59,112,225,74,92,221,55,22,184,19,39,97,37,40,95,180,193,137,100,140,196,252,96,44,42,86,220,180,29,162,36,218,205,222,82,35,44,61,42,40,72,255,109,175,119,74,180,139,113,90,243,106,110,216,57,186,68,166,129,219,252,36,73,115,247,211,37,67,33,182,255,241,36,133,2,89,198,129,240,27,154,214,148,150,235,4,46,167,100,252,218,158,129,115,198,112,251,65,107,95,152,248,4,70,248,82,117,143,243,32,74,108,50,177,56,71,195,19,1,199,181,90,254,240,112,81,86,138,79,202,74,87,174,232,223,9,231,84,
125,199,230,213,78,147,33,158,172,107,187,177,202,195,52,197,82,61,236,4,126,73,128,97,52,217,250,248,184,129,114,4,203,189,45,161,41,116,211,123,142,17,179,111,239,224,4,201,139,238,238,213,34,166,233,244,89,35,192,98,110,72,141,18,110,49,65,200,170,209,232,72,110,80,188,228,74,86,63,54,64,105,225,149,5,74,115,73,16,169,172,8,248,234,199,145,214,246,106,54,58,41,234,134,128,100,38,8,182,177,56,163,245,15,10,43,5,237,55,67,105,97,10,200,53,58,163,71,113,39,13,106,142,147,189,106,225,207,98,68,237,172,179,93,99,99,26,78,74,9,93,97,189,153,7,64,240,28,222,225,10,150,183,249,52,245,124,131,154,176,25,130,77,32,140,29,102,150,203,24,171,12,165,125,140,182,101,33,210,27,99,106,61,228,141,128,136,248,236,27,35,3,197,112,152,153,191,253,145,164,15,171,239,80,68,253,116,156,21,107,253,237,161,65,138,88,210,194,38,16,165,32,216,227,234,187,188,255,32,32,97,23,94,193,211,78,45,183,150,72,169,103,125,68,101,138,
81,83,241,4,133,183,131,148,163,196,111,80,75,99,38,69,207,112,61,211,103,160,239,99,28,191,164,39,146,137,49,188,111,31,254,181,33,116,219,174,4,73,117,30,239,203,252,214,106,234,251,3,233,69,18,178,25,43,137,8,63,52,93,83,145,143,228,26,82,233,142,99,158,25,182,81,100,169,97,145,140,97,255,65,54,12,232,56,127,210,31,229,170,95,134,105,37,143,150,155,23,63,193,158,43,106,43,29,202,31,84,7,248,97,183,30,95,147,81,75,142,240,152,170,71,222,237,170,54,196,201,183,26,117,203,85,197,129,210,78,50,55,129,100,74,42,222,128,175,189,87,117,164,145,142,115,221,155,92,197,206,110,169,185,151,233,28,161,236,231,244,79,142,252,98,79,18,197,179,113,163,204,222,63,251,253,156,213,117,66,101,89,195,78,113,146,53,242,145,32,185,28,98,15,54,147,121,254,122,144,26,163,136,102,101,238,171,228,105,71,138,251,74,70,186,81,34,225,123,112,170,104,31,96,238,171,170,149,79,117,115,100,163,124,64,220,18,204,237,191,227,110,24,94,131,10,
194,192,199,149,63,189,166,36,196,45,20,101,29,158,92,47,221,99,20,205,139,148,213,188,250,113,131,43,69,248,93,166,201,38,155,171,55,119,108,102,250,62,125,234,111,148,208,184,49,181,7,236,151,112,228,217,43,247,212,55,227,207,243,65,198,182,34,146,55,53,110,161,248,25,132,65,100,117,92,175,46,112,59,226,188,65,23,205,206,31,225,102,206,30,247,136,210,14,11,223,29,145,72,237,115,204,41,205,120,50,122,214,94,211,99,103,71,20,208,3,141,53,119,184,88,162,37,42,64,112,89,202,105,146,119,8,239,202,117,200,205,192,11,51,93,95,3,49,56,147,215,195,64,200,149,19,92,185,170,233,1,137,21,162,247,115,79,129,93,119,8,126,178,247,124,201,51,36,203,60,15,169,90,135,180,99,159,39,170,240,131,163,240,126,177,28,104,243,11,233,182,166,103,195,222,224,100,128,45,18,139,65,112,226,214,29,69,15,71,201,20,131,236,49,10,226,48,213,33,205,52,5,4,156,86,174,20,96,154,58,80,159,2,0,109,179,82,139,151,99,243,159,75,165,74,178,
144,244,57,141,188,172,41,109,185,53,212,192,100,0,133,249,7,153,55,93,130,101,44,63,36,181,136,8,124,209,100,149,180,219,111,122,7,204,186,197,36,98,11,206,57,236,111,156,3,220,159,192,225,235,155,33,47,203,205,111,198,206,35,138,78,142,202,1,161,174,14,254,246,187,170,6,150,188,247,217,43,59,213,11,155,144,71,48,23,141,113,121,74,250,87,162,250,20,217,140,176,82,244,55,195,118,211,85,58,117,143,77,129,188,79,141,40,102,216,83,69,122,95,171,69,178,239,228,145,87,203,110,6,181,230,0,85,217,121,96,206,197,155,114,156,205,243,39,83,153,243,128,229,115,51,97,9,25,54,139,0,250,62,202,126,56,40,91,42,54,111,197,48,153,206,35,128,97,229,160,30,214,192,70,202,78,67,56,198,106,102,202,4,164,233,15,131,142,152,159,220,101,143,120,78,172,31,176,234,205,186,119,0,84,166,238,237,180,40,125,120,119,113,133,196,153,106,23,182,213,76,65,190,199,238,199,144,246,2,224,202,79,111,43,138,111,65,5,186,38,65,94,145,82,203,24,
180,245,88,61,147,239,66,136,196,176,201,60,217,32,55,204,158,225,28,239,196,35,58,115,155,240,186,137,122,236,22,40,187,22,217,108,175,211,133,45,194,15,244,91,109,24,227,151,211,217,192,109,152,29,150,122,252,227,231,219,48,38,84,204,113,90,107,123,203,149,135,235,217,242,119,29,250,153,110,220,64,236,151,159,170,220,65,196,56,121,82,125,123,208,67,36,251,97,197,59,40,172,39,133,142,106,148,182,251,43,226,200,237,160,42,26,157,95,161,122,138,169,252,223,95,137,202,17,253,165,235,117,74,148,81,7,90,127,54,157,226,3,133,109,45,29,226,63,124,12,244,42,32,184,209,134,109,230,253,77,217,102,246,75,168,151,199,149,18,110,168,224,26,227,124,114,252,222,54,79,10,146,247,137,95,44,52,222,88,196,154,252,89,116,192,196,21,169,72,151,226,87,121,189,82,134,108,2,148,77,22,105,219,69,63,197,166,197,208,1,74,110,4,89,192,75,229,48,227,207,194,208,250,35,76,166,172,112,220,104,204,198,105,111,113,50,86,25,131,225,140,149,88,193,242,102,
147,250,201,89,227,115,68,34,130,33,100,221,153,148,201,0,69,9,144,65,215,2,16,180,37,112,100,234,177,183,190,51,236,136,56,146,85,88,18,104,21,149,150,71,81,71,15,88,44,12,135,225,41,78,87,18,246,19,54,97,29,131,151,185,127,191,78,208,170,147,99,181,121,181,81,187,159,110,7,29,84,78,164,21,174,76,249,197,95,129,220,233,130,183,163,143,243,79,45,81,249,144,21,243,144,17,2,4,78,206,181,203,72,24,71,119,68,9,24,65,185,98,19,52,127,177,196,131,194,136,164,121,181,183,153,222,175,221,4,181,190,137,71,229,12,159,13,178,89,241,197,183,150,198,245,129,218,141,219,50,95,99,28,138,160,21,244,209,18,123,67,221,175,206,119,94,193,149,42,86,174,13,226,109,127,101,116,173,174,61,58,209,87,212,126,35,121,202,17,186,183,162,241,227,120,199,158,4,16,235,163,11,76,211,24,31,44,135,219,101,249,81,167,43,242,150,211,2,222,90,2,185,150,5,122,120,83,2,126,211,89,255,8,28,114,153,72,118,83,183,98,197,135,82,88,253,
118,133,65,60,122,143,201,38,219,47,44,239,104,238,71,113,192,102,1,29,156,88,167,184,103,108,164,80,169,24,130,185,20,170,166,53,177,174,209,164,103,134,234,4,189,31,66,117,6,86,121,104,107,109,239,75,236,56,218,86,238,155,25,136,37,12,191,114,10,78,118,103,42,37,107,204,34,37,124,116,22,119,235,49,141,25,163,209,82,129,151,198,226,169,217,220,163,253,26,198,189,54,188,77,236,213,126,102,91,211,8,93,42,7,187,224,20,232,38,220,119,156,235,187,176,154,24,190,74,193,237,188,174,35,159,116,231,104,194,248,94,202,49,167,139,104,109,178,133,64,103,229,66,1,234,187,229,86,197,101,7,215,85,182,190,38,94,68,51,94,114,37,12,34,112,230,70,232,29,53,149,78,72,184,242,189,218,86,98,129,218,244,80,27,40,240,99,66,51,1,134,40,168,131,178,134,162,132,240,207,218,160,54,95,79,0,161,107,161,19,133,153,240,9,195,11,100,246,5,13,180,239,128,70,148,40,209,172,192,29,236,230,98,162,208,236,151,103,244,250,157,131,228,145,190,21,
146,15,230,240,79,95,155,71,193,175,204,112,15,103,159,229,21,159,63,198,21,206,255,75,2,211,54,96,42,96,6,150,208,118,238,54,34,16,220,72,234,191,92,253,231,165,249,242,75,189,154,9,225,58,168,150,82,254,65,90,219,240,220,95,40,230,38,60,82,239,155,219,47,29,157,6,53,26,202,27,27,46,232,198,30,121,226,152,89,183,8,240,250,236,52,134,186,14,178,124,209,250,221,55,121,100,244,166,255,171,168,174,31,123,185,225,80,61,195,52,45,246,252,155,32,83,192,92,66,35,82,158,16,253,10,114,240,109,211,22,90,88,159,48,57,19,228,133,239,69,78,173,232,12,183,68,220,140,180,191,52,225,232,142,25,141,13,82,35,9,87,128,175,47,68,240,46,9,72,195,252,220,48,141,166,91,102,165,172,45,24,89,166,94,85,152,17,144,206,45,9,118,213,78,148,25,152,195,7,215,25,208,34,84,235,221,105,189,2,175,154,63,205,14,217,168,158,138,138,33,52,235,50,208,33,225,193,216,243,153,61,60,57,145,118,100,15,104,101,156,191,194,14,248,68,162,
106,121,186,119,212,106,104,87,6,20,183,211,27,187,226,232,126,209,46,61,127,226,163,198,231,161,249,119,143,169,191,88,160,108,70,236,158,196,139,241,77,87,116,156,221,74,38,206,166,47,190,89,163,186,169,61,245,68,220,216,125,131,186,236,37,46,49,227,78,167,62,108,109,179,0,230,223,198,18,1,126,50,19,109,208,27,131,187,249,132,198,101,223,144,242,84,222,233,62,126,139,74,103,145,195,81,113,54,228,4,210,38,82,157,244,130,172,104,218,122,106,92,93,159,158,76,142,184,122,125,111,158,67,79,22,214,252,192,157,212,206,73,76,77,222,37,229,163,87,5,55,77,217,14,2,43,181,226,161,181,106,199,20,231,61,200,235,6,79,71,249,129,167,124,229,124,99,166,104,72,42,12,143,30,170,238,247,151,239,134,33,16,124,232,78,119,245,189,210,124,208,190,140,56,143,24,128,208,203,177,96,247,240,191,218,53,186,233,243,80,230,226,145,163,31,71,95,36,29,163,164,144,45,115,109,15,228,18,5,24,20,62,179,255,231,220,242,175,162,19,158,206,157,184,78,203,
222,133,122,33,138,62,132,135,221,30,243,163,114,65,182,50,41,221,45,254,195,105,92,206,113,174,96,33,174,42,110,200,236,252,163,193,158,150,226,166,171,116,22,179,72,27,66,164,201,247,200,143,236,124,114,145,64,179,106,145,168,240,120,72,241,50,81,94,117,235,217,210,59,89,169,58,122,201,108,208,147,43,239,5,212,2,109,75,70,189,169,220,205,34,178,152,254,148,95,56,183,168,120,124,217,62,203,158,63,3,78,164,74,3,74,249,227,223,74,160,118,125,83,60,26,199,92,114,43,244,137,28,76,32,169,17,77,240,199,142,87,248,206,144,59,182,24,185,69,76,121,211,99,170,193,40,21,63,145,44,118,107,176,124,17,14,90,152,81,135,53,178,203,19,59,20,235,133,6,62,147,112,13,98,80,223,5,6,180,218,9,254,16,87,6,181,29,238,7,128,42,39,223,42,95,115,174,170,1,64,21,207,118,192,205,178,188,166,18,8,214,57,182,204,211,65,229,181,254,98,141,81,94,195,202,75,86,16,205,198,72,107,89,54,127,245,151,203,249,120,83,92,238,175,51,43,
235,127,202,153,83,11,181,248,229,114,247,180,214,49,181,156,93,37,221,103,205,134,98,146,185,240,133,64,234,163,74,119,65,130,221,37,74,2,160,14,45,219,13,68,122,170,205,227,147,166,229,244,57,230,181,206,229,66,225,45,255,84,75,19,249,131,5,175,253,132,143,224,98,211,198,188,96,142,32,32,153,115,247,169,226,123,49,220,177,145,127,248,137,87,62,170,198,30,177,75,75,224,106,180,28,224,155,240,3,20,110,68,12,2,36,203,41,168,157,80,152,163,39,168,112,3,168,241,39,175,241,143,211,141,13,15,106,186,248,23,61,42,165,237,31,131,246,52,223,125,15,186,161,22,245,252,25,3,85,43,219,225,88,160,168,182,136,129,89,26,129,163,63,79,110,94,233,229,29,198,84,246,66,196,111,174,126,244,38,8,186,161,158,255,183,164,182,91,196,42,9,86,246,212,222,93,60,33,204,186,13,25,22,45,103,197,191,232,220,58,255,149,114,209,155,154,115,170,157,10,112,202,122,247,223,156,119,164,86,246,151,31,254,101,109,25,241,179,189,60,191,167,83,248,230,208,
245,112,242,64,184,77,81,108,24,231,11,97,167,99,19,148,25,142,254,224,193,108,119,204,73,34,179,76,57,18,180,26,254,75,243,186,26,58,164,221,211,160,112,8,19,11,60,38,236,116,43,170,181,110,209,18,163,107,181,61,112,37,137,9,143,27,101,75,199,42,254,168,191,222,186,85,119,17,246,210,84,245,104,247,205,10,193,93,111,224,127,219,165,237,175,128,169,116,132,248,15,62,37,16,71,200,246,232,40,81,167,97,18,229,61,124,184,194,177,218,238,58,94,141,106,242,240,169,163,252,238,135,104,21,116,126,165,48,199,193,177,36,41,170,149,140,71,56,48,67,251,153,211,215,174,172,167,28,224,190,195,185,184,177,8,26,6,250,91,197,102,158,163,170,167,238,141,196,163,200,226,132,71,32,110,172,40,46,116,73,161,14,160,234,194,0,126,53,57,219,44,214,61,28,45,193,250,82,183,208,108,99,122,62,121,195,47,136,218,60,185,89,126,193,161,198,41,111,23,254,177,26,197,173,54,141,83,241,21,106,165,129,89,138,88,157,103,70,173,37,91,10,255,104,209,179,
135,212,140,71,125,71,12,72,59,70,106,134,34,246,153,253,155,87,57,109,231,185,12,163,166,14,88,134,43,204,252,175,116,119,140,183,207,119,27,156,64,152,54,59,201,162,217,81,79,1,81,18,251,199,113,38,216,196,46,20,86,241,76,165,244,141,86,182,107,254,22,8,185,76,250,207,31,173,248,245,99,247,99,91,235,73,67,242,238,186,52,145,207,190,59,234,206,53,251,118,241,119,47,219,146,232,109,144,141,117,225,73,146,111,170,53,162,163,142,202,2,83,205,82,205,168,173,121,196,9,147,142,14,165,52,2,123,91,158,92,95,160,11,96,90,156,213,53,97,136,227,191,87,182,249,127,84,79,84,130,210,10,198,154,210,77,68,96,175,202,220,234,223,48,15,0,184,221,231,170,117,81,153,22,3,70,20,87,203,78,254,36,197,108,16,75,223,222,24,226,166,41,91,146,116,136,60,166,70,192,148,245,74,218,150,50,237,103,23,50,184,148,88,253,126,181,82,110,85,46,76,184,118,175,31,177,83,0,10,103,65,218,33,245,99,170,67,0,247,55,76,54,52,187,248,160,
172,115,33,167,220,187,161,255,189,183,172,249,186,126,101,126,43,115,240,134,217,135,160,242,146,107,10,152,253,158,192,214,252,127,30,134,206,101,35,76,210,22,222,67,197,161,190,127,157,95,63,220,100,76,124,168,206,91,173,117,136,76,29,152,244,231,169,149,172,230,130,233,78,173,234,114,103,233,162,217,73,133,169,198,121,171,67,104,9,255,81,39,151,60,193,209,183,191,53,164,213,148,178,244,132,156,32,255,129,254,111,7,41,227,70,189,155,27,51,4,222,249,92,159,187,243,166,8,101,156,64,78,43,94,119,234,72,82,14,31,92,212,148,78,206,139,5,4,213,67,12,172,85,118,129,148,176,105,240,237,77,95,50,202,71,60,145,107,139,26,236,203,82,149,71,100,144,234,246,145,144,197,156,220,23,114,254,173,7,241,109,117,55,133,184,201,75,9,163,40,114,24,86,250,27,212,57,206,163,130,179,95,180,19,66,23,140,21,49,42,142,80,142,70,123,212,88,69,69,217,107,193,117,213,174,172,197,15,87,109,16,199,105,74,92,162,73,112,70,248,80,91,234,252,85,183,
83,17,233,178,203,224,44,90,72,172,46,4,97,160,90,101,227,103,217,80,247,183,139,166,83,71,200,152,166,22,152,159,88,63,238,55,86,191,20,249,46,21,255,96,203,164,149,30,198,145,116,40,50,118,89,47,28,106,245,236,119,212,40,182,43,218,199,4,209,198,148,233,227,137,86,146,253,223,10,125,15,37,168,86,5,130,19,6,13,102,107,233,40,161,86,180,181,225,16,91,237,118,74,197,135,235,30,228,64,55,143,214,130,133,85,37,74,103,221,128,156,205,121,138,234,183,90,250,166,59,183,122,149,243,17,57,3,90,65,76,156,85,156,25,140,29,86,110,201,127,41,235,71,234,251,231,157,138,22,167,39,140,219,245,72,194,120,196,53,108,6,174,137,32,92,211,181,190,154,105,191,117,119,69,209,74,224,124,51,129,51,54,51,239,60,208,214,122,36,1,191,149,235,172,182,252,19,99,50,6,1,39,90,64,52,149,46,215,187,63,30,4,172,113,170,178,167,157,215,122,205,112,123,95,172,93,128,162,124,113,42,129,79,207,138,2,188,213,230,49,236,240,175,197,179,182,
188,232,247,13,98,225,178,69,100,93,147,202,195,22,77,211,4,249,254,222,203,146,237,67,148,238,89,150,42,70,16,64,97,97,184,211,22,225,67,167,94,52,179,87,177,173,58,98,55,134,161,148,16,180,157,180,11,95,95,109,62,120,175,96,211,116,22,48,19,88,230,117,54,47,37,201,133,200,129,245,236,119,190,165,139,87,55,189,33,65,33,90,13,248,11,28,2,92,113,13,126,99,254,233,41,214,106,32,140,69,123,199,112,146,152,42,84,56,69,243,64,154,74,47,73,199,237,84,7,10,203,61,46,164,53,147,0,62,128,224,139,91,146,105,74,222,137,42,8,98,32,218,118,15,212,126,124,153,175,234,1,97,189,117,222,241,135,7,75,211,110,113,116,99,137,193,25,95,97,129,78,57,32,229,138,144,146,144,162,176,224,227,83,194,95,226,90,52,198,35,181,243,24,154,46,227,100,153,254,211,4,38,140,248,170,55,13,81,90,32,86,218,36,108,150,144,30,78,192,239,127,197,46,65,246,22,123,181,58,41,177,236,171,59,64,161,109,62,154,85,149,254,162,121,232,251,
228,235,91,79,145,245,186,208,170,79,220,106,172,139,226,97,90,255,142,34,3,163,233,103,57,52,119,163,87,177,211,55,10,101,173,128,84,156,240,191,11,16,197,180,80,85,152,30,38,38,228,170,177,214,216,2,86,6,95,19,240,123,226,10,59,213,135,194,178,125,6,92,134,27,140,89,214,200,97,158,227,9,242,127,86,56,222,137,193,215,238,168,134,241,144,229,247,134,164,149,39,152,191,170,152,71,220,150,63,99,104,216,219,182,111,61,7,199,121,19,41,116,110,216,1,113,17,207,223,57,34,40,97,229,164,217,202,14,189,143,141,63,150,136,44,87,53,121,159,71,97,217,67,109,165,188,90,1,126,11,42,240,197,243,37,51,217,108,64,32,160,206,250,57,225,9,227,128,242,17,42,172,252,225,172,16,84,213,174,4,188,254,144,249,179,76,128,66,103,140,65,129,98,173,25,77,9,29,213,38,208,151,106,111,132,233,38,217,132,67,214,128,72,38,171,98,44,54,227,160,61,155,159,83,223,75,27,246,253,187,64,174,237,237,238,58,181,230,73,38,216,231,124,197,86,39,
197,173,35,46,223,212,52,128,84,117,116,205,106,200,81,127,227,242,102,135,219,198,164,205,242,223,77,134,21,114,156,127,92,132,91,18,129,205,7,83,216,240,182,204,101,124,216,172,196,163,209,135,22,173,34,54,71,140,215,162,88,211,11,113,63,199,241,0,153,28,227,164,114,236,157,176,52,252,34,148,32,161,171,88,124,22,113,172,9,120,20,245,148,100,31,106,221,145,171,178,124,38,90,211,192,156,25,82,13,66,77,83,57,153,153,102,7,198,82,123,244,59,189,224,206,224,202,124,154,103,144,70,107,141,44,208,187,250,81,230,107,193,173,144,247,31,84,192,252,42,89,60,41,251,180,136,72,232,44,225,119,163,21,162,230,175,206,76,91,138,48,149,135,154,205,47,85,59,175,6,123,128,228,81,104,158,126,191,48,46,223,150,225,43,35,128,227,75,81,43,33,122,34,34,94,175,194,160,17,174,233,47,105,14,237,38,72,25,254,239,250,14,231,6,51,201,46,171,38,226,234,144,214,143,121,251,25,246,184,207,184,6,199,5,83,204,10,147,162,2,159,188,35,65,37,240,
81,195,131,196,199,137,204,10,119,82,26,34,194,1,11,162,118,118,56,244,193,92,116,227,41,23,163,82,227,244,151,148,250,29,125,169,250,145,241,79,94,32,206,100,40,28,142,35,223,33,159,126,13,112,50,152,82,61,225,115,143,85,63,230,182,63,146,100,236,18,8,45,169,26,20,150,156,101,178,33,173,168,147,20,225,99,152,89,133,59,98,15,143,246,168,154,212,69,82,230,44,58,57,134,171,151,31,3,178,1,27,175,89,154,50,39,230,151,72,144,149,55,156,153,52,153,64,32,174,191,54,68,80,184,242,31,17,228,191,3,2,53,116,83,65,151,183,59,32,48,251,30,146,205,80,35,13,195,113,213,60,108,124,106,222,57,138,6,91,241,217,153,38,5,188,234,98,80,54,208,131,219,136,196,192,138,40,243,165,47,193,138,183,167,182,171,221,98,180,242,183,61,87,174,90,67,68,183,156,9,152,42,51,201,174,55,153,78,124,246,32,53,18,217,172,146,199,47,67,65,10,195,131,211,6,243,223,189,248,14,116,3,186,204,195,203,223,248,246,206,107,153,11,209,194,119,
48,94,246,119,104,49,142,188,215,229,86,107,89,242,119,191,126,104,16,243,240,49,186,59,56,126,135,161,77,185,4,8,15,203,5,44,81,22,213,248,49,215,141,23,23,63,136,224,17,177,140,180,35,150,160,143,135,170,103,134,238,246,164,17,154,77,37,27,153,217,128,170,204,101,71,143,234,136,96,152,52,110,4,52,248,213,247,126,71,224,162,13,254,98,23,66,16,63,51,249,146,159,201,1,253,131,113,218,13,72,29,148,122,150,94,143,130,15,46,113,214,23,244,74,130,76,171,65,213,28,113,135,213,233,191,142,173,92,178,62,77,7,36,81,187,42,234,118,55,66,129,9,18,248,95,251,162,171,195,50,121,207,140,210,210,153,67,74,235,170,190,95,230,172,238,208,253,2,217,126,180,117,153,223,102,186,21,114,2,80,225,104,27,248,178,245,41,31,130,69,47,117,40,172,24,27,46,243,12,223,241,73,250,81,28,10,170,210,21,61,161,25,149,241,91,25,225,203,166,132,24,231,195,160,223,18,149,163,186,154,5,20,64,53,50,201,67,170,170,109,105,198,155,164,156,98,
89,15,148,121,19,240,145,217,157,194,122,163,91,44,233,120,24,12,161,59,9,233,146,212,146,202,237,185,93,211,245,181,41,131,194,4,97,32,50,195,54,46,87,171,33,124,152,228,149,158,112,75,153,148,94,51,102,156,255,188,40,99,87,126,225,27,141,150,157,200,186,69,63,250,208,132,128,243,165,234,83,220,163,221,137,84,63,96,56,140,91,145,62,68,72,40,209,26,227,134,116,92,242,101,246,223,31,76,151,233,166,207,17,63,70,44,30,212,96,70,15,58,58,70,1,226,77,113,236,85,217,86,67,103,249,94,139,244,250,71,200,107,200,66,222,91,8,253,240,82,143,202,12,175,145,35,250,91,154,241,236,105,49,93,214,141,90,26,38,43,156,120,31,130,241,162,243,1,31,57,123,66,195,208,167,176,95,214,191,213,108,53,152,55,50,3,87,220,14,87,218,119,215,38,75,251,251,100,29,11,38,95,246,43,181,217,217,187,166,215,175,230,114,153,142,100,85,32,135,59,224,8,55,136,209,252,61,204,245,35,16,7,34,221,77,58,237,119,101,128,46,254,237,151,101,240,
187,213,112,72,109,91,148,40,206,210,157,206,85,243,18,95,245,32,210,31,204,82,44,174,73,241,244,112,131,185,175,17,123,248,111,248,146,117,251,5,231,35,214,212,139,4,178,138,100,3,211,216,160,153,145,124,143,149,16,173,58,5,226,13,100,65,216,86,61,25,51,22,228,87,43,39,141,95,234,10,122,214,8,4,21,250,35,183,98,173,64,109,214,107,181,130,144,199,62,137,150,200,25,30,177,156,236,90,82,134,103,173,55,172,99,209,197,59,24,100,14,210,115,9,174,84,15,2,192,49,196,91,42,167,63,134,232,228,178,162,200,54,222,52,185,71,154,26,146,109,14,212,64,151,89,206,84,236,218,224,192,167,250,80,12,90,104,246,129,32,62,4,71,48,37,172,13,239,81,216,192,139,172,171,29,110,194,149,29,34,140,196,118,156,104,232,29,211,13,63,100,28,140,158,157,17,226,101,127,8,244,228,67,159,243,174,80,29,31,27,49,59,253,10,123,179,252,39,3,19,194,166,39,254,196,196,43,236,52,65,56,138,31,214,218,127,53,0,188,196,148,51,61,178,171,223,
39,56,82,102,60,75,150,112,175,11,122,221,177,232,40,169,107,158,74,138,29,250,235,202,24,114,30,24,65,27,254,73,3,179,170,30,21,195,6,254,219,31,49,54,224,3,70,220,47,101,197,16,109,183,0,157,97,143,48,39,167,77,208,64,227,37,125,177,14,220,103,106,159,51,49,242,9,9,104,160,108,122,128,11,81,80,96,12,93,155,168,30,157,243,237,122,154,96,2,90,24,253,196,31,116,116,219,45,65,146,133,195,238,95,203,138,104,22,127,14,125,225,213,178,133,242,15,63,40,179,69,242,165,62,198,104,230,204,30,190,241,45,210,222,20,133,28,139,208,7,16,126,83,38,161,10,179,29,78,146,137,241,137,210,20,253,24,61,195,148,245,105,97,240,243,80,180,203,70,118,139,71,139,60,20,90,87,129,147,236,231,137,245,118,167,68,13,23,160,149,127,158,146,170,218,173,243,238,106,58,183,159,120,154,253,122,62,207,23,235,166,179,126,119,54,233,170,42,121,2,119,90,6,199,96,160,199,112,126,164,96,106,106,71,18,208,255,248,228,31,65,13,31,0,130,169,
120,180,223,128,161,179,244,208,102,176,38,165,15,248,8,5,17,79,204,5,30,196,64,200,160,225,111,58,113,91,213,230,178,133,93,182,2,175,197,233,116,69,176,206,118,113,186,75,48,98,159,102,236,19,17,12,127,70,193,251,231,92,119,238,103,248,160,15,2,37,241,245,93,201,47,64,40,11,101,60,127,146,130,98,253,81,8,188,252,147,93,63,33,140,47,38,92,167,82,41,128,4,60,50,216,170,136,173,16,76,114,24,14,71,133,208,236,170,95,42,215,150,72,241,157,205,127,192,26,5,225,46,44,109,72,115,101,86,110,63,222,114,69,213,189,202,178,30,92,169,202,70,46,4,161,252,51,194,172,202,186,73,8,214,28,135,219,52,109,82,34,98,95,228,13,158,193,78,148,192,136,20,1,232,195,1,131,108,117,205,127,3,176,253,231,109,206,202,38,229,130,168,46,71,142,182,28,138,230,223,130,8,185,48,182,98,239,112,108,65,216,101,63,210,33,39,255,242,207,158,52,112,101,11,39,8,10,56,125,99,235,39,6,32,144,27,1,104,39,218,213,71,237,104,238,163,
92,128,153,221,135,12,149,198,112,120,178,140,104,203,177,250,205,13,193,227,200,250,249,237,105,79,22,82,200,145,156,26,16,4,8,212,252,253,233,47,143,219,96,23,3,31,176,95,77,0,31,233,87,215,34,255,56,35,21,158,226,200,11,67,8,120,191,96,94,0,169,78,0,227,117,163,127,38,242,59,218,253,121,250,120,190,1,196,221,55,80,177,254,37,3,27,207,114,92,3,57,66,102,38,226,253,149,181,23,178,34,41,200,169,223,108,67,217,58,73,8,118,136,176,33,75,211,219,86,50,81,202,151,125,50,198,239,199,49,2,18,47,146,163,40,67,72,20,219,99,44,27,69,89,166,7,137,108,236,163,79,2,4,82,215,0,254,84,154,242,228,90,27,10,162,45,168,137,189,21,1,80,143,161,229,97,238,77,0,233,195,36,196,246,217,101,82,127,129,75,10,51,119,116,131,179,38,122,124,165,136,203,231,212,144,113,194,36,34,24,116,128,73,83,60,151,45,27,128,71,150,67,20,64,243,157,129,52,222,122,180,246,140,51,169,75,64,73,229,2,114,201,21,33,56,68,
128,218,151,147,155,83,160,50,58,56,167,37,176,178,119,57,220,17,168,80,87,166,105,160,78,166,58,166,231,147,151,37,96,210,225,181,57,106,59,159,156,67,98,71,163,50,251,41,244,233,203,28,50,190,31,249,101,1,235,196,240,12,93,127,59,100,193,33,83,128,170,74,186,12,208,15,105,237,231,138,159,69,220,238,188,214,244,229,237,196,100,219,68,120,187,101,188,146,148,233,14,89,238,114,212,186,11,241,135,37,172,90,163,189,22,83,147,52,69,110,81,135,24,228,90,59,145,246,28,212,175,152,24,206,59,37,9,234,224,244,56,206,215,176,205,129,240,96,235,205,134,120,151,63,96,29,149,80,60,128,196,157,235,138,130,101,233,91,18,61,199,203,44,139,245,87,83,191,209,184,108,155,181,78,216,127,87,74,138,108,115,175,101,171,115,238,188,37,188,183,11,84,71,154,180,85,227,199,42,173,221,137,191,52,186,251,66,71,162,69,186,99,82,163,223,61,126,16,210,158,251,46,124,152,236,167,239,72,240,1,215,232,42,199,187,210,98,252,232,216,64,162,172,136,122,248,
32,207,244,26,217,228,37,60,32,214,212,14,253,139,57,86,137,246,194,85,182,108,246,75,108,83,84,56,41,152,246,254,152,108,250,112,45,137,135,28,34,229,35,24,183,231,249,66,148,209,67,98,209,92,238,238,209,75,121,207,203,72,233,234,156,238,136,222,166,211,202,7,170,2,73,63,76,252,248,54,113,234,153,36,204,194,39,117,143,218,151,231,161,50,59,125,169,124,193,241,220,206,253,49,239,114,9,200,166,176,201,33,150,222,79,249,202,141,211,33,69,190,30,187,109,70,70,178,44,119,71,117,22,126,227,208,252,74,135,198,74,29,133,133,228,95,139,83,218,82,186,120,244,145,221,22,191,150,157,220,193,237,139,188,213,36,142,115,234,246,45,71,129,25,62,251,253,104,98,251,150,198,210,193,93,115,14,186,126,13,35,204,120,233,144,25,98,68,50,255,23,110,25,26,117,236,156,43,204,145,72,61,84,185,27,160,7,164,180,60,135,173,238,64,34,11,173,87,61,28,74,75,179,96,163,98,99,41,241,85,34,199,93,77,66,104,254,202,133,163,58,212,28,112,223,237,
78,121,131,174,247,142,115,83,153,40,68,25,42,103,13,13,1,17,66,34,146,54,147,55,133,200,165,103,36,188,209,86,235,5,61,192,207,160,110,194,179,7,236,244,45,146,139,212,181,90,71,233,90,251,227,140,66,162,180,182,233,195,100,57,42,254,195,176,122,105,137,76,103,10,219,27,24,185,118,52,228,26,136,255,62,135,171,121,240,207,130,233,148,159,65,176,207,185,102,35,111,213,68,241,188,245,97,236,149,7,198,186,186,43,89,52,213,146,148,115,41,134,170,102,104,84,105,139,183,59,104,211,213,247,135,197,108,31,242,120,100,176,176,210,146,123,204,91,2,243,47,56,130,241,214,104,44,196,76,74,71,159,220,142,60,49,48,197,132,194,177,167,222,32,221,78,255,116,71,129,80,157,164,194,226,138,208,218,196,198,143,232,15,124,230,106,183,55,73,116,228,90,206,64,75,151,97,159,191,159,145,163,42,27,147,56,115,18,126,8,14,232,135,105,157,132,174,92,249,216,250,59,44,129,224,232,60,230,125,79,252,51,186,210,185,109,66,106,234,77,105,177,137,213,27,152,
152,115,236,77,42,74,161,146,200,62,79,85,18,144,235,193,21,131,248,181,252,234,155,112,154,85,47,188,133,228,228,17,165,166,23,179,64,91,23,37,172,82,127,133,127,255,9,81,29,62,37,79,42,150,145,231,134,171,232,234,39,245,246,101,55,14,50,13,149,57,41,58,158,197,60,219,141,140,236,1,113,85,169,65,84,101,213,176,247,114,98,205,133,38,229,187,218,49,108,67,81,183,200,160,96,58,26,171,5,120,118,169,60,201,87,43,134,191,216,252,152,156,54,36,36,249,91,123,167,117,218,156,127,29,204,9,80,153,125,108,2,227,109,103,200,75,138,215,195,147,167,217,176,142,170,131,237,95,71,74,96,165,110,200,168,185,185,208,72,171,20,119,230,73,105,171,79,181,47,233,36,73,189,185,115,250,72,77,221,33,249,162,197,140,21,61,255,180,241,197,113,188,188,9,179,125,147,18,64,211,253,203,118,206,251,100,165,68,24,76,79,135,172,206,60,93,86,186,2,1,231,246,251,21,135,5,33,39,45,193,114,4,166,44,93,225,247,99,30,55,218,93,18,118,218,113,
44,84,102,25,66,47,58,51,27,154,171,163,154,9,233,106,91,225,163,137,118,98,39,101,10,38,238,242,217,242,232,71,166,101,176,186,253,12,120,172,245,29,220,23,34,9,248,61,149,139,203,108,128,85,211,19,202,12,28,27,237,182,254,202,60,0,250,78,20,206,171,77,47,20,92,91,166,180,125,227,143,83,33,141,228,95,128,250,88,223,94,82,153,48,218,237,198,132,220,171,46,133,178,57,231,120,64,143,229,221,66,102,157,237,105,144,237,99,98,85,94,234,210,142,91,26,170,104,20,199,147,203,138,218,74,82,56,232,106,253,81,190,118,36,200,204,226,200,181,255,104,239,101,165,204,169,181,134,101,104,3,206,250,60,160,56,5,39,85,123,59,20,85,174,245,101,135,0,34,185,64,108,251,88,163,99,51,203,212,57,235,246,52,100,21,17,202,43,56,198,235,154,219,165,237,55,30,96,175,59,253,46,181,170,198,242,99,94,241,58,217,158,134,190,179,106,165,75,51,110,171,112,211,161,13,214,83,243,186,38,243,193,42,248,193,241,221,139,208,60,6,245,12,194,254,134,
27,40,250,144,203,213,110,216,221,208,83,185,73,88,129,187,66,18,30,81,152,35,19,222,239,166,122,111,206,31,204,201,118,168,76,8,210,53,35,234,151,200,20,210,105,29,25,56,175,80,103,40,133,27,20,69,205,160,56,152,114,189,180,110,108,9,144,42,18,221,2,33,216,135,73,34,117,37,6,21,71,6,55,84,38,214,34,115,81,22,169,41,131,188,166,96,198,9,7,212,197,47,84,236,236,150,83,55,101,7,178,69,106,230,1,247,129,206,1,132,226,6,175,191,97,16,217,104,237,123,230,115,152,171,236,102,72,240,96,100,224,8,20,118,57,41,11,44,37,13,23,97,154,78,231,140,48,110,237,199,181,204,20,204,150,0,111,164,117,162,221,239,174,176,199,44,165,148,150,162,5,90,106,155,23,243,87,150,226,241,107,216,241,138,205,151,191,78,62,194,63,29,72,123,255,251,205,233,70,62,248,137,18,39,160,67,190,6,69,101,187,92,12,111,96,45,108,132,137,92,54,132,161,168,66,202,149,87,248,183,208,177,222,191,222,92,152,229,66,30,151,219,200,224,125,6,
236,212,142,85,196,193,91,240,79,227,97,155,183,173,101,96,98,58,37,139,4,42,127,153,178,217,194,27,173,181,78,143,62,179,196,158,50,41,0,59,45,94,119,149,85,105,251,13,80,181,40,9,50,247,166,82,122,225,86,121,251,107,124,184,217,159,165,255,112,191,104,17,235,132,246,250,209,163,238,121,110,77,70,102,167,94,237,63,22,229,204,97,235,16,144,232,203,62,254,157,151,191,108,224,183,209,191,108,128,57,106,154,246,235,6,28,96,226,124,29,233,227,188,235,192,195,215,154,41,25,90,79,23,88,186,182,216,180,219,127,154,167,187,20,186,72,237,3,195,28,235,58,175,46,177,151,4,222,62,253,212,154,244,187,41,2,141,159,7,110,211,227,12,239,40,90,7,134,182,56,140,173,205,159,78,204,249,51,250,145,104,16,63,95,100,121,221,237,35,232,202,220,90,28,213,233,74,236,26,188,211,57,238,69,97,57,231,229,56,23,58,113,244,3,93,112,77,56,196,86,180,57,243,95,178,107,10,190,223,239,62,243,72,150,114,118,69,174,198,44,109,69,253,122,41,37,
253,10,41,99,230,4,179,91,218,150,79,80,123,39,44,195,19,202,102,246,148,251,181,128,99,100,194,182,135,177,47,150,149,193,94,14,117,52,229,168,250,130,160,107,150,101,34,67,83,36,183,177,114,254,135,50,212,186,111,246,235,39,216,214,234,150,117,101,93,37,46,131,212,24,49,69,223,137,188,242,190,15,219,253,241,190,217,69,24,204,176,17,42,73,10,215,29,147,114,10,58,113,72,251,16,62,148,138,235,155,76,117,74,144,23,107,186,69,95,141,9,54,30,237,125,190,2,104,105,156,226,35,45,58,46,242,170,234,134,232,179,44,56,49,85,51,143,61,107,126,189,130,45,61,66,173,220,235,245,133,36,178,133,77,21,101,232,23,128,99,143,107,26,50,23,120,210,43,240,18,225,163,167,206,25,0,200,73,22,92,190,18,16,73,97,9,92,207,59,212,180,158,146,247,189,131,237,232,149,214,140,171,36,93,75,50,222,164,20,159,165,67,17,249,88,89,33,126,233,31,189,190,235,170,31,104,198,246,42,58,86,23,31,23,163,53,154,67,92,75,185,227,115,149,94,86,
25,63,242,158,84,48,205,135,55,248,118,231,40,116,16,176,90,39,69,185,172,241,207,125,150,115,159,185,57,167,14,189,93,209,182,139,232,149,21,104,117,91,122,57,66,138,205,92,167,5,171,51,181,250,207,252,55,193,75,38,176,55,180,194,208,204,32,63,249,194,2,55,249,214,178,96,159,220,75,172,171,24,158,252,182,90,212,4,14,214,170,62,103,62,178,234,183,168,135,105,135,136,51,97,248,171,102,254,189,55,199,252,66,112,0,90,19,232,114,56,167,26,227,8,149,97,120,88,235,91,116,194,85,229,231,199,252,168,60,40,136,229,137,71,123,195,227,6,243,97,25,30,135,59,22,156,219,177,53,94,37,5,234,117,28,94,31,215,80,204,18,139,150,199,12,208,60,129,161,132,243,70,83,163,89,236,74,48,62,105,229,10,11,15,102,66,113,115,151,217,114,94,217,172,185,237,237,73,220,199,157,207,128,73,63,135,188,238,57,131,205,204,77,229,124,72,249,149,8,71,109,176,190,57,175,230,28,168,76,46,198,187,202,217,106,44,153,37,251,216,63,53,186,240,13,221,
124,203,231,252,94,142,178,127,130,245,252,101,232,190,122,153,159,97,3,48,195,235,80,51,79,212,216,109,155,222,248,215,225,134,190,189,14,137,240,109,249,232,235,243,13,30,158,185,86,181,179,79,203,23,210,63,92,160,141,246,98,86,153,180,182,241,153,101,109,132,104,99,167,28,230,105,5,206,56,137,230,209,227,38,44,176,101,251,180,79,97,100,178,53,8,235,144,229,236,48,70,148,93,233,134,211,110,241,121,149,169,7,228,122,205,240,150,190,63,79,14,245,225,195,16,217,141,65,132,134,90,51,9,150,143,214,176,159,202,16,142,34,236,140,12,203,142,250,181,198,90,39,205,6,8,178,97,91,32,151,64,76,0,242,223,208,12,207,33,101,159,18,75,42,191,109,83,21,90,38,8,42,181,30,41,205,87,95,234,12,163,4,248,201,15,12,39,152,169,88,188,171,214,9,40,186,126,40,69,194,90,55,53,217,84,194,135,42,247,198,38,109,233,180,164,69,105,31,211,220,178,138,139,36,55,6,157,175,234,91,219,219,199,238,188,156,197,22,124,52,50,253,102,158,33,244,
117,253,1,46,145,125,216,84,150,205,63,196,18,27,166,191,111,76,127,105,28,99,107,201,104,125,178,78,20,227,114,230,35,140,159,15,124,10,121,182,242,31,78,233,33,242,124,149,199,177,234,255,93,14,62,47,218,173,96,250,180,95,230,158,75,187,238,123,199,136,244,163,127,89,243,79,245,37,250,54,81,25,246,116,211,0,115,178,47,67,230,156,133,245,121,73,14,101,169,30,250,37,200,169,48,121,126,30,9,84,78,161,173,123,122,103,65,149,101,133,34,206,181,206,18,128,199,191,141,154,168,120,193,190,223,229,17,244,25,138,1,165,207,0,144,213,254,238,83,100,168,188,75,78,94,174,50,168,51,223,21,247,232,52,69,146,10,113,55,248,19,210,184,143,224,47,186,51,78,119,5,81,23,241,80,153,205,221,33,40,73,213,150,92,101,108,60,86,98,161,162,139,16,91,127,132,47,106,13,202,237,116,167,56,230,37,247,7,220,15,121,111,65,167,162,106,145,15,235,42,237,176,69,70,217,226,2,24,96,193,139,109,29,255,108,133,40,13,91,137,225,20,83,156,209,84,
85,150,48,151,84,245,116,90,226,231,58,69,139,164,176,140,233,133,104,4,128,90,103,50,60,206,174,41,232,197,22,181,153,4,235,110,68,92,174,204,138,147,83,7,38,166,217,254,96,67,31,199,249,76,24,135,82,203,226,121,41,77,124,117,21,182,94,246,78,139,180,211,95,90,82,252,138,137,251,46,215,116,162,180,61,165,142,121,193,107,90,196,68,107,196,155,21,242,100,11,161,4,182,182,26,164,41,10,152,204,133,98,59,45,73,202,31,45,118,133,143,6,244,158,122,235,171,86,198,93,199,42,187,188,90,232,37,141,230,174,156,204,206,54,172,110,26,180,86,229,14,201,8,59,94,100,232,187,143,172,199,192,225,3,56,21,98,113,37,154,17,195,227,70,22,238,18,197,202,209,54,233,204,10,32,159,134,180,158,37,45,39,67,175,98,131,51,84,113,90,137,147,167,96,190,203,229,130,82,26,161,113,28,188,225,135,235,5,102,236,206,205,183,233,243,126,79,60,108,28,119,36,64,218,103,141,181,161,233,135,158,99,101,61,123,246,151,235,132,134,213,98,253,65,117,50,
123,133,133,212,146,78,99,233,253,171,91,93,22,31,31,156,53,63,102,106,51,187,159,153,68,214,173,120,188,150,20,95,55,21,170,22,33,58,192,178,201,222,250,193,3,210,199,159,93,194,224,110,237,36,84,96,125,231,58,96,59,205,133,169,23,11,116,151,151,172,253,118,64,200,29,180,84,225,180,246,209,26,154,3,250,52,122,247,219,202,160,191,125,128,232,85,234,2,221,156,122,78,105,133,22,167,115,221,71,123,145,245,156,234,245,214,170,34,11,50,208,158,176,122,72,172,128,82,236,44,79,203,69,9,222,248,239,183,132,200,137,197,69,217,202,54,43,200,103,245,217,173,230,11,210,69,246,90,216,70,3,227,130,153,87,107,66,39,198,225,134,127,211,193,186,181,235,83,113,165,135,77,94,91,18,159,63,132,105,205,33,232,243,237,151,82,94,233,133,247,16,50,138,165,39,168,134,62,76,116,133,174,254,215,208,189,37,42,132,61,177,224,201,232,50,77,38,147,14,20,219,151,229,168,153,253,114,118,253,126,70,173,141,128,51,113,193,189,205,55,90,65,215,113,255,169,
161,230,49,75,224,70,96,17,163,92,145,118,16,223,109,251,15,104,149,24,200,10,213,79,172,48,230,241,71,82,245,67,136,78,125,51,200,139,38,124,131,252,115,181,184,115,119,50,254,102,241,123,170,219,6,223,77,213,177,63,137,182,250,163,211,165,208,219,233,176,135,255,163,73,93,36,49,91,120,81,202,17,36,53,17,212,245,107,197,47,187,192,113,18,117,129,208,94,175,183,245,131,134,189,94,255,87,31,70,98,217,127,189,38,158,169,16,115,253,236,34,232,243,235,140,97,99,180,186,135,77,13,61,163,102,102,169,99,56,22,75,189,158,23,80,3,227,21,83,52,150,9,133,129,156,160,163,168,226,49,33,146,207,181,233,231,178,149,219,245,123,61,12,103,103,14,32,7,144,10,72,133,251,217,68,247,207,107,154,89,108,183,191,196,223,28,149,157,66,192,227,13,17,216,36,130,153,254,248,46,7,9,107,119,91,184,245,109,218,169,7,120,95,74,154,218,209,239,13,199,191,57,10,217,46,107,144,130,67,227,42,110,200,65,90,108,66,213,4,234,218,93,32,224,208,75,
116,159,205,116,118,252,21,228,251,210,60,36,52,0,25,122,246,120,53,52,254,78,242,121,226,139,18,126,127,1,129,78,69,33,70,18,29,121,199,113,46,199,66,27,182,86,98,156,198,11,214,93,109,185,251,226,237,148,120,146,102,143,176,137,167,215,159,28,71,75,239,105,97,199,219,29,155,207,0,79,89,1,12,92,193,21,215,171,186,180,164,174,124,10,121,57,15,113,228,199,18,77,186,116,138,222,194,199,16,136,89,239,70,139,128,206,29,117,19,31,164,37,174,199,5,4,159,52,231,208,247,28,70,226,11,254,244,178,64,142,138,199,179,241,108,51,20,124,63,192,128,78,61,66,188,228,153,200,230,209,84,6,32,248,15,191,122,93,133,146,3,211,250,161,94,142,168,214,205,196,167,237,159,90,193,207,196,183,0,82,127,119,192,21,122,42,137,194,150,174,62,238,130,147,110,85,125,67,94,7,81,10,92,236,159,137,34,122,140,136,87,227,113,201,70,165,175,165,118,139,200,119,236,29,173,230,178,102,62,218,246,139,12,242,82,88,62,28,139,197,50,3,224,207,154,33,
62,30,79,237,105,22,129,221,49,197,151,129,150,28,222,255,218,24,176,183,198,51,159,102,218,244,223,109,236,250,147,8,98,148,228,18,112,24,66,235,169,81,248,124,248,219,58,251,165,154,220,51,237,51,27,126,247,10,65,121,238,184,16,11,79,223,22,197,14,186,174,48,189,155,82,125,5,112,49,169,49,59,65,55,171,225,230,237,68,15,111,196,80,241,20,213,138,117,156,209,184,215,18,154,88,31,39,101,58,61,92,180,142,243,191,189,209,219,93,5,252,53,158,192,3,210,177,182,119,231,116,239,238,126,59,210,78,75,195,201,94,238,157,174,184,12,57,163,238,226,36,61,188,150,183,153,58,125,187,99,14,10,143,240,193,140,245,78,11,110,233,58,209,2,248,251,64,63,177,83,10,219,232,173,21,11,28,29,203,121,69,158,36,19,179,22,222,84,37,167,6,151,67,131,102,239,146,61,219,12,6,14,236,154,158,203,26,185,95,186,8,170,200,14,194,88,204,99,131,96,64,23,78,50,187,240,241,7,207,49,33,91,72,248,66,238,238,115,149,252,128,252,180,151,56,34,
98,221,150,166,37,205,123,126,206,86,144,66,221,69,27,93,206,242,224,60,218,143,30,199,179,5,123,232,37,141,27,170,238,244,221,96,235,31,38,134,238,102,111,135,41,89,128,162,153,17,40,194,207,101,47,173,78,206,106,161,81,51,124,168,177,245,118,217,134,132,148,214,113,2,165,224,210,143,152,228,133,195,219,140,142,143,206,219,203,78,124,57,143,136,38,150,212,237,51,196,14,1,114,235,0,226,22,142,12,161,101,228,190,7,144,194,235,10,176,165,23,182,87,196,255,200,123,111,29,231,154,104,75,236,85,110,50,10,20,221,155,204,64,87,144,48,207,160,116,48,129,2,65,80,160,72,47,64,239,93,147,77,239,189,119,77,239,61,217,244,222,123,178,217,244,254,208,59,241,251,126,204,11,76,160,68,5,18,5,16,7,197,93,187,246,94,123,173,58,117,72,114,177,123,6,110,143,179,119,2,62,1,7,112,244,190,65,182,113,69,215,197,66,217,133,19,75,46,172,44,177,98,238,123,252,197,7,31,223,52,210,156,56,43,194,103,36,70,239,228,201,90,143,174,217,161,
158,162,65,156,99,202,9,37,221,118,253,38,21,206,201,28,194,190,83,177,74,173,228,23,83,30,223,172,88,233,184,179,148,23,104,31,12,10,90,136,175,118,1,164,17,110,60,69,244,246,25,139,121,240,81,89,175,3,188,81,84,54,249,31,172,215,227,7,110,84,13,70,214,214,232,181,252,148,147,8,39,189,209,168,233,137,63,174,219,175,58,164,197,210,200,143,223,157,238,231,67,59,95,215,80,150,131,223,126,80,69,214,44,236,35,15,213,213,141,144,71,78,237,102,180,129,140,82,168,119,74,139,85,167,117,9,217,57,152,70,241,145,156,163,251,184,69,121,66,19,49,124,73,113,45,60,159,246,221,179,184,175,1,121,21,8,189,171,166,170,226,102,137,123,52,101,18,175,151,43,214,244,9,181,139,215,24,196,76,241,35,175,101,214,164,165,242,237,132,114,180,144,93,197,177,173,93,139,13,101,168,30,195,115,142,142,220,154,2,184,77,129,206,89,30,93,132,162,202,173,215,234,253,108,153,33,232,142,108,255,122,157,101,153,128,75,178,135,114,114,108,142,33,199,238,43,
28,14,235,79,216,186,224,234,37,61,79,77,153,139,240,137,65,57,31,82,171,141,181,110,27,148,41,50,26,62,18,63,220,27,241,32,197,57,194,51,251,109,29,128,146,25,163,249,163,154,168,4,234,13,242,45,111,205,247,84,147,121,91,75,45,181,158,139,30,221,104,144,25,224,177,23,170,194,127,147,219,103,56,111,79,212,151,45,230,62,35,79,96,216,251,30,124,166,1,183,38,135,212,43,162,128,56,70,86,75,197,123,69,70,233,144,226,238,24,26,99,173,22,164,123,140,67,90,36,147,228,128,57,235,12,118,119,208,39,42,92,113,1,214,115,127,156,155,103,91,95,84,9,149,28,41,53,3,65,226,253,99,225,38,79,68,177,177,250,162,175,89,81,174,179,99,144,117,23,154,73,134,227,54,33,223,125,247,175,130,114,164,125,19,47,128,211,103,68,67,179,49,164,124,222,72,225,237,115,242,117,45,14,241,35,82,73,119,218,29,121,99,88,135,43,133,36,71,191,91,130,46,229,148,58,202,205,83,121,190,190,118,5,229,53,150,86,218,153,161,194,108,120,181,156,195,
101,174,19,155,94,154,126,182,141,187,226,33,75,0,51,68,109,174,215,209,137,69,185,16,202,10,26,127,112,237,170,217,210,102,248,97,141,47,155,160,158,103,250,54,150,55,3,234,206,183,239,194,189,158,73,105,128,245,65,4,232,199,42,162,142,209,61,4,167,199,35,96,85,59,210,184,204,194,107,3,172,154,85,119,117,239,210,194,227,233,0,115,193,136,100,90,222,57,33,227,79,15,102,235,60,110,149,55,82,39,124,57,101,212,31,102,208,77,255,248,153,37,27,228,192,97,228,186,29,177,177,184,229,177,216,195,131,135,124,36,235,186,15,116,11,110,240,22,10,102,238,63,35,150,196,212,224,46,243,68,212,114,46,44,8,155,209,166,116,250,72,94,225,124,250,142,222,229,61,90,70,32,63,12,125,107,172,203,112,35,158,178,4,218,166,180,35,92,201,146,189,24,196,152,49,15,75,155,77,116,125,59,222,229,158,17,98,60,65,85,1,225,89,232,211,180,108,180,46,59,15,152,164,238,227,59,72,149,113,183,219,87,237,197,143,211,103,248,178,125,205,97,10,199,221,49,
221,232,177,197,215,145,38,95,131,187,90,190,165,130,203,14,142,248,158,33,229,61,109,249,44,169,214,123,46,78,87,75,149,87,82,84,58,43,147,231,129,17,152,215,162,132,97,33,80,62,193,216,88,47,156,143,213,116,232,72,172,46,144,56,132,219,247,206,87,159,250,117,5,116,215,224,206,51,213,181,1,52,76,213,111,39,176,206,103,163,170,168,129,28,9,17,1,147,96,40,14,141,181,81,59,63,120,217,53,121,73,211,81,68,82,121,228,16,197,231,109,242,201,154,238,139,149,181,46,118,206,121,71,166,190,21,206,227,87,219,34,40,226,84,47,119,53,59,126,14,202,3,155,3,203,148,188,190,124,162,61,237,194,35,114,107,178,240,19,231,85,198,110,12,213,25,243,103,23,98,245,212,145,174,77,142,206,201,151,145,68,58,188,53,2,239,60,148,177,169,136,40,59,238,60,157,54,64,206,185,242,253,45,21,120,88,244,174,227,130,196,145,166,183,231,117,61,168,44,58,137,183,85,93,151,115,190,36,226,226,202,42,49,206,133,231,4,255,131,43,126,104,218,206,194,142,
232,190,94,127,212,127,214,169,35,12,209,3,189,205,239,37,135,137,88,140,245,214,91,84,169,63,121,47,202,139,64,109,170,27,61,99,8,41,182,82,168,135,222,240,12,226,135,222,178,177,13,48,71,223,162,140,42,205,185,161,209,146,174,222,29,212,220,92,246,2,80,149,123,204,50,93,231,42,172,98,217,141,33,17,214,75,63,245,42,119,15,189,146,79,194,92,223,33,67,9,121,196,245,89,158,244,147,120,164,29,103,136,245,176,193,127,213,58,162,50,107,12,179,49,40,78,222,71,35,93,65,165,150,88,95,46,13,94,186,4,129,172,123,144,255,179,225,229,156,112,182,66,244,121,100,116,246,174,97,88,27,24,225,76,222,229,13,98,159,124,102,187,230,0,111,25,172,131,235,115,170,142,191,14,212,110,236,223,195,234,83,229,212,213,121,107,4,94,182,178,76,206,240,166,147,183,249,68,116,200,178,251,130,168,253,113,78,101,177,93,62,120,41,31,242,203,186,98,116,168,174,217,53,181,219,122,233,222,17,38,137,73,145,192,139,157,10,247,82,160,254,62,69,133,7,122,
32,247,187,70,84,129,235,245,133,206,129,151,155,137,250,83,71,212,93,107,146,183,15,206,142,215,157,144,163,133,59,148,24,61,215,22,166,102,93,138,255,24,161,43,220,47,163,238,168,133,136,191,243,216,232,29,253,105,150,91,125,235,142,67,120,29,44,183,175,228,104,82,104,238,212,197,144,147,176,120,128,84,86,92,187,9,87,149,179,183,20,235,151,185,216,38,29,246,132,238,250,28,36,103,82,253,153,55,59,221,66,26,195,55,214,245,149,170,10,141,233,213,161,13,124,91,118,105,70,39,175,157,99,225,180,115,71,23,166,35,30,11,144,238,10,49,19,172,65,63,175,52,208,100,209,149,209,135,34,197,21,99,126,47,138,244,233,238,105,0,196,175,237,39,165,4,9,223,235,194,107,217,87,156,73,81,52,207,243,24,45,195,179,230,251,47,140,29,79,168,171,43,221,213,53,127,82,218,218,199,158,198,120,56,42,169,65,127,150,60,229,242,243,182,70,106,110,223,46,157,62,19,237,92,137,163,61,114,122,116,227,58,187,147,111,187,99,50,122,97,33,39,200,108,65,88,
12,193,165,200,134,148,139,100,25,74,156,140,71,71,37,161,177,196,30,92,157,157,223,185,146,201,252,238,60,198,214,4,64,119,135,247,77,129,72,143,30,11,20,221,36,178,54,159,207,245,196,190,28,64,63,61,216,125,170,85,244,153,102,65,45,32,219,74,247,91,67,237,13,214,247,241,44,201,223,14,204,169,84,34,67,220,97,170,98,32,143,255,101,199,180,231,49,247,138,46,25,237,93,88,8,84,185,156,228,173,221,105,44,169,29,44,243,67,11,96,236,170,233,95,140,149,241,123,63,87,20,142,209,209,254,132,162,134,15,28,213,13,83,1,249,24,84,50,160,167,20,188,118,142,189,149,16,250,229,62,213,169,163,179,30,77,43,109,253,200,26,24,244,118,240,88,192,174,134,231,136,88,57,113,114,230,29,176,110,26,41,58,201,183,253,27,137,60,120,219,151,101,174,104,168,59,235,103,249,249,164,195,248,96,143,224,151,74,95,49,133,135,189,56,146,153,7,18,129,164,252,163,41,77,138,202,5,163,245,102,250,32,187,153,81,182,122,237,217,142,202,244,133,162,86,222,
78,230,80,195,211,201,28,154,171,171,0,253,2,149,167,140,18,229,67,55,171,198,35,196,1,239,150,234,239,204,77,62,185,177,172,96,183,94,186,127,59,240,34,254,198,125,86,252,227,57,249,1,221,46,215,64,194,208,223,132,9,119,35,161,107,250,158,20,119,200,144,221,188,226,237,161,88,46,150,30,19,126,185,195,133,152,236,129,205,71,21,250,118,116,233,70,8,53,86,47,235,118,157,121,229,156,151,23,86,47,18,116,207,227,235,247,162,120,232,83,0,149,119,2,84,119,105,13,165,232,99,127,114,250,124,92,165,49,126,246,213,106,125,189,167,211,134,228,164,185,165,187,177,1,31,160,138,249,162,252,177,117,46,107,89,233,230,227,239,146,190,22,145,202,85,17,88,116,126,20,243,195,70,47,75,94,94,217,58,97,66,49,60,208,159,109,150,47,31,253,229,161,225,177,43,100,37,29,160,98,236,239,130,98,31,68,116,215,227,114,147,193,221,152,157,176,156,124,192,234,250,115,86,215,116,244,32,232,222,43,68,7,189,229,215,20,202,22,159,207,24,111,29,252,41,65,
0,147,5,216,7,212,219,89,58,111,20,217,237,164,60,121,212,179,93,47,124,182,92,93,229,201,235,251,132,109,239,167,123,207,205,39,191,3,235,21,134,96,109,36,143,25,110,50,44,254,10,68,170,149,71,117,233,142,74,119,158,132,152,202,221,231,48,87,3,133,57,130,254,204,164,60,188,88,209,19,110,246,249,27,255,236,152,44,83,45,160,227,35,163,214,237,36,167,157,153,96,167,249,136,254,133,239,139,78,71,178,47,242,226,18,58,93,254,208,86,178,98,208,35,81,178,84,234,108,206,85,10,132,234,49,12,236,189,20,230,220,32,111,225,158,110,29,47,203,224,22,33,250,181,58,27,131,204,55,185,170,156,183,104,178,202,15,16,18,219,9,47,150,165,242,110,42,173,245,171,150,252,47,103,217,130,171,229,62,187,232,147,195,235,213,104,244,137,136,200,205,69,198,251,136,170,188,51,157,119,226,145,145,30,149,88,87,30,42,177,1,76,221,182,194,232,14,178,36,110,229,219,161,160,60,124,161,136,27,161,235,49,160,184,38,174,193,211,19,52,55,125,185,146,43,31,
125,161,31,28,61,230,130,78,216,186,162,127,246,121,180,208,181,79,159,44,28,143,101,70,55,31,57,237,111,213,229,14,236,220,134,45,247,55,218,92,28,147,250,206,160,132,157,167,77,88,188,128,26,186,13,154,73,251,202,127,232,78,204,128,179,172,3,240,238,140,17,59,193,118,18,111,237,207,163,183,63,75,79,131,185,154,27,71,77,141,102,16,23,99,119,158,207,94,169,155,238,254,181,188,23,25,103,146,216,203,32,131,205,201,146,58,236,99,22,71,234,156,67,24,54,217,41,134,58,119,10,65,157,37,112,37,169,52,241,89,0,97,121,250,193,53,46,238,105,193,241,55,197,232,94,43,1,90,213,19,217,201,173,240,246,105,153,83,155,58,84,149,174,149,23,253,244,59,99,6,174,61,33,243,187,89,221,1,173,104,3,113,199,186,174,223,115,213,26,139,206,71,78,245,38,108,92,124,57,159,247,155,138,237,107,4,87,20,77,144,63,55,8,128,124,217,191,64,244,111,69,169,243,55,65,117,51,109,191,26,176,213,161,230,201,222,97,206,227,150,46,225,50,175,72,33,
225,70,83,249,193,13,245,4,163,173,209,54,142,35,83,182,238,144,30,62,190,19,40,68,115,188,234,216,153,72,218,196,114,167,132,169,56,127,118,179,212,177,166,132,125,25,115,115,106,250,164,35,128,15,198,45,138,242,108,81,57,237,237,199,36,61,208,214,252,223,90,182,77,181,98,35,65,58,196,213,12,246,151,194,229,21,189,157,253,97,191,10,101,79,218,64,47,193,51,209,146,88,176,172,143,44,215,170,7,69,221,98,69,179,114,244,194,29,14,243,181,136,173,182,176,84,87,103,230,217,184,93,75,194,188,155,89,184,191,36,131,148,231,71,85,74,91,153,35,74,230,223,66,247,152,204,134,235,254,177,5,16,10,175,199,114,135,216,247,70,230,137,200,196,147,183,182,164,59,140,119,41,69,219,77,55,12,189,240,137,110,96,186,4,18,91,52,203,122,129,73,198,231,183,110,184,156,167,172,144,121,167,227,62,189,119,184,17,152,133,24,19,203,123,125,114,242,71,82,238,178,100,248,231,61,180,156,144,158,79,198,169,174,241,193,41,11,95,168,252,131,139,112,8,75,139,
0,156,216,123,215,51,188,129,249,125,40,87,147,170,227,125,255,189,123,220,131,67,3,105,205,127,224,136,199,57,50,251,41,131,94,143,88,170,93,109,155,82,50,180,55,41,218,215,51,239,194,27,251,97,119,129,204,224,52,99,81,87,111,158,202,154,169,121,252,154,220,76,48,234,244,245,86,174,97,195,127,219,176,13,219,41,215,14,132,122,191,34,219,70,180,207,207,205,187,124,72,47,112,221,138,220,22,176,104,37,135,216,153,173,123,52,117,247,52,229,224,71,232,72,159,223,72,236,90,44,59,221,125,112,180,27,196,164,175,89,46,199,35,94,153,75,34,170,221,84,195,68,82,27,44,19,155,208,61,206,58,146,87,36,94,5,57,71,93,97,167,94,27,35,168,45,26,156,247,243,136,203,19,110,252,189,139,177,222,99,239,151,46,58,237,246,121,151,153,118,200,67,39,8,90,159,243,122,220,29,227,239,213,68,103,156,253,249,225,152,244,118,100,250,104,174,62,224,167,213,56,83,104,164,102,235,147,217,70,83,134,6,11,28,161,5,160,63,209,214,208,216,173,58,203,193,
161,24,223,178,183,207,137,250,86,209,132,79,29,154,62,194,126,142,245,254,190,233,32,39,48,210,206,217,112,239,24,30,237,126,237,93,101,149,114,194,129,238,105,208,59,63,96,63,226,241,111,178,240,246,45,71,7,187,206,186,207,36,216,186,16,94,46,172,120,221,193,170,105,55,207,211,149,255,52,104,218,163,209,208,109,139,143,205,247,115,46,235,201,98,143,45,43,39,116,143,250,105,197,188,199,116,165,75,134,17,185,171,163,26,205,182,16,169,78,106,251,221,141,149,71,107,246,17,185,189,241,47,165,45,142,83,213,136,119,120,249,135,39,149,26,228,129,55,207,154,47,53,245,159,246,201,66,90,236,44,56,61,169,79,179,93,153,85,36,241,132,238,136,157,231,154,188,2,241,103,90,128,15,239,187,20,230,167,98,112,6,102,189,209,250,131,29,59,5,138,195,115,122,109,87,185,190,204,153,140,209,137,94,54,201,199,105,164,68,48,0,87,209,199,105,163,154,58,244,24,46,27,230,14,137,98,56,188,113,38,234,222,242,95,119,117,241,136,183,234,156,13,6,25,29,176,
48,243,169,100,128,114,112,77,69,183,49,156,191,230,219,160,159,175,121,55,240,91,224,81,66,133,193,133,249,117,28,40,135,82,203,134,138,131,169,90,122,143,217,170,105,37,105,48,140,208,198,143,113,227,137,193,133,226,236,0,67,209,45,58,181,247,179,237,166,153,162,67,39,207,179,241,247,21,138,77,63,227,243,213,54,145,209,22,161,216,12,120,234,73,23,191,182,86,49,50,99,110,112,235,123,10,221,234,69,241,243,106,200,91,44,15,18,5,241,215,225,83,205,250,185,149,125,194,222,183,186,252,205,214,121,44,141,73,56,128,109,159,40,252,47,27,46,63,137,240,139,185,198,101,17,171,135,44,59,167,231,82,146,92,238,219,243,14,147,142,4,11,5,251,130,140,145,212,79,237,136,117,229,149,248,110,237,13,34,2,163,175,96,88,89,117,182,188,93,133,183,105,128,103,9,5,194,74,166,41,195,154,55,5,211,115,183,29,25,45,183,207,243,213,253,160,188,235,206,12,107,203,230,219,235,182,50,229,1,47,61,54,98,76,52,118,231,218,151,223,36,172,74,223,152,155,
111,105,254,125,10,52,195,123,154,104,52,202,71,170,228,42,182,176,146,42,63,139,197,195,142,153,12,40,78,107,162,184,62,249,53,109,47,223,100,215,64,126,27,41,149,63,16,54,190,47,105,178,84,182,163,125,216,11,201,20,77,221,174,134,205,69,170,231,207,185,84,233,91,233,23,134,22,251,87,180,210,51,241,9,103,199,23,91,44,248,190,190,124,54,30,185,38,162,34,121,135,114,16,28,250,29,68,222,120,70,246,233,245,138,193,167,218,84,114,249,10,209,184,120,66,157,124,125,79,159,254,10,186,137,181,44,197,92,110,48,188,23,145,188,207,47,236,185,13,79,236,172,155,63,196,114,86,32,168,95,21,23,204,159,21,216,27,130,60,47,6,213,115,122,226,214,111,160,250,249,136,170,91,241,78,139,171,216,254,24,121,90,17,186,144,28,116,243,234,122,219,196,147,176,106,136,180,5,37,139,148,220,72,169,213,226,123,147,12,68,198,0,232,242,209,116,248,232,109,190,69,143,141,134,161,92,110,33,30,194,235,79,30,148,242,243,177,142,106,139,73,36,16,57,101,184,
154,169,243,28,59,89,133,243,43,90,56,168,139,227,229,176,71,53,130,211,61,249,237,126,111,102,164,142,173,223,72,114,182,190,58,95,51,184,112,233,49,44,9,42,98,155,218,40,59,99,140,35,10,121,233,200,63,175,28,233,117,201,150,99,17,94,59,168,185,194,43,211,119,141,27,34,167,6,50,10,250,51,222,147,94,162,107,48,132,126,255,198,137,100,142,131,93,137,103,8,151,24,72,108,67,98,229,186,130,117,150,243,146,10,20,27,4,82,41,4,83,219,112,168,231,158,101,49,96,50,150,29,2,237,118,23,160,90,248,35,142,140,48,60,80,206,14,194,204,24,249,247,249,146,84,159,190,208,129,95,43,183,98,210,193,89,64,15,216,132,54,28,60,59,168,221,122,215,147,61,232,7,175,175,72,177,4,33,5,138,164,206,204,88,74,155,167,167,150,78,3,252,68,167,16,213,107,159,210,111,2,73,116,22,193,17,243,197,8,86,194,76,28,178,182,146,13,240,1,89,20,220,226,96,227,146,21,171,122,235,157,208,84,53,143,250,11,135,213,107,108,225,38,22,196,225,
242,208,80,33,151,225,76,57,198,223,82,201,247,250,113,100,228,130,132,89,215,156,71,13,126,220,141,80,83,127,182,216,125,166,159,106,20,220,216,123,38,51,143,200,153,190,221,123,49,142,118,59,222,71,185,50,221,231,49,208,17,17,236,218,91,85,56,150,246,235,254,74,54,39,227,95,131,46,245,106,84,115,191,73,34,164,161,31,37,47,60,235,58,80,133,145,115,252,150,86,79,73,64,172,144,24,3,93,128,64,107,55,14,184,157,118,32,171,243,1,20,243,241,217,162,30,60,3,55,196,78,60,208,229,55,14,249,37,139,41,122,235,143,152,197,56,255,9,124,173,8,142,95,63,89,54,33,162,48,65,17,82,119,28,104,113,36,159,57,14,54,161,207,8,49,244,23,6,143,4,2,162,57,39,176,221,228,200,59,150,132,159,93,80,3,2,159,5,9,147,110,145,156,52,56,32,65,129,61,16,47,225,202,32,117,88,193,7,132,7,115,76,112,95,38,18,194,38,118,9,230,23,115,29,86,67,69,54,97,130,11,119,95,130,21,224,73,84,126,216,175,181,94,52,195,43,
235,98,214,155,174,159,89,210,16,11,30,26,142,64,142,96,239,223,33,252,121,96,61,79,113,129,137,168,117,246,25,134,152,210,112,36,16,49,159,189,47,35,141,188,151,208,226,43,126,35,251,227,189,156,177,6,176,71,245,105,159,160,76,10,2,38,178,176,132,77,216,149,207,119,108,8,249,51,49,2,103,9,128,61,111,86,14,99,235,20,120,140,219,100,238,97,110,148,7,197,128,11,180,195,254,60,159,99,47,197,176,147,188,192,248,233,9,73,124,167,140,171,78,170,16,147,217,103,216,220,200,104,6,66,63,132,133,223,194,40,80,72,163,80,251,128,92,121,99,158,85,148,81,50,174,74,72,41,131,192,40,41,181,68,229,59,234,159,46,137,224,62,225,180,162,201,186,142,129,113,142,106,180,45,57,61,95,51,112,4,178,36,217,180,47,232,205,126,122,1,22,199,207,183,154,182,190,204,135,141,185,114,237,99,44,136,192,104,127,155,196,200,185,160,105,103,188,174,90,140,212,244,50,47,67,12,182,111,56,156,202,67,123,133,203,222,10,83,13,168,140,210,143,113,9,127,
17,216,89,34,152,20,5,14,236,239,129,173,223,41,184,78,149,200,100,140,29,226,36,19,58,251,24,226,95,88,198,58,110,227,67,102,177,43,48,166,9,10,75,192,32,161,215,154,114,226,248,205,160,247,148,147,167,140,196,79,180,89,24,87,249,77,68,57,7,24,24,66,83,184,176,136,76,91,4,159,10,251,249,162,43,215,192,244,8,125,169,104,97,243,241,38,224,124,151,195,49,201,252,14,88,134,125,60,157,127,136,228,28,132,31,70,231,198,106,72,183,168,3,187,56,40,19,0,49,234,155,143,131,213,183,35,26,113,175,143,117,225,45,14,174,192,241,229,204,146,201,125,107,136,110,241,206,74,30,45,22,221,199,245,24,82,172,224,210,177,78,219,217,33,121,70,130,202,102,85,82,205,25,147,197,80,251,34,214,106,209,121,11,168,43,164,99,165,240,160,53,127,201,110,179,209,239,10,106,49,164,186,192,146,196,74,54,20,64,93,244,186,56,157,229,234,132,198,26,62,172,139,0,24,235,24,253,6,48,39,169,242,227,123,139,179,25,168,4,70,255,164,92,168,237,16,
65,163,231,202,170,87,246,62,113,16,233,90,203,145,150,195,75,145,65,255,220,217,174,115,247,220,242,22,252,8,158,218,22,125,133,247,178,219,92,170,100,111,0,156,9,92,80,124,42,142,22,77,153,251,168,172,70,204,198,173,64,208,19,253,230,148,30,209,36,52,7,227,35,90,237,228,173,105,30,64,131,192,79,82,5,33,110,91,94,174,44,6,22,14,125,132,7,28,217,37,134,171,93,96,182,122,228,127,46,30,221,62,149,54,217,245,87,158,207,59,169,251,13,91,97,33,144,245,250,166,120,222,18,34,206,201,35,213,23,217,21,227,8,225,248,119,53,18,125,253,192,14,113,79,176,74,81,5,167,245,83,85,115,70,0,133,211,43,254,178,80,26,45,89,12,215,191,120,241,132,112,215,43,31,252,164,139,160,14,223,44,242,237,238,177,68,182,153,59,94,2,195,146,101,74,203,2,168,32,151,95,182,227,241,71,7,252,123,142,163,68,103,201,35,224,145,147,205,175,153,15,111,201,64,51,91,175,181,255,233,62,255,57,239,71,185,157,241,135,200,250,243,198,156,122,136,
167,176,169,2,203,234,151,138,161,108,116,76,152,159,143,188,60,254,224,247,205,242,196,219,220,173,81,255,230,251,9,186,199,161,121,204,224,103,22,253,85,210,116,202,111,238,70,184,119,171,230,85,102,84,52,191,224,253,158,84,248,120,198,244,52,190,73,39,27,92,162,228,122,165,45,15,81,34,35,237,230,123,244,96,6,123,6,214,226,20,223,145,43,200,58,27,209,182,204,148,87,88,207,238,60,65,181,7,104,141,234,19,204,15,251,71,119,108,105,189,180,15,218,119,199,55,64,122,163,129,181,173,84,11,189,66,40,29,148,229,107,68,248,142,198,71,53,192,14,247,141,190,67,193,105,67,197,110,12,212,243,211,125,249,140,36,233,34,44,65,112,21,206,109,171,66,167,61,32,233,253,240,225,67,195,139,109,145,165,146,53,244,72,35,217,210,19,183,107,13,76,84,245,253,50,185,70,140,20,158,13,171,38,46,117,144,151,230,215,158,167,241,249,214,66,191,114,161,177,104,180,115,47,197,114,133,71,235,202,63,114,126,85,126,241,53,75,188,166,194,236,76,145,50,179,174,
112,19,85,135,96,78,96,127,253,189,211,142,144,19,98,180,233,7,213,231,6,55,40,25,205,206,49,205,188,98,36,95,139,3,6,78,107,116,59,39,13,136,206,231,164,129,176,25,37,229,210,102,0,249,71,109,255,51,103,233,94,105,124,130,107,71,140,25,226,115,226,57,187,13,62,105,208,135,130,242,125,127,109,151,236,15,165,238,21,59,56,55,134,89,91,157,114,45,31,215,236,3,247,10,42,185,165,24,35,165,65,150,42,249,63,55,106,84,250,186,204,187,17,229,128,86,154,135,128,134,50,211,253,130,4,107,3,150,248,139,109,248,116,140,137,241,118,12,186,123,69,221,201,161,198,161,15,209,219,233,108,100,126,218,238,249,103,233,239,124,33,218,207,72,153,252,57,82,173,229,234,251,176,43,113,182,6,104,233,84,22,108,231,118,50,131,62,195,136,241,228,115,17,155,189,209,94,206,5,20,255,41,144,255,218,235,66,236,14,58,15,134,196,176,206,195,4,37,202,46,46,150,229,70,250,169,13,6,140,200,234,190,67,147,124,33,50,98,156,197,155,157,52,35,130,226,
216,77,42,109,114,164,179,210,142,179,131,131,58,39,161,208,196,230,127,35,213,207,51,214,249,140,57,187,39,175,216,220,218,110,98,177,167,54,170,92,212,193,67,209,94,5,181,169,151,162,113,230,254,140,37,31,221,227,242,3,131,165,181,6,102,59,228,245,42,244,211,48,1,132,200,7,177,177,29,125,146,238,246,84,108,48,52,157,5,70,172,131,244,118,136,124,86,76,186,195,123,38,214,133,233,98,240,224,80,23,40,218,45,148,94,11,112,41,57,5,245,175,136,45,215,102,172,7,136,91,255,123,236,210,251,244,92,159,255,119,52,80,123,3,192,2,138,67,213,103,170,184,138,19,251,147,184,205,12,50,59,20,138,17,227,116,84,229,44,126,65,132,218,242,148,57,242,140,88,103,106,127,244,42,129,235,156,88,85,79,157,204,41,23,166,29,50,4,142,238,137,130,56,179,254,58,94,150,98,189,24,8,247,104,77,175,107,184,46,254,180,178,63,45,183,39,29,79,83,198,66,225,157,62,111,26,115,61,143,242,92,184,223,10,207,241,44,44,184,216,147,128,179,233,40,84,
244,196,57,49,118,222,129,235,156,71,16,150,157,153,38,235,71,21,224,200,83,132,55,255,222,57,176,6,228,1,44,193,73,168,12,75,104,163,177,245,2,82,76,185,181,245,18,104,31,119,149,179,255,203,147,234,221,211,205,111,48,145,11,196,64,58,39,228,46,16,43,125,79,11,175,196,53,108,170,129,124,227,252,248,10,241,81,214,11,191,226,29,195,100,55,47,131,59,15,233,137,150,220,35,16,250,115,190,123,106,28,162,157,102,111,46,82,174,50,16,240,165,66,145,213,187,126,71,66,46,145,211,230,87,149,216,142,85,200,242,157,170,109,243,193,216,147,110,220,131,101,20,169,8,177,209,1,56,191,2,126,135,181,40,52,252,198,190,245,102,191,147,203,10,134,85,111,240,224,78,140,93,36,207,182,37,23,232,174,115,209,139,97,236,14,63,105,183,87,204,34,105,206,118,153,158,196,46,226,118,82,40,213,25,21,200,69,98,36,137,236,216,133,56,17,243,151,225,209,25,9,159,206,174,11,227,147,109,58,156,45,86,72,30,94,227,218,211,11,235,227,93,218,252,51,139,
32,251,170,83,46,235,194,25,244,119,211,64,119,69,107,223,138,45,234,189,120,29,178,138,18,203,67,111,40,244,146,118,194,9,180,70,92,182,192,116,93,214,202,55,44,209,19,72,94,74,121,131,19,109,97,124,23,103,46,163,106,159,255,78,19,178,163,72,182,0,36,78,107,157,112,218,145,102,221,7,83,140,217,64,35,109,20,8,198,11,73,189,199,6,189,135,150,94,238,187,221,91,148,65,232,158,79,153,110,146,227,230,28,123,186,205,167,49,0,107,42,226,136,46,23,119,65,196,212,59,38,196,102,111,141,153,16,103,68,211,119,156,109,242,233,251,241,84,134,11,218,220,115,22,21,137,61,194,213,215,119,20,90,121,135,46,242,111,180,1,48,115,128,236,47,55,56,22,227,73,211,144,174,187,208,33,222,49,74,242,13,227,64,47,103,8,252,224,64,254,190,238,80,82,123,183,149,138,149,31,41,202,21,218,222,159,131,101,250,48,136,222,118,77,180,140,118,11,208,230,189,130,98,211,75,84,187,174,163,99,76,13,243,142,35,157,121,44,218,145,110,17,155,99,190,17,
99,104,153,166,172,254,88,219,42,22,140,238,190,52,77,36,131,98,12,62,221,118,186,153,239,124,164,125,252,57,167,22,165,27,218,46,14,126,34,154,239,48,177,189,230,101,14,181,102,250,110,211,196,109,81,222,152,131,31,169,250,160,132,88,151,209,57,141,118,138,26,200,218,24,139,249,106,183,175,90,94,51,0,75,90,141,97,71,100,21,46,26,174,143,22,21,163,198,248,59,48,119,243,33,120,35,47,74,23,226,244,116,122,105,217,187,83,10,221,199,4,93,156,200,182,137,67,45,187,96,103,174,102,100,199,94,14,236,76,124,110,13,107,79,163,223,250,83,118,19,249,78,105,151,65,122,120,126,172,151,44,131,0,114,67,190,163,152,54,201,245,207,239,180,30,70,51,6,135,44,126,137,137,131,245,91,40,248,218,67,180,35,14,225,212,27,171,126,11,81,250,81,231,20,198,59,3,179,43,153,173,87,231,247,185,94,177,57,173,118,176,190,206,189,138,154,233,58,49,206,106,139,178,65,194,175,35,166,145,204,129,255,108,175,181,147,247,226,61,227,237,40,29,239,100,135,
223,11,123,32,207,142,253,56,104,157,211,93,252,203,49,57,173,24,234,122,239,201,153,230,5,165,224,68,229,190,40,119,235,247,204,82,45,191,161,86,175,5,124,204,125,70,51,113,221,150,23,199,124,26,222,127,191,176,133,195,237,105,90,151,2,184,58,18,36,217,178,8,171,5,205,103,110,8,32,239,57,176,156,16,1,171,175,90,247,146,211,118,233,148,78,222,118,183,137,136,69,231,44,118,177,122,193,242,37,248,98,83,38,30,250,190,210,99,165,101,183,93,228,11,241,174,222,84,233,141,168,49,47,109,90,104,95,231,19,149,151,43,49,222,58,163,143,181,37,181,162,247,253,103,215,115,14,76,233,111,216,94,135,244,22,77,140,222,230,132,200,133,167,67,250,59,17,17,249,157,125,74,255,107,94,117,226,86,30,140,59,147,106,109,125,72,247,57,226,197,247,242,110,241,88,97,137,204,148,21,34,130,151,77,234,95,43,1,237,14,179,77,235,189,132,72,141,124,93,139,241,142,215,248,115,75,251,22,222,181,122,82,133,203,168,203,88,95,229,126,173,162,165,99,228,131,
101,179,134,142,145,42,98,27,44,229,112,1,56,17,12,101,99,189,220,54,208,38,74,126,167,162,234,126,31,201,47,165,134,109,255,254,224,13,117,95,86,160,83,92,75,143,28,158,229,70,7,8,233,96,51,36,182,254,60,144,130,185,116,28,239,208,205,220,109,119,100,136,16,47,205,176,172,30,82,69,196,242,173,219,220,197,140,136,176,123,95,144,170,37,41,165,31,162,199,145,103,33,139,55,186,194,163,156,176,201,104,245,18,40,221,184,134,161,77,208,139,65,255,30,84,235,137,81,95,191,91,170,229,152,248,226,57,110,64,70,158,22,24,132,197,38,194,74,186,118,198,8,184,61,189,8,151,153,58,38,16,176,17,67,77,43,117,206,55,235,196,147,207,128,148,223,156,253,120,92,223,184,191,231,82,197,216,206,1,252,134,91,1,86,135,50,58,221,49,5,92,126,226,113,26,207,79,73,68,39,150,227,192,20,124,101,138,100,93,222,146,158,161,223,170,123,94,53,250,81,168,152,225,11,143,100,228,188,146,119,135,205,231,177,51,95,148,103,239,76,202,5,222,137,249,214,
239,37,6,151,55,148,149,140,187,168,95,106,121,67,35,234,43,67,109,29,112,74,236,149,35,225,83,150,204,238,73,41,217,116,37,107,179,94,242,58,144,95,136,84,42,194,143,116,76,78,203,4,5,17,124,219,123,40,183,234,172,244,99,124,52,225,229,37,136,143,195,162,102,234,32,82,62,101,252,21,85,140,213,73,51,231,103,247,217,163,54,200,30,162,206,41,155,108,56,83,232,71,27,99,151,254,190,222,57,172,23,196,207,230,210,102,220,15,87,240,175,195,28,45,233,197,61,224,86,11,168,170,141,18,234,54,190,108,250,229,122,105,196,69,204,118,98,63,63,6,135,163,167,30,253,234,69,69,183,187,176,119,107,99,132,30,133,238,213,221,26,126,185,37,31,77,15,34,227,67,132,162,27,207,107,193,203,240,16,110,56,6,250,239,29,51,79,155,10,48,29,160,140,163,6,36,173,216,189,74,234,34,71,187,159,58,225,215,69,43,111,238,39,212,90,38,52,179,11,5,58,54,68,225,33,240,4,60,135,83,8,46,14,3,76,8,37,17,23,12,19,59,169,97,71,247,
51,15,148,64,8,178,219,237,45,131,195,158,171,49,72,169,15,168,252,151,145,163,104,37,155,20,155,86,53,221,139,1,176,58,80,170,5,238,14,49,34,118,126,235,31,6,142,135,119,67,195,229,79,206,55,135,225,96,196,90,233,152,17,226,0,7,146,97,134,95,37,99,20,89,28,20,135,68,50,195,145,251,35,4,114,68,5,22,223,232,128,198,177,193,145,170,244,88,142,131,2,143,105,254,237,9,129,52,65,33,30,29,42,128,3,9,92,9,59,67,183,118,225,239,162,253,79,79,208,202,137,27,200,248,128,180,32,94,63,250,83,211,49,71,255,68,219,93,61,136,227,97,248,49,41,38,101,18,224,255,65,124,131,99,184,214,19,44,112,181,12,158,157,1,38,182,79,48,168,223,40,10,229,132,66,234,1,176,66,171,89,255,248,27,35,66,99,178,227,28,237,76,144,8,177,23,193,150,96,120,0,28,8,204,253,134,150,77,33,160,251,220,242,31,233,46,199,33,165,176,48,170,57,48,98,24,25,37,14,38,76,45,36,155,40,155,93,196,224,115,82,83,44,39,69,109,
210,196,32,120,17,2,201,251,151,169,209,174,199,167,48,114,32,182,128,67,123,25,28,32,193,219,113,19,20,29,165,193,16,102,98,228,1,3,14,8,251,80,21,254,67,89,200,97,201,31,70,70,141,35,84,124,64,247,79,56,211,10,41,82,182,107,5,90,219,147,127,64,180,167,248,182,106,200,11,108,75,58,166,146,84,19,90,43,245,248,87,212,196,20,207,63,210,86,91,62,221,94,18,55,205,37,236,135,42,187,189,2,203,70,95,183,127,70,149,163,127,255,228,168,71,148,234,4,162,50,110,28,35,89,37,222,186,127,237,157,34,116,181,182,95,104,170,129,229,35,33,25,33,38,251,140,124,91,106,6,95,120,109,175,27,163,104,210,97,47,69,104,207,8,234,205,192,1,146,117,105,143,133,14,166,150,81,67,220,154,5,79,247,200,95,28,89,119,161,95,140,61,246,4,126,201,235,190,137,232,129,48,60,248,78,27,131,206,41,7,214,75,134,251,43,47,233,121,156,154,201,151,181,25,10,40,253,244,231,247,110,220,133,41,39,175,137,254,108,124,215,125,205,82,66,156,
12,107,216,126,23,240,195,2,164,159,150,129,54,161,186,157,91,149,125,15,24,10,247,229,34,98,127,235,24,125,101,216,5,82,72,223,9,93,157,77,248,216,85,159,194,26,118,111,128,4,199,176,11,66,144,61,110,223,5,50,58,166,147,128,101,225,246,240,194,137,239,29,232,132,3,244,174,222,20,68,249,148,142,199,57,241,220,91,192,8,254,167,254,167,139,207,136,62,47,197,234,124,230,125,74,174,115,62,49,67,22,110,12,215,95,63,109,118,104,87,182,231,68,52,9,216,192,227,127,142,211,253,23,234,102,30,36,190,133,8,58,96,210,223,249,140,179,142,224,105,0,249,252,199,219,210,109,32,124,46,109,10,224,14,224,215,157,217,102,150,228,150,250,186,120,199,64,225,222,224,110,117,244,87,125,243,173,211,228,0,169,242,185,195,252,184,230,106,17,117,255,231,28,236,120,44,202,100,251,20,250,112,198,11,235,174,214,55,45,121,224,185,195,158,104,255,213,52,226,172,207,63,246,64,89,184,44,252,196,141,227,56,216,159,248,69,97,244,86,147,251,244,40,124,192,150,
54,62,180,221,236,124,106,76,164,154,243,83,215,227,180,1,109,188,63,198,120,183,137,101,152,222,158,52,223,218,86,42,141,27,135,242,205,247,91,23,92,170,253,0,101,171,236,81,84,144,55,139,20,160,122,95,186,63,231,202,217,84,236,31,98,170,43,152,247,199,124,241,44,137,42,222,69,244,13,119,89,96,246,247,49,170,73,194,244,70,201,200,108,60,248,212,233,174,31,252,82,232,141,71,232,49,221,3,134,102,103,92,154,57,80,131,243,223,76,17,5,65,188,65,14,244,94,194,35,144,183,132,175,119,204,84,87,104,238,206,206,73,75,246,38,212,87,87,44,106,119,77,164,247,194,188,104,16,160,223,64,159,107,68,170,228,105,209,231,188,38,240,58,103,116,178,57,115,146,137,234,123,33,216,62,136,236,205,152,253,32,58,55,64,130,49,233,175,119,181,245,47,231,162,159,247,252,190,222,99,67,66,114,221,213,153,106,169,115,125,7,226,237,32,94,65,12,65,10,66,244,129,199,65,108,3,203,28,244,77,106,9,20,58,240,60,19,132,88,29,191,228,82,244,132,127,
136,139,12,5,193,97,223,181,225,212,251,21,85,69,88,157,30,91,122,207,4,71,192,103,141,98,202,155,174,4,164,81,122,187,153,11,60,255,220,254,200,22,164,99,172,23,149,237,16,148,157,139,115,98,113,190,37,221,225,68,0,99,59,41,144,210,242,174,204,47,248,103,250,31,66,14,126,251,242,143,43,1,226,159,7,193,168,226,49,182,243,70,227,88,233,199,221,6,52,109,231,228,240,158,251,123,234,17,206,123,238,127,166,78,125,207,253,61,117,238,157,213,205,40,195,156,100,74,254,174,38,206,120,186,93,143,172,127,40,13,164,2,254,207,192,16,231,63,3,183,222,139,36,199,174,114,4,167,18,102,249,108,3,177,165,225,135,92,252,226,103,255,152,47,177,56,147,147,107,28,143,225,65,126,120,109,224,249,246,207,24,170,199,174,180,3,10,136,245,142,135,119,237,194,248,148,249,63,212,200,255,143,59,5,235,183,59,211,17,125,46,41,197,118,178,111,67,135,165,183,99,249,252,18,227,109,239,131,59,116,210,14,249,67,53,247,70,177,59,236,93,97,234,173,90,27,
64,242,75,74,36,114,19,79,26,45,99,250,139,91,108,83,229,88,221,212,247,79,194,240,48,172,191,204,23,4,252,147,176,112,35,181,213,74,239,142,123,50,132,24,223,218,36,142,141,79,178,92,213,94,197,224,251,91,139,78,241,134,63,71,27,25,103,9,69,102,9,118,54,137,165,49,35,139,218,228,37,38,49,252,51,162,56,149,212,212,155,140,111,56,166,90,161,223,19,120,149,218,48,49,56,13,201,222,144,49,74,4,160,148,122,128,82,206,34,250,153,23,213,216,226,251,191,172,32,157,60,210,165,12,179,63,240,151,44,71,89,98,5,142,166,107,142,123,182,180,238,198,190,135,94,235,228,225,123,175,224,82,197,201,242,232,247,164,137,70,217,233,154,205,197,176,13,32,199,12,109,62,206,225,152,35,147,45,226,40,210,77,12,2,179,18,251,171,249,161,53,107,143,9,183,213,227,60,189,227,202,80,178,25,50,38,47,145,210,46,25,192,237,252,169,109,228,83,31,170,81,127,9,238,46,248,234,161,63,171,12,95,55,63,32,196,179,244,201,127,22,103,39,135,180,50,
44,56,142,96,229,153,254,198,77,254,46,169,13,65,60,178,67,97,241,80,37,214,147,90,208,193,88,0,150,201,167,59,185,123,250,203,187,78,241,126,245,16,147,18,6,75,142,246,77,35,123,78,177,63,227,174,234,59,190,223,0,132,42,39,90,238,145,118,16,206,15,157,192,155,28,197,77,54,200,143,47,242,214,250,213,93,183,116,20,49,95,212,132,88,239,59,176,239,153,194,120,219,156,123,149,153,105,180,234,224,46,51,84,101,119,188,247,31,78,115,130,71,73,251,162,139,165,105,163,197,139,189,166,21,6,15,0,49,226,63,13,143,196,221,135,51,50,38,212,173,206,158,233,81,176,244,129,27,210,156,117,32,49,246,112,214,148,27,39,187,171,169,241,133,103,236,236,30,217,66,7,67,191,181,188,59,134,194,214,122,227,93,98,41,57,94,238,247,175,185,81,224,144,241,126,177,90,238,89,39,77,118,246,253,93,219,50,248,29,139,239,63,12,83,22,65,211,162,247,194,139,242,9,12,127,32,183,91,56,242,61,197,125,116,98,236,214,112,22,3,135,91,145,130,220,242,
64,24,55,51,206,232,103,9,66,99,157,87,119,44,21,9,91,24,170,226,44,53,112,210,178,134,63,168,210,45,45,110,91,78,26,227,37,55,211,167,36,44,215,53,85,108,31,193,23,89,12,169,106,166,185,128,37,140,28,187,189,42,251,27,54,56,139,16,60,86,162,160,83,30,228,119,158,30,158,228,47,102,131,202,78,155,108,226,169,24,188,250,230,108,171,161,162,199,184,6,73,98,7,248,243,73,67,6,67,23,93,110,63,23,137,75,69,248,24,48,59,100,146,232,223,203,134,103,55,213,141,229,67,230,47,189,224,34,171,128,220,85,159,159,125,13,51,98,46,190,164,165,109,84,194,244,136,9,199,208,220,11,33,87,54,55,203,25,144,175,106,254,151,209,112,128,180,12,7,222,218,231,167,191,52,248,123,161,233,236,187,6,16,66,214,40,137,35,195,17,229,109,86,176,70,108,25,199,59,124,189,105,165,69,48,97,23,54,128,85,217,200,98,124,31,90,57,25,44,105,197,111,1,19,233,157,56,48,52,22,115,251,25,56,157,19,194,123,253,211,223,97,18,232,207,167,
239,23,232,159,46,240,34,109,9,107,100,238,85,212,78,176,133,59,53,78,187,113,25,243,82,226,167,158,144,41,171,225,90,20,235,34,159,105,33,185,141,53,221,117,20,171,92,146,170,163,160,135,188,134,58,112,234,68,49,62,97,132,3,185,159,253,21,254,182,102,220,195,183,58,86,7,24,57,47,149,162,35,85,177,134,38,82,135,254,3,59,120,5,46,191,171,193,205,218,32,73,136,131,0,52,227,205,114,176,34,93,156,86,250,118,211,145,107,238,98,20,22,52,110,224,44,1,138,154,223,102,218,92,75,134,62,6,62,15,37,236,68,55,12,83,154,63,175,10,63,219,138,41,227,6,233,145,252,228,199,149,47,185,242,202,234,68,179,241,70,244,217,38,66,109,84,73,55,185,123,129,131,74,140,87,94,119,77,86,66,130,65,130,141,178,191,49,154,201,90,42,81,86,81,219,99,110,129,36,121,56,116,164,87,126,103,154,226,245,180,134,82,31,239,226,46,104,52,70,190,118,232,249,100,221,229,12,110,118,50,59,19,114,188,98,6,229,110,248,219,27,74,31,250,9,178,
236,163,139,166,126,16,53,15,208,106,94,10,221,60,156,167,18,129,0,162,12,96,81,53,127,204,77,42,116,148,222,5,116,108,19,241,156,185,64,197,196,234,239,88,101,192,133,167,27,82,201,37,14,226,220,20,136,199,201,194,116,196,240,23,194,1,3,69,206,44,196,174,154,67,55,249,247,194,183,52,127,184,233,5,145,46,201,98,118,245,219,42,142,71,186,185,122,71,141,179,52,190,220,247,23,92,6,179,60,246,237,194,68,178,169,74,111,147,191,59,236,205,155,5,169,152,192,151,156,132,180,206,177,98,11,18,221,243,82,121,32,19,143,8,226,166,59,4,215,60,192,231,61,227,77,36,78,11,96,187,18,108,173,142,166,34,188,150,148,244,130,120,193,140,31,37,56,198,116,117,49,78,211,84,204,24,105,243,156,234,169,148,79,243,80,30,52,73,89,239,183,112,14,146,207,131,165,161,239,57,19,109,228,158,21,252,138,124,48,6,24,229,228,193,189,98,91,116,173,195,39,70,108,178,106,182,76,147,115,157,101,202,118,46,80,244,153,241,55,67,139,129,6,186,254,49,
175,240,114,210,200,165,61,223,63,22,236,186,160,199,24,137,200,97,63,120,117,169,227,134,30,183,38,178,250,231,131,163,188,194,204,188,239,96,15,78,225,59,188,113,186,161,154,9,145,106,171,20,202,59,143,215,243,99,201,107,173,146,121,13,18,212,233,231,69,174,87,243,31,214,126,225,172,251,97,188,0,221,157,1,33,64,88,57,7,170,224,64,174,227,59,166,74,242,195,234,214,160,42,33,80,139,134,147,137,61,52,154,81,182,228,1,105,110,83,176,78,74,192,196,19,72,237,9,195,69,95,121,109,97,86,18,0,29,161,246,183,96,220,38,157,119,249,48,252,187,143,4,88,248,125,186,37,11,65,222,44,212,13,31,229,154,190,124,76,108,167,169,44,125,153,214,245,239,245,144,201,94,35,95,204,61,57,222,218,112,158,241,185,218,110,10,198,113,182,158,228,226,91,35,231,92,218,250,170,23,150,18,253,169,132,18,62,101,193,157,114,106,148,87,211,82,119,198,143,166,10,204,77,119,134,59,220,226,25,238,217,31,147,127,242,165,57,164,138,118,40,239,25,110,203,253,
123,134,148,160,76,145,163,56,197,228,77,29,147,139,62,250,194,159,242,120,179,72,55,34,186,131,82,36,172,241,96,133,167,5,68,181,227,133,193,248,36,237,121,147,61,46,46,62,182,47,254,143,195,27,44,232,224,114,128,122,80,156,125,3,47,186,1,20,153,125,252,237,218,35,37,245,96,188,32,102,169,108,13,52,116,212,98,3,234,136,74,180,62,128,234,96,1,98,225,137,163,19,177,121,48,114,70,21,191,189,177,125,16,237,6,34,98,156,194,111,193,92,69,38,31,154,184,23,154,51,161,198,94,35,94,185,108,183,176,161,118,240,237,236,25,245,243,60,158,155,124,217,192,94,113,143,209,166,84,95,39,132,243,79,129,116,139,168,229,142,202,62,106,39,74,250,108,153,24,241,29,52,56,168,117,252,28,36,228,246,113,134,112,34,180,33,102,171,135,129,109,68,204,40,5,159,203,203,27,188,241,42,160,76,195,95,145,52,39,67,250,238,207,241,244,118,73,179,153,219,249,165,72,139,129,39,188,222,36,81,14,26,226,191,199,140,48,124,119,74,85,108,46,152,150,196,
159,53,63,187,42,42,114,222,3,166,173,217,151,73,112,163,166,3,221,170,125,14,133,8,155,130,107,82,92,179,199,90,72,219,83,124,138,171,52,45,99,205,112,28,153,122,237,163,35,75,204,11,178,186,217,212,173,89,179,51,152,211,154,34,249,234,59,226,93,24,93,111,219,28,178,185,234,70,95,95,67,195,71,131,142,33,244,145,220,62,28,137,95,68,64,231,148,238,89,90,1,129,139,156,0,50,132,4,13,103,246,45,188,217,31,215,89,156,66,254,251,10,81,37,85,96,114,73,81,177,14,85,129,51,226,96,27,74,120,114,147,63,155,42,152,62,160,180,10,120,138,73,134,196,12,190,4,62,158,131,196,225,176,241,123,119,10,170,92,132,43,3,19,30,111,173,122,49,112,36,205,242,61,143,106,5,130,121,144,4,191,146,54,135,41,87,85,133,180,87,111,10,237,253,160,8,1,121,37,183,84,60,10,108,237,27,94,53,236,148,89,226,99,162,226,47,103,185,238,240,64,141,177,210,166,161,212,49,239,32,222,2,235,149,162,29,175,146,135,130,74,219,228,8,136,235,
23,115,187,179,114,67,107,22,198,77,97,154,121,25,38,195,87,245,132,242,190,45,183,82,50,142,244,164,54,254,248,98,38,204,147,12,86,2,61,140,53,197,154,171,23,169,78,240,235,115,134,130,178,203,91,99,221,70,206,240,194,134,252,149,6,255,249,37,50,107,12,162,219,80,61,195,100,178,249,26,11,227,37,96,24,186,232,130,127,216,61,163,28,236,173,212,150,160,57,109,213,205,108,69,146,61,208,159,145,155,244,148,55,174,57,167,245,218,221,106,158,62,151,241,4,119,101,152,226,120,188,70,92,2,102,177,229,22,182,20,114,174,65,93,9,146,50,30,139,179,100,207,54,224,44,249,231,10,250,146,198,186,120,228,172,188,97,30,67,108,23,19,150,192,240,46,164,56,242,17,217,248,2,30,98,7,239,147,72,122,6,208,180,86,149,188,150,19,183,69,78,6,182,198,141,88,111,183,229,246,170,19,85,181,234,106,126,81,192,133,228,165,203,174,169,152,215,169,112,102,225,208,161,163,183,46,41,221,116,20,247,52,200,192,9,182,99,79,68,168,37,62,221,107,125,36,
215,109,95,80,113,87,144,205,169,53,10,113,177,122,254,251,163,163,220,226,90,204,109,233,50,3,213,243,219,105,235,126,7,203,132,20,236,191,168,27,171,179,73,146,127,97,213,205,207,69,114,42,111,144,100,110,86,80,119,245,63,211,92,223,203,204,254,145,159,0,126,252,81,223,112,60,35,13,213,221,54,71,139,8,200,175,57,82,218,52,7,242,248,3,191,50,153,35,215,232,60,1,140,203,142,57,47,27,197,65,198,49,13,244,247,124,173,200,91,45,189,247,180,237,42,84,90,85,226,234,33,69,94,101,112,189,184,2,197,80,139,102,247,220,77,59,38,155,237,133,22,172,98,199,169,244,6,4,109,207,194,131,199,212,222,95,60,178,57,2,229,0,83,158,133,182,25,119,154,202,113,234,156,157,37,126,51,197,3,143,208,121,106,181,247,222,140,184,17,63,113,241,163,104,50,112,203,181,82,225,219,35,55,134,206,199,151,141,239,161,174,217,160,249,98,27,117,185,171,159,60,214,85,137,136,156,140,224,248,149,149,89,171,212,122,135,15,154,46,42,165,166,79,94,4,72,
155,89,139,140,126,6,57,245,87,186,190,65,73,158,164,10,3,13,40,78,32,70,187,245,96,147,8,206,169,117,245,201,28,113,58,138,140,210,171,70,138,98,250,43,80,52,4,57,152,146,178,115,68,222,210,112,18,193,124,15,34,211,121,81,111,240,32,210,22,54,229,55,244,241,160,247,57,64,90,80,189,44,116,85,5,50,203,124,117,131,226,81,128,167,101,163,136,207,82,48,2,235,148,22,238,11,207,59,171,63,133,145,112,91,164,127,93,107,176,251,99,38,213,45,148,119,48,174,217,60,49,112,120,192,184,201,7,156,24,196,60,230,172,32,203,90,27,56,17,231,68,184,236,251,208,113,164,178,63,143,0,92,55,152,228,218,93,161,81,109,162,120,240,33,83,222,221,204,193,141,175,249,126,81,236,102,181,76,55,20,58,164,113,47,118,186,130,182,116,232,3,145,221,222,88,251,238,189,49,222,187,96,160,162,181,74,161,191,82,239,201,55,81,128,233,132,132,220,11,127,248,250,144,62,214,22,99,150,152,168,1,191,33,189,234,42,129,221,73,121,175,18,144,60,18,133,
182,102,171,178,75,199,61,109,78,142,183,42,228,63,162,162,252,71,49,230,192,221,95,178,54,130,88,199,39,58,75,163,53,52,15,17,133,193,185,117,155,36,31,24,241,203,243,236,226,203,32,246,142,39,37,35,42,165,60,158,25,226,214,75,187,150,141,121,161,221,68,158,108,97,138,106,51,152,162,11,90,147,242,241,93,43,109,140,252,18,248,119,56,91,18,203,101,235,25,58,221,88,42,217,186,4,91,71,153,178,31,153,200,98,95,97,222,2,232,124,136,82,47,159,151,71,45,233,83,29,78,88,138,95,248,190,119,16,222,165,167,130,74,1,70,45,168,44,6,163,78,12,117,66,59,56,242,156,205,32,116,118,180,117,160,156,214,139,39,37,54,213,99,186,12,50,200,35,5,47,168,202,185,236,162,109,20,253,228,202,22,164,181,95,70,100,83,81,213,0,69,22,96,135,104,213,116,0,83,146,21,54,18,242,36,159,33,121,79,231,204,241,120,86,242,75,232,28,21,220,110,113,221,35,153,96,37,154,254,178,206,230,223,38,63,74,185,23,94,136,195,180,152,173,129,126,
89,228,80,36,112,114,212,144,85,45,108,126,165,33,48,29,229,83,101,223,177,229,204,31,236,3,253,163,41,143,134,170,159,75,101,239,98,231,30,55,218,64,119,203,53,188,10,119,67,246,60,179,165,25,177,96,246,59,47,155,109,201,12,143,188,223,237,23,17,14,54,140,64,52,152,179,21,110,77,38,91,228,79,46,253,90,227,47,37,147,184,102,252,38,59,42,43,141,54,201,132,250,252,38,64,0,96,207,6,127,59,221,121,172,177,199,221,192,213,77,71,191,71,254,47,220,123,144,118,91,122,91,174,216,168,31,101,25,251,172,204,90,133,200,162,245,97,18,206,67,175,141,155,250,14,98,68,58,121,28,57,139,192,214,143,15,218,157,226,209,77,43,58,121,87,246,50,157,238,212,73,144,210,248,152,30,63,64,125,101,13,77,200,59,88,146,175,97,224,82,229,3,25,168,39,58,164,95,206,26,178,34,65,51,63,195,154,65,192,145,65,130,112,207,153,87,155,118,57,77,207,34,131,54,85,238,10,131,4,149,238,150,176,112,224,239,53,193,84,16,206,141,212,46,146,158,
20,220,130,217,89,209,80,197,147,60,248,99,99,38,69,47,153,193,29,79,252,113,116,144,216,197,254,205,137,121,37,23,251,250,250,25,79,28,84,115,248,26,143,220,4,16,75,162,165,57,10,232,198,30,213,107,103,122,120,55,89,114,88,126,10,44,247,241,103,55,209,175,41,126,25,38,225,87,185,225,251,193,12,73,51,70,6,206,227,49,121,143,254,212,22,48,90,80,159,105,80,84,51,169,65,244,244,253,116,147,133,66,35,71,231,75,123,137,95,87,197,4,241,103,103,59,216,2,98,22,107,217,19,238,21,85,186,135,228,247,46,39,202,170,191,115,243,189,148,172,23,225,204,178,230,192,4,215,131,172,191,106,245,42,110,253,174,142,135,26,218,157,178,198,18,70,214,36,156,110,48,230,3,147,251,199,93,85,11,196,214,208,126,133,234,164,106,84,147,5,10,123,154,26,115,169,16,37,159,96,53,61,109,184,206,231,95,24,46,58,97,185,48,213,34,130,51,75,114,13,60,63,202,67,130,121,123,151,247,136,95,80,45,202,102,210,100,122,240,100,98,214,23,101,248,84,
232,33,241,84,9,22,187,70,110,15,60,58,115,67,178,160,176,174,129,12,233,20,139,46,179,111,102,158,28,111,106,140,62,137,77,85,201,163,201,73,83,140,119,160,185,179,131,141,248,26,204,97,15,110,250,101,185,103,23,253,246,198,220,27,251,16,99,124,252,166,54,210,85,90,131,167,128,210,13,206,101,43,124,29,186,252,174,11,61,126,144,149,135,71,175,240,171,252,78,143,62,63,251,114,147,53,212,73,114,160,159,108,245,187,132,163,124,212,211,5,123,86,240,210,30,234,35,154,251,42,241,63,98,254,155,189,87,106,208,122,118,67,202,8,170,240,126,181,6,120,185,55,22,53,140,0,125,122,51,97,194,215,246,32,99,120,234,232,192,179,25,48,113,245,181,62,128,169,147,188,84,253,120,43,40,102,140,248,146,67,215,239,249,242,147,164,240,86,160,195,5,185,231,9,138,63,242,107,115,183,48,223,46,44,86,36,250,189,229,37,222,242,242,173,235,186,70,244,229,29,36,244,75,145,110,75,64,67,56,70,217,198,204,171,198,157,239,141,143,145,232,190,118,202,150,198,
142,10,234,204,167,100,126,165,83,2,70,156,82,8,235,37,115,199,80,13,164,245,189,211,54,64,217,35,133,179,73,90,99,72,206,123,215,169,214,180,225,183,127,175,155,64,43,41,144,33,89,42,61,54,135,44,124,159,208,33,54,240,181,113,134,252,140,136,222,133,231,125,94,103,147,130,177,189,216,9,200,5,12,203,50,183,215,120,84,167,130,211,108,244,73,5,79,25,52,236,205,124,185,13,224,28,67,187,84,17,181,168,119,154,192,39,99,51,21,50,108,251,99,49,145,159,207,244,134,52,180,167,35,150,238,60,198,73,47,64,170,48,138,241,221,20,236,28,31,166,33,125,201,65,35,64,60,86,25,78,91,103,98,215,131,92,91,70,118,173,248,124,162,3,24,240,145,167,203,36,86,15,121,29,209,108,169,17,198,5,148,180,239,178,169,241,203,150,186,56,147,94,177,99,226,116,126,166,16,130,1,181,22,26,193,191,135,120,138,237,20,151,216,190,105,233,139,202,34,78,188,122,59,1,78,215,35,140,202,64,7,105,37,20,145,26,234,84,47,148,11,103,137,199,26,106,
60,32,241,55,185,132,204,219,11,2,209,239,96,3,113,243,220,215,42,61,181,70,247,199,209,61,167,183,129,20,68,197,68,11,60,122,132,23,20,118,204,188,139,130,8,200,239,247,159,87,252,159,14,34,249,167,251,255,252,243,159,63,29,133,243,98,32,107,244,215,252,191,254,215,127,255,247,255,229,95,254,203,255,243,175,255,243,255,250,31,254,195,191,252,151,255,241,127,251,183,127,249,207,255,249,255,250,191,255,247,255,243,255,248,247,127,251,159,254,245,63,254,15,255,246,175,255,233,63,66,160,28,200,5,12,250,111,237,76,225,44,218,72,198,103,4,220,232,100,61,56,20,106,56,99,130,196,28,12,239,134,98,120,34,40,158,34,13,234,249,139,69,227,93,49,14,58,250,132,145,219,144,207,102,165,73,102,78,245,17,82,10,32,34,69,42,191,35,204,201,182,113,195,109,50,21,41,227,171,247,165,246,49,59,157,56,224,114,21,77,197,72,169,124,187,103,189,235,210,41,2,220,155,237,242,186,12,169,10,71,117,191,223,15,242,255,211,254,123,251,127,154,32,228,87,104,
181,92,211,111,234,174,102,185,207,3,172,122,80,213,235,244,250,172,217,62,119,246,110,199,165,99,22,208,212,140,162,226,202,143,250,219,36,4,146,239,190,75,102,0,153,123,227,135,122,249,122,71,209,43,35,180,93,39,159,250,149,188,30,230,166,215,146,240,215,49,102,63,198,248,155,102,49,210,172,76,237,107,148,148,77,219,41,82,227,121,221,221,70,73,211,159,75,198,239,107,252,24,97,121,11,20,51,142,145,165,186,232,220,182,17,250,235,186,174,250,158,171,147,175,40,76,92,243,249,188,204,3,162,146,254,182,52,10,174,149,117,15,229,66,185,17,58,181,15,244,196,85,209,180,173,190,223,138,78,206,143,226,217,54,239,243,126,158,22,229,115,98,54,149,78,71,146,160,215,84,239,123,58,155,203,174,78,167,123,198,124,207,238,118,166,214,15,244,4,59,207,190,233,201,216,171,109,48,146,113,78,37,113,7,69,62,247,157,67,68,156,207,13,228,66,213,110,233,97,121,36,228,25,238,107,101,31,18,214,222,91,42,115,203,224,152,166,231,237,160,127,121,222,51,31,241,
239,59,180,87,84,134,130,173,200,12,207,123,39,218,67,125,193,94,150,225,114,206,51,165,92,244,145,243,149,138,69,241,211,70,209,233,8,222,158,122,168,142,17,240,76,161,97,169,109,90,239,208,182,235,72,140,216,114,32,166,19,56,77,10,210,36,197,203,5,65,254,54,230,1,90,41,234,61,64,65,76,18,211,59,103,225,213,102,22,8,122,1,8,124,61,139,189,189,171,150,223,219,247,109,228,179,38,205,37,223,0,230,123,122,88,215,198,210,214,166,145,181,241,215,62,109,43,235,151,188,231,117,250,33,126,184,115,151,3,199,148,245,126,176,201,174,227,2,69,164,88,228,220,109,248,195,62,238,127,37,117,216,139,243,21,27,10,215,171,134,69,145,76,183,44,51,234,117,151,54,115,68,207,213,23,111,148,4,124,17,8,228,175,61,211,192,98,149,126,13,176,250,146,24,48,141,51,225,132,49,102,231,37,249,249,139,116,111,111,233,170,239,184,80,206,183,73,189,47,156,248,29,166,217,98,149,172,127,78,14,137,85,125,214,179,218,196,248,143,207,199,100,236,225,191,158,
238,125,166,248,149,21,119,28,57,121,182,206,103,84,177,168,83,247,247,65,247,178,183,132,22,26,74,244,42,100,4,142,198,190,105,217,183,89,247,124,159,218,198,184,72,34,211,206,86,186,171,16,8,233,143,29,202,240,194,153,174,242,60,135,74,115,250,241,117,5,38,215,90,223,50,175,58,199,207,123,246,242,89,208,181,93,46,110,91,103,43,1,202,226,80,150,155,18,221,27,80,159,85,107,181,82,104,117,163,170,39,92,34,29,79,238,58,125,101,42,147,107,9,45,231,244,140,53,146,112,176,177,59,15,179,48,31,157,27,200,100,178,186,125,218,0,166,5,56,57,135,196,49,252,93,124,53,6,136,68,34,203,40,232,129,161,27,124,132,247,197,191,45,109,206,86,25,108,0,255,105,128,152,109,149,253,249,111,114,15,225,250,188,140,197,82,61,67,159,77,215,205,83,202,179,80,154,92,249,79,224,40,191,210,42,197,211,114,217,164,243,236,203,166,245,64,226,239,174,30,169,244,38,61,191,97,120,202,153,237,51,14,36,65,201,194,62,145,190,123,192,211,133,165,37,250,
63,191,210,225,254,144,30,39,121,104,129,27,180,60,134,68,95,5,213,68,57,219,65,48,216,255,231,107,67,2,43,90,166,175,127,133,61,206,193,113,81,75,184,47,63,109,138,114,180,141,241,99,179,152,229,164,89,205,68,73,234,250,29,93,249,1,187,162,109,150,195,92,215,245,168,240,109,23,166,172,229,55,28,188,140,185,49,158,92,177,123,7,210,186,124,104,170,238,252,219,74,233,152,13,124,207,135,66,244,193,125,36,208,85,160,3,68,167,195,250,152,15,213,54,211,159,239,124,243,147,72,6,208,96,126,77,37,245,30,9,175,44,127,136,95,215,169,252,179,32,52,141,179,7,39,231,184,252,116,139,100,235,250,151,68,218,42,18,61,64,78,99,217,214,12,125,113,236,65,172,84,115,145,10,112,240,62,110,50,217,116,66,172,170,51,243,51,27,238,135,253,105,95,4,17,131,213,169,215,149,188,231,172,170,227,38,71,34,26,128,12,189,227,51,182,87,120,218,162,215,125,124,245,149,245,81,229,116,45,246,156,120,143,112,172,59,126,232,26,224,236,135,236,228,219,4,
177,192,54,69,48,101,75,107,29,6,5,250,131,70,63,188,198,51,189,238,250,124,44,47,226,126,217,113,240,178,76,149,163,120,208,180,182,170,61,200,181,209,135,21,96,170,80,61,96,52,117,151,151,182,200,178,108,91,214,155,86,234,116,149,55,121,44,151,203,141,87,208,159,251,11,138,250,176,199,100,91,244,2,208,144,218,107,57,111,7,75,180,250,237,172,42,15,95,212,22,215,239,240,187,158,167,133,184,60,239,136,68,132,145,25,76,16,97,17,90,156,7,144,255,220,197,19,82,250,217,211,73,188,245,3,104,208,100,130,193,155,247,114,61,243,42,153,204,119,40,21,63,124,231,75,16,45,87,140,83,12,191,49,116,83,100,210,85,114,198,143,141,205,204,30,122,212,231,222,141,18,143,231,74,253,23,47,87,254,6,152,55,181,155,59,135,101,227,208,152,235,123,92,203,236,83,251,32,68,80,99,222,37,234,241,13,173,214,202,109,114,152,97,203,51,225,196,37,157,105,169,64,8,129,255,60,191,94,143,147,26,189,108,140,45,205,247,202,100,121,29,207,84,236,172,164,
184,230,223,87,107,27,83,250,82,129,155,243,23,118,210,113,196,192,188,130,39,187,118,167,85,74,153,239,244,171,16,128,132,95,130,1,98,55,98,61,66,254,230,91,29,213,56,107,197,242,145,226,14,17,208,47,246,241,143,137,30,141,122,162,107,239,229,23,45,127,241,206,19,49,81,165,122,169,10,235,63,246,186,222,240,29,21,174,184,58,228,125,19,34,50,143,160,216,63,21,229,46,8,40,246,29,139,16,180,254,155,48,96,47,216,75,98,179,213,71,74,1,137,103,211,166,39,16,236,159,246,255,239,158,96,101,165,24,130,241,79,248,251,24,27,160,62,62,124,187,211,92,191,83,235,37,37,151,18,250,97,23,170,218,192,109,249,179,199,96,106,23,238,193,89,156,51,65,127,156,238,15,64,226,106,138,120,118,29,18,35,190,103,34,140,254,240,137,0,18,86,28,141,63,110,14,19,251,116,106,239,94,143,23,251,194,169,155,234,12,180,197,50,61,164,252,147,247,154,244,4,129,79,187,50,111,121,108,99,226,217,107,244,122,81,88,188,13,137,166,95,141,162,218,123,93,
188,210,188,199,182,128,252,193,137,90,86,220,106,58,115,200,118,208,164,173,235,143,47,166,136,159,150,102,156,21,149,186,232,155,243,255,44,187,63,129,48,236,229,238,131,202,119,127,222,208,53,243,244,161,113,41,68,90,150,119,118,181,220,3,112,240,119,243,30,34,38,161,8,233,118,246,50,195,118,251,58,128,79,44,162,190,61,129,126,223,103,181,58,90,19,93,220,239,71,73,253,200,41,111,157,248,247,111,241,109,71,18,126,69,200,8,208,43,255,151,144,228,77,12,143,211,156,172,50,100,108,183,253,82,64,39,195,29,223,195,60,119,198,198,175,199,186,96,115,238,214,255,47,29,103,213,220,58,19,173,233,191,158,24,98,102,138,153,153,98,102,102,59,102,230,196,204,204,50,140,242,237,115,166,230,102,110,92,229,42,171,213,107,245,130,231,237,150,220,165,87,49,218,169,218,111,28,46,96,122,219,171,252,162,255,77,44,226,15,160,42,150,182,58,158,39,184,253,133,248,36,10,107,96,137,105,223,193,151,203,49,55,251,145,1,214,233,242,3,124,56,76,1,122,255,18,
49,39,18,139,248,125,64,138,126,172,8,140,215,142,113,13,52,16,67,96,69,26,167,227,61,101,176,72,9,35,151,50,223,85,114,127,61,198,139,76,143,158,229,38,63,10,48,25,6,44,57,26,164,228,221,177,23,207,182,55,246,58,252,68,231,44,7,88,126,182,224,154,49,30,161,16,231,69,33,127,192,223,112,74,111,88,231,125,19,192,80,165,169,77,189,87,46,15,246,17,224,118,128,109,251,132,197,56,234,104,231,179,2,229,251,186,50,103,61,200,196,13,88,107,237,138,13,129,248,250,146,94,55,129,235,114,244,125,13,17,134,114,28,15,189,192,146,113,199,213,241,221,112,212,123,137,117,4,62,45,22,183,250,99,181,190,6,131,183,236,7,20,165,214,178,35,191,216,245,26,202,214,150,189,80,39,38,123,67,12,92,126,254,146,14,26,26,30,118,105,166,113,40,231,239,158,232,203,100,86,82,30,72,4,233,123,81,150,136,123,110,48,217,252,184,188,169,8,236,106,242,186,174,251,248,246,107,173,95,44,246,186,129,183,101,43,116,192,232,144,183,70,203,161,221,9,
17,95,123,188,253,30,180,178,139,19,254,63,94,27,124,166,95,35,206,215,230,0,172,49,62,62,37,156,143,113,211,82,207,33,128,224,43,230,8,188,123,23,247,117,223,249,209,49,5,33,95,189,237,144,219,49,252,47,214,177,111,92,215,233,219,195,247,62,52,166,12,218,145,63,20,174,182,206,109,136,241,66,186,143,99,217,23,102,179,88,155,173,175,255,186,18,30,238,1,113,21,122,94,98,62,89,254,109,248,175,126,212,223,145,151,93,66,94,118,242,108,86,48,126,249,94,223,210,92,44,17,128,253,121,85,206,94,124,47,0,240,173,218,78,37,194,118,90,119,249,157,24,195,255,15,23,227,159,200,14,56,58,177,253,242,46,140,169,149,239,181,121,46,209,153,120,54,171,67,56,118,73,53,130,240,197,231,237,38,93,239,3,50,221,20,255,23,134,173,29,96,121,181,16,211,177,152,239,17,88,174,133,74,254,227,160,34,145,242,226,40,156,99,187,129,101,174,76,152,179,171,186,199,47,156,209,89,86,126,10,146,196,218,83,61,119,156,199,121,69,139,108,76,107,154,222,
207,171,103,90,198,213,57,206,128,225,207,210,220,237,66,39,127,95,88,197,208,149,140,189,125,180,28,100,151,47,132,91,41,244,79,72,74,202,208,235,29,151,46,165,249,72,170,245,176,249,237,213,125,61,207,68,234,248,193,3,240,241,73,94,92,11,225,61,251,111,211,236,35,230,106,119,154,205,166,151,15,75,13,111,49,223,252,249,190,119,119,28,222,68,167,84,173,78,190,77,187,154,132,224,187,43,204,124,179,72,24,224,108,199,151,94,173,72,57,92,199,248,238,170,201,88,111,124,173,95,43,187,159,182,117,99,193,46,22,216,109,46,138,169,177,206,208,191,224,162,15,242,118,220,187,77,89,117,223,115,79,240,233,208,70,54,110,57,238,247,155,69,60,215,209,189,239,15,203,34,69,219,207,132,97,214,142,17,156,112,240,23,53,155,179,159,151,223,8,162,52,155,201,72,114,182,140,178,129,130,96,252,33,27,228,138,89,15,173,223,191,81,228,25,201,252,211,197,89,185,218,195,239,45,116,61,96,158,7,63,226,13,69,92,189,110,139,135,163,165,191,10,47,229,220,124,
123,56,204,99,124,162,227,153,242,50,89,232,118,23,14,89,61,232,218,49,215,71,220,156,169,57,15,7,101,124,42,231,158,148,97,74,22,198,185,57,142,3,11,87,187,61,53,163,235,226,113,203,150,38,126,166,223,123,187,123,114,143,137,108,188,109,182,177,55,20,219,185,28,76,151,99,70,61,211,50,39,147,117,174,86,171,123,218,46,31,33,192,160,244,210,104,211,242,151,152,33,222,153,248,50,153,87,163,129,92,59,22,208,168,19,229,97,179,244,122,5,40,160,164,108,41,145,235,150,50,42,155,28,166,100,113,237,110,110,163,192,202,17,99,191,67,40,42,181,58,240,177,193,126,126,45,106,95,196,159,208,112,56,52,232,178,0,92,6,120,118,223,76,57,191,82,182,176,234,9,223,103,172,255,186,205,29,72,169,52,170,255,250,125,78,125,238,223,160,228,158,174,219,229,224,12,116,140,213,25,236,231,95,68,108,201,69,9,229,164,235,110,218,59,159,22,134,43,91,71,255,55,143,253,154,214,129,118,95,62,226,48,163,2,191,131,190,254,1,157,157,68,184,100,122,223,
117,196,22,178,120,114,242,174,92,237,42,249,199,238,109,174,93,10,235,30,211,216,230,164,227,48,214,52,131,122,114,5,60,226,65,42,187,179,244,189,27,206,224,185,251,85,109,14,38,154,110,212,66,64,171,137,44,180,92,60,175,248,173,235,117,204,39,48,7,70,24,203,245,122,222,95,160,72,82,35,136,187,51,0,6,220,170,229,96,172,65,208,186,96,244,108,183,192,83,250,35,136,99,174,102,232,247,95,223,104,6,107,181,185,156,34,107,134,225,236,193,61,18,130,238,107,40,32,198,216,24,126,114,225,249,24,49,7,59,9,170,6,160,1,44,67,147,196,240,11,132,128,122,218,240,140,131,207,19,79,169,80,76,202,40,53,67,138,231,56,10,30,0,156,181,156,255,84,59,203,221,223,96,49,146,88,180,207,125,41,49,6,96,248,162,147,206,197,199,139,78,60,46,104,241,88,47,3,238,94,91,115,185,196,5,135,59,56,135,69,228,145,179,66,226,134,32,156,6,97,40,138,236,160,73,45,126,202,135,67,254,13,147,142,217,206,175,237,19,146,233,173,35,247,88,184,
115,254,244,17,99,124,12,223,29,233,168,113,118,94,18,29,237,164,176,227,149,60,156,165,15,35,130,108,98,114,219,253,4,165,197,200,127,119,94,17,99,255,238,236,226,255,119,231,239,36,88,238,161,12,86,77,247,125,22,199,150,247,23,34,131,225,7,141,21,222,37,33,114,95,148,40,127,58,139,111,77,156,78,148,7,129,223,144,0,253,77,51,144,157,120,140,88,56,32,192,51,124,145,197,103,251,236,155,207,211,210,187,244,30,238,56,226,34,232,223,69,224,53,110,240,34,164,103,190,42,187,97,189,203,182,24,62,118,142,231,98,184,99,10,20,255,77,40,19,44,194,167,171,75,75,103,101,135,46,4,46,195,233,131,15,181,91,114,196,8,230,10,153,197,227,80,236,185,131,244,212,81,204,122,107,39,139,140,108,6,231,119,63,71,255,20,57,46,165,114,217,143,109,1,120,137,127,225,17,186,163,173,112,231,104,250,159,184,1,77,25,128,182,232,192,107,36,108,253,187,189,115,167,46,13,231,246,131,106,56,155,22,135,255,198,197,128,227,14,149,46,99,118,21,10,12,
228,250,247,195,223,143,232,150,40,54,5,58,11,156,218,225,207,89,69,7,122,236,97,108,200,64,215,3,101,67,255,238,187,195,82,1,189,118,169,208,199,244,198,38,142,155,132,56,248,56,220,136,76,222,157,251,8,247,159,171,222,255,153,221,234,252,51,219,61,251,103,118,231,246,207,236,226,255,174,195,182,40,125,246,26,224,37,137,212,159,3,175,126,99,103,167,100,60,119,74,50,152,134,197,100,5,155,126,129,229,53,99,215,255,194,50,92,23,129,237,182,233,6,57,80,207,62,49,76,80,181,206,33,113,56,166,225,193,51,88,1,252,106,253,244,242,13,243,179,72,132,239,173,1,46,150,143,236,71,178,210,192,169,131,49,237,28,100,114,120,225,129,71,83,116,40,104,149,82,109,225,194,10,79,80,101,96,89,58,243,228,212,92,35,68,71,254,169,49,157,9,41,95,25,39,74,121,238,0,253,245,219,59,212,239,125,130,105,86,99,244,130,69,242,191,112,33,158,255,39,92,184,255,194,37,41,175,203,167,226,24,126,225,235,122,61,183,252,239,134,229,167,142,51,28,148,
23,114,94,181,54,122,73,142,18,248,52,244,205,235,118,128,128,212,153,219,215,164,237,132,5,136,124,62,39,30,198,72,165,252,129,69,219,192,61,115,142,93,209,95,224,121,244,217,238,37,171,20,111,255,76,239,21,147,222,180,111,23,79,138,249,183,153,114,153,52,229,132,33,189,247,210,115,17,155,43,215,146,222,12,175,242,197,135,151,127,56,59,189,94,111,180,44,115,102,184,73,22,254,9,167,91,80,249,32,62,202,25,226,47,200,230,25,98,173,13,3,1,146,228,80,155,21,15,20,39,145,145,122,171,86,42,83,107,211,82,59,107,34,190,161,8,18,36,179,62,3,182,229,107,250,132,184,15,18,61,101,244,105,104,246,137,12,58,198,31,122,0,120,1,116,11,227,27,169,219,235,160,200,98,221,62,145,164,59,28,21,221,32,191,101,169,220,245,74,27,230,227,99,168,93,76,186,219,150,48,212,202,98,254,84,171,231,56,226,59,217,45,64,167,126,137,246,98,32,71,61,157,23,117,130,134,229,228,175,115,240,191,17,119,221,169,67,190,179,185,181,25,50,250,21,147,
213,165,231,41,241,231,245,220,243,229,13,106,181,3,224,14,105,199,56,203,19,71,177,53,164,227,10,10,154,217,49,150,102,91,61,207,91,123,78,129,92,214,175,87,0,51,122,123,48,44,227,95,142,99,191,53,129,226,101,25,104,173,70,193,241,70,64,16,175,97,196,7,27,64,93,80,2,73,212,46,130,11,7,254,119,186,31,70,48,147,149,173,47,213,207,239,152,255,240,206,231,85,253,126,252,196,96,49,36,126,23,25,66,43,119,5,100,83,74,124,210,3,225,8,136,81,33,52,66,76,10,6,69,25,209,111,188,205,42,144,73,2,98,162,94,10,135,223,3,167,215,54,194,0,237,59,163,49,41,133,84,161,56,148,82,154,10,173,54,245,113,144,18,9,12,25,166,133,123,168,120,50,20,127,155,42,73,77,228,116,214,47,144,209,162,205,78,63,121,61,32,47,163,84,128,229,66,198,98,98,220,191,194,136,144,144,164,74,180,38,202,208,104,186,196,224,206,167,84,22,137,48,144,148,106,88,85,242,229,114,44,164,94,13,251,38,134,219,132,142,71,149,161,60,42,151,
173,81,150,90,125,106,18,157,78,162,179,242,22,15,165,211,152,66,243,11,83,224,103,188,0,136,71,100,105,234,87,112,81,34,195,28,116,120,182,49,43,181,1,194,239,184,33,18,91,54,205,212,38,11,255,237,98,210,155,253,70,143,65,254,200,72,1,40,147,101,5,89,175,60,255,221,220,67,120,240,251,220,223,23,64,16,37,114,178,164,132,17,202,169,13,45,183,29,42,36,5,233,111,60,216,8,226,126,144,111,176,110,44,193,244,61,223,220,156,208,41,130,54,174,102,68,42,130,50,56,137,4,36,127,78,17,140,191,213,237,1,18,134,236,122,67,162,127,204,144,113,238,3,244,190,125,142,226,81,138,96,149,38,69,44,91,68,50,167,125,19,160,21,254,8,9,78,85,195,176,180,12,209,238,207,113,39,17,121,228,23,86,230,170,233,2,99,137,72,8,222,209,129,159,223,238,243,196,114,171,110,18,65,33,162,47,171,136,144,77,111,183,87,134,49,65,220,139,206,145,248,56,130,29,129,92,226,35,37,66,44,231,45,132,124,243,231,74,16,225,29,37,222,108,216,154,
66,236,208,241,0,32,64,158,203,13,234,180,40,35,101,116,253,245,95,230,189,192,222,6,74,13,181,142,15,114,37,154,116,252,133,76,38,147,203,47,252,196,152,184,20,218,184,255,26,199,42,26,55,114,20,31,165,125,241,253,149,69,73,29,8,132,159,177,244,154,88,171,246,229,1,190,23,121,167,223,196,91,202,184,164,40,209,146,139,185,208,128,82,161,75,31,104,250,86,48,75,145,253,19,227,193,145,9,67,88,196,225,113,185,131,49,194,47,45,30,43,168,194,45,48,228,209,133,124,202,178,113,180,210,28,102,168,139,41,9,1,63,143,11,148,167,187,20,171,238,211,182,57,196,86,114,144,42,98,68,209,225,161,155,4,182,239,67,161,82,227,36,223,97,249,2,94,159,189,56,21,214,13,36,12,135,204,20,23,26,140,39,50,32,92,41,214,247,49,151,42,32,99,76,29,52,217,57,67,126,101,240,120,101,122,83,121,203,106,65,48,132,32,48,249,30,224,4,230,4,144,163,46,193,82,164,2,192,170,68,168,240,176,123,42,73,28,139,218,27,64,24,69,153,186,236,
82,9,213,39,124,107,71,81,62,56,3,37,96,34,42,19,5,58,83,19,202,133,10,228,78,172,58,80,183,6,176,222,34,99,65,84,175,81,157,144,139,18,240,142,207,176,56,217,82,250,30,51,152,14,11,80,44,56,59,183,115,168,254,72,4,209,141,156,101,80,219,0,133,248,165,165,159,183,80,59,61,184,72,186,137,231,97,247,38,30,231,69,84,169,7,192,242,34,249,250,167,211,45,17,233,211,178,9,170,189,210,144,123,101,22,94,83,251,18,68,231,85,157,3,173,115,190,38,34,96,229,90,67,22,24,29,49,116,27,82,125,187,219,92,31,179,83,91,140,253,32,236,62,183,93,56,70,226,11,236,161,175,17,216,69,228,159,103,202,95,209,173,219,98,178,12,188,190,56,57,90,7,193,185,251,56,47,109,142,46,126,55,149,50,188,243,67,46,212,216,11,170,88,215,121,133,221,146,116,104,51,55,8,103,158,197,21,30,216,13,90,5,140,57,98,220,133,198,169,172,11,197,191,174,193,113,15,219,2,235,175,95,93,47,202,161,65,166,126,251,82,48,232,116,72,107,
159,207,122,204,239,188,183,252,50,38,116,181,121,125,23,7,236,223,208,244,85,237,25,245,178,76,16,21,17,166,58,11,228,77,203,59,122,202,126,65,209,157,199,61,188,85,234,116,112,50,211,193,73,4,60,99,142,74,165,194,173,199,33,31,212,97,166,66,137,140,129,190,78,101,248,164,26,109,233,64,73,132,195,189,148,193,188,238,118,218,190,161,21,116,4,242,112,59,31,231,83,241,225,17,134,81,178,216,135,82,103,254,104,131,125,220,214,129,140,182,224,36,193,254,125,5,192,207,250,84,62,166,210,88,120,218,51,125,89,63,67,253,169,173,189,58,177,79,185,199,185,221,71,132,67,4,15,21,127,94,117,125,190,147,212,62,204,29,208,172,97,11,103,189,96,49,19,97,56,11,249,235,174,96,171,93,54,54,100,76,43,137,233,243,221,131,60,216,234,105,198,66,49,134,99,29,25,75,75,53,195,50,43,237,122,189,254,62,81,149,179,234,219,121,237,219,13,178,241,104,52,90,209,71,66,112,217,158,6,232,251,78,249,233,233,191,188,219,11,157,123,169,183,94,116,24,
46,82,138,116,173,87,129,106,60,181,240,104,176,98,208,214,63,83,51,160,173,165,3,55,240,130,203,48,53,215,42,26,78,253,227,35,34,200,71,145,133,199,69,120,80,97,50,57,66,135,55,115,197,53,151,254,185,239,209,173,150,58,246,142,200,93,119,197,66,39,33,246,71,154,96,37,159,138,247,61,249,223,120,110,159,84,56,77,188,99,238,32,237,217,190,190,106,63,61,195,237,29,68,209,166,230,8,242,196,241,28,45,162,60,85,150,111,192,140,252,3,23,197,127,116,241,255,229,203,160,233,63,202,203,100,139,11,46,195,231,64,133,179,219,158,92,162,185,254,192,68,149,239,212,55,251,121,216,229,89,255,47,199,64,38,78,50,160,55,60,55,17,152,111,234,59,99,241,64,65,37,228,135,245,163,206,247,127,100,31,189,131,180,169,142,44,14,109,91,95,138,217,245,2,114,137,217,227,216,8,61,211,191,219,110,201,177,63,26,33,1,85,82,27,252,204,102,124,188,127,230,164,1,185,34,31,109,35,99,170,44,38,210,235,245,73,30,123,114,77,72,217,229,79,112,76,
50,210,35,39,249,179,157,222,186,53,112,255,45,22,232,49,59,66,103,230,170,107,128,205,129,244,140,133,124,133,223,107,177,28,65,73,131,22,43,29,167,78,255,174,240,177,217,108,144,117,120,152,127,14,254,4,169,227,47,146,62,59,144,255,34,105,188,118,254,23,73,208,233,191,9,2,194,41,39,210,249,149,179,255,27,142,236,67,25,206,246,68,228,187,73,248,131,180,255,203,127,249,37,82,171,34,255,129,191,254,33,120,0,24,44,255,127,237,241,181,179,209,168,108,183,131,121,255,102,153,239,216,238,84,99,185,216,189,168,251,56,83,198,46,110,114,109,171,126,20,135,113,200,15,61,140,62,40,3,108,199,153,101,144,32,87,94,250,208,127,145,65,89,69,255,139,140,224,31,95,129,145,209,242,184,30,84,48,38,101,122,199,128,140,220,226,146,182,214,166,152,182,189,115,57,247,93,98,38,68,62,61,158,183,163,74,173,19,65,152,182,117,103,145,26,109,133,83,170,37,105,95,177,183,151,68,126,209,190,13,140,159,87,225,126,168,148,75,122,235,27,155,236,4,198,253,
48,14,163,169,254,137,146,211,244,86,71,211,192,130,89,81,63,104,222,74,169,244,211,71,129,53,211,207,208,212,144,111,248,188,48,148,245,69,30,230,233,17,251,183,110,160,172,41,93,104,61,217,93,163,165,25,206,55,144,151,193,8,11,45,177,45,188,228,103,225,89,171,208,140,26,64,219,134,67,157,255,18,41,69,53,102,139,242,239,79,47,81,84,186,92,146,234,179,254,173,245,4,150,147,170,67,61,229,17,16,136,93,15,28,122,86,82,198,15,150,4,125,201,162,232,168,112,145,191,26,69,133,90,108,199,190,18,130,166,234,115,11,189,47,12,19,214,12,31,176,122,78,117,83,120,106,104,129,248,172,191,97,41,185,85,152,218,138,178,190,94,42,64,139,45,32,158,85,101,200,157,155,99,158,26,53,102,170,195,52,137,170,97,60,184,174,235,123,31,109,170,219,246,170,219,233,116,134,229,84,245,167,63,216,223,79,218,217,59,145,114,55,174,117,79,144,212,46,142,239,117,247,153,245,233,79,229,107,110,80,71,139,86,118,213,150,133,248,65,101,219,28,59,10,77,38,
221,61,168,232,207,239,32,81,164,220,147,20,51,196,103,32,32,155,203,172,42,29,171,1,24,213,29,228,47,115,51,29,136,217,216,40,85,87,223,241,68,177,159,9,161,135,137,176,46,27,75,201,179,101,232,199,204,163,105,177,67,232,85,52,131,250,185,115,149,23,15,213,238,179,2,84,61,120,36,159,238,24,61,49,123,91,230,214,210,165,0,41,97,12,177,204,243,77,46,82,161,236,126,253,8,147,147,250,243,41,12,186,175,164,107,68,144,211,93,226,170,192,123,18,29,200,229,76,88,4,149,174,146,12,82,191,65,126,46,129,184,102,159,0,220,92,225,34,108,102,137,66,193,161,170,242,32,183,209,224,73,116,25,211,39,26,225,118,20,71,112,86,74,36,146,143,129,178,138,132,206,158,237,222,121,191,176,18,233,133,6,75,153,67,114,145,79,94,128,70,165,89,4,116,78,202,78,74,38,85,161,77,252,122,29,20,74,146,55,50,219,233,13,171,212,4,53,40,180,155,173,156,44,173,84,76,2,223,163,45,173,166,86,169,196,36,113,50,201,210,26,152,37,103,15,149,
97,169,84,179,132,5,230,49,78,96,221,107,144,219,4,113,45,74,140,238,143,71,238,78,241,244,231,162,24,132,96,109,208,16,139,72,165,126,205,147,89,44,191,146,128,112,138,19,194,184,45,90,233,81,182,80,214,190,215,123,243,54,21,92,144,225,225,40,247,246,163,86,5,164,148,32,50,33,60,10,97,200,106,17,213,194,139,71,77,120,137,20,120,177,161,251,31,25,60,81,188,95,249,221,126,162,23,21,193,103,54,7,41,114,175,239,172,170,68,93,144,218,239,155,123,213,235,94,183,140,123,108,21,34,136,157,202,220,112,204,248,229,116,5,217,244,124,246,211,55,108,54,165,3,179,195,131,161,123,53,17,74,68,28,131,163,3,68,166,25,86,151,246,156,202,160,85,12,193,10,24,193,13,190,17,183,91,152,5,98,30,42,33,83,235,78,152,192,54,71,33,209,145,79,165,127,69,200,9,21,189,6,4,162,8,147,169,223,130,173,66,130,117,179,2,85,54,91,75,81,136,115,4,1,217,47,69,7,57,104,37,38,26,205,25,20,48,144,237,12,118,106,129,133,19,144,
177,24,185,98,69,45,144,253,193,156,103,134,114,183,48,174,243,219,236,55,25,144,131,92,215,19,41,46,249,190,80,199,32,137,156,48,188,234,122,65,74,66,100,33,156,72,34,66,17,249,96,226,253,192,65,82,7,92,137,218,204,141,167,197,105,56,145,127,44,229,221,166,209,183,253,247,131,253,20,20,169,248,112,94,124,136,205,179,225,100,247,21,121,158,143,253,118,187,205,213,181,93,59,136,66,121,87,94,159,215,49,83,230,36,56,40,114,235,87,159,128,55,12,7,212,246,150,9,103,31,75,86,46,112,228,240,16,154,42,75,75,1,78,92,255,201,31,121,163,6,115,15,120,162,223,14,194,180,7,36,140,208,224,69,194,87,237,125,112,31,148,62,146,194,90,248,151,10,219,146,3,66,140,57,144,115,125,160,152,200,249,44,113,156,91,5,163,112,190,216,19,224,69,138,27,191,39,84,112,160,18,129,146,9,145,87,53,53,3,202,149,85,42,146,61,8,17,185,62,244,166,46,18,41,136,156,181,39,48,183,109,118,94,121,20,56,38,177,87,49,242,59,176,201,142,40,
177,126,74,148,79,37,167,22,76,60,31,2,120,142,255,25,55,239,55,212,30,78,120,17,126,34,195,34,136,237,40,188,196,209,174,211,66,165,213,243,205,183,161,7,55,138,115,77,203,99,227,174,44,62,180,197,206,118,52,160,10,69,103,98,129,96,54,63,248,59,252,252,43,228,126,45,27,180,225,160,22,61,122,6,175,83,231,157,160,240,6,0,191,40,5,4,82,170,111,58,202,247,110,235,6,251,24,178,108,178,129,49,53,224,74,146,166,99,219,170,133,229,147,200,237,105,110,23,254,134,101,25,56,132,224,231,3,117,55,89,223,17,10,1,81,18,17,115,251,34,72,50,46,254,8,192,41,18,221,155,36,222,95,64,8,103,202,242,70,115,98,168,195,190,215,224,98,5,44,196,79,216,84,0,153,57,121,237,222,65,21,22,147,205,55,143,49,93,204,71,86,175,174,239,181,168,155,92,228,211,18,29,225,57,246,78,153,52,86,58,144,196,29,16,74,75,146,4,101,164,56,173,20,42,82,14,125,128,149,203,206,241,253,188,240,220,209,93,127,179,203,194,236,127,17,46,
47,129,189,174,241,215,213,96,112,19,23,226,17,108,6,39,65,32,209,106,174,221,70,159,86,101,246,250,152,49,235,238,92,87,173,181,58,111,141,89,193,130,53,253,13,163,124,166,222,57,148,162,200,179,101,89,96,172,66,112,62,36,27,98,18,194,254,216,202,89,1,161,56,182,199,71,67,161,32,243,12,126,171,55,74,245,162,239,16,146,117,225,4,95,162,218,82,242,75,215,146,169,195,223,227,189,247,16,174,3,60,53,163,0,74,161,66,26,156,149,104,54,62,30,206,111,122,64,231,234,0,15,92,121,55,100,216,170,132,229,185,9,100,156,169,71,168,147,37,167,223,111,239,203,201,43,161,84,161,92,179,59,136,116,43,144,165,19,136,8,143,192,113,15,204,162,158,141,141,137,47,140,110,234,48,15,189,80,48,184,248,2,251,99,68,107,169,129,59,42,109,76,122,138,190,199,161,136,231,138,92,42,62,184,34,72,78,254,57,215,218,6,145,87,32,191,6,49,158,186,169,118,31,150,104,153,165,30,199,175,119,171,77,79,254,65,111,154,164,90,110,163,177,88,175,122,
87,166,247,10,162,74,151,7,226,196,155,221,111,58,90,116,95,45,88,134,193,76,118,232,62,207,42,131,22,37,119,105,69,24,209,213,2,133,42,112,174,168,80,151,80,251,218,39,150,120,155,150,54,137,101,90,217,136,233,225,14,104,79,157,139,150,50,190,240,165,7,166,111,143,97,197,210,229,219,78,208,106,224,245,205,125,5,35,109,124,156,77,217,164,17,85,109,126,140,207,156,205,253,5,77,207,198,226,241,133,220,117,192,241,37,23,99,253,49,148,98,178,187,158,156,250,216,15,128,32,28,88,212,12,18,83,138,209,218,37,66,132,79,31,103,183,195,115,93,181,94,75,123,114,159,217,194,84,10,94,223,217,235,25,245,163,49,191,203,239,79,157,96,97,130,38,121,231,27,92,135,71,184,236,12,59,150,114,93,211,90,97,179,47,71,246,110,4,133,220,146,201,172,92,182,199,226,170,116,93,75,70,165,47,198,109,130,224,227,215,193,121,60,49,117,111,172,193,106,54,37,101,221,218,234,74,184,57,113,176,150,135,134,144,193,250,62,49,210,77,119,245,145,167,201,206,
213,75,149,155,122,46,13,50,213,130,40,64,63,208,42,87,123,178,239,240,174,255,237,235,13,1,169,236,111,1,26,101,170,173,115,129,30,174,47,80,148,252,29,21,180,75,7,76,4,114,56,124,113,192,137,103,44,139,135,102,36,8,206,25,220,19,63,125,56,47,226,212,241,195,182,116,135,62,106,125,161,85,89,57,25,198,89,44,8,52,31,84,55,252,50,253,246,140,33,179,137,247,154,20,32,218,226,46,226,21,64,88,215,29,165,85,178,182,97,16,7,221,177,60,58,248,93,80,87,207,123,116,173,91,123,46,212,215,40,122,87,161,148,96,75,60,7,85,242,109,109,47,107,130,36,116,203,22,167,229,235,105,217,109,78,197,221,245,186,154,213,181,197,4,47,218,107,60,206,43,156,134,117,217,98,115,157,35,214,220,137,62,76,201,192,108,217,174,243,121,147,19,48,24,39,0,254,13,232,166,34,145,138,105,161,83,0,179,189,104,123,26,218,96,216,249,216,124,185,83,13,231,62,200,51,198,218,162,237,24,149,69,203,110,154,224,70,206,207,43,60,159,190,167,132,155,
156,21,213,59,243,8,235,45,181,170,93,232,63,121,159,166,121,245,156,57,246,236,236,194,247,30,185,119,254,33,116,11,84,97,242,169,63,134,194,115,133,225,24,255,241,123,200,199,184,240,130,235,126,94,31,115,63,1,168,141,84,80,22,229,33,188,223,133,149,216,108,182,83,68,74,110,238,163,92,94,128,50,99,187,109,56,65,180,55,191,143,120,115,28,4,56,174,17,59,42,192,209,171,213,63,189,163,233,178,177,248,124,185,203,246,0,235,252,41,42,45,160,69,12,221,25,137,209,59,237,50,231,96,105,224,203,70,109,167,114,182,186,23,233,31,213,42,91,133,82,205,138,203,177,192,248,75,80,65,240,158,189,6,88,67,188,223,204,46,183,244,211,245,41,51,120,215,2,164,246,145,240,148,193,198,232,255,237,252,77,44,220,154,251,178,37,222,133,161,149,231,220,129,75,48,140,15,78,195,60,9,229,35,140,174,187,23,94,35,147,201,100,69,79,153,14,188,187,247,94,179,6,31,184,158,151,194,9,192,7,72,43,225,133,4,236,171,237,11,42,188,237,93,229,129,222,
90,210,206,20,166,69,232,187,25,241,108,138,84,14,238,207,55,144,121,174,53,205,12,101,6,88,215,88,172,201,119,191,163,165,209,11,29,233,169,140,181,252,130,117,230,236,117,114,195,117,237,144,182,254,102,8,222,147,109,221,200,10,47,74,137,230,57,16,52,213,178,222,90,169,219,88,132,129,197,198,186,33,199,158,73,38,222,195,69,192,154,158,106,91,111,172,47,26,150,234,101,106,207,190,20,40,209,106,67,136,238,55,72,127,109,61,45,12,230,223,120,87,217,59,27,247,218,2,247,255,213,9,35,132,231,4,84,229,85,250,77,231,242,230,126,245,86,149,101,102,14,174,126,202,235,175,161,244,212,73,120,179,11,79,252,178,133,253,211,113,184,175,245,161,202,12,252,0,122,199,251,15,80,213,225,35,38,140,88,27,23,214,0,243,241,152,236,175,73,237,239,227,149,169,102,219,0,214,237,216,211,241,182,163,219,207,192,83,72,4,106,77,87,222,130,100,104,146,47,12,159,156,59,12,4,202,181,171,165,184,145,88,242,111,111,166,93,67,60,242,27,98,59,90,139,44,
6,255,100,24,230,197,103,162,61,205,123,50,89,160,158,159,108,164,181,216,125,249,227,95,158,112,160,192,7,8,199,218,150,199,44,67,128,122,254,27,168,184,14,239,97,4,193,246,133,169,1,149,155,146,248,167,194,148,23,189,134,141,137,152,240,192,17,163,225,57,6,68,215,210,58,38,133,225,180,26,0,41,70,247,141,251,179,97,4,181,15,40,125,106,171,239,38,125,116,134,26,237,222,245,138,119,134,96,58,181,175,199,109,46,197,192,168,161,180,5,244,44,145,32,205,43,58,157,82,72,165,27,140,149,218,33,175,249,79,240,124,129,186,49,158,119,85,182,249,223,88,177,117,205,227,229,79,49,97,212,31,251,192,28,145,91,81,163,19,40,11,254,182,216,121,71,139,224,13,234,231,80,245,79,153,227,148,121,199,27,98,247,117,130,194,229,165,232,49,7,80,28,241,250,107,225,11,78,62,94,229,164,83,215,16,83,137,214,48,201,124,97,46,21,42,59,18,48,22,97,64,65,240,159,0,35,72,14,143,105,41,174,116,226,215,92,73,248,151,98,184,209,64,85,213,190,
224,255,130,108,236,236,39,214,139,82,67,238,234,206,174,12,154,122,174,167,208,88,139,173,237,211,196,123,2,132,141,79,176,171,11,157,30,251,118,133,46,147,72,71,80,87,54,124,171,63,93,41,148,178,238,186,60,243,152,204,48,183,38,106,157,207,169,109,188,206,37,157,184,229,208,217,4,126,43,210,73,127,40,214,226,237,64,142,237,196,188,244,89,87,72,58,148,79,94,2,77,49,191,161,229,95,14,19,25,176,173,115,167,200,187,253,254,180,66,186,117,207,167,38,235,125,32,18,206,98,168,124,94,112,161,127,7,60,255,173,54,113,150,222,51,32,219,224,88,206,127,228,163,219,211,61,104,85,232,246,197,83,126,44,126,157,116,238,34,147,81,91,1,134,109,31,229,190,200,153,188,26,32,216,28,153,25,135,166,227,189,76,73,236,83,179,252,40,245,152,235,99,84,221,156,106,95,188,241,187,239,235,247,120,175,118,40,57,44,131,83,164,209,44,209,189,169,245,191,231,46,27,112,249,167,185,131,223,219,135,104,178,151,218,203,86,202,39,141,54,178,117,162,221,83,12,
231,54,78,200,248,59,150,144,9,35,167,85,81,227,59,107,198,109,98,13,70,19,71,210,157,230,29,122,98,176,173,77,128,129,168,191,46,208,251,22,72,169,233,154,75,87,8,170,224,145,60,247,183,8,146,116,145,39,181,48,242,74,74,243,126,216,143,115,23,68,149,225,64,123,108,91,50,240,29,123,165,127,150,18,124,232,78,45,112,128,49,68,233,253,17,98,14,220,123,215,216,103,148,19,139,73,99,96,136,39,213,80,92,237,146,74,84,150,77,43,206,160,234,213,250,233,185,180,146,184,45,219,52,145,231,191,221,0,185,100,242,119,155,98,177,190,12,237,12,158,129,231,97,1,108,250,14,161,127,126,76,185,50,78,184,163,254,184,160,60,12,250,142,248,250,211,213,212,104,39,92,14,156,59,143,99,28,51,216,192,238,139,201,215,157,253,117,234,220,179,133,223,205,237,55,241,83,105,169,205,83,231,42,14,230,210,255,140,175,248,27,191,94,148,126,28,153,108,227,92,151,57,212,25,127,110,97,228,254,115,139,238,84,238,104,38,47,183,243,93,244,126,32,154,118,139,
182,127,126,170,235,236,57,123,45,122,253,85,7,134,220,246,191,99,187,211,215,244,239,57,75,81,196,135,161,91,195,231,238,43,171,231,109,162,236,181,185,50,175,130,10,243,169,158,85,245,171,227,108,90,133,30,252,197,226,240,17,159,207,141,25,46,166,31,227,154,167,88,255,229,153,228,190,251,57,249,102,156,83,190,42,165,130,83,70,91,239,210,61,135,1,140,235,193,246,214,81,159,148,14,32,92,1,186,39,185,137,56,247,141,23,78,61,223,254,219,134,50,158,178,69,254,117,196,228,232,226,2,177,7,56,127,140,125,167,198,92,239,222,152,131,68,197,107,161,30,210,147,69,41,221,248,28,27,22,150,21,216,127,208,196,42,6,147,194,242,179,251,31,208,93,124,167,83,245,241,217,25,42,190,70,175,165,49,117,156,9,213,193,167,232,218,42,246,91,251,154,107,38,163,72,141,22,103,134,60,204,62,8,153,79,135,45,147,162,15,149,96,51,0,204,237,5,209,202,160,82,169,176,252,189,219,253,107,249,228,153,174,239,125,19,192,51,23,142,161,7,83,29,243,74,98,
32,205,136,87,124,167,95,227,202,119,183,153,181,240,69,184,24,94,180,119,255,202,25,223,118,139,118,160,16,93,248,193,3,187,137,156,33,224,165,238,225,78,217,51,182,181,204,121,115,226,230,34,71,169,199,191,19,243,251,127,253,242,247,13,171,248,59,72,16,156,135,173,109,12,103,107,9,66,50,87,75,199,49,50,37,223,6,175,107,152,164,254,22,14,84,145,106,148,251,21,31,200,140,231,45,84,37,12,196,83,92,83,201,107,211,67,217,237,101,176,56,232,14,183,188,188,200,255,61,219,210,139,83,172,117,175,158,4,148,149,5,23,61,26,219,60,194,214,39,69,250,203,209,168,236,195,78,105,29,91,66,152,234,117,148,110,136,4,30,23,231,108,235,53,250,192,106,143,239,88,208,228,69,1,222,94,240,148,221,122,180,28,117,172,160,104,228,186,61,205,231,203,174,157,59,250,147,68,40,237,108,102,28,251,27,174,87,32,251,179,166,226,90,201,67,182,95,18,181,17,172,26,51,72,254,134,214,39,219,168,201,220,160,169,165,223,227,222,147,17,93,120,120,14,168,58,
181,177,27,184,223,222,81,238,210,60,47,214,94,40,80,123,203,187,152,87,14,117,211,72,201,61,110,247,25,199,248,23,113,227,87,120,17,97,154,237,180,169,249,251,221,206,251,186,14,40,89,232,229,212,110,174,215,160,7,111,118,48,252,18,189,72,106,179,5,23,24,3,133,249,164,63,39,21,44,19,120,203,74,100,74,248,214,249,203,78,108,183,200,45,204,72,68,104,24,159,90,56,46,105,174,146,211,205,231,174,227,35,193,29,18,201,21,203,45,196,11,210,84,88,173,86,67,229,234,245,189,141,35,239,42,72,53,219,106,189,31,103,210,73,247,199,222,30,186,78,239,215,26,155,197,217,143,93,198,231,221,208,1,78,205,142,205,187,58,210,215,117,155,49,188,62,87,170,213,129,166,110,164,50,245,154,132,134,236,19,10,241,68,37,77,93,21,6,5,84,49,59,157,239,116,202,172,173,129,18,192,201,200,232,45,250,18,183,32,35,5,201,247,6,67,21,69,36,72,139,170,238,185,45,139,155,162,0,158,38,169,84,133,79,73,37,245,61,162,89,107,106,117,159,232,84,
56,194,133,98,17,242,249,77,109,20,244,210,205,151,13,105,35,48,253,131,25,26,9,134,180,57,81,42,200,154,205,28,203,128,32,182,75,107,139,5,23,158,133,102,34,82,17,25,88,234,181,228,219,109,100,28,16,18,70,163,17,253,137,244,123,69,121,7,85,112,65,161,147,27,229,87,111,117,147,165,94,202,237,101,248,218,103,109,163,65,233,78,187,20,61,154,62,145,147,250,104,254,74,148,214,64,62,157,71,173,88,73,186,89,223,125,63,180,126,127,194,73,164,178,136,226,17,9,244,159,237,175,48,42,196,88,242,72,35,218,136,229,144,6,66,186,68,198,50,6,172,225,241,146,209,77,86,222,5,46,93,199,57,119,183,24,196,99,245,32,57,167,147,203,128,110,36,69,4,81,92,24,60,248,37,85,104,208,74,116,224,167,165,115,205,80,38,71,15,125,132,206,80,124,189,159,28,225,193,125,163,244,249,231,57,149,199,158,15,174,162,160,74,143,30,215,228,53,165,165,39,145,15,146,170,156,202,221,243,218,208,79,210,16,159,78,225,172,228,226,68,179,55,196,191,67,
33,140,198,85,185,126,43,113,38,18,157,31,161,210,205,188,1,81,116,35,27,133,86,235,59,103,218,169,37,102,217,22,34,248,37,87,81,170,23,156,138,11,75,22,85,161,66,229,23,190,4,78,161,132,173,177,112,209,238,195,180,208,167,17,120,30,231,96,2,212,12,253,50,129,70,227,211,230,21,109,243,19,150,148,240,162,227,45,50,98,221,143,51,221,109,60,7,244,68,36,106,177,130,100,176,117,80,77,73,86,136,151,215,42,107,124,199,200,232,172,28,78,59,69,239,10,109,120,22,12,47,244,89,235,182,181,95,83,215,242,255,222,131,69,244,90,34,56,130,40,21,147,161,110,119,75,26,206,119,23,77,76,143,227,178,109,125,143,243,62,138,219,115,239,59,164,42,241,240,1,114,238,139,24,154,208,190,189,236,133,189,63,8,225,245,166,211,212,116,30,38,95,231,49,159,173,82,213,8,52,109,229,195,3,236,236,249,175,60,166,87,13,36,115,168,52,219,202,45,251,145,170,77,50,16,209,122,165,10,89,16,41,78,31,96,198,60,203,80,212,255,170,97,180,170,253,
221,83,188,244,236,84,254,231,88,169,128,53,196,82,133,118,10,13,39,177,254,79,145,132,200,30,68,83,173,21,255,53,215,251,12,175,87,240,93,117,75,78,93,6,17,241,189,52,69,193,100,178,184,6,69,82,112,147,232,211,58,218,169,193,161,164,64,76,162,66,64,96,157,46,10,99,119,187,146,44,213,114,204,199,185,199,186,134,85,148,209,135,18,26,39,204,102,129,189,74,90,162,217,130,18,240,53,248,218,38,132,166,169,243,159,53,5,220,230,148,26,2,253,109,88,114,185,163,222,200,46,48,114,180,129,219,7,38,154,59,197,179,25,253,109,19,98,38,127,6,41,71,105,82,137,85,218,203,98,183,46,52,83,148,165,181,208,166,150,144,234,175,159,5,68,4,35,235,217,24,114,83,145,194,179,165,244,73,60,125,204,172,185,172,115,125,60,18,235,241,59,49,221,126,155,52,154,12,221,182,132,93,248,6,167,229,210,119,77,127,182,51,153,231,167,33,141,79,49,156,157,135,45,27,162,231,233,251,82,117,12,21,161,253,250,55,11,121,171,66,150,32,151,35,178,7,
99,241,36,58,120,9,27,19,43,186,100,233,10,79,21,109,251,221,64,25,150,85,42,26,180,2,195,31,204,201,229,209,220,85,164,150,128,93,151,237,247,231,122,68,243,155,223,120,170,20,249,143,83,189,159,32,248,58,143,207,124,177,16,195,115,152,125,52,229,75,158,149,165,99,226,45,82,213,63,197,63,152,66,201,105,248,243,237,181,154,32,240,95,233,208,238,199,65,247,133,38,164,127,231,210,34,220,23,204,59,48,126,95,159,183,4,142,180,86,150,18,222,33,213,215,48,191,233,29,97,111,15,205,184,31,185,128,78,111,155,87,45,103,253,254,188,186,86,180,190,238,117,27,35,172,246,217,115,123,159,70,236,165,120,79,133,231,84,151,92,61,56,208,245,218,244,59,177,206,215,13,113,182,199,82,86,49,54,14,142,132,190,124,66,17,175,100,146,154,139,116,71,37,163,63,194,123,9,250,92,230,51,116,201,103,152,249,252,128,160,145,35,143,154,221,159,46,189,248,238,105,61,88,209,129,78,216,90,70,53,77,157,246,92,74,176,232,93,34,18,90,41,68,16,63,169,
56,28,46,225,60,146,178,6,164,144,124,14,22,190,232,5,72,134,157,126,92,159,214,180,239,167,125,150,254,52,59,234,158,207,152,84,170,144,128,244,251,230,125,117,246,195,180,109,133,231,14,40,212,236,138,62,45,125,190,216,119,241,125,42,125,82,151,215,186,169,165,120,230,43,179,143,94,111,188,207,126,92,111,199,190,188,123,12,210,212,29,51,35,176,182,132,95,149,250,206,121,76,172,224,152,22,61,181,79,19,70,27,93,1,202,99,204,174,88,95,171,146,152,86,102,206,193,101,156,209,115,27,132,172,239,117,247,196,81,253,24,129,176,37,192,191,51,36,140,129,157,199,73,84,236,116,160,82,44,95,191,240,67,174,44,67,26,123,128,59,94,58,252,178,211,245,103,207,70,12,145,247,99,135,16,148,219,3,182,17,175,247,113,184,247,163,23,52,154,243,237,58,217,39,102,163,126,93,253,221,134,231,51,155,248,180,216,242,236,126,73,156,87,173,164,244,207,237,176,185,110,79,132,68,251,188,90,46,239,141,107,143,94,161,40,93,246,215,11,127,91,204,140,60,54,217,
201,141,163,200,34,87,194,109,165,71,222,156,165,180,19,102,66,140,60,85,246,89,232,142,89,41,9,8,182,211,68,242,27,245,179,212,75,89,67,108,54,23,62,7,219,239,90,221,151,103,185,234,118,186,142,125,74,64,183,95,7,190,6,230,90,237,174,213,234,61,127,213,128,91,153,197,230,46,31,174,154,236,218,138,81,116,143,72,161,170,143,82,240,21,128,123,213,250,242,65,233,185,156,40,8,35,111,22,211,110,11,169,60,175,251,68,149,130,10,168,165,240,242,93,149,73,108,129,158,37,177,189,247,202,37,203,243,88,148,143,254,237,136,225,103,187,222,239,7,128,197,124,38,139,7,105,185,226,178,18,143,240,205,117,157,25,99,148,179,152,186,86,222,206,62,198,235,214,20,171,252,36,27,168,11,71,48,45,160,239,192,210,56,85,238,111,205,185,71,206,249,169,70,88,143,223,96,43,235,88,125,159,29,225,246,202,118,216,168,142,29,89,96,215,115,143,141,251,142,69,223,144,165,148,130,20,39,3,224,9,221,117,123,116,86,243,141,186,111,24,159,151,154,86,242,31,
150,66,71,25,45,154,240,161,147,15,104,126,227,10,26,180,189,44,32,251,155,237,178,105,114,143,51,4,206,6,147,241,26,183,188,237,178,203,6,215,175,187,127,137,90,166,169,86,79,31,244,8,169,53,86,74,125,36,49,77,86,210,182,134,54,55,238,205,102,179,101,239,171,243,27,210,185,119,201,35,70,156,30,133,28,118,83,59,122,196,202,166,5,211,86,115,46,13,219,186,197,164,244,13,56,114,177,86,169,183,197,243,150,142,21,211,238,23,62,66,252,59,253,245,114,201,107,117,124,229,16,162,48,182,159,50,253,204,21,250,13,247,91,116,241,42,243,27,114,167,170,116,123,130,194,50,241,223,183,77,214,234,52,212,239,138,125,247,161,243,160,170,169,117,106,210,59,91,10,129,10,38,208,229,54,6,1,185,152,9,143,250,92,210,164,6,35,67,62,99,160,210,200,190,108,131,177,44,79,61,170,222,248,179,87,71,51,148,243,38,48,254,151,191,89,67,114,37,235,213,82,46,232,9,169,116,45,38,168,223,62,44,165,200,161,9,156,28,234,215,201,150,189,142,225,251,
176,39,70,232,38,105,98,93,52,90,25,74,99,219,186,67,149,172,43,167,31,15,224,196,53,14,226,157,120,239,118,156,11,115,127,239,100,200,8,182,46,236,190,71,224,185,189,174,45,246,198,210,193,147,55,46,170,77,79,37,85,158,11,207,117,252,142,225,246,244,48,117,87,154,95,194,153,16,87,128,6,182,134,24,96,76,177,118,59,183,161,180,228,59,75,174,203,247,86,208,248,176,250,163,245,245,44,101,187,34,195,123,80,77,246,12,103,1,84,112,174,192,30,75,214,10,198,61,215,128,189,246,46,174,251,244,112,141,58,104,56,73,83,173,115,107,248,235,26,125,190,236,212,234,92,212,111,96,244,152,129,245,252,155,239,10,43,165,2,98,157,99,7,130,220,2,145,56,150,42,18,29,112,238,77,219,154,32,182,50,177,7,14,34,83,241,28,75,25,174,243,253,180,168,27,165,39,41,86,172,156,22,82,245,115,185,91,185,187,159,205,97,42,252,61,230,144,20,72,207,199,237,106,93,159,135,57,113,50,132,163,193,239,109,174,101,118,138,226,104,166,219,248,166,115,198,
229,209,196,0,129,219,209,25,166,112,111,206,241,186,244,239,3,123,231,254,45,56,117,228,70,4,15,31,96,224,49,104,112,214,184,67,142,71,124,102,205,41,142,10,48,64,32,99,255,187,247,11,207,133,112,247,222,71,227,193,191,247,100,94,151,116,85,208,53,216,166,201,206,223,154,207,56,77,171,197,113,59,13,44,225,117,233,41,230,111,63,214,125,88,148,17,249,44,30,82,126,48,167,10,149,217,141,137,36,137,163,56,54,67,190,156,112,28,32,170,2,99,14,176,114,200,5,49,129,160,156,98,86,138,84,105,164,34,132,237,8,60,217,252,225,28,23,29,172,199,54,2,102,224,44,100,170,40,200,137,40,151,46,96,164,50,197,214,84,157,113,59,169,39,80,14,153,19,29,98,50,147,42,252,119,238,110,141,170,59,76,222,117,176,230,243,159,68,43,209,53,67,172,2,11,207,213,218,104,91,201,42,36,38,75,122,149,41,251,115,223,168,26,182,77,35,135,112,93,106,105,10,146,161,74,74,143,4,184,25,4,78,28,76,26,178,62,223,151,80,23,203,18,222,140,114,
17,43,43,201,231,147,193,116,149,52,255,40,31,88,240,49,217,248,64,112,245,235,244,239,179,56,226,185,76,241,239,130,185,163,224,238,55,161,147,71,163,89,240,206,186,86,20,146,74,114,108,237,97,24,178,139,113,135,124,136,167,185,132,13,207,246,80,43,169,163,68,9,97,219,182,39,55,14,197,6,199,243,60,248,178,105,31,158,171,175,18,224,236,211,126,39,188,61,61,89,243,207,219,24,219,53,215,62,182,31,177,227,177,4,182,158,146,27,158,121,158,118,110,111,178,186,226,100,24,238,182,152,81,189,21,221,208,6,173,69,199,41,0,94,145,178,191,142,161,239,253,43,163,139,15,247,143,159,229,83,7,77,150,152,115,30,199,103,174,152,72,187,181,244,113,205,240,254,45,126,102,167,139,15,223,253,177,140,224,47,29,27,111,165,196,88,187,46,20,48,30,243,93,74,85,205,59,244,188,50,156,179,140,126,54,19,183,100,80,27,123,178,214,72,135,41,120,45,95,253,125,170,94,248,212,74,9,172,154,43,237,105,2,187,148,205,152,194,134,239,71,194,174,18,225,248,
202,9,105,183,115,217,110,89,186,122,73,123,224,125,62,157,181,233,163,56,142,14,255,162,55,88,60,83,160,121,51,151,165,121,169,88,231,201,175,94,61,235,115,247,231,24,255,107,137,147,125,180,105,89,64,88,49,13,147,242,56,149,178,124,108,37,61,254,195,76,205,157,196,132,195,186,219,28,125,151,14,14,151,220,56,230,5,120,183,128,233,71,78,61,47,184,40,199,45,24,201,233,221,201,117,12,140,221,181,59,38,238,40,129,78,105,192,25,125,189,225,102,199,217,192,194,183,96,44,44,110,68,23,89,232,120,39,167,101,238,89,95,243,6,76,225,67,227,197,177,219,158,91,253,82,26,34,114,226,188,59,247,148,53,96,50,57,25,218,159,56,45,37,91,107,125,122,156,108,223,59,214,243,5,116,173,75,221,59,217,125,0,82,158,167,11,64,152,62,53,221,163,209,166,70,153,184,115,209,149,69,6,244,40,195,248,136,53,18,116,130,197,4,161,237,119,57,78,179,105,95,28,255,183,95,217,146,107,109,48,139,241,121,158,211,164,228,138,248,80,232,20,125,98,8,254,
236,158,16,238,88,198,185,66,194,117,136,196,158,60,237,189,184,142,149,183,193,35,182,133,99,10,111,113,199,8,40,237,65,114,245,137,215,242,189,61,180,214,208,89,200,232,186,65,205,125,157,74,212,166,109,246,133,127,224,25,34,9,42,141,204,226,163,185,67,97,127,152,156,109,171,119,145,179,55,103,164,92,24,252,233,204,81,210,134,217,189,56,91,159,89,39,235,97,154,160,137,92,117,229,194,201,82,59,86,225,207,110,192,4,117,79,241,145,61,57,251,183,239,113,233,173,17,239,168,213,67,55,184,174,237,18,236,20,104,60,34,3,219,41,3,173,205,215,85,87,195,210,199,253,182,154,171,45,157,230,176,220,138,63,16,117,243,163,235,137,13,30,237,67,226,182,155,25,39,254,122,94,15,23,170,68,227,44,191,4,241,50,115,110,176,175,140,254,30,114,53,234,166,79,97,224,228,123,181,161,75,66,82,163,116,204,11,245,94,151,13,43,168,129,33,148,29,100,231,42,202,132,137,174,61,241,122,146,196,66,42,205,176,215,135,132,204,71,205,166,4,248,11,152,189,21,
189,217,191,20,113,165,240,106,103,63,205,142,41,237,170,46,81,249,89,73,25,173,207,87,145,94,72,189,22,11,2,237,230,255,122,108,126,42,201,2,222,17,245,1,86,162,186,151,64,233,86,253,51,166,178,156,87,229,227,134,76,110,196,24,95,45,205,98,196,46,231,142,246,197,243,222,19,94,240,104,198,127,251,104,129,244,90,190,186,210,181,186,208,133,48,198,173,77,25,17,84,184,71,226,242,7,32,59,141,32,201,39,61,75,219,51,178,179,53,99,166,108,56,151,34,219,23,124,112,227,243,31,244,207,217,192,180,248,100,168,248,31,247,156,219,131,175,92,222,37,96,189,92,88,78,171,42,188,210,50,191,161,110,66,213,55,218,121,54,156,195,245,209,206,51,206,8,180,174,91,31,231,69,111,121,17,128,158,30,70,180,143,128,213,114,105,175,107,220,73,244,48,92,222,234,128,202,164,40,83,38,211,110,238,224,56,45,161,56,204,203,122,170,129,53,242,223,126,159,50,125,149,143,78,231,213,123,219,45,60,173,176,173,141,108,92,92,157,51,64,254,18,192,251,120,221,
254,176,82,139,215,205,153,26,16,230,186,222,93,167,134,95,33,122,118,220,231,77,162,51,84,181,134,127,27,38,41,190,161,191,94,116,90,39,2,166,246,117,243,55,203,5,55,84,29,182,163,183,30,6,157,87,179,46,67,128,182,89,71,98,224,208,30,103,127,167,209,180,47,200,50,255,61,98,44,109,87,248,34,173,224,186,184,114,144,1,41,145,233,235,214,170,104,223,173,233,35,115,124,155,140,124,249,238,189,20,1,211,6,250,56,204,157,133,133,249,197,223,243,13,144,165,144,78,64,122,154,16,232,216,222,3,234,104,107,119,197,59,255,126,176,62,186,178,218,14,64,230,21,94,119,107,118,173,212,53,31,174,135,255,180,158,78,209,174,69,110,99,185,67,200,239,56,36,184,238,137,161,177,126,250,57,168,138,90,195,2,233,124,9,231,142,206,22,61,100,85,117,17,179,238,217,91,27,23,223,89,198,105,229,173,39,3,39,166,204,212,54,159,111,156,238,98,172,71,197,199,197,159,249,35,198,207,66,118,74,2,7,243,25,213,176,144,148,8,129,69,83,184,187,50,32,
13,125,153,51,248,55,151,47,146,152,220,10,248,184,73,102,90,14,90,41,124,49,179,47,22,77,33,93,134,148,37,38,80,9,79,117,110,33,15,43,166,235,187,17,247,228,1,91,156,9,199,59,127,169,150,170,165,225,76,220,95,123,181,51,199,82,251,10,57,86,201,60,130,203,240,127,113,244,207,40,198,131,152,117,69,55,243,253,144,63,49,153,19,222,74,30,32,247,215,230,155,119,90,156,10,66,183,16,206,27,102,91,161,125,163,87,204,192,49,54,190,195,46,217,95,136,167,25,17,21,173,135,43,54,188,167,19,87,103,71,155,191,127,21,178,18,44,82,66,13,51,247,101,236,85,180,186,238,253,241,65,43,251,30,56,203,232,171,207,33,208,159,186,73,57,193,20,28,8,55,1,155,93,211,127,37,205,234,11,172,191,110,136,241,11,160,206,108,252,158,165,114,81,40,243,247,96,207,183,79,28,237,64,217,254,215,105,26,250,200,51,180,63,95,65,157,229,178,224,202,232,178,246,137,205,198,52,171,142,125,217,125,85,123,135,117,118,109,164,51,87,112,29,237,55,244,
236,137,156,3,179,213,51,106,252,84,44,89,175,111,211,178,58,249,218,23,168,18,225,126,154,16,122,88,120,186,102,0,54,152,238,11,141,27,248,41,202,165,56,0,55,23,13,44,128,224,62,156,75,159,60,223,171,246,236,51,53,235,108,54,110,74,10,54,190,249,156,157,161,128,206,249,116,46,102,147,205,125,151,16,132,14,222,151,55,213,229,170,249,249,153,66,167,51,61,77,98,46,195,183,157,40,251,39,157,54,166,153,61,93,112,227,251,98,225,136,214,136,7,163,169,62,243,59,106,174,99,182,170,63,203,243,19,135,145,145,153,197,44,214,165,231,44,252,224,169,32,150,251,186,175,119,95,183,154,38,81,20,51,17,29,26,214,228,171,136,168,153,202,120,151,62,66,78,36,123,105,190,235,92,92,129,128,129,247,61,181,23,181,206,30,100,123,59,203,134,57,195,117,157,95,235,174,175,204,48,38,130,211,252,161,113,125,196,79,194,247,149,35,236,209,90,49,134,80,127,253,30,147,235,191,25,253,34,65,151,158,141,97,239,71,233,201,217,97,127,47,60,195,87,62,157,
84,56,167,10,109,221,126,124,221,40,217,216,206,178,88,176,249,5,137,180,135,154,26,58,119,172,137,224,49,5,94,91,57,203,138,205,0,145,161,115,183,87,61,131,185,249,140,137,165,1,114,141,247,60,210,97,108,96,87,123,205,231,250,118,50,170,172,52,7,213,142,193,64,32,104,249,56,13,255,34,50,122,164,149,151,129,240,61,186,230,227,220,83,92,204,12,184,169,82,101,211,226,241,158,215,157,92,143,231,89,1,167,101,179,10,116,218,229,231,227,246,43,126,122,122,196,248,110,152,234,183,186,242,50,11,143,61,113,11,169,247,187,181,31,211,252,184,61,90,6,234,211,15,174,205,163,126,242,146,128,119,118,205,119,190,28,163,136,202,17,229,65,248,62,173,33,252,12,127,34,129,244,141,7,11,238,47,136,75,161,222,58,237,3,34,121,252,138,201,107,69,171,233,55,195,25,205,182,117,55,80,194,169,98,19,230,247,151,142,133,197,151,27,86,215,119,136,140,49,151,203,7,205,26,212,57,200,251,17,92,58,105,237,185,169,98,51,220,215,254,163,253,246,140,62,226,
82,99,182,8,168,55,65,230,172,209,171,27,135,68,198,4,141,70,223,236,247,216,101,19,194,187,52,167,165,180,32,159,154,125,15,46,173,250,41,224,63,111,95,63,206,86,143,129,254,180,3,85,220,176,116,229,209,40,199,106,170,111,98,191,126,37,215,171,51,220,225,90,162,158,207,172,119,159,227,110,97,106,211,185,131,154,166,159,61,78,131,187,40,151,45,209,181,121,175,238,201,173,39,94,77,207,95,137,48,53,69,110,90,135,147,162,112,243,136,99,170,185,88,107,121,154,233,28,165,123,148,102,217,10,166,191,200,226,172,174,214,156,143,216,111,97,212,65,216,59,175,220,185,110,43,197,233,82,60,208,125,201,103,210,168,239,40,192,42,39,227,86,86,157,50,159,30,41,186,182,129,119,236,232,80,4,193,123,106,172,230,101,66,14,194,169,167,74,37,106,127,86,148,225,191,133,106,225,239,119,251,142,117,31,6,168,106,106,64,47,241,174,178,57,175,225,59,115,26,29,158,141,229,218,98,68,218,78,61,87,23,39,116,179,86,77,188,124,15,169,126,215,57,150,119,42,
185,127,150,10,135,81,53,169,81,65,126,88,142,169,216,142,152,0,14,129,174,192,173,110,229,6,1,249,146,124,0,8,145,44,163,100,247,157,228,136,87,240,172,148,74,1,223,47,182,165,152,132,105,144,224,207,239,245,42,109,244,245,201,103,79,19,249,244,195,234,212,32,106,127,109,12,172,47,136,241,93,163,218,15,103,131,111,232,133,24,135,57,40,87,138,118,149,77,138,208,61,103,144,137,52,225,194,227,62,41,34,15,64,39,169,253,149,15,198,97,252,55,51,230,254,112,236,8,43,194,108,107,43,97,118,242,35,255,40,177,21,208,149,131,193,79,220,92,107,53,33,18,96,188,16,149,10,61,62,22,77,29,199,60,178,233,94,197,184,63,109,163,84,65,100,60,246,233,86,225,236,138,65,15,178,254,134,255,229,118,163,121,46,101,223,69,74,84,166,183,92,64,24,66,224,88,48,35,254,245,122,210,212,85,85,138,107,127,203,93,95,147,177,16,97,150,135,244,22,190,120,118,73,130,228,111,25,193,13,131,4,25,113,224,223,137,102,143,217,236,237,13,147,101,59,83,
250,38,29,6,10,188,96,82,145,106,18,229,38,206,101,180,225,106,193,248,127,148,205,84,233,172,164,208,15,179,85,239,172,252,67,228,220,240,36,163,145,14,43,17,168,82,49,103,209,122,216,175,21,77,246,188,134,103,187,158,155,182,144,51,37,138,66,81,220,48,116,208,44,106,219,250,192,87,236,177,79,227,101,95,169,152,35,36,128,22,210,233,172,36,52,122,6,183,163,80,130,115,36,164,82,123,161,18,157,238,55,109,43,119,195,123,232,242,87,130,170,45,240,27,88,188,252,70,35,185,218,8,238,203,47,58,185,88,26,139,120,21,213,166,19,191,218,237,134,166,86,13,235,34,158,191,216,78,135,209,66,197,35,100,145,224,145,137,210,235,112,223,139,183,63,37,18,117,83,40,134,226,197,23,69,43,147,121,151,225,123,163,217,132,8,208,21,10,241,99,2,59,231,82,174,159,95,181,222,237,156,50,139,244,195,187,48,28,23,37,168,230,128,192,12,123,191,177,9,211,201,36,128,100,177,252,223,104,195,188,152,112,30,217,116,253,235,99,88,71,119,79,92,133,133,168,
119,192,112,83,11,88,116,21,140,97,218,17,79,163,13,191,133,6,36,195,71,35,252,75,109,160,231,131,191,180,239,144,152,250,22,97,188,154,142,29,130,86,158,229,10,172,77,72,109,129,17,68,78,229,165,138,226,169,233,63,194,115,63,31,203,186,59,50,11,215,165,94,57,224,184,7,235,56,51,7,64,238,165,12,79,200,43,129,23,42,16,232,84,106,150,119,112,195,95,224,170,35,98,68,102,8,181,3,136,239,181,64,78,17,76,164,225,158,4,125,158,117,147,156,62,84,38,147,60,178,107,91,100,4,155,9,8,55,208,192,251,247,219,15,42,248,253,249,133,170,83,143,147,55,213,251,48,247,38,224,163,145,8,65,16,69,254,102,32,85,98,43,217,182,9,170,2,185,34,43,205,165,141,76,115,180,218,74,16,162,39,229,148,78,115,109,85,219,105,250,87,192,16,98,116,57,8,21,47,40,23,23,34,73,115,175,116,32,43,253,105,44,4,51,115,106,37,156,161,85,9,243,27,205,48,8,153,21,77,150,32,120,118,252,239,33,125,190,247,161,139,57,70,44,60,215,
57,64,194,12,167,69,205,9,51,123,111,135,201,50,17,191,48,109,43,206,205,32,121,72,6,219,94,36,5,113,213,236,219,126,159,224,59,101,88,120,14,28,129,71,179,49,223,34,34,129,244,233,86,30,38,193,248,113,100,238,109,75,160,246,252,173,132,8,67,92,228,190,189,239,14,90,82,200,2,31,11,198,185,100,170,192,162,64,65,5,142,139,124,54,61,76,178,92,122,90,12,203,23,25,215,85,147,221,29,120,46,59,223,100,119,25,221,114,141,234,254,42,177,125,1,174,128,248,35,39,81,157,56,37,70,143,88,180,152,169,125,10,171,132,27,21,68,4,137,88,130,176,10,252,183,128,91,123,251,241,211,131,65,219,84,99,218,32,210,205,170,77,148,205,251,174,123,34,189,212,178,195,246,84,71,129,72,72,164,211,69,89,145,234,109,98,11,159,27,249,116,86,64,105,189,10,239,135,33,146,248,249,21,228,243,40,227,91,9,102,117,34,169,138,112,171,114,239,25,149,225,130,98,208,166,15,226,163,116,115,219,197,170,238,187,206,203,135,203,148,250,38,189,149,254,78,
23,112,99,219,76,47,10,91,5,18,162,141,107,190,12,83,73,139,166,181,29,234,25,152,105,171,132,246,35,235,87,98,105,214,187,152,228,62,184,111,162,109,28,107,64,238,84,93,76,247,235,164,165,217,80,149,114,184,218,21,107,157,49,135,80,40,188,100,222,34,57,244,141,235,58,189,11,4,132,92,146,35,241,46,57,126,59,202,236,112,39,104,115,219,87,2,31,27,157,58,246,113,23,151,128,67,32,240,208,101,179,77,19,157,52,129,29,129,18,82,158,92,26,210,168,192,38,61,210,112,108,86,14,64,208,242,120,75,96,135,53,130,146,168,148,71,64,57,229,77,254,163,82,169,57,43,52,28,174,108,228,47,32,136,191,71,10,63,112,62,148,197,55,139,107,135,125,242,140,8,65,111,56,59,190,132,103,165,56,84,68,8,234,61,7,83,130,181,217,152,44,10,207,129,54,216,252,87,46,212,250,164,254,116,30,85,223,133,209,247,167,48,150,223,31,254,189,175,49,30,36,40,96,31,60,221,195,125,121,242,226,237,167,44,213,59,11,62,71,125,32,16,22,201,39,112,
94,90,119,198,88,182,248,195,123,60,110,134,77,67,112,207,189,136,225,142,37,124,92,143,161,195,182,43,53,76,210,183,79,144,94,109,182,230,76,69,179,28,82,29,62,12,9,74,68,140,8,85,96,110,196,135,157,198,207,147,26,113,25,99,68,219,93,93,70,174,105,67,159,73,60,159,72,187,124,172,170,104,157,164,26,29,200,118,245,226,102,71,168,207,176,199,249,83,230,70,163,225,24,34,62,66,19,237,112,241,158,222,118,29,16,193,199,169,132,85,206,11,127,76,169,201,153,62,161,22,219,208,94,180,214,56,97,173,71,243,54,44,253,166,87,110,123,131,151,103,166,184,21,165,167,46,206,195,14,133,20,51,152,205,220,52,63,134,56,70,183,34,195,242,189,67,119,81,158,57,76,174,251,49,159,224,184,74,25,187,14,122,107,241,140,226,150,252,106,57,230,4,162,110,32,134,219,125,166,151,170,206,23,61,212,251,6,54,4,131,21,247,244,173,95,6,100,103,3,20,124,14,167,150,182,239,136,153,4,207,125,72,120,125,111,18,76,182,158,242,115,221,110,40,189,247,
128,109,60,72,95,244,190,96,142,210,110,133,52,208,125,103,170,42,142,113,54,107,118,77,96,146,250,71,206,153,215,163,46,88,203,39,235,227,229,97,233,246,67,44,39,66,45,215,17,105,182,236,85,124,28,195,253,27,243,166,198,26,23,248,22,2,159,228,242,128,149,99,9,86,148,181,55,225,108,233,33,93,31,73,28,157,16,90,194,199,188,162,53,232,206,50,140,76,60,94,180,154,83,17,109,146,245,206,65,33,25,104,96,77,234,210,26,133,181,174,61,97,90,205,124,57,119,171,3,202,35,59,237,180,71,99,211,190,195,62,240,207,60,126,90,65,190,239,82,214,198,17,108,80,126,163,45,107,247,205,101,130,102,3,187,202,136,94,98,196,243,213,112,27,61,18,236,240,252,84,235,13,70,1,101,158,159,132,200,203,139,245,147,165,173,185,158,55,25,102,194,127,54,122,79,96,101,22,111,25,165,75,125,225,198,61,161,204,68,138,225,12,152,20,171,123,191,42,222,39,228,117,44,231,221,208,159,43,79,179,205,53,101,77,251,30,167,230,232,239,207,133,150,201,79,162,
161,239,60,45,144,70,239,162,246,165,214,123,27,193,52,67,130,186,45,13,254,191,7,245,18,105,185,6,62,215,123,89,159,211,248,212,42,247,254,104,63,154,245,229,138,69,34,143,251,215,202,207,218,147,86,143,155,139,100,147,124,104,40,246,178,76,8,199,183,100,83,109,29,183,251,240,44,218,110,117,117,186,19,218,127,213,34,252,93,114,54,158,0,253,104,223,99,137,79,227,212,7,0,82,175,61,239,14,152,167,78,169,243,71,251,0,232,145,216,56,131,59,199,194,44,178,131,73,78,203,151,125,196,218,201,46,147,248,207,49,85,162,97,251,48,133,157,171,205,3,176,137,155,175,97,209,81,189,155,188,133,143,160,14,89,222,19,119,217,80,108,88,150,121,168,68,13,225,29,48,35,26,111,156,149,85,28,149,91,161,16,28,2,80,196,157,127,29,144,12,122,186,26,43,3,60,154,78,198,213,36,131,68,20,27,60,10,166,78,103,135,232,233,113,30,245,199,110,230,187,174,236,141,54,221,90,109,106,228,166,147,206,210,160,200,196,77,219,73,64,207,232,176,234,140,121,
231,191,18,245,62,82,209,157,220,99,242,182,111,150,241,4,173,182,205,156,117,45,53,218,47,184,193,196,126,52,52,228,10,164,216,197,71,185,37,185,99,182,239,232,49,156,141,126,171,65,50,159,175,95,159,223,169,238,246,82,47,161,205,154,123,57,235,57,211,158,163,22,131,89,225,103,232,83,103,106,51,246,189,152,193,22,77,219,180,153,178,110,74,89,146,229,123,103,194,195,171,72,218,253,189,146,253,78,45,102,222,3,80,129,250,36,37,87,14,212,180,203,215,13,180,247,36,177,239,72,176,217,190,137,203,61,210,131,216,193,67,161,248,45,219,118,194,186,38,53,15,191,81,180,235,108,82,172,151,40,46,218,243,164,217,253,108,76,53,86,142,99,35,208,151,211,211,26,150,247,53,136,100,173,183,247,69,22,51,141,76,88,56,227,130,232,105,245,146,205,70,111,77,93,87,233,120,129,77,137,140,97,14,210,194,88,158,112,158,127,57,255,135,164,171,90,110,166,87,130,175,158,152,153,153,153,153,217,49,51,51,39,102,102,94,195,241,247,159,203,84,185,178,163,81,79,
171,123,87,26,29,192,149,176,8,107,226,128,39,5,45,255,20,61,193,112,114,139,159,117,88,150,142,191,175,199,77,109,239,156,91,82,122,187,109,90,84,53,132,16,127,254,216,35,135,175,223,31,226,247,237,118,211,118,229,83,99,38,214,120,220,70,15,72,47,78,250,106,80,19,163,241,170,120,84,110,39,172,211,104,249,251,252,14,249,37,147,95,175,216,200,186,84,4,11,3,211,124,170,235,76,151,246,159,182,166,64,24,252,146,185,197,238,234,93,161,237,248,43,99,250,59,246,139,178,169,167,214,141,140,227,76,13,117,198,151,103,127,210,178,99,42,105,45,22,195,173,184,251,248,107,20,223,129,199,173,213,122,40,209,94,222,130,47,56,46,120,54,95,111,237,24,80,105,111,157,168,145,142,55,40,177,185,95,186,172,28,189,249,99,53,35,175,201,124,231,37,139,124,212,117,158,167,214,73,99,229,205,99,156,232,207,146,155,254,168,209,206,97,137,206,62,142,30,37,222,90,50,94,42,10,122,249,22,161,127,95,114,234,210,246,30,54,59,17,22,6,171,145,99,119,86,
177,67,202,151,210,143,6,48,183,148,170,179,41,104,224,187,174,2,110,178,250,153,13,113,176,90,61,165,247,95,213,96,147,201,17,163,25,112,46,55,102,121,80,127,102,133,252,149,12,46,62,246,154,109,233,44,202,167,186,22,199,34,94,2,229,210,234,250,125,39,249,162,207,158,237,92,106,252,117,183,247,165,78,239,71,12,98,178,5,28,181,210,243,202,227,201,239,210,171,50,63,143,149,60,148,70,160,56,114,254,14,61,84,169,206,66,252,129,189,41,194,46,228,45,235,77,74,3,240,170,193,217,110,123,75,175,249,174,33,186,25,200,75,93,175,114,111,30,140,64,214,119,107,176,98,52,23,115,147,116,162,67,245,14,150,43,147,47,31,228,247,246,37,109,84,254,255,121,108,68,111,85,242,242,198,223,71,249,133,127,150,184,186,58,107,39,220,223,124,47,137,109,59,34,218,210,143,54,131,149,116,247,198,44,92,18,178,39,131,197,43,22,181,175,183,165,81,3,237,42,222,168,254,55,122,36,35,79,119,60,186,46,115,45,105,251,99,117,149,236,234,50,150,132,102,103,
237,32,23,94,121,184,148,200,207,242,216,5,255,205,137,123,62,208,204,31,203,177,46,63,1,42,253,110,254,180,27,139,117,209,82,45,162,248,180,232,113,87,34,51,249,28,110,55,119,85,243,18,251,6,103,205,179,81,229,148,227,204,139,11,21,131,111,121,102,2,94,92,140,242,243,175,119,96,188,208,181,5,141,147,116,26,145,232,74,218,162,125,69,158,194,204,124,142,77,246,198,207,25,223,94,209,3,94,3,77,160,50,213,209,26,155,166,85,35,213,157,253,186,149,48,199,36,199,159,30,111,56,119,12,119,55,137,186,250,248,208,140,158,27,255,136,98,203,210,25,230,95,218,168,249,73,198,191,108,196,74,86,59,136,247,33,116,163,54,246,87,119,207,63,128,85,56,105,93,50,10,85,74,218,13,107,206,203,197,116,85,171,239,135,49,194,2,217,45,46,149,202,129,144,134,153,153,156,13,163,195,167,124,190,36,80,126,87,187,162,177,20,215,223,244,148,83,121,9,237,179,210,65,188,135,181,68,3,202,242,1,126,207,55,25,94,175,62,50,127,188,78,110,41,166,22,
189,95,203,183,255,246,163,89,84,179,66,211,186,32,28,45,233,2,2,109,143,148,200,152,134,23,110,66,150,62,75,216,101,41,72,211,83,149,216,143,171,96,233,160,146,213,251,101,157,174,110,220,236,140,122,29,87,82,182,91,28,104,23,61,144,181,199,23,235,167,42,110,209,193,218,188,13,71,205,216,221,33,83,190,68,84,170,124,42,142,189,221,175,20,122,121,233,151,76,46,62,39,116,44,64,224,222,239,100,219,206,155,197,127,63,246,78,241,168,208,125,82,128,127,135,199,234,44,28,191,207,164,79,36,153,158,45,35,75,35,92,148,227,105,233,37,228,202,223,39,61,154,242,125,162,92,103,53,197,39,47,132,19,93,159,218,189,128,37,182,85,155,100,95,171,86,59,41,76,75,125,160,29,12,133,99,152,42,68,191,254,111,4,118,216,113,24,229,65,107,182,157,113,45,211,237,235,240,27,219,113,161,222,80,230,67,148,172,250,197,129,97,71,129,84,132,25,200,155,203,52,47,226,81,251,255,233,53,22,30,215,191,109,222,118,125,54,152,163,8,82,247,35,177,4,110,
68,104,157,82,162,247,7,61,247,148,13,156,185,250,245,60,154,88,234,5,199,89,122,214,255,98,154,144,111,74,28,118,44,149,74,36,32,238,56,222,92,244,184,50,61,210,38,52,218,72,234,6,102,124,149,224,178,156,233,21,167,252,141,149,185,3,51,80,241,26,181,236,134,30,238,96,88,0,135,114,9,199,191,121,151,205,20,61,158,222,191,22,122,251,105,22,171,104,68,120,97,26,169,159,167,99,181,204,49,27,218,52,89,206,160,163,53,16,101,85,75,9,198,244,143,24,249,131,99,161,36,47,175,223,176,221,195,223,246,184,64,192,118,159,136,163,158,244,187,50,205,46,245,36,154,124,248,199,185,186,246,69,154,54,13,228,115,158,82,175,90,3,129,162,131,25,47,87,131,97,43,32,175,61,215,8,24,95,119,15,241,10,198,125,194,136,126,224,247,248,132,161,152,169,4,65,255,109,56,183,63,177,153,210,17,249,97,122,116,186,232,4,240,94,91,126,140,171,157,168,205,40,230,233,93,96,251,219,141,151,58,169,6,245,35,247,57,32,57,101,250,160,49,164,241,37,
68,39,238,163,158,61,66,55,252,29,165,106,133,40,122,53,169,206,89,114,43,92,192,115,33,157,194,69,37,18,127,136,109,90,255,201,49,139,139,7,228,58,86,127,123,197,195,72,225,138,161,251,165,194,210,44,33,12,151,102,108,138,131,116,148,243,12,73,62,148,159,190,31,17,204,42,236,93,41,218,38,26,61,16,128,159,58,205,177,114,251,41,2,22,220,191,235,35,26,141,49,109,189,160,34,87,71,219,1,173,154,55,154,113,189,175,120,177,209,153,108,45,44,135,231,157,102,148,55,77,119,63,74,179,249,68,209,166,241,121,219,160,79,29,91,148,234,170,61,76,59,97,196,195,194,149,199,225,59,254,235,90,1,174,254,125,120,8,126,60,156,98,181,14,140,116,76,212,18,117,64,144,179,224,53,61,191,102,240,227,10,156,99,68,116,108,11,94,218,244,168,117,7,171,91,48,115,189,7,202,250,245,126,64,153,88,113,111,175,92,149,245,228,157,229,83,119,228,196,82,28,3,249,126,121,95,236,126,87,28,67,29,161,157,100,123,201,213,248,110,145,187,82,30,229,153,
234,185,43,13,91,186,142,118,165,100,50,211,243,20,111,135,44,214,182,106,41,170,255,186,210,73,47,128,163,125,95,104,253,47,236,125,161,166,23,173,92,203,147,72,201,179,250,89,153,240,130,241,55,42,199,55,198,171,150,121,48,84,178,215,154,81,149,86,191,246,206,245,147,213,199,107,125,155,151,145,215,121,192,144,153,97,84,11,38,86,197,40,198,177,143,33,209,235,27,176,236,116,228,244,175,65,0,228,1,255,108,40,147,125,20,220,84,246,218,113,202,55,102,160,94,119,51,23,171,141,87,16,197,104,248,196,193,47,23,76,103,216,244,175,100,227,160,156,57,255,28,239,151,26,152,17,188,11,107,109,167,239,174,158,181,185,239,250,92,147,142,167,133,184,228,187,138,75,178,205,178,239,37,172,138,6,3,207,223,184,152,172,137,169,244,39,211,213,183,30,199,185,84,153,174,30,14,92,161,10,200,48,3,166,171,9,173,252,49,220,165,75,134,191,99,156,78,234,59,14,180,219,223,172,214,188,133,12,152,154,39,114,119,230,209,246,208,96,159,127,193,154,207,171,219,108,
206,39,198,210,190,175,183,30,211,241,47,24,213,12,207,243,108,127,186,94,192,14,81,215,253,175,103,163,161,98,22,107,218,38,52,180,133,66,161,199,230,111,0,0,227,61,251,120,157,158,22,101,222,191,96,39,88,222,10,91,231,72,143,95,231,213,113,66,176,106,77,111,248,62,193,99,83,211,219,192,11,92,228,246,10,187,76,247,149,100,22,9,126,113,233,76,50,161,78,143,203,224,207,222,179,209,81,171,213,98,196,234,104,180,181,244,174,86,248,166,75,134,131,60,23,250,211,188,5,225,181,138,207,87,225,120,213,24,12,175,137,42,79,195,86,35,93,212,134,39,190,200,15,127,114,62,69,203,122,5,209,250,11,68,222,187,77,184,211,133,92,205,47,116,194,76,22,13,45,141,74,101,57,55,79,115,60,142,136,98,148,112,218,245,243,189,214,57,61,130,199,134,126,39,177,52,211,156,39,22,126,72,249,152,218,13,214,15,110,82,239,128,236,17,228,150,242,247,33,115,145,74,53,212,172,60,38,176,235,146,172,128,150,107,26,177,232,189,220,107,228,231,23,39,107,207,
210,36,91,216,221,189,117,8,187,218,93,65,166,181,144,120,117,236,62,14,72,106,150,175,237,249,182,16,242,110,204,143,115,145,141,213,185,68,168,29,71,131,20,210,242,80,190,248,118,90,211,182,190,72,96,228,57,171,134,224,176,16,162,220,7,121,31,182,135,139,190,101,11,14,46,187,216,77,59,196,126,120,123,162,181,223,65,222,159,99,78,197,65,11,13,227,39,176,167,107,239,137,130,90,195,78,207,54,214,105,176,221,149,23,39,247,145,251,66,247,188,220,36,201,161,217,229,15,11,137,240,126,203,218,201,62,37,242,241,226,146,4,185,32,21,96,250,57,76,255,152,188,155,243,165,222,109,212,163,110,143,135,156,255,29,18,194,121,40,231,97,225,175,106,231,177,126,191,127,105,171,165,1,1,248,253,172,15,240,127,28,57,63,23,13,168,62,18,117,32,215,209,232,181,117,59,174,148,160,32,118,59,230,42,12,38,34,17,143,132,133,134,208,18,182,164,74,93,174,20,205,183,67,245,88,41,89,225,115,11,164,193,21,100,36,42,85,85,122,103,219,150,230,70,231,245,
26,212,121,70,156,168,88,73,194,204,251,120,98,242,223,121,77,151,11,38,84,138,139,173,150,255,24,153,237,209,145,98,9,4,13,7,194,227,133,204,42,179,238,8,119,130,218,10,231,212,67,200,151,23,231,45,254,72,124,93,203,116,83,200,161,114,88,20,92,75,210,212,240,76,179,149,36,143,185,135,136,118,163,229,44,141,205,5,225,99,234,62,157,10,8,118,164,33,145,90,244,202,10,40,217,195,7,53,66,136,110,202,115,228,191,48,95,221,190,84,26,150,96,147,224,2,58,161,17,134,135,168,114,146,149,169,182,113,61,208,136,46,174,89,56,10,113,219,48,160,227,132,120,83,118,2,73,144,105,203,80,211,2,109,64,97,32,36,62,62,172,205,2,154,63,35,242,229,130,125,183,238,127,97,22,251,119,12,121,145,219,243,138,186,70,139,80,43,125,33,172,164,209,253,133,101,164,39,96,43,104,187,171,34,232,154,221,50,205,172,33,147,11,150,78,226,147,176,36,142,137,107,19,224,103,213,33,52,33,165,68,164,15,231,182,154,31,55,253,84,37,174,226,243,66,129,
114,67,45,8,242,97,17,142,0,194,137,170,164,114,68,194,70,189,58,29,243,93,187,96,223,252,6,29,198,170,255,110,8,41,67,10,127,31,196,92,200,141,114,166,0,38,52,167,144,70,68,186,82,108,65,97,42,91,32,32,45,200,1,169,146,132,187,50,232,118,56,21,144,166,66,149,240,116,118,159,168,195,51,73,17,122,15,123,108,223,150,176,168,43,33,4,95,63,71,203,240,18,130,101,26,138,89,204,194,3,150,159,122,177,243,182,191,63,13,243,100,17,41,197,240,60,238,126,140,249,215,247,243,229,217,170,127,127,236,189,135,89,192,69,140,82,52,33,246,71,60,152,141,70,84,117,53,166,13,60,53,90,45,126,3,54,144,119,237,32,2,39,231,228,169,212,34,19,203,22,76,20,16,124,45,45,253,248,131,16,51,246,35,44,199,180,248,202,183,186,190,50,34,212,28,129,103,50,71,86,86,98,111,117,240,164,183,65,32,119,112,158,113,81,140,46,200,62,40,39,13,95,83,9,18,134,64,45,115,126,109,196,86,95,86,42,154,8,97,140,230,4,173,132,236,79,
62,219,18,159,69,138,39,165,12,226,35,192,101,200,12,249,64,146,18,210,131,2,65,211,61,136,205,53,131,2,98,173,222,175,31,43,255,173,17,186,57,172,83,53,91,238,158,78,227,99,28,22,106,130,154,150,150,84,17,17,147,97,18,173,145,93,233,99,3,244,173,192,10,193,81,41,40,138,182,227,230,53,105,83,15,69,144,119,83,5,224,49,62,155,38,38,6,80,113,146,21,140,115,33,236,231,184,197,192,104,59,184,238,100,87,18,78,71,229,84,191,74,26,166,139,63,71,194,227,51,97,86,129,36,67,76,60,189,201,117,154,136,128,34,218,184,114,144,37,38,182,57,212,212,175,12,138,164,6,145,60,18,100,34,146,77,145,105,30,132,120,191,43,28,192,8,140,175,142,135,117,218,253,68,186,172,45,78,52,183,114,69,28,113,79,76,39,52,23,19,135,84,36,85,128,134,18,149,172,216,247,1,77,215,75,169,144,88,210,106,42,73,227,137,165,16,226,236,8,173,59,45,201,35,166,10,16,125,40,82,76,107,120,109,155,226,120,219,113,166,201,88,114,233,118,14,
179,217,220,81,27,12,194,128,178,39,63,14,167,65,249,21,40,200,52,79,40,199,196,72,69,189,252,239,149,86,177,109,68,170,140,241,48,142,139,21,144,202,8,182,46,10,135,187,47,155,8,124,165,253,68,57,175,117,168,63,14,112,152,12,77,151,9,66,198,144,177,171,192,8,247,66,60,166,126,75,36,146,246,234,172,21,53,173,54,180,245,153,30,66,229,252,135,233,186,234,217,123,58,25,124,113,15,197,137,226,65,123,158,212,82,148,146,217,220,193,32,229,170,8,72,163,40,165,236,13,31,17,242,107,245,195,143,200,128,137,105,192,146,101,230,83,82,204,3,157,132,220,245,69,122,118,113,249,185,215,185,117,203,81,224,167,83,254,2,250,109,185,78,115,193,89,7,243,66,48,134,5,173,5,77,95,99,92,223,72,153,128,236,250,27,162,104,232,81,10,175,118,186,54,191,180,159,240,135,214,150,44,234,111,142,169,210,226,111,75,42,60,233,104,239,198,213,168,54,63,94,99,4,115,254,117,129,103,18,236,200,85,187,195,33,230,28,222,171,16,106,2,240,134,57,15,
198,139,40,139,239,154,192,155,118,215,34,237,85,165,72,75,138,19,38,119,59,69,193,217,39,253,101,0,151,5,254,59,95,116,184,119,113,219,204,117,171,204,43,183,126,4,253,18,38,129,203,134,46,166,77,239,142,221,160,223,214,169,178,23,249,164,170,144,167,117,0,199,169,85,42,244,3,174,20,163,161,223,165,158,126,39,91,241,96,46,115,38,156,31,132,206,179,166,87,16,249,90,141,90,102,15,66,4,227,23,148,134,17,195,43,49,16,88,222,101,233,194,24,159,38,195,174,187,45,190,42,162,24,191,213,220,215,245,252,109,186,146,43,201,124,228,217,125,17,117,242,95,203,92,157,235,55,125,225,187,9,185,129,30,132,174,14,67,150,121,26,140,154,209,252,98,53,75,68,51,190,195,183,52,195,40,176,61,129,243,115,72,140,213,131,184,85,195,36,141,202,46,206,252,209,205,206,109,116,111,207,133,230,140,51,103,5,88,181,101,110,20,245,250,244,50,226,122,212,195,171,153,117,111,220,192,189,42,149,173,249,29,227,89,95,187,216,58,132,11,207,186,131,113,218,127,
122,89,89,195,165,247,177,175,255,240,16,173,178,23,182,34,86,131,152,54,46,126,239,231,128,152,89,167,235,159,187,119,53,249,168,231,250,146,49,150,117,26,21,154,53,152,147,191,97,153,52,87,238,96,55,202,122,102,53,44,204,174,47,55,72,44,29,226,154,105,126,77,146,73,207,229,245,172,1,234,153,2,227,40,179,255,125,199,114,183,63,186,87,117,230,32,9,68,60,133,110,188,187,207,201,254,53,226,234,1,217,112,173,251,5,234,94,247,201,180,146,73,59,29,215,20,180,208,243,41,69,91,139,183,223,21,109,209,121,91,6,143,240,204,215,100,107,102,135,117,57,73,16,175,30,240,155,125,147,180,99,12,165,217,176,172,244,24,215,76,223,49,38,164,222,7,56,183,255,78,168,186,89,190,235,174,207,117,155,46,42,190,255,117,29,108,16,166,86,6,198,165,127,105,91,176,110,161,16,24,192,97,120,254,235,250,39,135,199,124,44,58,43,235,47,253,106,171,148,154,225,148,105,5,252,123,133,181,168,21,214,76,110,19,29,206,163,215,129,217,76,221,94,225,87,197,
83,58,17,191,123,94,243,190,177,75,197,242,240,74,227,165,244,12,2,58,89,102,153,204,186,238,136,204,160,146,127,1,199,237,166,69,191,133,159,80,44,13,144,139,67,159,97,194,240,5,187,16,148,107,209,50,197,107,100,247,175,241,215,123,228,165,214,4,193,142,251,18,251,215,231,56,231,127,250,142,219,127,157,250,98,231,127,77,192,36,199,69,170,166,255,16,179,32,5,165,235,241,79,171,206,82,237,32,189,118,137,229,172,239,114,184,245,135,83,185,79,87,99,158,98,21,203,153,226,88,31,135,38,113,47,202,173,247,169,134,225,44,45,116,222,215,223,111,19,95,23,227,182,252,146,87,152,9,77,85,59,106,24,192,247,216,49,234,81,102,206,110,213,230,190,169,228,223,228,75,228,161,5,249,17,164,45,84,183,122,175,38,143,139,168,104,247,234,50,209,12,27,194,123,101,211,94,254,183,90,143,245,221,143,133,152,251,210,88,123,250,97,196,105,209,171,66,57,219,172,123,179,62,206,138,210,247,251,5,53,198,138,200,246,244,190,188,247,55,42,229,97,36,126,201,214,
97,242,155,142,195,203,62,97,53,27,209,247,239,247,113,99,161,131,97,95,66,104,121,102,189,184,6,240,8,50,67,128,254,219,247,163,207,74,31,1,255,243,88,246,209,254,164,153,23,203,112,214,177,88,41,137,251,98,108,36,63,118,157,175,201,49,96,158,200,213,184,34,2,206,28,105,43,156,125,198,150,105,222,253,201,135,19,160,251,189,25,186,26,5,123,251,218,1,26,80,235,96,135,79,17,250,145,140,179,236,178,69,220,40,216,240,145,76,19,124,89,219,239,214,223,236,204,118,90,42,40,45,99,191,41,92,206,73,207,188,122,140,187,60,239,222,183,9,189,185,12,229,90,228,85,5,147,103,2,181,12,87,63,105,114,223,115,98,108,243,200,142,61,8,239,4,233,104,229,143,199,104,23,204,204,37,7,246,219,232,29,43,227,86,44,189,188,188,124,183,195,93,181,122,209,87,233,127,203,183,247,93,121,111,13,206,19,110,215,245,116,89,176,118,91,37,39,180,177,216,248,78,180,234,20,3,250,185,220,147,84,89,3,252,190,241,156,93,47,170,175,163,92,111,74,34,
58,117,16,46,212,26,212,227,11,48,248,48,202,172,25,225,241,239,99,199,240,115,123,13,142,40,197,57,21,138,135,46,42,35,200,129,62,217,101,13,220,155,239,135,52,75,7,74,71,163,3,94,197,39,99,117,119,117,155,26,103,97,199,146,103,202,234,218,197,50,254,142,213,194,118,91,10,77,212,127,237,75,129,17,237,90,231,184,235,82,183,6,152,47,184,224,60,220,20,120,95,58,103,131,138,31,66,186,2,3,237,102,248,125,219,131,97,8,229,230,218,248,221,54,162,116,227,69,243,77,103,77,120,227,58,112,168,146,198,163,90,56,161,48,232,124,111,44,94,254,179,167,254,2,122,165,50,39,88,165,191,185,185,212,225,188,209,243,100,53,179,108,57,225,170,163,135,190,167,214,86,51,127,230,199,237,64,45,62,175,207,246,101,143,167,155,178,159,155,55,179,221,129,240,66,148,58,192,101,7,54,242,230,183,165,7,207,214,188,238,5,141,245,116,24,249,46,145,228,189,236,80,89,60,136,35,127,63,178,114,188,108,221,157,158,79,225,128,155,31,131,171,158,162,98,107,
209,121,193,84,117,39,194,219,10,172,52,132,73,78,81,246,47,47,102,198,42,33,191,154,27,239,109,160,156,205,176,82,209,28,131,86,247,117,97,227,200,211,242,49,191,188,170,224,140,35,225,109,112,198,151,147,51,93,192,152,53,253,58,108,110,186,129,229,155,231,101,162,122,102,90,6,195,3,84,181,140,46,85,89,216,25,166,134,127,128,129,84,187,1,89,46,87,166,72,215,101,70,254,56,252,129,42,101,19,201,153,23,239,28,44,73,165,60,214,218,204,250,213,154,134,127,52,206,63,150,186,218,238,249,178,203,106,91,16,80,82,140,39,10,20,211,58,174,189,199,43,6,93,119,155,72,202,160,243,106,144,202,59,177,227,152,105,10,84,133,154,136,69,215,223,12,15,113,206,230,253,146,62,228,65,116,50,106,225,179,9,54,144,190,191,105,128,254,245,239,65,122,107,35,186,234,157,18,109,55,153,114,30,86,229,227,189,134,244,186,214,157,222,183,177,93,215,90,219,42,66,139,152,146,124,42,67,48,141,96,26,73,85,55,220,218,221,38,98,235,245,15,253,140,101,252,
168,187,189,122,67,107,253,7,158,210,59,191,50,246,42,218,118,48,71,153,170,180,55,203,3,126,165,211,184,38,21,81,173,99,245,57,225,176,25,215,34,123,134,247,97,216,135,255,208,157,63,226,48,209,110,194,178,185,86,149,200,2,110,162,58,171,215,197,145,48,175,26,253,118,244,254,74,105,28,65,82,97,50,151,220,174,135,233,194,233,49,90,131,157,229,116,223,37,212,93,211,108,144,52,108,78,118,240,71,187,152,214,253,13,229,30,1,167,90,15,57,175,147,100,161,162,228,108,7,138,46,206,211,211,187,9,250,27,44,153,25,0,126,55,52,142,180,236,247,20,46,102,106,232,49,110,157,159,227,125,16,92,110,60,248,30,70,194,149,147,195,229,154,5,219,128,193,8,197,189,19,21,192,81,31,149,68,22,93,98,17,139,131,77,51,192,247,182,202,189,130,209,220,124,109,172,81,163,239,243,184,8,78,236,251,139,56,100,253,239,79,14,117,22,46,137,211,232,242,140,117,64,16,96,127,0,253,89,250,140,64,132,93,151,215,129,228,191,182,182,23,13,47,223,106,182,
219,178,90,43,11,38,237,18,242,116,117,153,115,70,252,3,56,239,93,210,29,79,100,175,84,58,26,143,180,90,244,203,91,189,180,75,6,227,5,96,229,227,232,188,255,241,44,106,83,217,104,84,198,110,54,97,226,27,115,77,227,68,186,74,52,172,26,210,244,206,110,118,253,109,93,162,197,88,205,162,101,164,20,231,193,18,249,155,71,103,241,118,159,56,252,242,132,105,145,177,215,215,238,135,49,14,94,28,125,34,188,6,229,85,195,220,127,12,163,56,82,60,249,58,85,199,108,42,55,13,48,190,228,45,149,210,146,149,211,104,0,252,59,155,94,207,187,158,75,54,22,178,109,206,156,43,193,63,82,142,231,112,126,60,68,244,55,28,116,100,190,228,14,229,103,221,53,161,198,254,155,78,50,163,126,180,23,243,209,112,215,156,135,124,104,34,58,216,88,85,141,198,195,137,92,202,35,247,20,177,170,153,128,38,203,142,245,238,85,223,180,187,150,179,40,77,129,183,174,238,203,182,209,71,67,161,233,221,47,16,183,62,195,233,250,142,74,36,186,217,224,63,105,132,201,177,
190,105,90,113,59,13,3,144,227,109,252,165,189,231,35,99,53,252,135,219,36,172,106,62,0,191,235,13,77,173,211,233,60,52,41,206,195,248,56,231,87,22,107,247,70,167,72,43,166,167,69,123,234,74,19,255,173,3,234,42,224,54,124,55,146,44,2,94,251,75,173,3,39,26,58,218,173,136,173,235,78,192,109,106,240,77,97,120,138,251,119,218,153,13,152,230,235,100,77,158,77,21,141,11,39,86,71,91,32,117,8,147,199,41,186,175,197,66,171,233,190,198,76,196,107,190,80,190,108,22,154,165,82,221,231,123,230,39,83,243,111,39,206,229,97,246,160,77,223,39,79,220,27,109,25,63,5,214,240,8,98,223,247,221,79,231,235,251,90,255,119,103,196,191,205,234,150,251,28,97,251,160,3,166,54,43,120,0,126,104,151,195,1,209,175,127,204,216,106,23,191,84,84,105,73,176,141,99,106,187,37,2,86,97,8,59,121,201,56,35,145,209,33,60,119,190,90,254,164,231,215,14,221,223,200,206,143,239,66,171,57,94,73,214,148,18,194,120,177,253,122,58,145,2,105,214,
40,137,150,247,100,101,249,41,124,174,1,102,65,236,27,101,218,195,46,62,28,82,122,140,201,192,115,157,69,122,247,200,44,227,87,129,181,243,223,253,37,61,213,108,81,211,195,123,59,47,96,127,122,110,99,37,219,125,156,18,0,212,240,147,179,143,210,253,54,105,224,247,3,210,68,109,61,222,94,33,87,79,87,143,254,125,149,216,166,98,230,49,137,211,205,117,247,185,15,60,253,6,197,30,224,163,75,246,120,252,254,137,197,181,74,209,178,208,254,202,60,142,212,87,199,202,191,54,96,8,65,195,98,232,173,127,87,135,104,3,213,13,119,177,0,222,247,4,214,117,163,111,112,63,206,84,50,188,134,235,58,38,213,250,114,52,103,104,44,29,67,235,182,57,104,15,247,195,132,246,120,138,19,74,179,253,48,104,199,70,243,111,10,145,94,75,38,51,51,200,250,205,73,142,247,107,59,153,138,157,242,222,126,36,181,243,19,49,74,106,53,115,77,196,31,14,217,9,3,228,157,74,38,119,246,199,201,255,237,38,209,39,189,85,151,59,75,137,241,205,43,181,147,226,172,188,
3,92,127,194,172,44,145,45,199,95,209,54,240,245,57,241,119,12,183,52,66,107,162,245,247,97,234,155,18,130,109,29,63,3,192,229,133,75,18,181,131,18,92,243,246,28,25,11,177,28,89,48,252,14,218,157,187,248,87,103,75,254,59,122,112,165,164,232,175,102,44,34,190,1,25,25,250,132,37,225,161,1,228,221,175,19,202,201,72,68,131,38,194,120,193,49,185,33,176,84,124,79,140,108,182,190,246,198,29,40,220,50,129,165,163,155,186,71,130,246,89,159,174,133,142,109,127,108,120,241,133,222,175,115,205,239,252,215,22,14,255,226,63,242,0,11,183,66,247,124,157,103,189,80,232,252,187,197,230,20,24,2,227,177,239,121,44,29,241,167,249,220,197,117,159,137,127,227,106,165,2,73,100,87,45,36,27,177,199,9,146,130,67,160,72,103,248,27,31,176,125,248,97,40,149,214,214,151,90,185,97,8,177,250,168,240,92,67,22,88,173,97,78,88,77,112,91,36,66,72,217,154,216,223,158,151,63,90,175,54,30,175,226,122,145,39,4,156,151,224,220,223,82,238,70,212,
151,25,137,88,167,43,196,250,86,87,110,190,64,214,7,36,178,44,121,94,185,9,36,18,18,26,23,134,251,51,217,16,139,29,51,134,239,215,163,227,227,175,150,102,173,195,233,212,33,0,24,246,48,38,145,206,92,2,25,204,102,149,251,139,229,82,21,248,133,177,14,241,47,68,50,89,218,230,31,67,114,77,47,107,156,123,183,153,212,43,143,121,38,236,96,20,223,115,14,173,76,107,221,73,176,41,96,93,216,112,146,109,123,16,12,3,194,39,34,194,143,226,109,230,95,91,209,222,223,246,93,78,188,94,58,21,73,117,224,94,174,135,189,157,243,190,229,200,157,117,40,149,66,123,99,82,191,248,229,98,95,172,140,254,23,78,120,37,92,57,97,250,246,139,36,143,171,84,228,128,24,47,62,79,33,222,209,238,178,246,18,113,32,107,84,130,35,52,101,80,177,88,120,241,146,3,95,59,28,73,238,172,214,128,218,151,70,37,83,72,248,209,177,97,149,92,4,171,208,214,211,162,206,117,133,70,117,238,144,245,38,155,249,63,8,18,253,84,27,100,198,34,29,233,168,124,
129,240,104,116,42,95,107,138,161,93,23,11,162,236,75,65,201,174,84,241,144,131,195,165,115,81,76,82,91,136,63,166,76,9,158,198,178,32,107,231,78,11,151,129,49,60,111,19,208,200,138,81,60,95,255,114,183,189,192,69,206,127,9,239,35,194,148,218,190,60,123,207,227,73,36,42,110,165,169,122,88,167,80,108,195,194,174,200,17,34,126,197,103,8,165,110,29,16,230,227,88,49,207,50,150,132,16,174,223,38,200,54,189,73,138,190,121,133,117,202,249,128,199,166,251,76,166,232,58,57,23,71,37,132,136,241,153,50,169,66,81,250,34,80,154,135,183,40,213,234,50,130,140,248,65,117,48,197,98,1,202,65,181,215,117,165,81,222,156,36,236,189,198,67,67,235,28,55,239,55,155,105,183,138,68,172,137,128,132,81,232,245,168,168,74,165,71,212,145,130,34,42,252,173,10,197,71,35,116,31,48,66,200,74,147,73,230,170,128,84,23,231,36,186,45,144,113,74,69,238,79,116,110,33,91,1,141,148,108,145,213,83,20,67,1,62,42,43,199,82,193,114,125,27,96,71,
62,190,212,175,195,101,63,238,240,123,247,125,157,197,189,180,31,121,104,55,232,53,204,99,22,119,136,161,242,246,10,212,15,229,84,85,205,16,93,57,250,178,52,119,74,44,190,191,249,28,213,172,63,47,38,85,207,21,129,146,238,47,150,187,2,98,202,243,164,251,157,64,14,90,210,77,83,63,146,28,65,83,213,159,159,32,14,122,67,54,132,88,7,133,6,255,133,247,5,216,109,203,247,1,139,50,60,49,195,114,124,159,71,14,199,202,228,55,48,158,85,240,220,224,123,53,124,14,158,92,202,3,25,49,96,102,63,156,135,106,146,170,38,118,255,8,32,54,166,213,129,147,254,53,164,141,167,34,219,159,93,189,37,141,115,48,77,144,6,196,95,141,213,129,127,27,192,60,232,231,25,210,134,12,107,126,73,94,151,210,18,231,244,187,223,2,129,70,82,210,41,22,95,136,83,147,154,188,1,28,254,6,245,101,108,236,47,51,195,48,40,136,141,50,82,90,20,254,210,202,144,64,167,0,201,169,78,147,200,242,247,217,146,210,233,147,85,0,53,189,199,165,255,94,157,101,
255,53,93,205,64,42,88,110,48,137,204,79,60,120,206,79,200,56,232,253,40,42,252,244,78,33,209,76,56,130,252,12,169,90,44,13,69,20,202,11,17,128,247,53,82,60,196,80,78,145,114,2,75,176,251,38,11,42,1,137,218,242,4,151,21,5,178,44,157,31,250,179,108,155,214,38,219,225,57,78,83,180,34,219,167,153,193,94,44,36,202,11,109,158,167,152,168,7,213,100,162,95,194,187,124,232,83,70,113,103,91,24,5,103,232,135,251,72,202,83,153,149,19,193,141,35,230,58,76,241,188,44,127,68,230,13,106,228,194,145,15,34,34,151,16,114,61,195,106,220,174,19,153,58,67,30,124,163,65,153,44,183,66,154,128,143,207,49,231,18,77,81,194,116,97,112,129,22,109,146,3,71,165,206,76,111,163,222,233,174,15,201,47,5,156,217,205,54,179,23,165,147,224,112,221,117,15,148,231,245,79,43,246,108,189,23,236,100,195,47,73,29,64,253,114,66,99,132,56,107,195,145,80,94,49,54,52,248,37,32,123,49,127,31,151,140,42,196,96,77,210,76,155,198,111,99,
144,91,12,164,120,254,78,82,22,216,228,158,89,29,70,3,15,241,200,52,16,126,230,208,104,197,254,174,172,191,87,223,254,237,114,10,128,61,48,140,227,177,79,233,223,238,165,73,173,115,169,246,255,110,233,114,94,251,111,180,255,253,2,16,172,180,239,188,172,51,106,131,115,31,199,233,52,82,145,170,224,208,13,97,50,1,93,83,149,166,3,253,132,97,10,191,71,61,105,128,150,59,112,66,44,188,95,241,7,34,11,214,157,135,218,210,105,171,201,19,146,249,96,190,89,239,80,250,73,182,194,110,89,19,47,188,100,10,192,249,67,52,80,117,93,46,145,55,137,97,157,186,238,157,168,142,186,25,78,239,236,244,3,155,6,240,220,200,76,108,99,145,78,152,44,61,213,124,19,115,117,211,10,7,110,19,99,188,219,131,192,146,243,174,253,66,140,255,192,22,62,171,226,0,96,111,252,239,83,165,230,103,239,227,226,38,121,55,189,28,198,25,163,46,10,69,126,116,116,23,152,226,172,148,81,237,93,127,237,11,123,246,230,101,93,66,83,140,11,47,51,237,159,157,112,62,
108,28,210,119,229,157,187,207,130,252,8,50,125,12,171,137,234,211,163,196,199,6,165,38,30,200,165,105,24,155,156,155,150,159,139,252,132,127,95,244,123,240,31,229,216,59,90,172,118,195,194,137,106,207,248,74,31,195,17,29,90,250,93,183,62,159,221,2,124,211,48,126,170,145,122,122,222,222,217,118,72,134,38,102,255,193,69,179,50,240,48,141,90,97,92,156,239,148,77,52,43,82,152,35,219,227,226,59,32,154,97,201,173,213,44,103,203,36,162,13,190,250,30,239,231,202,229,247,137,251,186,216,246,77,186,237,30,103,62,82,41,126,131,223,155,194,249,197,170,92,228,200,230,89,44,110,89,55,111,26,69,134,223,21,218,160,23,105,234,232,213,4,23,2,51,209,222,96,102,43,75,85,42,216,221,147,139,49,163,77,216,233,235,88,177,137,156,135,52,70,179,12,147,3,162,94,213,153,218,103,106,89,98,235,219,50,37,94,159,79,47,225,249,175,129,198,217,109,103,33,62,10,95,41,42,155,198,75,47,1,89,232,226,46,215,39,156,143,187,154,22,122,45,226,220,7,
217,6,245,49,120,71,25,193,223,192,202,30,193,118,7,225,191,214,92,206,126,87,182,82,147,55,93,35,41,219,93,153,200,106,197,54,138,94,168,96,69,184,218,183,130,5,239,178,180,207,90,86,53,241,249,40,107,104,137,165,141,229,188,120,200,66,108,46,210,237,59,118,147,66,107,75,237,101,178,250,34,215,217,170,12,39,81,109,202,250,76,84,106,189,10,234,178,217,116,189,59,227,251,253,58,63,239,199,239,239,100,108,246,114,253,187,216,160,190,5,4,252,251,232,7,221,105,233,80,247,190,109,16,172,71,193,59,225,238,74,141,241,14,197,183,55,124,105,180,134,114,118,203,32,152,99,1,200,219,33,152,100,54,134,236,105,217,33,142,250,246,201,97,76,23,175,220,238,155,169,37,216,235,178,223,71,45,178,14,118,175,105,111,26,118,57,12,31,14,218,116,245,237,177,187,51,38,222,78,244,225,211,145,83,182,24,168,55,16,123,247,42,238,116,220,159,72,78,45,115,121,156,81,247,38,193,210,114,182,98,17,7,155,239,150,6,1,2,162,239,58,236,225,244,251,254,
182,13,98,76,171,213,164,31,2,47,238,248,240,28,24,89,42,247,229,218,68,80,181,84,60,191,125,188,84,160,133,143,134,188,223,38,82,241,155,90,79,202,21,223,55,25,224,20,21,14,81,92,116,34,198,223,7,203,37,129,238,231,39,151,92,46,248,194,16,145,187,141,83,34,182,244,190,68,148,83,128,110,103,74,226,49,219,137,110,106,149,200,144,251,39,27,31,195,56,223,79,184,26,247,251,9,235,139,22,57,86,163,186,186,37,221,49,204,54,79,117,225,220,157,149,161,119,194,211,237,74,165,147,194,167,203,249,201,240,165,47,227,78,233,199,68,217,173,187,150,136,128,60,177,242,239,30,36,134,119,83,138,125,203,159,194,84,95,214,39,111,238,205,22,154,4,68,119,45,27,247,195,187,218,114,169,196,172,97,75,163,97,203,31,249,24,35,205,23,157,149,141,44,59,54,212,250,210,93,146,189,172,141,47,163,110,97,212,202,69,20,29,14,200,61,34,222,199,100,67,41,79,245,170,249,3,247,190,18,127,145,238,8,96,126,140,129,39,157,46,148,189,231,126,246,99,
197,55,107,199,33,164,214,248,47,171,118,103,150,254,56,7,209,57,165,115,75,77,22,240,73,177,90,119,89,163,206,116,25,241,85,159,68,22,47,10,249,152,219,110,127,243,194,141,184,134,169,198,40,173,172,244,37,194,75,73,27,36,93,36,132,218,102,41,11,112,209,186,125,213,60,112,207,44,190,107,137,160,161,203,233,78,153,82,75,229,126,194,23,181,254,88,148,185,244,201,223,190,188,247,49,126,157,46,96,136,204,113,192,245,239,39,99,120,22,37,144,88,110,45,190,55,242,191,58,221,156,102,188,116,52,70,209,70,18,191,175,143,73,23,235,27,253,40,179,197,150,171,23,185,21,206,182,90,164,145,152,100,222,114,77,242,169,52,156,139,140,160,145,90,181,200,121,18,201,254,82,246,68,95,168,54,120,57,235,144,11,97,218,242,193,197,118,47,223,207,140,58,71,83,239,244,226,231,42,11,6,150,222,219,112,44,155,162,223,233,101,171,165,63,34,189,37,195,254,57,43,214,46,107,141,238,175,164,231,111,128,179,141,235,154,52,197,117,119,199,139,139,198,163,149,37,
206,75,20,81,198,13,251,120,73,196,111,39,16,217,86,254,253,49,64,250,186,222,237,154,96,68,139,101,118,217,57,237,175,98,143,96,89,88,68,113,225,2,21,254,76,209,106,80,122,204,96,199,112,239,211,128,127,94,33,210,141,230,27,110,167,174,25,177,191,155,111,167,85,188,120,85,82,69,223,57,107,110,105,105,243,31,67,135,139,158,156,172,115,39,54,252,113,28,43,251,16,69,138,86,221,1,217,93,207,18,211,111,224,124,75,100,249,140,29,46,156,29,247,180,108,127,179,161,54,179,172,22,154,40,59,208,109,217,86,135,49,81,52,224,106,40,212,10,195,133,3,41,203,97,48,201,58,196,6,1,6,211,245,112,127,32,79,236,149,124,236,109,186,204,166,148,157,178,14,63,70,191,189,180,179,185,120,239,24,41,124,159,251,97,188,246,17,201,65,249,83,13,18,95,119,227,104,195,194,252,202,107,249,7,24,138,237,158,194,246,134,236,13,210,157,63,74,126,160,178,146,117,233,29,172,195,3,57,70,37,90,61,30,182,39,60,181,34,227,221,26,65,102,225,19,199,
93,43,161,108,51,132,103,101,41,29,221,236,124,249,223,200,227,188,195,127,20,67,230,126,67,74,8,228,194,225,75,157,144,18,156,117,56,238,220,191,143,255,242,61,211,168,168,103,91,185,224,173,123,40,221,39,178,88,69,166,93,255,12,194,108,158,44,253,112,32,235,147,25,28,80,72,223,100,39,45,230,221,69,121,36,22,239,195,249,153,126,78,180,91,5,223,74,234,150,199,20,123,43,196,32,117,145,154,184,164,71,237,43,50,140,15,132,18,100,185,178,17,169,236,178,206,23,201,55,134,243,168,94,54,83,96,76,209,25,145,124,139,117,4,106,149,71,195,244,211,224,252,84,50,39,172,173,7,103,252,187,103,35,65,163,75,127,60,57,54,124,36,41,87,111,202,61,233,253,223,219,42,89,201,199,46,58,17,94,179,253,46,131,159,170,172,94,71,125,62,198,193,105,112,109,10,218,69,162,248,176,50,251,82,129,151,94,29,213,5,12,151,145,140,198,251,103,188,56,45,249,179,194,92,184,98,154,15,227,69,194,178,195,181,189,181,235,54,192,188,231,176,172,88,127,83,
134,187,11,108,123,208,77,176,216,90,42,213,94,137,94,74,116,17,101,120,189,180,190,108,173,210,159,111,61,80,13,185,244,47,145,254,191,254,217,150,169,43,35,207,57,216,236,221,109,134,116,216,113,79,182,254,178,169,49,53,99,255,205,66,28,114,171,75,11,243,38,140,29,75,112,52,199,53,177,174,7,171,200,206,91,153,122,76,131,33,86,59,222,156,50,78,173,210,154,122,219,47,4,233,111,145,114,161,35,121,113,17,82,80,200,229,29,229,112,70,4,75,145,127,172,50,65,55,12,6,41,10,4,12,124,175,228,115,147,90,184,32,174,221,11,145,144,194,0,130,161,131,17,73,225,59,0,9,252,226,10,91,39,237,236,155,108,58,141,195,125,221,120,223,252,51,214,108,197,157,137,39,103,249,197,157,228,223,188,122,223,179,91,243,94,142,254,149,78,85,203,61,23,243,249,220,76,194,70,97,233,140,90,189,122,228,252,171,123,137,223,94,167,223,69,105,230,52,189,123,60,89,165,114,34,253,171,73,145,84,160,38,116,169,42,79,247,138,181,24,177,68,119,73,146,74,
87,199,75,3,48,129,167,19,29,151,157,196,201,230,195,190,110,161,222,154,44,213,17,228,85,100,52,231,110,141,13,167,69,19,221,188,136,194,175,109,186,99,5,212,27,223,229,54,225,226,157,78,31,115,140,53,158,47,216,186,91,195,113,150,207,21,234,170,237,232,117,21,142,222,67,118,78,156,73,124,182,189,35,62,156,126,195,31,130,33,227,242,149,132,149,158,161,186,192,45,151,162,210,21,229,136,120,108,240,234,226,0,206,28,213,126,214,73,88,127,239,95,134,82,156,170,243,254,182,4,22,77,246,211,22,100,11,51,182,102,93,210,239,99,101,251,227,47,50,210,157,27,228,150,29,181,246,1,93,246,230,88,245,31,48,230,28,155,120,184,52,167,135,232,16,252,26,108,80,84,58,165,78,247,61,171,175,90,199,151,33,218,123,75,223,249,131,160,231,52,107,175,29,157,40,50,160,79,230,232,99,241,89,55,168,236,155,222,123,162,81,213,187,146,230,158,221,25,86,238,139,191,237,251,189,82,169,156,115,171,86,12,199,5,22,23,173,93,215,180,170,12,79,67,222,123,
86,235,125,231,224,75,81,16,239,15,208,131,120,157,68,228,38,67,227,42,52,10,139,205,33,147,41,58,232,222,55,247,47,231,60,81,146,97,245,181,42,58,133,177,156,8,5,208,206,199,61,215,188,157,90,193,94,97,183,50,48,39,240,13,62,183,223,231,215,189,230,107,157,229,11,157,218,123,205,119,243,205,249,96,99,181,227,255,156,181,90,138,134,30,234,142,247,7,171,113,235,93,94,125,243,126,243,229,35,174,183,7,224,224,177,3,181,242,76,248,225,140,87,226,162,26,90,79,252,96,206,112,211,30,31,238,125,134,162,210,71,164,114,189,157,80,144,101,216,104,159,206,241,181,11,193,241,66,115,5,12,199,133,251,84,247,121,213,180,175,177,180,253,188,172,92,117,144,239,191,153,31,83,119,235,185,142,59,60,80,187,191,132,39,245,96,213,161,252,104,57,181,73,210,222,62,165,96,62,241,144,57,200,190,179,233,167,181,198,65,1,216,96,241,178,185,48,53,110,116,106,193,99,198,158,240,0,239,145,161,18,49,187,233,36,43,30,141,236,58,57,111,127,154,149,206,
147,145,195,216,243,117,172,89,25,194,92,205,72,205,40,175,61,80,244,170,122,55,120,160,183,209,110,161,252,167,174,70,22,38,253,84,122,191,88,226,223,254,198,76,202,125,180,195,221,221,235,105,171,10,64,38,187,143,154,53,76,7,250,24,222,252,232,122,239,239,231,235,226,175,117,169,46,2,15,135,78,39,73,85,233,153,199,223,201,16,97,120,139,14,222,49,31,47,120,95,147,109,14,147,16,86,110,3,88,48,157,28,151,225,12,77,254,196,176,142,187,202,84,167,207,196,101,125,178,51,106,165,155,200,100,179,164,249,132,42,29,94,219,200,213,33,135,101,61,17,248,214,42,26,113,219,156,226,158,228,26,42,154,54,189,220,250,149,207,213,10,207,91,175,216,173,101,86,78,245,34,250,211,151,1,96,60,187,202,58,240,39,252,49,94,192,107,244,148,92,150,218,92,152,238,73,207,179,233,124,201,255,6,2,62,25,230,21,213,56,5,110,195,176,174,67,214,77,173,61,62,229,56,76,145,98,146,93,139,170,174,26,90,189,126,179,53,172,201,251,133,198,77,124,118,171,
225,38,83,115,203,36,34,145,217,191,147,117,104,107,165,197,155,229,94,112,203,38,189,181,197,66,58,34,65,218,19,118,99,30,137,152,172,47,149,147,36,9,184,150,48,130,58,180,226,182,145,15,124,45,191,106,21,207,191,154,200,237,224,244,199,22,207,23,186,179,126,183,124,157,130,215,61,57,95,252,7,197,171,43,78,198,86,207,203,109,237,230,107,207,192,102,229,116,218,109,229,178,139,142,151,69,255,128,116,186,181,214,145,86,155,46,160,239,158,70,110,239,198,243,89,136,253,217,142,187,3,92,220,196,161,150,219,245,126,196,110,182,227,8,106,56,29,81,182,114,178,231,241,222,59,231,219,115,252,35,50,130,112,35,199,135,164,136,74,192,183,45,217,243,138,115,91,241,143,59,95,244,138,109,107,238,15,105,128,211,11,9,25,254,230,202,172,161,31,254,22,119,183,222,205,106,189,231,169,110,100,12,2,247,227,212,216,167,134,17,39,213,245,20,140,6,65,166,122,177,8,250,142,148,94,195,241,56,11,101,154,160,183,251,108,38,191,53,204,74,135,90,250,43,29,189,
250,160,192,44,142,21,225,188,241,153,146,20,244,196,98,124,143,132,159,72,167,187,134,191,193,215,249,220,221,239,85,58,161,235,93,17,35,215,165,47,17,145,45,86,116,176,75,145,225,104,93,244,146,223,41,117,144,59,113,202,126,75,17,71,113,108,227,205,51,185,189,221,19,3,140,170,211,248,108,109,13,242,166,74,159,234,130,96,121,31,236,22,8,170,104,87,240,59,162,79,92,92,167,85,3,199,202,215,16,24,22,193,42,215,212,97,58,10,70,169,49,205,90,206,57,183,233,226,104,90,94,177,170,209,238,175,150,180,45,74,207,229,230,229,74,120,73,227,224,230,228,151,178,49,80,54,172,169,155,231,126,106,246,35,85,13,77,107,72,105,110,27,160,67,94,183,227,151,117,156,43,252,99,235,58,243,203,250,57,42,151,181,236,251,170,101,155,13,240,230,244,254,112,225,123,1,129,85,32,8,141,213,223,51,112,127,90,169,248,64,70,156,145,52,159,255,138,102,103,50,135,243,251,81,205,186,195,68,231,5,252,33,109,6,101,199,202,140,134,11,40,165,146,57,166,247,
38,233,65,87,42,153,111,248,115,3,212,195,187,81,76,253,144,152,68,1,41,26,65,140,147,130,75,211,76,137,136,109,47,183,61,130,218,104,56,167,240,250,79,54,132,100,113,252,198,85,77,124,165,123,121,154,197,66,63,25,4,115,44,154,170,113,136,105,230,144,205,119,240,118,160,11,148,169,203,196,17,36,90,226,12,147,209,8,26,55,253,127,125,140,192,192,98,82,120,80,194,245,120,108,173,209,78,105,77,223,229,186,134,199,250,199,73,165,190,37,238,28,219,150,241,98,187,251,113,142,175,215,240,234,142,93,63,195,178,110,98,215,221,199,231,122,206,222,250,32,93,42,21,77,43,251,166,247,183,117,148,132,69,147,136,72,111,49,56,92,63,84,34,87,75,112,41,246,47,73,41,17,31,67,194,6,107,168,214,39,94,122,187,253,199,23,158,214,20,60,195,85,67,250,74,100,37,253,9,36,114,109,10,21,45,34,2,203,32,150,93,80,65,140,104,68,214,3,231,213,29,118,173,136,229,49,54,248,252,43,148,203,253,156,68,102,146,233,217,128,28,181,130,71,186,79,
65,154,86,85,216,163,14,105,106,29,218,142,98,62,25,18,124,13,134,35,227,71,198,70,191,108,20,37,38,241,75,48,223,110,167,97,142,183,73,45,38,20,101,98,36,253,9,206,81,40,75,220,184,99,149,203,10,137,203,144,205,131,41,138,196,205,137,11,170,80,168,33,136,153,213,229,118,182,85,1,116,76,249,31,215,22,81,140,222,171,138,111,91,183,143,51,85,136,253,126,84,181,15,17,77,81,149,42,217,242,61,207,240,82,227,219,129,91,6,131,103,20,170,84,138,241,221,246,181,117,227,127,185,204,163,84,147,126,200,162,85,220,67,54,183,74,82,187,189,85,227,221,175,91,148,231,105,97,6,230,229,152,18,230,217,191,108,32,69,32,203,0,25,203,90,96,83,198,14,151,255,184,203,98,188,129,105,24,148,132,68,227,203,251,189,135,50,134,38,34,28,69,129,137,29,78,71,214,140,249,149,40,135,19,125,86,111,252,246,203,37,169,175,223,224,239,222,0,42,163,203,124,10,92,236,232,77,29,199,207,76,150,195,242,200,31,2,197,64,17,152,98,197,245,148,16,
214,230,113,93,199,29,160,76,57,209,60,163,32,9,185,9,160,95,80,178,47,103,208,8,101,233,86,210,43,11,199,230,160,70,160,0,108,127,8,28,110,29,243,103,185,111,248,28,31,69,124,57,77,198,25,153,194,163,66,5,129,29,25,184,127,17,151,56,174,60,55,190,190,94,151,50,68,143,143,226,115,20,177,182,46,134,86,211,194,233,90,20,32,46,9,10,207,113,202,66,176,118,67,65,33,50,42,177,144,195,15,194,16,77,225,217,29,108,255,77,227,50,177,1,6,253,241,152,134,164,0,78,23,168,111,101,59,177,113,213,154,224,62,176,187,238,156,155,9,175,101,28,196,78,230,69,77,237,12,240,124,247,191,32,4,203,245,236,50,81,118,186,180,178,209,19,161,130,58,230,229,120,178,68,122,10,28,253,130,4,177,12,99,59,231,0,185,73,248,57,174,252,213,99,59,71,147,133,182,9,128,221,253,17,21,231,68,52,122,71,84,161,151,151,212,68,80,202,96,163,137,25,113,178,96,102,91,51,132,250,231,56,47,183,210,247,186,93,161,191,117,161,49,110,189,214,
97,250,210,244,220,157,174,128,0,196,177,195,163,171,142,43,152,204,13,41,220,184,47,71,142,129,237,108,103,206,161,4,16,252,157,17,8,148,80,228,248,96,48,217,134,8,242,155,63,128,174,224,166,209,186,133,199,7,29,208,72,28,22,53,45,113,123,193,17,145,175,5,192,169,45,78,111,187,201,225,172,77,249,37,32,84,110,165,80,174,78,9,115,249,118,158,78,48,74,209,204,175,113,122,11,217,29,103,234,146,124,241,168,34,140,231,189,95,178,219,4,18,109,255,80,39,125,44,59,204,178,39,52,118,112,33,175,5,141,47,116,191,238,14,187,77,145,93,253,149,151,147,31,212,179,165,206,204,200,75,203,186,179,41,31,49,149,196,146,8,79,151,78,206,26,46,248,110,100,28,50,80,75,197,239,195,223,88,192,184,71,211,219,186,161,175,45,142,225,211,198,65,84,81,19,190,107,211,130,152,229,167,6,233,37,109,119,183,113,6,159,24,32,151,72,232,53,247,229,54,166,247,216,214,90,69,100,130,193,50,23,43,88,99,156,31,203,100,9,153,26,76,115,36,150,101,
254,197,88,88,183,236,68,243,46,192,153,99,178,88,133,47,18,25,197,61,149,154,88,185,110,187,55,157,158,193,26,231,247,211,187,148,122,153,255,184,147,68,217,19,41,219,73,60,126,227,62,193,26,79,5,183,138,20,230,173,119,154,87,221,240,117,219,255,124,199,193,252,235,239,183,180,231,156,29,69,126,143,167,93,26,216,63,122,49,194,59,164,34,91,102,97,170,81,170,76,139,180,83,92,241,99,188,182,245,185,113,127,237,85,78,228,4,98,159,196,75,215,237,169,224,117,148,86,156,215,55,214,211,29,192,178,242,236,86,25,112,53,131,166,118,52,28,131,248,140,4,87,1,127,24,214,130,55,255,49,83,174,134,193,43,111,192,124,75,35,203,212,126,166,116,197,243,60,12,46,87,123,200,126,43,255,237,187,25,10,90,246,53,20,174,236,25,30,187,65,204,236,7,170,95,4,222,43,133,139,121,107,212,225,134,208,157,101,186,91,115,142,81,135,75,62,238,80,144,181,201,143,226,174,210,232,62,67,205,18,78,113,29,186,18,75,76,93,97,217,185,124,115,41,0,62,
235,107,245,252,114,252,190,123,63,158,15,65,116,145,42,185,194,15,71,122,239,197,212,157,31,3,172,253,188,106,89,237,57,190,239,87,219,148,90,247,206,246,114,101,93,213,218,96,206,235,121,199,118,158,151,142,160,247,240,239,160,231,46,100,123,100,217,112,29,66,29,232,50,52,66,104,221,85,30,121,206,105,246,218,122,162,115,100,119,255,111,213,178,194,177,154,105,10,165,11,250,217,117,67,126,17,251,46,231,235,46,182,146,106,60,130,171,185,172,132,160,46,115,223,163,20,160,102,220,90,15,196,74,79,235,126,184,79,251,42,125,218,23,111,69,101,169,242,229,177,112,235,246,117,135,97,204,14,126,35,92,247,133,71,176,46,170,218,123,87,85,74,243,188,108,245,218,145,251,131,253,219,253,211,30,81,9,60,30,222,120,17,187,246,154,247,51,109,228,108,190,231,26,53,112,145,41,253,10,101,52,179,83,145,16,131,210,239,29,187,122,230,2,23,46,103,26,193,200,140,206,34,134,222,39,98,179,133,254,166,9,239,233,70,18,235,155,200,176,182,56,93,161,140,125,120,
195,155,37,0,232,29,91,254,167,134,197,224,125,253,84,148,56,111,39,6,67,252,205,118,36,160,198,147,235,181,254,189,10,192,58,52,84,214,145,111,13,196,66,2,220,133,115,101,251,53,192,5,110,62,78,179,199,40,89,113,214,101,220,89,148,119,33,49,75,36,23,216,219,55,98,59,222,162,183,50,175,185,109,241,186,100,133,20,47,221,255,185,158,236,152,233,254,123,203,226,243,167,12,179,76,27,47,119,40,187,71,45,143,118,113,114,6,151,80,206,238,190,174,253,234,33,76,116,212,158,235,155,218,11,94,122,239,144,215,33,7,195,22,24,211,36,97,188,20,37,188,69,142,56,196,123,233,20,132,131,4,232,5,117,119,244,108,114,143,146,101,57,30,250,88,85,17,187,107,33,245,15,215,60,54,4,185,61,210,74,182,118,244,70,113,13,48,94,53,249,107,99,120,44,108,243,181,159,132,195,215,26,3,12,35,164,115,161,237,45,252,150,115,236,157,168,151,247,190,105,76,14,20,248,111,139,139,205,250,12,103,83,33,13,54,160,169,197,118,65,152,154,195,150,161,0,
163,195,123,20,27,78,79,200,87,68,57,60,52,120,189,222,63,110,125,129,250,181,179,173,246,19,235,226,221,221,241,108,201,163,47,235,244,183,81,104,255,81,219,157,55,184,107,31,22,225,111,42,47,105,140,162,253,18,70,186,167,90,194,109,188,40,200,76,172,137,147,201,247,183,251,197,186,26,152,100,182,92,236,181,134,255,24,195,127,80,255,168,239,56,194,93,111,185,73,15,241,184,203,164,167,230,154,103,86,77,12,241,185,145,244,212,76,134,147,75,44,39,129,46,98,118,121,179,43,95,232,186,179,137,159,112,221,89,252,71,164,181,219,198,254,247,198,67,41,244,56,93,216,43,147,121,158,38,103,255,59,43,204,42,94,116,243,254,200,16,64,228,232,56,5,152,244,154,43,20,146,11,112,243,133,22,64,222,69,186,45,190,133,89,120,110,235,67,241,166,222,96,59,9,49,151,148,182,4,195,59,92,87,98,135,62,83,11,190,166,58,191,250,201,83,234,238,164,220,161,112,41,207,93,131,121,19,237,111,55,155,99,39,99,120,59,181,81,42,92,57,137,77,134,111,136,
199,225,253,15,57,156,41,80,147,247,176,128,154,123,120,14,254,74,38,118,245,25,234,46,191,29,85,117,150,33,117,15,210,142,114,175,116,136,64,174,238,31,161,107,144,254,20,134,166,35,143,116,217,196,199,121,119,165,88,106,207,75,72,172,115,194,49,101,81,251,175,61,195,108,123,132,144,60,246,37,244,116,20,196,58,176,46,249,147,248,123,203,254,2,184,147,71,237,224,233,205,88,158,202,218,141,211,253,229,234,236,178,156,16,243,197,251,29,225,219,123,56,92,46,60,110,33,71,44,112,92,3,81,238,31,65,74,227,42,207,135,32,117,231,174,59,236,207,146,149,164,62,121,131,77,141,207,74,123,251,214,101,53,209,122,27,108,221,237,175,44,109,158,182,123,132,85,114,60,158,12,12,249,15,73,140,118,148,162,100,30,239,213,149,49,185,228,123,160,221,155,116,64,117,90,247,17,244,166,224,118,3,156,68,225,72,239,44,15,73,12,30,221,246,193,31,157,142,187,137,227,43,102,191,58,76,37,35,40,197,194,145,143,43,63,161,10,139,211,77,35,26,59,15,250,38,
134,115,120,29,118,104,100,163,89,72,157,220,189,160,156,231,249,151,58,225,236,31,111,165,45,128,182,247,88,172,243,129,236,130,101,111,207,157,236,75,144,231,140,29,14,178,46,58,124,3,173,104,238,228,64,163,175,175,123,54,143,232,55,90,155,146,21,143,239,208,167,254,116,228,106,127,99,148,159,208,75,83,252,205,180,196,27,26,40,127,143,171,216,110,119,15,134,16,44,141,234,64,188,122,178,110,236,244,189,197,254,199,246,156,117,217,229,82,226,236,248,7,156,18,48,110,105,246,109,83,155,184,129,143,190,254,84,110,223,183,131,207,78,13,220,127,12,94,77,107,111,34,113,82,203,17,92,204,44,180,102,37,169,110,188,120,31,143,207,243,104,14,155,94,228,99,159,135,150,83,237,217,149,47,105,96,56,156,61,37,147,238,243,176,44,135,255,254,172,32,73,135,241,194,22,186,188,127,178,198,96,151,102,76,169,110,61,207,222,115,171,126,186,188,58,79,199,210,203,54,63,121,250,236,114,125,106,128,179,75,239,172,126,241,151,185,223,28,164,255,108,152,249,223,25,2,
82,215,223,236,148,37,132,104,50,215,194,120,185,19,187,246,166,77,125,220,148,160,185,112,108,122,190,9,15,115,27,199,9,66,56,110,202,65,212,221,239,247,139,220,245,2,57,134,33,0,7,82,51,204,231,249,230,72,87,44,227,171,93,197,69,135,222,25,30,206,105,40,90,186,87,141,173,246,192,88,87,251,33,112,95,53,149,198,184,110,229,216,237,54,48,173,117,55,197,163,193,43,216,113,234,143,178,252,191,124,70,251,155,187,204,126,212,193,58,31,41,166,212,121,141,222,200,211,179,11,147,47,73,149,48,4,55,233,67,122,83,69,169,84,54,87,110,82,176,244,71,156,113,103,141,71,79,101,127,223,150,94,129,145,222,209,152,221,254,83,175,217,165,251,159,175,84,7,71,239,141,148,147,245,254,13,182,134,152,88,52,227,62,88,118,234,57,45,220,155,152,244,25,23,141,187,202,101,255,197,8,75,124,220,56,85,45,179,255,94,228,156,204,201,143,23,118,197,176,160,140,136,82,40,28,147,178,221,236,223,253,178,71,187,187,131,249,247,33,106,109,24,165,211,233,45,
57,44,207,129,248,190,7,227,173,117,61,207,173,150,29,182,209,123,213,159,130,41,125,72,18,95,8,158,107,132,142,235,9,127,238,69,229,200,106,116,224,171,105,21,166,116,158,0,38,173,213,174,220,15,187,218,119,214,238,214,235,50,192,96,115,248,193,241,235,141,182,198,101,121,122,61,133,139,94,118,179,153,1,219,244,224,217,225,72,207,51,201,77,199,57,201,147,203,245,74,52,131,29,107,137,118,72,249,140,76,41,82,58,2,37,42,161,82,57,7,254,43,125,147,210,187,95,32,166,231,106,120,180,123,31,45,163,9,171,208,239,136,104,215,26,165,232,121,115,46,246,102,156,144,251,93,225,38,182,90,121,177,75,175,151,175,86,3,32,23,147,197,78,21,45,238,112,53,28,30,237,151,224,238,163,145,205,250,142,85,219,201,40,34,55,245,213,221,160,217,178,63,35,122,25,250,34,61,100,119,181,211,98,211,48,108,59,223,205,211,186,238,97,151,54,114,166,4,212,87,58,60,24,59,176,221,53,225,87,222,241,178,82,45,51,221,103,41,115,230,231,12,227,44,168,194,
63,87,119,53,255,143,180,231,123,64,221,177,55,33,127,53,179,86,48,7,151,23,130,227,178,130,239,173,64,206,49,238,90,29,121,150,211,53,63,39,45,120,40,3,230,45,183,97,159,50,221,50,106,6,114,180,151,173,139,193,193,134,58,112,160,22,134,64,56,216,118,51,226,128,246,153,84,84,234,48,14,63,200,123,21,98,124,246,119,251,113,200,136,163,70,12,162,126,234,135,145,215,17,81,199,167,209,104,187,191,216,108,54,75,51,121,102,166,156,78,175,141,40,227,241,96,200,74,83,203,175,98,131,2,137,84,214,34,210,126,239,34,145,241,100,58,145,216,105,54,225,60,38,179,244,174,84,2,37,194,63,191,93,48,19,80,40,254,71,132,65,248,222,123,105,52,202,80,34,17,235,155,138,131,128,189,85,65,127,245,181,139,3,42,15,239,120,93,147,105,185,133,175,211,134,180,197,213,7,183,51,186,188,125,177,134,222,127,248,67,189,33,241,39,127,119,217,204,84,93,71,250,229,124,221,110,40,78,68,95,65,93,61,64,86,163,176,121,217,218,171,190,113,217,254,137,
133,149,10,43,172,249,152,94,133,60,199,15,228,237,202,107,5,140,88,255,230,89,113,73,148,32,242,9,63,254,246,118,139,96,226,130,194,27,5,129,207,246,228,3,24,241,178,62,162,4,10,42,28,54,135,26,141,155,162,243,103,51,42,145,177,237,77,36,100,40,48,129,112,51,15,186,122,71,35,106,12,247,100,166,101,45,157,63,115,114,124,5,156,120,92,29,244,133,112,35,141,36,69,250,55,153,140,16,43,90,213,87,31,146,9,91,32,216,30,142,95,103,195,202,160,243,207,31,146,44,207,43,33,165,125,25,130,221,88,144,225,121,5,17,170,21,103,66,194,113,242,211,111,8,75,100,50,249,47,169,201,83,240,166,85,211,114,34,53,135,154,230,135,248,232,143,93,140,79,215,52,122,166,32,222,222,189,171,95,31,110,72,127,126,203,44,217,54,93,80,119,71,249,172,151,233,182,6,206,124,222,176,36,18,233,7,209,86,42,103,2,133,243,11,149,200,96,51,75,91,214,154,32,32,75,194,41,231,174,24,154,115,190,216,76,152,76,165,194,184,138,113,222,146,146,105,
131,60,37,126,119,5,77,195,254,207,4,226,175,197,163,48,30,44,65,67,98,137,101,222,199,45,51,160,146,61,24,32,136,201,139,106,117,177,150,101,216,35,209,80,88,254,160,125,78,82,43,200,41,195,183,62,14,233,103,137,112,81,11,134,103,10,0,50,146,81,184,117,42,144,140,24,239,104,179,156,163,10,219,231,31,74,247,215,101,111,169,125,61,47,94,64,206,94,149,34,50,96,222,122,108,77,79,253,171,116,254,139,217,134,120,159,230,249,14,101,57,161,216,246,208,158,207,236,135,172,94,173,74,223,100,55,104,221,220,52,11,36,69,40,184,68,182,24,190,80,74,5,34,166,66,87,81,168,5,121,19,179,196,11,95,249,39,26,237,101,56,81,1,182,94,36,141,154,148,121,65,36,114,26,35,92,136,207,250,248,183,79,48,211,233,207,223,63,241,68,130,251,33,54,149,152,255,180,65,111,113,135,160,30,150,121,146,49,52,65,79,88,38,51,91,131,128,147,149,73,255,18,22,228,80,141,124,41,21,144,184,49,139,17,59,102,118,204,111,120,221,125,48,127,116,144,
172,102,191,37,125,143,56,214,66,21,74,106,140,106,2,135,102,14,34,163,113,41,62,140,82,14,150,203,6,80,175,74,158,181,219,90,208,30,221,228,135,17,28,114,14,129,34,28,12,129,25,61,193,3,169,64,182,64,165,136,128,171,24,252,250,79,254,59,28,34,170,211,123,10,8,58,111,243,175,192,78,65,20,77,225,117,92,122,137,51,237,206,233,16,201,194,208,160,2,224,129,252,60,98,14,161,226,105,24,148,68,178,220,204,161,9,164,140,230,35,28,83,226,11,251,29,180,180,166,175,134,8,199,170,90,3,33,182,44,92,252,152,202,224,43,77,77,231,227,106,8,54,226,79,23,127,225,115,16,17,60,39,48,176,233,34,226,207,43,152,114,141,36,114,142,135,139,241,188,192,196,22,4,123,159,65,136,1,201,242,191,63,214,193,207,144,15,138,215,80,59,147,85,32,196,78,228,208,238,125,191,96,100,37,106,236,165,143,253,247,163,36,103,171,30,34,244,158,40,3,45,112,211,50,23,141,203,37,158,243,66,34,100,223,249,25,109,188,43,26,43,180,176,18,73,46,
92,96,179,189,177,158,121,104,189,174,97,133,117,50,199,237,168,174,106,246,241,193,175,23,84,221,69,4,219,197,246,143,79,112,208,81,70,155,197,104,156,181,54,202,75,223,152,182,225,182,110,8,52,202,134,27,216,124,184,222,223,197,170,248,187,1,174,208,120,132,171,56,74,120,176,243,242,230,21,87,104,26,20,108,71,183,100,101,42,198,144,255,86,152,120,189,84,33,56,252,167,163,123,227,115,135,160,112,92,178,31,207,225,71,113,228,23,97,48,172,63,254,87,220,183,56,37,154,158,249,254,43,212,158,179,169,153,173,236,236,76,39,217,205,73,106,171,50,39,201,206,78,85,178,73,101,178,151,57,169,206,180,211,99,50,214,246,180,179,106,111,50,123,169,2,68,185,200,77,64,20,185,9,136,32,32,23,185,200,85,145,139,136,23,16,1,65,110,10,138,32,200,77,185,131,112,62,80,187,237,153,158,30,123,50,167,78,87,87,127,242,125,207,251,188,207,253,249,189,239,247,98,99,212,109,243,241,113,126,217,133,133,28,69,56,78,13,95,151,112,206,229,87,252,136,61,
18,157,191,172,222,90,93,139,105,24,50,122,136,203,157,107,54,77,173,233,18,80,188,146,140,224,194,165,147,168,1,122,19,184,211,156,10,250,53,140,24,72,180,201,72,117,130,165,229,1,43,185,163,134,13,235,77,24,37,56,52,77,195,150,17,89,250,25,186,33,195,90,51,110,8,154,232,6,110,46,122,110,49,11,14,38,195,179,244,75,194,206,81,100,100,199,110,157,157,22,179,98,132,235,126,226,115,250,114,62,201,129,174,156,201,67,23,59,191,185,99,89,112,217,16,140,101,151,168,210,86,120,111,111,78,198,212,179,244,244,19,154,203,128,68,46,186,70,249,218,83,165,131,18,46,237,210,228,155,0,106,0,218,209,10,32,77,67,162,203,106,115,135,205,109,234,146,121,102,156,238,224,5,105,170,76,108,250,34,141,1,144,234,212,25,137,6,0,243,45,255,249,140,152,210,54,210,154,124,173,21,101,72,196,53,72,66,195,121,180,210,152,17,109,140,79,88,121,164,189,54,99,185,120,186,171,30,206,227,89,230,81,204,244,178,98,7,183,114,153,201,29,159,101,224,88,
186,63,32,133,51,155,248,99,162,83,188,236,138,80,241,12,241,8,146,232,38,179,3,124,46,146,136,32,90,121,22,148,44,83,245,206,111,140,31,119,152,1,188,84,213,66,140,204,154,57,131,73,11,49,139,40,82,203,197,39,130,170,204,152,58,185,4,40,20,203,105,243,60,23,180,192,78,206,242,252,128,240,243,101,6,157,169,229,86,47,138,151,203,44,24,111,83,86,65,211,86,99,185,101,59,95,61,229,76,202,157,180,241,25,11,158,135,114,64,142,114,248,80,69,183,127,102,208,97,131,104,191,14,111,245,64,73,116,66,173,126,134,39,154,220,220,85,118,30,42,57,181,196,71,61,14,201,169,214,168,181,110,176,73,136,93,86,17,181,107,177,210,93,243,227,60,219,40,107,186,59,59,207,213,236,206,238,215,205,119,103,103,106,179,220,243,162,31,88,64,20,204,108,183,219,138,48,24,19,199,8,82,195,25,91,95,233,76,172,41,207,69,208,150,11,3,129,79,4,86,203,118,18,91,48,130,114,32,245,6,21,194,22,61,37,204,184,212,16,84,17,69,232,24,98,140,
171,238,34,25,90,113,227,248,84,182,138,136,56,59,26,218,73,49,35,173,179,178,16,27,58,235,72,27,207,17,237,142,142,158,102,77,214,136,220,130,52,224,121,115,40,60,192,128,206,51,202,42,177,152,219,31,137,64,18,97,71,178,41,18,10,215,29,142,56,52,196,155,117,0,158,138,243,186,203,191,60,172,184,161,237,152,208,7,104,65,90,178,147,0,145,186,18,109,117,152,2,235,13,148,1,217,149,39,221,93,149,201,42,186,170,167,107,0,53,128,153,176,6,158,59,126,22,182,205,194,99,14,235,57,179,67,38,56,116,174,174,202,8,206,18,99,253,220,26,217,60,191,56,1,100,13,18,184,8,14,16,166,192,130,16,179,3,96,77,110,152,168,27,14,53,15,138,174,226,238,48,42,56,187,113,75,30,70,17,128,147,12,11,50,103,65,178,137,128,133,19,233,89,127,163,153,34,193,99,65,247,2,121,51,191,121,34,59,178,49,90,213,137,232,190,252,100,36,68,61,4,86,59,116,50,133,96,97,175,157,25,12,225,41,167,191,113,234,134,194,98,2,139,203,222,193,
133,28,242,132,247,56,142,28,215,55,38,217,157,84,129,160,142,156,206,173,45,244,101,75,95,79,186,56,222,38,51,189,233,112,236,69,38,144,192,178,27,73,224,150,55,72,177,89,43,139,215,106,215,226,147,151,245,146,42,237,158,219,6,243,120,121,46,151,149,200,69,12,211,103,178,180,79,76,215,137,203,158,200,4,48,100,161,243,22,145,15,81,175,3,186,156,133,43,116,18,176,44,113,210,119,67,129,122,93,40,209,19,154,251,251,197,67,0,120,47,97,66,231,99,139,128,51,86,177,152,29,131,162,172,76,53,107,231,42,162,31,191,20,155,210,143,43,136,243,236,249,83,165,146,108,21,238,104,198,201,198,29,188,140,89,139,200,214,135,25,24,37,212,45,64,67,227,171,10,167,218,4,29,69,65,8,20,49,143,6,113,144,167,26,190,24,149,134,24,43,206,144,115,205,92,92,51,166,169,233,125,149,189,75,235,113,33,87,219,19,230,240,86,146,215,142,96,163,124,35,162,141,11,182,141,234,179,80,121,114,209,190,188,60,103,116,71,147,102,184,2,231,75,28,14,19,
121,104,167,96,140,48,59,49,177,55,49,81,141,42,3,9,184,131,190,89,222,245,198,177,107,99,176,233,200,254,62,107,97,142,188,41,149,249,76,123,123,10,222,188,8,182,227,129,187,167,26,88,161,76,96,34,218,23,1,24,51,179,163,156,158,218,154,8,162,60,254,178,91,97,1,7,194,11,243,176,75,92,78,190,63,105,94,24,63,222,157,47,186,192,138,37,49,100,30,185,157,74,25,69,166,69,153,98,126,94,84,108,50,60,228,192,177,237,252,156,40,220,154,29,57,76,150,129,150,71,36,144,72,188,169,29,105,58,103,30,214,175,26,160,11,155,156,164,168,169,65,207,72,57,158,145,188,121,202,67,114,1,166,75,78,218,49,86,194,209,244,204,120,90,1,49,213,82,41,249,236,154,154,105,156,66,100,203,52,136,101,76,98,179,237,240,101,132,37,38,99,57,31,53,129,197,78,91,76,1,68,4,225,156,44,218,103,139,24,85,109,49,89,62,219,191,160,55,171,151,37,31,179,185,157,95,85,17,229,9,130,175,93,89,193,209,29,248,236,44,197,83,191,72,173,59,
247,229,104,53,101,213,150,151,144,236,16,89,48,13,94,223,221,5,23,184,220,12,119,145,64,11,225,102,236,243,72,235,46,0,145,48,139,133,163,54,129,224,0,66,50,106,3,176,128,199,126,36,156,26,183,237,64,71,136,69,229,234,248,134,126,59,110,97,76,79,143,195,177,179,92,89,236,8,38,45,109,91,23,189,150,179,109,49,231,244,116,127,81,166,139,169,98,245,226,169,21,102,141,171,131,9,13,101,139,114,54,49,50,174,176,162,4,4,58,193,227,11,78,45,202,41,227,80,251,30,141,204,57,17,137,104,248,17,197,48,107,61,59,181,59,73,164,103,56,124,229,17,209,134,53,83,77,231,59,144,220,76,100,91,32,32,137,119,233,68,34,115,212,115,17,197,58,183,55,54,189,172,89,227,246,214,220,136,103,243,36,62,49,202,154,168,201,107,37,4,201,209,249,30,225,38,217,233,210,39,32,137,73,22,111,118,158,95,63,156,213,131,73,100,168,128,4,159,149,170,20,231,148,241,117,138,214,152,218,53,134,208,187,211,91,203,53,213,177,91,28,214,141,27,55,165,
136,45,17,202,186,51,60,33,182,229,1,108,51,78,53,74,143,225,44,43,10,181,218,94,152,83,107,118,212,114,8,108,242,168,118,116,62,1,199,210,44,37,217,196,5,170,32,240,194,142,39,161,147,156,217,213,184,204,108,61,134,53,230,157,244,243,9,168,105,102,142,15,22,240,165,44,36,106,42,76,132,64,161,188,185,170,177,118,114,130,21,27,176,84,108,76,32,217,136,195,88,35,20,171,22,109,71,238,206,241,69,139,246,181,18,24,178,234,69,89,69,51,78,62,152,63,26,93,39,55,77,59,244,75,203,134,120,211,186,24,223,116,89,92,1,172,148,70,1,128,144,209,194,135,109,219,46,9,16,22,94,161,110,197,224,234,213,11,18,99,150,51,63,11,128,189,92,50,126,140,36,144,1,64,35,128,169,81,188,237,105,244,28,99,93,147,244,236,11,20,114,226,170,37,235,67,140,193,32,219,37,188,125,181,129,101,65,215,34,172,100,51,14,33,208,182,14,41,173,93,227,24,212,140,100,219,165,89,6,222,98,153,157,220,92,219,92,119,83,76,245,58,11,134,36,42,
202,139,117,107,41,165,34,134,68,52,207,150,29,203,62,55,138,162,123,90,104,141,175,37,96,154,135,134,150,0,238,147,194,226,254,236,156,192,235,106,91,69,58,133,28,106,78,137,116,5,117,42,46,172,39,83,29,40,66,61,6,71,9,54,98,84,123,164,200,69,145,6,138,19,17,204,64,70,56,16,130,34,184,26,143,33,108,85,127,209,0,158,201,146,70,38,125,102,217,254,56,70,166,193,224,96,231,59,184,28,132,197,65,168,194,50,198,142,21,64,55,73,168,218,167,189,172,139,108,196,133,116,107,154,80,101,30,156,87,143,169,75,123,14,249,20,77,25,117,162,213,172,82,190,114,94,28,197,51,20,203,181,243,99,12,29,129,144,173,57,206,87,98,242,197,208,154,100,141,55,91,103,215,173,53,194,58,15,15,222,181,39,220,235,202,80,212,44,177,39,104,216,241,208,17,162,92,4,34,65,134,165,3,203,240,97,204,20,150,185,44,2,0,139,86,31,182,30,69,74,14,43,27,13,5,90,55,102,183,225,11,243,48,13,220,174,19,232,171,90,212,101,163,81,105,87,
163,240,9,184,53,16,8,156,237,4,214,2,130,14,204,161,231,13,222,201,152,131,162,160,40,182,92,39,52,77,105,77,48,222,70,242,45,174,181,211,2,22,42,48,197,52,29,48,101,181,198,45,26,141,190,162,91,56,151,168,43,91,91,52,71,9,186,17,187,94,231,159,157,10,125,98,180,47,95,196,45,215,215,233,240,139,243,77,9,220,185,113,72,236,108,131,17,50,35,132,139,17,17,146,36,229,29,175,40,73,155,60,62,117,146,81,76,49,44,243,78,54,59,137,54,59,15,182,181,165,52,128,84,180,208,74,14,171,99,44,101,37,180,122,68,31,214,149,11,235,52,249,201,22,7,231,89,70,45,70,205,163,153,173,48,242,133,253,176,1,244,67,43,151,39,79,82,243,74,79,122,191,88,144,78,134,139,46,30,19,220,154,46,248,128,94,23,104,40,183,241,254,198,40,150,47,171,16,121,35,136,201,78,95,243,242,86,22,86,16,200,68,221,82,244,144,39,38,128,198,97,155,153,189,194,79,75,147,12,49,7,150,47,98,237,52,191,142,175,229,78,21,58,0,131,196,
133,237,137,240,14,23,208,246,79,61,75,64,255,133,42,174,224,15,175,122,5,127,252,238,43,248,195,12,105,175,0,8,145,39,71,57,100,149,75,148,115,30,15,81,187,138,53,20,25,192,105,250,96,22,73,231,114,39,40,148,131,125,90,154,100,153,103,31,0,204,59,71,109,4,0,22,235,64,49,129,149,55,235,43,152,149,141,38,161,184,33,87,20,96,89,35,65,45,203,184,0,156,208,53,184,141,0,76,14,204,61,218,69,63,208,194,74,23,253,100,181,27,93,244,195,61,215,117,209,207,230,196,150,222,138,240,55,82,130,22,0,67,220,205,74,48,96,117,205,219,34,99,227,169,170,216,70,56,148,85,56,231,104,180,43,150,131,30,118,189,120,124,186,10,96,28,103,98,132,176,11,184,107,127,33,150,108,144,44,200,142,169,28,221,125,45,2,15,7,52,111,162,222,64,158,187,130,37,6,235,149,27,172,165,43,55,84,233,87,176,132,133,214,135,249,254,70,189,134,209,76,117,12,14,203,34,0,46,110,145,127,170,81,86,1,46,219,92,189,218,30,58,62,234,128,42,
231,164,69,130,52,140,177,221,132,156,104,1,227,203,111,238,206,47,110,156,133,1,32,111,131,153,166,240,29,160,100,180,242,106,117,17,222,132,113,3,64,166,65,224,22,59,48,14,128,40,58,49,177,43,25,172,3,106,0,63,103,5,213,125,57,212,26,25,23,162,125,132,237,121,67,160,16,35,181,43,171,108,122,210,82,178,111,10,45,23,192,170,192,30,179,70,38,228,106,223,60,210,109,153,182,118,128,36,156,85,213,104,106,249,195,213,49,24,121,1,117,114,196,210,123,194,98,188,216,49,81,183,148,118,207,12,142,18,234,132,224,38,151,80,59,82,112,80,132,101,161,215,9,76,94,215,16,225,4,38,193,108,71,46,13,21,21,155,205,206,100,70,12,249,43,224,20,65,94,1,39,167,246,10,56,193,1,239,122,215,157,206,2,124,85,152,56,210,166,87,196,186,122,74,168,108,71,217,85,173,96,92,231,194,28,74,89,151,171,35,75,75,212,133,81,33,146,47,111,46,44,112,22,23,71,19,58,162,157,48,189,65,228,97,157,71,146,232,70,139,50,171,141,198,71,70,
172,235,142,153,209,49,215,58,159,210,89,223,132,66,205,150,182,179,190,161,80,52,56,90,90,129,114,91,172,74,215,105,201,33,201,204,24,157,137,41,160,213,226,244,12,3,201,186,184,184,88,169,42,195,89,95,213,126,9,148,233,41,30,167,77,63,41,95,80,171,62,190,157,236,152,243,230,49,43,80,41,221,180,14,36,0,49,53,142,215,134,77,19,49,151,89,105,217,82,103,235,14,94,162,146,13,107,219,53,246,186,58,163,10,106,70,49,212,57,7,228,0,194,92,190,12,236,23,181,110,58,97,118,191,105,116,140,176,173,99,1,60,2,54,10,133,24,49,100,145,31,183,19,42,219,185,121,65,105,110,155,74,198,95,212,27,105,137,112,172,81,206,32,169,210,168,169,184,18,209,214,226,19,33,95,59,120,185,54,141,45,48,219,77,3,47,119,176,188,57,41,9,0,139,168,5,87,64,129,203,103,117,57,236,148,116,25,204,45,44,44,69,22,213,129,77,152,190,18,105,156,25,26,101,203,1,103,100,215,2,230,107,15,90,13,97,38,113,12,158,90,176,50,198,210,123,
11,212,197,184,124,195,237,92,185,116,232,184,57,224,230,24,127,117,68,158,112,50,22,143,17,152,132,214,135,0,236,227,114,33,229,1,89,204,74,7,176,216,116,120,165,230,183,172,59,225,200,116,19,123,156,242,204,111,139,54,84,204,45,234,146,132,60,210,62,170,174,165,188,194,77,248,230,38,102,111,124,98,77,131,99,100,20,48,254,12,16,125,185,227,169,5,246,206,34,129,64,80,101,195,173,148,2,181,190,190,177,17,12,168,11,28,151,128,205,130,242,173,30,18,157,33,174,73,151,92,4,181,241,120,221,201,84,23,216,107,82,167,69,83,74,170,188,235,62,31,117,129,189,72,14,137,195,211,84,106,90,225,70,241,165,205,106,158,115,200,181,140,184,138,89,146,35,10,240,83,23,147,241,29,30,179,25,83,160,162,235,235,91,91,205,70,102,120,169,35,134,101,158,9,212,205,34,226,104,107,113,27,35,14,107,209,84,216,146,131,62,236,180,77,44,237,85,145,124,30,22,136,223,10,98,119,213,234,82,217,25,98,201,186,187,52,14,231,107,13,177,41,119,192,125,196,
108,87,109,237,74,235,210,171,201,23,99,225,88,12,195,68,156,167,198,0,26,56,127,34,180,76,162,31,159,214,161,250,16,48,158,237,230,96,253,50,165,114,79,114,112,144,52,181,100,152,168,157,32,230,166,172,120,124,28,57,188,73,154,119,11,132,194,2,32,14,229,34,225,4,74,253,198,98,192,234,89,174,54,11,54,12,25,127,54,97,113,105,188,163,46,181,128,125,212,110,93,154,206,245,188,78,135,163,106,115,203,167,10,20,127,6,223,45,179,54,90,242,40,53,218,249,159,106,112,249,130,157,200,195,81,207,84,232,99,122,37,226,138,71,34,8,151,193,24,93,50,195,149,7,138,4,76,103,195,210,133,243,243,50,63,48,135,95,153,158,220,118,17,216,80,190,86,14,235,56,97,17,133,194,163,118,119,119,209,123,227,36,202,28,209,126,201,16,95,58,241,220,206,58,131,205,193,202,148,184,81,180,159,2,93,130,107,114,126,179,116,53,185,0,3,130,211,56,3,68,233,179,171,194,56,99,153,220,19,135,225,13,96,81,60,199,229,22,41,11,0,84,210,235,121,122,
175,208,231,156,86,152,145,23,238,192,206,142,116,185,243,235,226,205,240,28,46,160,176,71,243,83,11,60,248,78,72,221,172,74,177,27,167,22,36,49,163,26,163,186,2,48,91,185,236,46,163,41,242,72,245,104,9,3,36,29,71,153,60,129,44,184,55,37,6,5,251,108,127,81,37,84,243,171,198,32,138,88,175,172,148,218,25,5,62,2,217,108,8,24,161,202,60,143,145,95,12,0,53,254,108,63,35,7,242,96,77,184,227,50,141,76,134,102,150,185,181,16,86,102,72,9,132,211,208,185,189,147,246,5,50,2,132,243,136,35,45,25,54,236,37,89,44,112,187,140,102,44,212,1,67,163,214,210,40,12,93,87,214,240,75,217,131,229,112,82,101,133,128,173,163,52,48,188,121,132,91,81,5,2,80,4,32,215,218,2,225,210,145,85,176,119,170,190,149,149,22,119,207,30,221,17,10,153,173,250,124,117,193,179,48,69,12,168,252,6,195,248,201,90,102,233,0,171,199,197,154,135,171,195,234,102,120,165,221,148,203,8,116,83,180,89,45,224,86,92,77,41,233,188,85,54,
55,56,184,229,105,38,211,153,168,58,232,58,86,213,24,135,12,175,109,160,144,54,48,163,33,146,201,92,251,13,139,38,19,214,42,33,250,58,155,205,231,243,109,53,32,127,2,10,205,209,54,86,135,222,35,64,109,116,28,211,166,100,104,75,156,212,180,50,189,183,225,143,170,243,81,187,29,233,218,215,154,14,125,226,48,62,87,63,104,183,124,246,104,33,79,199,216,9,39,206,10,115,101,23,167,62,166,78,231,150,145,251,212,165,92,30,208,105,102,185,118,130,167,34,116,245,34,63,184,106,9,75,201,219,115,68,137,76,0,149,29,174,66,53,37,11,87,98,40,7,236,150,218,230,52,49,168,50,158,81,150,155,234,0,203,8,118,58,215,215,141,142,116,231,255,136,37,7,85,179,153,177,224,162,105,102,138,105,212,108,172,175,239,144,25,141,74,246,210,56,140,51,77,241,109,195,27,60,204,204,133,19,7,134,113,114,226,51,32,47,141,182,97,207,110,141,193,227,93,36,150,28,103,185,204,82,248,196,173,32,227,15,25,98,139,43,24,93,8,170,72,241,125,76,174,147,
55,184,163,114,40,57,193,218,225,237,58,153,96,170,137,13,175,92,28,43,114,7,45,111,210,119,224,77,20,147,59,99,81,74,130,33,219,112,122,192,107,88,218,188,226,188,150,106,250,119,13,149,72,88,40,2,162,112,228,0,178,78,4,150,30,242,225,61,135,99,214,78,204,170,49,209,81,78,209,50,140,136,180,234,167,60,204,158,107,11,108,204,3,30,69,75,129,52,148,232,243,38,12,207,65,7,210,128,172,93,2,130,111,95,158,168,26,206,133,22,57,143,103,230,241,168,11,179,208,178,59,27,22,38,137,136,253,225,160,42,35,15,88,17,229,102,121,63,177,51,183,133,207,237,123,189,35,86,172,223,204,220,41,69,26,57,238,252,197,40,154,98,10,154,50,211,242,132,195,88,219,108,154,153,45,105,124,3,65,42,97,19,21,230,168,30,106,176,131,229,75,197,240,233,174,35,173,243,51,148,142,212,146,214,178,77,141,156,56,104,72,108,221,167,17,135,1,11,102,206,109,26,52,153,56,189,20,78,21,137,139,37,88,130,113,212,178,16,157,250,74,72,113,17,84,157,
69,203,199,6,0,195,150,217,99,226,64,64,95,45,228,90,149,170,14,145,245,10,188,41,155,87,136,33,79,80,142,218,107,152,180,95,198,113,77,3,24,212,8,134,168,49,64,177,113,140,48,213,199,249,25,102,198,51,86,39,28,132,70,119,42,181,180,61,207,115,208,166,104,69,36,88,54,114,156,87,19,230,193,112,152,147,50,38,116,59,130,92,44,216,207,152,199,234,14,28,182,226,188,110,85,156,91,174,173,37,85,11,44,8,145,207,216,156,69,97,26,225,74,56,174,155,97,228,1,92,204,52,66,215,46,230,113,126,205,170,201,140,51,192,50,149,133,208,133,19,104,105,123,181,133,192,136,196,18,147,35,157,203,105,133,120,193,67,243,120,20,136,226,132,64,124,52,62,49,81,178,78,108,249,138,233,61,140,182,134,104,26,193,232,105,37,138,121,78,32,18,247,99,251,176,253,125,28,195,80,77,87,242,156,98,145,20,57,89,245,114,71,243,1,168,35,29,1,26,112,85,103,9,65,240,235,110,222,54,117,105,173,102,247,128,169,27,188,144,14,51,37,51,37,197,44,
136,31,128,196,92,217,100,104,177,81,62,155,44,31,111,209,52,23,250,11,156,67,87,220,221,44,72,150,182,130,121,185,124,63,84,140,68,196,162,114,202,187,55,182,100,28,77,33,225,188,108,88,119,80,242,122,115,41,26,208,37,113,23,105,153,197,12,199,102,2,62,165,208,37,48,65,185,203,36,43,161,48,61,61,109,40,87,233,206,26,164,16,153,246,134,29,155,146,21,92,115,185,145,149,7,60,104,131,229,244,116,108,82,156,63,139,132,99,135,91,20,96,25,153,200,113,39,35,16,147,87,181,225,84,224,205,86,247,164,36,130,158,159,219,19,122,147,44,23,20,146,33,192,124,94,47,229,124,97,150,81,206,69,194,235,108,180,131,174,141,43,66,218,5,233,170,150,134,50,210,20,73,188,214,154,106,210,84,226,147,180,100,165,168,218,32,168,206,207,207,189,158,202,36,141,13,196,139,42,183,220,16,107,19,243,228,96,54,90,150,202,156,142,68,72,115,81,57,219,246,67,34,146,131,149,72,116,148,6,111,212,109,216,22,61,177,69,225,56,162,204,38,100,14,130,159,
69,30,243,108,151,118,82,104,126,59,92,75,208,71,55,80,124,4,0,134,41,90,252,230,1,204,11,158,163,79,75,38,150,242,234,145,172,76,210,174,251,86,166,23,216,216,197,41,158,188,112,25,90,142,94,214,75,9,26,176,44,215,194,203,200,249,100,52,74,229,218,169,149,3,84,123,165,238,151,231,140,17,165,109,63,168,56,37,18,180,196,203,180,153,111,31,118,113,70,218,110,62,76,218,208,138,78,183,166,100,190,13,246,254,217,137,94,100,60,22,65,215,226,71,133,97,165,47,34,223,113,90,42,249,246,89,238,100,139,66,111,250,18,80,40,212,115,134,41,57,194,149,131,237,194,197,212,236,72,8,59,30,24,171,150,253,99,146,229,246,122,162,209,210,104,52,142,133,212,74,220,208,110,237,52,179,155,162,49,110,236,40,107,78,178,2,73,143,97,222,13,192,44,175,198,151,9,46,249,130,120,230,206,148,58,127,168,43,103,106,64,82,35,78,221,60,0,72,174,149,25,134,197,89,117,122,79,148,29,19,98,113,85,160,97,229,91,37,70,243,220,78,227,95,96,156,
43,204,196,133,178,165,105,86,85,20,51,102,9,25,81,159,238,206,242,151,166,2,46,132,116,41,176,86,192,49,0,196,122,104,115,175,143,115,106,212,90,137,53,140,91,62,28,230,206,92,228,70,38,35,234,230,57,115,83,86,5,58,197,244,252,130,112,113,39,16,169,167,211,11,107,66,4,228,98,213,161,195,205,45,167,60,30,62,201,17,49,212,163,150,230,121,99,162,196,135,69,245,54,70,13,192,76,154,249,45,193,146,217,41,30,51,20,119,249,202,128,85,0,147,78,249,184,147,161,61,232,188,211,80,9,5,51,170,140,44,89,214,97,12,123,19,8,96,229,41,6,160,228,33,123,229,178,136,115,119,118,165,89,132,166,102,109,76,96,78,48,179,109,236,9,2,19,164,138,228,9,172,214,13,163,213,252,196,45,212,246,176,109,52,113,228,196,229,91,173,244,101,250,224,200,82,202,76,6,39,19,167,204,97,198,56,15,0,135,198,164,117,153,213,1,138,163,77,91,117,51,120,145,58,140,108,235,107,64,252,75,136,23,21,160,136,207,206,205,17,166,23,248,130,153,212,
1,185,125,89,234,40,116,84,68,140,226,24,77,106,227,160,57,154,184,16,235,232,217,221,57,67,140,152,211,25,74,123,9,7,157,69,87,2,13,54,228,160,43,53,167,238,57,70,110,113,222,163,46,196,96,1,167,149,111,93,193,94,86,57,186,56,108,68,152,227,175,130,137,60,135,34,176,57,51,14,224,97,242,206,153,128,35,60,43,235,116,134,12,60,160,136,94,156,31,66,33,144,107,128,241,205,94,77,187,96,178,104,127,177,89,219,57,167,87,170,251,241,73,245,60,113,63,183,47,231,141,132,78,224,88,250,174,10,174,203,155,198,74,36,35,184,75,173,63,12,30,44,95,230,119,142,108,243,216,121,205,66,64,153,106,7,85,11,88,184,186,229,171,167,117,197,83,194,229,82,185,243,139,176,189,190,185,131,5,14,24,128,69,158,25,124,12,194,115,50,205,163,188,68,34,177,20,198,178,14,79,125,64,161,228,21,131,156,97,35,195,49,211,229,59,188,131,7,48,81,254,208,88,77,215,249,46,206,201,246,116,163,4,20,76,202,246,73,114,66,184,39,10,105,8,203,
25,60,149,218,240,184,15,157,94,143,71,95,176,68,136,254,179,197,77,241,166,219,110,95,93,110,120,27,237,114,70,6,89,92,154,245,205,206,82,179,90,100,205,185,82,247,74,34,205,130,218,202,93,241,187,233,142,58,47,200,106,156,156,150,151,50,65,111,218,238,70,90,58,152,45,201,47,83,207,246,137,249,232,137,223,93,158,240,69,230,253,169,21,0,148,141,239,47,198,173,155,171,195,163,11,97,173,87,1,148,61,64,81,157,9,192,15,23,76,127,66,15,148,77,137,250,16,10,85,113,209,244,224,242,102,113,199,60,54,41,97,128,245,181,69,181,22,121,182,236,149,242,218,5,92,187,173,175,198,198,18,78,102,102,5,0,15,64,144,46,71,219,41,229,241,41,204,4,76,59,163,128,82,42,20,74,254,128,104,159,53,28,23,179,161,154,179,173,108,201,143,86,90,85,206,248,30,67,95,197,47,180,42,237,203,138,191,153,213,225,114,158,49,255,176,58,84,14,106,116,240,114,54,60,50,230,69,195,171,245,24,56,198,222,139,199,227,243,70,13,151,203,77,217,143,145,
167,176,46,231,34,212,134,165,65,204,166,181,196,4,237,208,233,219,147,50,86,90,180,49,158,83,201,60,25,235,32,47,24,217,73,83,187,130,193,233,134,67,147,64,51,12,142,122,249,108,95,126,178,181,111,60,200,199,225,16,70,50,18,14,99,188,230,81,62,102,140,135,212,211,141,136,142,127,214,102,166,215,157,43,181,243,217,96,179,125,202,99,78,33,229,214,209,35,27,54,42,155,159,95,159,103,177,88,86,190,180,69,109,30,250,27,60,230,98,107,67,149,4,128,154,119,43,76,152,45,5,206,97,197,142,88,248,105,29,196,111,184,220,162,200,225,64,205,154,169,213,106,120,22,110,60,27,106,108,136,55,54,128,187,206,21,100,187,89,7,162,1,191,14,68,195,217,161,220,64,55,70,38,104,163,117,109,40,56,118,94,14,230,224,88,61,172,172,59,211,104,178,154,106,102,249,178,65,34,208,206,187,156,105,248,105,136,66,161,240,155,83,112,102,11,145,85,138,3,133,74,32,45,201,28,225,121,188,217,89,176,179,0,76,217,204,69,12,155,27,12,27,122,170,208,164,
84,11,78,60,239,40,71,0,220,90,210,132,206,90,133,248,198,68,149,101,5,199,92,170,25,39,15,143,0,114,131,85,152,146,142,30,130,207,97,122,161,176,145,70,9,197,73,207,188,158,24,180,102,99,20,229,73,163,9,169,199,119,53,36,102,171,10,25,147,214,107,42,117,53,127,8,78,140,159,82,40,20,198,140,83,102,99,65,85,65,117,129,197,9,224,106,90,136,177,10,216,15,179,230,226,168,109,60,39,3,173,59,143,231,151,14,154,23,153,64,84,41,90,89,89,105,239,155,18,204,5,177,248,100,12,60,50,50,226,23,9,4,1,148,6,113,152,109,88,33,168,137,49,178,232,48,91,115,224,23,203,12,26,77,164,207,69,244,219,84,21,116,100,140,213,17,19,6,184,219,25,146,112,130,245,76,78,123,58,119,99,103,53,9,134,214,90,199,200,242,216,201,214,148,230,124,118,109,197,114,14,88,219,15,14,82,149,192,138,1,80,26,187,61,143,7,8,103,0,59,43,252,75,217,58,157,86,143,89,144,156,150,13,183,151,47,66,161,77,232,25,120,91,90,152,158,
85,166,167,221,44,128,229,245,242,230,115,215,195,216,76,139,201,41,151,215,239,223,255,239,255,254,214,253,223,12,190,249,195,63,255,115,208,211,31,126,115,15,244,79,189,3,131,61,67,125,143,122,65,247,126,2,26,124,216,51,52,212,59,0,250,253,64,207,167,31,131,30,246,63,30,26,232,127,244,6,232,221,33,208,71,253,189,131,160,199,253,67,160,129,222,127,123,210,55,208,11,122,231,31,223,5,13,246,131,250,134,64,127,232,31,248,215,65,80,223,99,128,254,147,79,122,30,127,4,122,212,247,184,23,244,233,64,63,192,229,147,193,55,238,95,205,118,239,115,243,190,11,208,247,12,246,130,250,127,215,101,5,240,121,216,243,24,244,97,47,232,201,96,239,71,160,251,191,249,237,80,255,167,125,15,31,252,224,193,95,61,248,171,247,174,196,250,241,208,192,163,7,127,53,56,240,240,249,59,255,179,247,241,131,191,124,50,248,224,127,220,190,249,131,7,63,120,248,168,103,112,240,183,247,64,183,110,223,7,38,6,13,125,220,51,4,234,27,4,125,216,211,153,169,255,241,
13,193,79,6,122,254,112,37,237,91,159,55,210,45,10,208,71,61,67,61,157,225,125,143,31,62,122,242,17,192,1,208,252,133,226,118,168,175,197,253,9,48,230,189,254,39,3,15,123,111,164,5,228,122,118,179,35,214,141,157,174,103,126,235,135,157,11,232,63,255,243,173,55,129,63,127,247,218,91,247,190,255,250,59,221,127,127,244,22,232,70,176,191,184,7,250,113,255,227,193,161,129,39,15,135,250,7,64,63,233,29,234,233,123,116,227,233,191,238,114,24,252,222,15,127,112,91,30,192,46,183,63,190,246,224,245,31,0,124,110,43,120,255,181,215,59,227,190,211,153,225,221,199,125,67,125,61,143,250,254,3,112,254,208,199,189,160,174,73,223,120,38,31,32,199,221,196,252,229,147,15,31,245,61,4,253,188,247,147,15,129,240,250,89,223,224,208,87,138,249,207,31,247,62,254,63,253,253,159,188,247,16,136,193,71,128,148,31,252,246,199,61,143,30,125,216,243,240,95,127,11,186,249,233,254,7,128,240,207,83,222,127,42,253,13,17,16,89,143,30,1,142,250,3,64,215,
85,3,8,177,129,171,136,238,1,253,7,48,16,4,24,175,7,8,254,206,240,219,218,189,84,182,247,122,135,126,213,243,248,247,189,95,37,217,13,221,87,200,53,216,255,73,55,25,186,102,190,74,60,208,64,103,220,96,39,216,30,126,220,249,241,163,59,9,7,76,248,30,224,177,7,175,117,255,125,189,43,223,45,146,223,62,231,236,223,252,232,181,55,223,120,243,141,123,223,251,222,235,160,7,223,234,10,125,61,254,254,107,157,113,192,15,192,128,206,71,224,209,143,190,3,26,252,143,251,207,194,3,160,28,124,78,224,65,128,16,244,135,190,161,143,65,191,249,243,191,188,38,127,227,185,140,250,82,169,223,185,145,250,193,235,15,59,49,13,136,125,75,180,127,239,27,24,122,210,243,232,62,232,11,50,129,222,185,17,247,245,15,110,143,232,50,121,102,243,95,245,14,61,25,120,252,69,105,239,106,209,31,247,63,234,31,120,240,90,151,43,232,234,195,183,190,158,109,187,131,1,227,126,65,214,15,58,113,212,121,248,219,171,9,94,48,30,176,232,195,238,163,207,249,224,218,
218,87,207,64,111,244,12,94,87,240,78,148,253,126,160,255,9,80,148,187,207,238,232,11,128,231,175,251,134,30,245,222,232,251,222,208,64,223,227,223,127,93,133,187,172,190,76,225,43,214,191,189,158,226,197,42,15,117,25,188,88,229,171,103,160,167,26,119,63,223,61,228,174,213,236,42,246,245,228,3,189,243,84,195,215,191,16,109,95,148,233,110,134,255,59,32,66,111,140,223,253,249,79,49,125,135,193,151,153,191,243,236,183,221,41,94,108,250,223,1,79,126,253,18,243,63,123,222,113,65,87,209,238,189,87,12,180,111,46,187,158,177,251,19,83,236,101,90,223,34,120,166,246,80,239,31,135,94,41,203,222,121,206,217,215,234,190,212,33,160,119,158,115,233,23,227,173,83,221,190,224,132,175,116,193,207,122,62,236,125,52,248,133,100,255,246,87,124,254,92,206,252,123,127,223,71,55,94,184,226,248,167,228,252,31,187,44,238,127,251,235,166,37,192,226,179,111,138,197,189,251,31,60,248,219,15,30,252,217,131,63,123,65,235,123,212,85,245,166,115,127,220,63,208,247,31,
128,233,123,30,129,122,254,8,244,237,215,174,35,230,90,157,215,191,13,250,247,222,129,161,190,135,159,127,126,45,235,235,160,14,126,30,236,5,164,252,168,103,224,179,151,18,223,187,255,250,221,179,172,59,226,95,190,153,122,126,197,235,27,112,238,139,147,235,250,97,55,177,110,236,251,37,230,189,123,162,221,232,127,231,66,255,193,131,111,93,229,219,141,182,47,78,182,59,72,119,55,223,188,255,13,250,230,253,63,197,55,159,189,204,55,159,189,196,55,207,197,234,43,122,230,253,175,237,153,247,239,228,153,23,201,118,71,191,220,251,38,29,115,239,255,139,103,190,164,158,188,170,143,238,125,125,39,221,187,147,151,94,46,231,29,219,216,55,5,157,158,113,251,83,176,211,117,35,252,114,240,116,77,240,156,223,6,95,5,66,189,243,188,226,95,132,17,31,220,114,196,224,203,128,67,103,210,27,87,92,201,241,106,150,255,230,64,220,45,126,127,34,138,123,169,253,111,83,220,56,160,123,239,133,86,184,67,151,253,229,163,254,161,183,7,122,123,190,57,75,60,199,241,235,219,226,
211,7,31,244,60,248,224,101,75,199,219,20,55,182,248,252,234,177,99,150,79,1,129,64,61,128,68,119,183,202,219,64,14,127,115,22,121,202,237,235,91,163,83,84,94,110,141,219,20,47,140,140,167,117,169,187,195,245,151,255,245,163,31,245,125,210,243,251,222,31,252,205,247,254,250,91,223,125,243,175,193,195,53,240,42,248,233,159,42,143,150,161,172,102,135,165,91,120,171,46,142,13,151,215,240,33,168,57,79,195,242,32,254,132,52,196,73,55,37,2,82,128,66,192,110,177,86,45,135,20,93,171,154,179,238,224,217,147,18,216,228,166,38,2,121,198,8,13,6,215,10,16,172,27,229,245,50,188,43,171,10,210,54,177,124,184,216,108,199,90,35,6,245,54,81,89,50,216,148,72,118,174,129,145,194,221,150,58,182,117,176,23,192,10,234,25,169,155,128,171,170,10,222,21,179,77,128,219,152,139,9,199,84,11,203,45,86,73,131,179,202,87,5,75,26,198,20,6,27,184,68,19,185,179,68,127,201,236,168,156,165,119,82,19,137,181,225,225,67,239,5,219,62,183,147,146,
234,92,6,170,168,190,102,215,39,243,59,41,136,157,108,137,10,201,23,103,40,83,86,185,165,80,199,197,51,1,255,162,235,80,232,29,213,83,77,123,11,76,12,201,161,89,216,35,109,145,52,139,169,146,115,110,125,47,155,30,95,23,72,22,26,14,179,198,112,214,72,132,39,48,81,230,218,132,34,48,151,185,244,102,130,185,243,26,125,193,46,10,80,178,149,53,217,69,72,55,121,161,106,238,43,131,165,166,88,85,105,224,208,163,12,147,79,104,87,72,124,178,21,92,57,219,22,70,154,74,155,157,179,146,154,59,63,53,79,155,66,141,165,75,239,162,70,179,151,83,242,42,196,248,116,75,162,113,50,10,248,198,234,226,58,188,21,21,236,103,153,199,21,178,147,140,221,44,121,115,33,197,38,46,190,39,193,102,189,122,148,124,85,66,194,17,21,39,174,76,216,155,227,111,23,107,30,63,221,104,79,138,28,179,18,45,132,188,55,57,92,22,142,177,89,35,23,37,214,161,55,230,158,241,198,128,203,204,233,213,197,171,184,186,196,166,175,46,135,153,238,69,63,123,25,112,
120,4,28,86,140,87,247,166,163,83,59,41,2,101,39,37,3,254,106,164,41,89,89,216,26,1,79,174,54,243,175,148,56,255,220,247,209,208,199,55,137,211,247,245,219,217,83,94,47,78,155,91,183,186,147,60,151,41,127,232,142,123,89,166,92,81,220,100,74,247,211,237,76,233,108,145,127,218,247,199,87,170,165,239,12,244,125,244,205,85,141,167,220,190,126,213,248,61,192,226,229,85,227,54,197,11,171,70,135,224,133,85,227,59,127,3,84,141,55,193,195,101,176,241,86,213,144,208,50,147,171,153,97,227,20,222,122,201,133,211,220,75,48,221,12,98,131,133,22,90,232,177,208,154,227,2,135,192,203,165,139,34,97,9,49,57,182,63,74,105,159,97,201,88,223,94,177,8,47,161,153,78,128,129,180,195,229,48,54,154,44,239,146,172,98,243,138,0,73,138,83,206,183,160,211,151,7,58,187,14,237,62,131,110,187,103,105,114,240,48,113,43,58,181,37,165,8,215,70,121,83,104,29,118,237,162,157,240,65,168,39,179,163,244,147,81,234,201,40,161,115,137,108,251,42,225,
108,137,83,83,91,139,216,149,84,35,79,84,201,83,123,78,205,120,122,142,22,159,34,235,162,171,161,84,210,107,56,56,215,95,230,145,80,244,102,38,127,88,172,152,147,124,177,120,46,20,150,96,29,114,166,83,138,144,138,138,230,54,130,83,62,194,70,48,14,44,162,117,176,107,59,130,162,209,99,220,69,21,191,112,6,110,183,150,105,225,178,53,1,142,110,158,85,91,155,60,85,52,57,65,25,149,232,220,81,146,217,159,103,144,154,180,189,148,46,163,198,232,11,23,185,201,67,63,67,177,217,136,230,133,103,97,115,190,74,22,92,248,182,160,232,177,112,190,133,70,149,170,48,105,52,43,98,151,171,244,149,131,3,248,76,107,90,69,43,136,34,117,19,124,152,22,52,151,244,4,85,19,106,94,128,175,211,231,28,134,227,150,121,106,43,142,144,133,162,217,210,18,67,78,117,112,38,79,69,101,53,53,178,184,148,137,162,163,24,169,55,186,186,149,53,148,85,77,20,35,178,232,138,54,227,8,178,107,37,74,12,215,139,129,74,181,104,152,173,155,197,132,34,97,23,203,
164,22,34,136,75,42,249,104,175,205,17,153,119,139,4,246,34,102,76,96,70,96,177,222,205,98,218,37,141,218,147,117,123,24,62,114,14,241,68,19,78,167,199,16,163,214,51,165,160,10,165,5,139,40,35,116,50,86,91,219,194,168,182,48,216,70,61,106,63,52,135,102,204,219,33,224,210,60,172,162,113,66,191,94,246,74,153,243,77,149,141,167,188,94,169,108,92,37,194,203,202,198,109,138,23,150,141,14,193,171,151,141,143,251,255,240,79,29,145,111,52,255,176,191,255,209,215,83,253,134,211,87,234,125,53,197,205,219,17,96,216,45,141,223,253,221,211,247,32,157,7,157,23,57,67,3,79,122,159,95,146,94,105,58,216,37,121,124,119,61,255,254,27,211,243,239,255,159,234,121,107,83,228,107,106,250,179,222,223,247,62,254,102,84,189,98,245,53,116,237,108,0,222,166,232,168,119,7,3,244,13,117,111,92,71,116,207,167,31,15,130,30,247,124,210,251,237,235,182,208,221,236,27,250,236,250,229,192,231,154,194,91,223,125,235,251,223,186,247,191,190,3,29,62,2,75,
110,117,5,56,45,51,189,185,238,57,48,209,108,9,196,57,235,88,125,102,42,142,163,112,135,164,152,200,34,149,177,151,132,219,38,107,48,182,139,103,111,240,33,171,116,55,57,62,135,223,31,94,85,208,78,17,163,2,147,151,197,134,154,92,236,185,241,208,104,26,121,152,142,54,22,71,106,56,190,176,29,174,181,166,219,62,29,214,86,83,143,94,72,46,76,45,38,182,100,206,57,12,149,173,156,184,145,115,230,52,21,178,221,40,69,155,129,191,179,87,23,41,225,234,130,182,155,159,221,167,29,47,219,121,7,124,171,110,108,20,217,94,181,198,199,78,114,39,158,106,66,38,89,110,133,15,69,11,97,135,131,193,19,175,173,38,147,39,122,121,24,69,118,144,201,100,186,66,124,200,49,23,28,98,39,10,63,153,58,41,121,42,100,110,188,154,96,143,183,33,16,140,25,158,40,110,215,53,97,50,1,149,68,11,75,2,122,226,12,189,66,167,39,115,240,32,125,170,158,175,44,145,61,220,37,228,162,247,156,61,185,126,76,78,41,70,218,109,172,42,225,60,204,31,230,14,
120,222,68,189,144,142,239,201,118,207,8,202,52,202,59,30,68,31,77,165,45,137,181,149,122,24,97,206,205,78,237,7,47,120,179,213,141,162,231,204,99,135,155,152,13,158,129,174,209,72,247,155,59,251,200,88,108,231,200,231,141,44,181,219,249,220,50,227,252,124,198,61,175,227,185,224,136,9,96,10,63,145,231,56,60,217,174,53,46,82,94,111,34,59,26,61,83,212,196,251,154,165,36,41,41,245,150,21,9,19,219,55,26,228,10,198,84,227,163,145,117,169,26,177,77,180,47,31,5,51,230,70,154,27,11,166,66,126,18,131,168,160,96,252,254,11,124,98,107,123,100,51,62,78,105,55,245,231,154,92,57,27,11,235,154,205,121,202,252,206,200,170,99,198,43,15,44,150,248,176,128,191,137,154,155,227,197,157,118,181,157,166,97,167,244,214,115,209,244,33,225,98,79,178,148,44,201,235,241,200,46,218,120,96,198,11,150,56,97,244,24,190,52,199,246,174,141,224,34,5,139,77,210,100,58,153,168,125,17,177,52,106,28,217,96,166,163,76,196,105,138,144,16,9,206,76,
78,92,14,87,42,135,77,89,219,90,121,14,58,74,75,59,153,53,165,187,20,59,52,39,183,210,62,66,181,182,152,63,15,160,206,188,120,253,129,9,99,56,58,172,213,142,79,4,68,223,24,79,183,72,46,214,23,53,134,106,35,46,217,149,77,165,74,97,124,137,188,201,226,195,151,235,13,215,110,26,126,57,44,168,32,73,81,19,217,184,134,31,39,217,184,28,182,142,61,23,153,195,51,176,2,65,96,106,179,218,226,114,134,185,85,46,95,56,108,141,157,94,176,10,75,217,25,214,234,33,17,78,93,27,59,45,141,164,17,42,108,122,222,19,91,205,183,198,148,101,168,139,185,98,171,105,180,154,25,255,12,15,157,228,165,34,219,19,52,74,115,159,44,28,67,22,103,125,172,20,9,195,48,208,147,252,213,162,157,178,33,146,158,81,244,142,227,25,12,127,85,26,206,29,240,61,243,41,92,100,67,36,102,139,29,17,227,154,96,115,207,129,21,200,132,174,3,220,240,170,156,10,38,181,155,106,162,144,82,197,201,169,113,1,226,98,148,108,154,64,28,155,171,30,52,76,
34,57,242,59,100,206,230,52,190,194,155,139,185,165,238,176,53,133,165,167,206,241,75,24,141,146,73,59,246,112,180,140,66,105,116,202,196,72,91,37,167,164,28,24,106,221,104,243,54,227,169,84,106,58,132,229,186,115,243,109,242,248,50,22,155,42,94,212,21,2,31,99,129,64,56,94,150,176,168,57,67,187,24,150,180,46,3,200,137,230,4,124,92,33,221,141,77,201,240,48,129,103,132,143,130,205,153,151,27,190,205,189,131,160,71,228,169,250,230,33,187,41,95,74,185,165,30,1,67,226,81,1,210,222,196,36,253,4,86,76,187,228,138,175,228,163,80,255,37,63,187,164,155,153,153,225,232,245,122,161,48,157,211,241,43,84,14,167,113,105,199,105,149,113,100,50,87,110,23,249,180,157,181,148,251,178,17,62,178,76,95,56,215,90,102,4,115,5,15,200,82,133,19,184,59,51,71,51,213,60,126,82,226,131,151,178,194,250,214,170,157,83,33,16,109,172,244,196,182,229,164,81,69,34,149,35,187,236,152,115,82,114,114,224,160,105,204,171,154,221,139,196,114,187,69,67,
66,143,43,236,21,230,196,132,65,26,24,167,99,230,230,224,26,158,114,130,66,73,198,206,66,113,105,68,47,91,109,75,81,2,97,161,62,172,200,57,249,115,22,158,188,174,118,53,17,144,195,170,224,84,91,204,179,66,200,216,246,242,185,112,39,122,58,162,164,238,111,227,75,28,21,91,57,76,193,36,151,61,105,62,151,203,117,66,24,250,253,64,96,183,142,166,97,109,19,66,31,127,95,234,23,57,73,112,103,53,201,182,159,83,77,170,164,10,141,203,21,203,37,142,29,135,229,112,34,179,147,86,216,48,150,83,163,13,99,233,74,183,222,122,166,47,204,173,65,143,48,48,235,60,53,156,73,82,215,130,216,200,114,209,197,241,42,16,107,101,181,11,142,19,49,151,67,154,11,219,217,178,138,199,229,46,184,177,104,90,181,89,45,108,111,211,48,35,74,165,18,199,16,232,17,213,19,180,156,41,218,154,115,11,125,18,254,165,186,221,110,101,130,75,39,243,210,253,51,143,98,67,238,34,242,156,41,149,198,81,76,226,177,81,54,92,41,48,41,3,11,56,70,203,192,6,
147,27,231,11,225,74,78,81,92,169,22,236,166,246,236,182,200,190,187,209,222,82,77,138,195,168,106,5,133,132,141,10,89,167,130,29,39,93,91,42,215,50,65,212,232,232,168,67,195,92,113,174,238,203,19,23,167,171,130,67,214,238,49,117,133,146,137,232,107,68,72,142,68,64,96,124,156,11,90,189,168,165,111,111,155,183,139,190,67,197,244,132,102,210,229,129,217,112,76,235,74,57,19,136,70,89,80,221,142,16,43,246,204,81,23,97,110,62,115,249,50,206,54,113,185,173,237,70,83,82,55,110,109,161,195,83,217,74,173,157,131,77,30,164,24,82,14,202,98,15,185,148,198,145,212,240,194,162,173,224,96,65,118,242,38,165,122,231,104,88,39,152,65,232,4,23,59,81,83,6,131,57,227,179,207,248,22,228,88,206,101,173,226,218,211,82,96,156,148,147,95,132,79,136,61,126,227,37,86,96,194,78,75,243,52,134,23,86,225,35,199,160,58,65,119,164,50,106,234,142,36,158,241,187,35,183,20,33,76,27,50,205,132,156,238,221,253,228,199,173,54,255,249,61,230,78,
51,126,122,208,227,86,15,127,193,38,102,183,229,254,14,244,168,75,241,20,105,220,121,23,179,59,236,155,66,206,183,184,189,18,118,126,33,106,238,224,135,107,128,113,141,153,159,66,227,14,96,238,5,192,228,103,55,106,247,62,234,253,164,247,85,222,192,255,188,255,163,222,7,175,117,100,248,90,138,118,134,63,175,97,223,213,174,51,32,236,131,15,62,233,60,237,160,167,159,255,228,193,7,111,255,195,175,223,125,251,103,239,190,253,222,79,127,242,2,5,63,2,230,232,123,252,251,27,69,187,35,223,0,253,83,207,163,39,157,131,90,3,189,63,184,2,73,143,238,125,255,251,63,236,123,235,123,111,254,240,23,55,199,243,58,210,61,190,58,119,212,21,244,154,240,187,223,125,70,216,33,235,136,240,147,95,189,253,207,247,95,192,232,115,108,126,249,246,187,255,240,235,159,254,234,101,156,110,41,243,151,255,245,224,111,65,63,255,197,79,126,250,220,221,111,191,108,244,63,252,226,237,183,65,215,127,110,13,239,220,126,233,184,247,254,241,127,255,242,221,127,249,233,207,110,141,
185,185,117,255,206,233,118,229,241,207,39,90,223,179,151,5,87,62,125,241,107,130,27,55,117,252,211,89,186,125,212,255,240,73,39,224,174,78,66,94,7,196,107,175,223,41,235,254,174,111,232,215,253,157,115,144,15,94,235,98,238,47,59,82,240,148,238,249,64,187,41,13,64,180,188,255,5,136,254,187,158,71,131,183,49,250,175,122,7,129,229,214,245,65,198,63,94,191,81,239,32,240,207,174,247,168,158,98,248,247,159,2,120,0,232,247,95,33,248,158,71,143,110,16,124,231,0,232,27,253,143,111,31,37,187,99,178,117,14,41,62,120,237,163,254,39,31,62,234,125,240,237,174,198,223,126,169,222,157,1,207,171,124,53,248,102,105,210,81,232,115,7,28,110,217,4,88,122,189,120,225,242,165,35,128,58,242,85,75,157,142,72,131,221,215,0,131,160,15,63,123,186,236,233,74,2,216,188,123,16,245,217,154,239,209,103,183,236,218,145,231,233,210,168,99,249,155,53,240,115,84,29,25,110,168,238,90,196,186,39,55,159,89,246,250,250,165,7,84,174,206,137,126,185,93,175,
212,248,151,207,217,233,5,36,239,223,46,212,93,174,55,166,121,206,4,207,236,116,195,249,243,234,3,20,215,182,123,142,240,253,187,158,158,188,57,100,250,5,27,220,182,197,43,151,246,171,115,171,95,110,167,129,63,190,204,68,3,159,189,252,233,189,235,80,251,14,232,173,55,223,124,81,199,187,181,117,112,115,244,5,152,241,246,25,154,167,183,63,251,242,163,51,207,104,238,117,136,58,169,126,117,174,246,141,103,165,161,243,185,27,115,157,141,153,190,193,62,64,204,171,62,112,189,27,213,125,235,5,84,183,193,222,129,62,160,130,60,121,220,7,136,248,218,227,171,155,87,125,248,174,135,113,128,234,250,47,215,174,122,225,73,215,103,70,2,61,37,5,74,241,29,143,182,254,241,150,130,119,170,192,192,28,239,223,93,156,247,95,81,156,207,190,142,56,247,94,65,158,123,175,40,208,179,248,120,101,209,126,241,105,207,195,190,161,207,158,102,216,87,100,212,213,9,136,235,65,47,201,161,254,107,138,167,185,240,162,76,184,142,187,235,72,190,25,2,122,227,119,3,253,159,128,
222,2,189,6,220,249,183,235,110,245,38,232,181,33,64,169,193,79,1,196,244,120,232,175,250,30,95,199,243,93,227,243,249,221,182,235,67,47,119,210,245,101,155,107,95,60,32,210,85,254,10,178,126,181,198,215,116,175,168,66,7,210,126,251,85,244,120,65,21,124,145,82,207,240,109,223,227,143,122,63,95,3,191,182,202,207,235,10,250,221,179,102,112,53,205,181,77,94,225,92,200,45,59,252,105,7,156,239,98,133,47,57,224,115,181,40,249,19,149,121,175,231,223,123,223,30,252,121,239,80,207,239,250,158,29,75,127,248,113,207,192,131,191,120,241,247,5,158,246,250,231,70,126,229,74,236,138,229,77,143,239,140,248,178,111,21,116,32,249,95,252,232,181,123,223,239,60,122,243,205,215,223,2,253,51,160,89,255,31,6,159,21,158,206,220,207,127,227,160,167,243,141,147,63,92,209,129,62,185,22,170,211,67,110,186,126,103,198,187,59,248,199,253,79,158,158,249,121,49,144,239,82,124,25,146,127,252,164,251,109,28,160,199,93,103,219,163,254,158,143,238,248,37,147,119,7,
127,250,201,167,157,106,248,165,203,245,107,138,151,45,212,1,33,6,122,59,75,59,208,227,254,231,3,2,244,212,6,247,239,255,95,230,43,119,92,

View file

@ -0,0 +1,24 @@
TOPIC("DataSource$en-us")
#include "DataSource$en-us.tppi"
END_TOPIC
TOPIC("ExplicitEquation$en-us")
#include "ExplicitEquation$en-us.tppi"
END_TOPIC
TOPIC("FourierEquation$en-us")
#include "FourierEquation$en-us.tppi"
END_TOPIC
TOPIC("LinearEquation$en-us")
#include "LinearEquation$en-us.tppi"
END_TOPIC
TOPIC("PolynomialEquation$en-us")
#include "PolynomialEquation$en-us.tppi"
END_TOPIC
TOPIC("ScatterDraw$en-us")
#include "ScatterDraw$en-us.tppi"
END_TOPIC