From 10adba32dd9062076ca8c3d26887d3d705469f7f Mon Sep 17 00:00:00 2001 From: Jean-Francois Remacle <jean-francois.remacle@uclouvain.be> Date: Tue, 25 Aug 2009 14:52:45 +0000 Subject: [PATCH] *** empty log message *** --- Common/CreateFile.cpp | 16 + Common/GmshDefines.h | 3 + Geo/GEdgeCompound.cpp | 28 +- Geo/GEdgeCompound.h | 1 + Geo/GFaceCompound.cpp | 242 +- Geo/GFaceCompound.h | 4 + Geo/GModel.h | 3 + Geo/GModelIO_Geo.cpp | 1 + Geo/GModelIO_OCC.cpp | 376 +- Geo/GModelIO_OCC.h | 19 +- Geo/Geo.cpp | 4 +- Geo/Geo.h | 1 + Geo/OCCFace.cpp | 3 + Geo/OCCIncludes.h | 6 + Mesh/Generator.cpp | 24 + Mesh/meshGFace.cpp | 1 + Mesh/meshGFaceBDS.cpp | 53 +- Numeric/gmshLaplace.h | 16 +- Numeric/gmshLinearSystemFull.h | 3 +- Parser/Gmsh.l | 2 + Parser/Gmsh.tab.cpp | 5549 +++++++++++++++-------------- Parser/Gmsh.tab.hpp | 238 +- Parser/Gmsh.y | 38 +- Parser/Gmsh.yy.cpp | 958 ++--- benchmarks/testsuite/testsuite.sh | 22 +- 25 files changed, 4171 insertions(+), 3440 deletions(-) diff --git a/Common/CreateFile.cpp b/Common/CreateFile.cpp index a67c260adb..19e5852865 100644 --- a/Common/CreateFile.cpp +++ b/Common/CreateFile.cpp @@ -54,6 +54,11 @@ int GuessFileFormatFromFileName(std::string fileName) else if(ext == ".svg") return FORMAT_SVG; else if(ext == ".ppm") return FORMAT_PPM; else if(ext == ".yuv") return FORMAT_YUV; + else if(ext == ".brep") return FORMAT_BREP; + else if(ext == ".step") return FORMAT_STEP; + else if(ext == ".stp") return FORMAT_STEP; + else if(ext == ".iges") return FORMAT_IGES; + else if(ext == ".igs") return FORMAT_IGES; else return -1; } @@ -86,6 +91,9 @@ std::string GetDefaultFileName(int format) case FORMAT_SVG: name += ".svg"; break; case FORMAT_PPM: name += ".ppm"; break; case FORMAT_YUV: name += ".yuv"; break; + case FORMAT_BREP: name += ".brep"; break; + case FORMAT_IGES: name += ".iges"; break; + case FORMAT_STEP: name += ".step"; break; default: break; } return name; @@ -235,6 +243,14 @@ void CreateOutputFile(std::string fileName, int format) case FORMAT_GEO: GModel::current()->writeGEO(fileName, CTX::instance()->print.geoLabels); break; +#if defined(HAVE_OCC) + case FORMAT_BREP: + GModel::current()->writeOCCBREP(fileName); + break; + case FORMAT_STEP: + GModel::current()->writeOCCSTEP(fileName); + break; +#endif #if defined(HAVE_FLTK) case FORMAT_PPM: diff --git a/Common/GmshDefines.h b/Common/GmshDefines.h index 0167550237..fa4bc565c6 100644 --- a/Common/GmshDefines.h +++ b/Common/GmshDefines.h @@ -37,6 +37,9 @@ #define FORMAT_CGNS 32 #define FORMAT_MED 33 #define FORMAT_DIFF 34 +#define FORMAT_BREP 35 +#define FORMAT_STEP 36 +#define FORMAT_IGES 37 // Element types #define TYPE_PNT 1 diff --git a/Geo/GEdgeCompound.cpp b/Geo/GEdgeCompound.cpp index ee904522a1..46e821bc15 100644 --- a/Geo/GEdgeCompound.cpp +++ b/Geo/GEdgeCompound.cpp @@ -12,17 +12,24 @@ #include "GEdgeCompound.h" #include "Numeric.h" -GEdgeCompound::GEdgeCompound(GModel *m, int tag, std::vector<GEdge*> &compound) - : GEdge(m, tag, 0 , 0), _compound(compound) +GEdgeCompound::GEdgeCompound(GModel *m, int tag, std::vector<GEdge*> &compound, std::vector<int> &orientation) + : GEdge(m, tag, 0 , 0), _compound(compound), _orientation(orientation) { + int N = _compound.size(); + v0 = _orientation[0] ? _compound[0]->getBeginVertex() : _compound[0]->getEndVertex(); + v1 = _orientation[N-1] ? _compound[N-1]->getEndVertex() : _compound[N-1]->getBeginVertex(); + v0->addEdge(this); + v1->addEdge(this); + + for (unsigned int i=0;i<_compound.size();i++) + _compound[i]->setCompound(this); -// for (std::vector<GEdge*>::iterator it = compound.begin(); it != compound.end(); ++it){ -// if (!(*it)) { -// Msg::Error("Incorrect edge in compound line %d\n", tag); -// Msg::Exit(1); -// } -// } + parametrize(); +} +GEdgeCompound::GEdgeCompound(GModel *m, int tag, std::vector<GEdge*> &compound) + : GEdge(m, tag, 0 , 0), _compound(compound) +{ orderEdges (); int N = _compound.size(); v0 = _orientation[0] ? _compound[0]->getBeginVertex() : _compound[0]->getEndVertex(); @@ -30,16 +37,19 @@ GEdgeCompound::GEdgeCompound(GModel *m, int tag, std::vector<GEdge*> &compound) v0->addEdge(this); v1->addEdge(this); + for (unsigned int i=0;i<_compound.size();i++) + _compound[i]->setCompound(this); + parametrize(); } + void GEdgeCompound::orderEdges() { std::vector<GEdge*> _c ; std::list<GEdge*> edges ; for (unsigned int i=0;i<_compound.size();i++){ - _compound[i]->setCompound(this); edges.push_back(_compound[i]); } diff --git a/Geo/GEdgeCompound.h b/Geo/GEdgeCompound.h index 8c94f76161..e16d04ab45 100644 --- a/Geo/GEdgeCompound.h +++ b/Geo/GEdgeCompound.h @@ -24,6 +24,7 @@ public: void getLocalParameter(const double &t, int &iEdge, double & tLoc) const; void getCompoundParameter(GEdge *ge, const double &tLoc, double &t) const; GEdgeCompound(GModel *m, int tag, std::vector<GEdge*> &compound); + GEdgeCompound(GModel *m, int tag, std::vector<GEdge*> &compound, std::vector<int> &orientation); // confidence in the input virtual ~GEdgeCompound(); Range<double> parBounds(int i) const; virtual GPoint point(double par) const; diff --git a/Geo/GFaceCompound.cpp b/Geo/GFaceCompound.cpp index 6d51dccccd..7d970e2cd0 100644 --- a/Geo/GFaceCompound.cpp +++ b/Geo/GFaceCompound.cpp @@ -22,66 +22,6 @@ #include "MElementCut.h" #include "GEntity.h" -class gmshGradientBasedDiffusivity : public gmshFunction<double> -{ -private: - MElement *_current; - int _iComp; - mutable std::map<MVertex*, SPoint2> _coordinates; -public: - gmshGradientBasedDiffusivity (std::map<MVertex*,SPoint2> &coordinates) - : _current (0), _iComp(-1),_coordinates(coordinates){} - void setCurrent (MElement *current){ _current = current; } - void setComponent (int iComp){ _iComp = iComp; } - virtual double operator () (double x, double y, double z) const - { - if(_iComp == -1) return 1.0; - double xyz[3] = {x, y, z}, uvw[3]; - _current->xyz2uvw(xyz, uvw); - double value1[256]; - double value2[256]; - for (int i = 0; i < _current->getNumVertices(); i++){ - const SPoint2 p = _coordinates[_current->getVertex(i)]; - value1[i] = p[0]; - value2[i] = p[1]; - } - double g1[3], g2[3]; - _current->interpolateGrad(value1, uvw[0], uvw[1], uvw[2], g1); - _current->interpolateGrad(value2, uvw[0], uvw[1], uvw[2], g2); - return sqrt(g1[0] * g1[0] + g1[1] * g1[1] + g1[2] * g1[2] + - g2[0] * g2[0] + g2[1] * g2[1] + g2[2] * g2[2]); - } -}; - -class gmshDistanceBasedDiffusivity : public gmshFunction<double> -{ -private: - mutable int comp; - MElement *_current; - mutable std::map<MVertex*, SPoint3> _coordinates; -public: - gmshDistanceBasedDiffusivity (std::map<MVertex*,SPoint3> &coordinates) - : comp(0), _current (0), _coordinates(coordinates) {} - void setCurrent (MElement *current){ _current = current; } - void setCompound(int compound){ comp = compound; } - virtual double operator () (double x, double y, double z) const - { - double xyz[3] = {x, y, z}, uvw[3]; - _current->xyz2uvw(xyz, uvw); - double value[256]; - for (int i = 0; i < _current->getNumVertices(); i++){ - const SPoint3 p = _coordinates[_current->getVertex(i)]; - value[i] = p[2]; - } - //double val = _current->interpolate(value, uvw[0], uvw[1], uvw[2]); - //return 1./(exp(x)+1.e-4);//exp(5*val); - return 1.0; - //printf("compiound =%d \n", comp); - //if (comp == 8) return 1.0; - //else return 1.e-15; - } -}; - static void fixEdgeToValue(GEdge *ed, double value, gmshAssembler<double> &myAssembler) { myAssembler.fixVertex(ed->getBeginVertex()->mesh_vertices[0], 0, 1, value); @@ -313,8 +253,8 @@ bool GFaceCompound::checkOrientation() const std::list<GFace*>::const_iterator it = _compound.begin(); double a_old = 0, a_new; bool oriented = true; - int iter = 0; for ( ; it != _compound.end(); ++it){ + int iter = 0; for (unsigned int i = 0; i < (*it)->triangles.size(); ++i){ MTriangle *t = (*it)->triangles[i]; SPoint3 v1 = coordinates[t->getVertex(0)]; @@ -448,7 +388,7 @@ void GFaceCompound::parametrize() const parametrize(ITERU); parametrize(ITERV); - checkOrientation(); + // checkOrientation(); computeNormals(); buildOct(); @@ -477,15 +417,34 @@ void GFaceCompound::getBoundingEdges() return; } - // in case the bounding edges are not given Boundary { {} }; std::set<GEdge*> _unique; + getUniqueEdges (_unique); + std::set<GEdge*>::iterator itf = _unique.begin(); + for ( ; itf != _unique.end(); ++itf){ + l_edges.push_back(*itf); + (*itf)->addFace(this); + } + // printf("%d in unique\n",_unique.size()); + computeALoop (_unique,_U0); + // printf("%d in unique\n",_unique.size()); + while(!_unique.empty()){ + computeALoop (_unique,_U1); + // printf("%d in unique\n",_unique.size()); + _interior_loops.push_back(_U1); + } +} + +void GFaceCompound::getUniqueEdges(std::set<GEdge*> & _unique) +{ + _unique.clear(); + // in case the bounding edges are not given Boundary { {} }; std::multiset<GEdge*> _touched; std::list<GFace*>::iterator it = _compound.begin(); for ( ; it != _compound.end(); ++it){ std::list<GEdge*> ed = (*it)->edges(); - std::list<GEdge*> :: iterator ite = ed.begin(); + std::list<GEdge*> :: iterator ite = ed.begin(); for ( ; ite != ed.end(); ++ite){ - _touched.insert(*ite); + _touched.insert(*ite); } } it = _compound.begin(); @@ -503,7 +462,10 @@ void GFaceCompound::getBoundingEdges() l_edges.push_back(*itf); (*itf)->addFace(this); } +} +void GFaceCompound::computeALoop(std::set<GEdge*> & _unique, std::list<GEdge*> & loop) +{ std::list<GEdge*> _loop; while (!_unique.empty()) { std::set<GEdge*>::iterator it = _unique.begin(); @@ -554,7 +516,7 @@ void GFaceCompound::getBoundingEdges() if (found == true) break; } - _U0 = _loop; + loop = _loop; } GFaceCompound::GFaceCompound(GModel *m, int tag, std::list<GFace*> &compound, @@ -766,15 +728,12 @@ void GFaceCompound::parametrize(iterationStep step) const #endif gmshAssembler<double> myAssembler(&lsys); - gmshDistanceBasedDiffusivity diffusivity(coordinates); gmshFunction<double> ONE(1.0); if (_type == UNITCIRCLE){ // maps the boundary onto a circle std::vector<MVertex*> ordered; - std::vector<MVertex*> ordered1; std::vector<double> coords; - std::vector<double> coords1; bool success = orderVertices(_U0, ordered, coords); if (!success){ Msg::Error("Could not order vertices on boundary"); @@ -869,6 +828,147 @@ void GFaceCompound::parametrize(iterationStep step) const } +void GFaceCompound::parametrize_conformal() const +{ + if (oct) return; + + Msg::Info("Parametrizing Surface %d", tag()); + +#ifdef HAVE_GMM + gmshLinearSystemGmm<double> lsys; + //gmshLinearSystemCSRGmm<double> lsys; + lsys.setPrec(1.e-15); + lsys.setGmres(1.); + if(Msg::GetVerbosity() == 99) lsys.setNoisy(2); +#else + gmshLinearSystemFull<double> lsys; +#endif + gmshAssembler<double> myAssembler(&lsys); + std::vector<MVertex*> ordered; + std::vector<double> coords; + bool success = orderVertices(_U0, ordered, coords); + if (!success){ + Msg::Error("Could not order vertices on boundary"); + return; + } + + for (unsigned int i = 0; i < ordered.size(); i++){ + MVertex *v = ordered[i]; + // printf("coucou\n"); + const double theta = 2 * M_PI * coords[i]; + // myAssembler.fixVertex(v, 0, 1, cos(theta)); + } + { + MVertex *v1 = ordered[0]; + MVertex *v2 = ordered[1]; + myAssembler.fixVertex(v1, 0, 1, 0); + myAssembler.fixVertex(v1, 0, 2, 0); + myAssembler.fixVertex(v2, 0, 1, 1); + myAssembler.fixVertex(v2, 0, 2, 0); + } + + std::list<GFace*>::const_iterator it = _compound.begin(); + for ( ; it != _compound.end(); ++it){ + for (unsigned int i = 0; i < (*it)->triangles.size(); ++i){ + MTriangle *t = (*it)->triangles[i]; + myAssembler.numberVertex(t->getVertex(0), 0, 1); + myAssembler.numberVertex(t->getVertex(1), 0, 1); + myAssembler.numberVertex(t->getVertex(2), 0, 1); + myAssembler.numberVertex(t->getVertex(0), 0, 2); + myAssembler.numberVertex(t->getVertex(1), 0, 2); + myAssembler.numberVertex(t->getVertex(2), 0, 2); + } + } + +#if 0 + Msg::Debug("Creating term %d dofs numbered %d fixed", + myAssembler.sizeOfR(), myAssembler.sizeOfF()); + for (unsigned int i = 0; i < ordered.size(); i++){ + MVertex *v1 = ordered[i]; + MVertex *v2 = ordered[(i+1)%ordered.size()]; + myAssembler.assemble(v1,0,2,v1,0,1, 0.5); + myAssembler.assemble(v1,0,2,v2,0,1, 0.5); + myAssembler.assemble(v2,0,2,v1,0,1,-0.5); + myAssembler.assemble(v2,0,2,v2,0,1,-0.5); + myAssembler.assemble(v1,0,1,v1,0,2, 0.5); + myAssembler.assemble(v1,0,1,v2,0,2, 0.5); + myAssembler.assemble(v2,0,1,v1,0,2,-0.5); + myAssembler.assemble(v2,0,1,v2,0,2,-0.5); + } + // internal BC's + for ( std::list<std::list<GEdge*> >::const_iterator itc = _interior_loops.begin(); + itc != _interior_loops.end() ; ++itc){ + success = orderVertices(*itc, ordered, coords); + if (!success){ + Msg::Error("Could not order vertices on boundary"); + return; + } + for (unsigned int i = 0; i < ordered.size(); i++){ + MVertex *v1 = ordered[i]; + MVertex *v2 = ordered[(i+1)%ordered.size()]; + myAssembler.assemble(v1,0,2,v1,0,1, 0.5); + myAssembler.assemble(v1,0,2,v2,0,1, 0.5); + myAssembler.assemble(v2,0,2,v1,0,1,-0.5); + myAssembler.assemble(v2,0,2,v2,0,1,-0.5); + myAssembler.assemble(v1,0,1,v1,0,2, 0.5); + myAssembler.assemble(v1,0,1,v2,0,2, 0.5); + myAssembler.assemble(v2,0,1,v1,0,2,-0.5); + myAssembler.assemble(v2,0,1,v2,0,2,-0.5); + } + } +#endif + + //gmshConvexCombinationTerm laplace(model(), &ONE, 1); + gmshFunction<double> ONE(1.0); + gmshFunction<double> P5( .5); + gmshFunction<double> M5(-0.5); + gmshLaplaceTerm laplace1 (model(), &ONE, 1); + gmshLaplaceTerm laplace2 (model(), &ONE, 2); + gmshLaplaceTerm laplace12(model(), &M5, 1 , 2); + gmshLaplaceTerm laplace21(model(), &P5, 2 , 1); + it = _compound.begin(); + for ( ; it != _compound.end() ; ++it){ + for (unsigned int i = 0; i < (*it)->triangles.size(); ++i){ + MTriangle *t = (*it)->triangles[i]; + laplace1.addToMatrix(myAssembler, t); + laplace2.addToMatrix(myAssembler, t); + laplace12.addToMatrix(myAssembler, t); + laplace21.addToMatrix(myAssembler, t); + } + } + + Msg::Debug("Assembly done"); + lsys.systemSolve(); + Msg::Debug("System solved"); + + + it = _compound.begin(); + std::set<MVertex *>allNodes; + for ( ; it != _compound.end() ; ++it){ + for (unsigned int i = 0; i < (*it)->triangles.size(); ++i){ + MTriangle *t = (*it)->triangles[i]; + for (int j = 0; j < 3; j++){ + allNodes.insert(t->getVertex(j)); + } + } + } + + for (std::set<MVertex *>::iterator itv = allNodes.begin(); itv !=allNodes.end() ; ++itv){ + MVertex *v = *itv; + double value1 = myAssembler.getDofValue(v,0,1); + double value2 = myAssembler.getDofValue(v,0,2); + coordinates[v] = SPoint3(value1,value2,0.0); + } + + // checkOrientation(); + + computeNormals(); + buildOct(); + +} + + + void GFaceCompound::computeNormals (std::map<MVertex*,SVector3> &normals) const { @@ -1130,6 +1230,8 @@ void GFaceCompound::getTriangle(double u, double v, void GFaceCompound::buildOct() const { + // printStuff(); + SBoundingBox3d bb; int count = 0; std::list<GFace*> :: const_iterator it = _compound.begin(); @@ -1185,7 +1287,6 @@ void GFaceCompound::buildOct() const } nbT = count; Octree_Arrange(oct); - printStuff(); } int GFaceCompound::genusGeom () @@ -1308,7 +1409,6 @@ void GFaceCompound::printStuff() const fclose(xyzv); fprintf(xyzc,"};\n"); fclose(xyzc); - Octree_Arrange(oct); } diff --git a/Geo/GFaceCompound.h b/Geo/GFaceCompound.h index e9426e14f0..88db962743 100644 --- a/Geo/GFaceCompound.h +++ b/Geo/GFaceCompound.h @@ -50,6 +50,7 @@ class GFaceCompound : public GFace { protected: std::list<GFace*> _compound; std::list<GEdge*> _U0, _U1, _V0, _V1; + std::list<std::list<GEdge*> > _interior_loops; mutable int nbT; mutable GFaceCompoundTriangle *_gfct; mutable Octree *oct; @@ -59,12 +60,15 @@ class GFaceCompound : public GFace { mutable std::map<MVertex*,SVector3> _normals; void buildOct() const ; void parametrize() const ; + void parametrize_conformal() const ; void parametrize(iterationStep) const ; bool checkOrientation() const; void one2OneMap() const; bool checkCavity(std::vector<MElement*> &vTri) const; void computeNormals () const; void getBoundingEdges(); + void getUniqueEdges(std::set<GEdge*> & _unique); + void computeALoop(std::set<GEdge*> & _unique, std::list<GEdge*> &); void getTriangle(double u, double v, GFaceCompoundTriangle **lt, double &_u, double &_v) const; virtual double curvature(MTriangle *t, double u, double v) const; diff --git a/Geo/GModel.h b/Geo/GModel.h index 2296adce2e..dcbd9ebbbb 100644 --- a/Geo/GModel.h +++ b/Geo/GModel.h @@ -325,10 +325,13 @@ class GModel // OCC model int readOCCBREP(const std::string &name); + int writeOCCBREP(const std::string &name); int readOCCIGES(const std::string &name); int readOCCSTEP(const std::string &name); + int writeOCCSTEP(const std::string &name); int importOCCShape(const void *shape); int applyOCCMeshConstraints(const void *constraints); + void addShape (char *, std::vector<double> &, char *); // Gmsh mesh file format int readMSH(const std::string &name); diff --git a/Geo/GModelIO_Geo.cpp b/Geo/GModelIO_Geo.cpp index 0fe4956ac6..d6e5a39705 100644 --- a/Geo/GModelIO_Geo.cpp +++ b/Geo/GModelIO_Geo.cpp @@ -74,6 +74,7 @@ int GModel::importGEOInternals() e->resetMeshAttributes(); if(!c->Visible) e->setVisibility(0); if(c->Color.type) e->setColor(c->Color.mesh); + if(c->degenerated)e->setTooSmall(true); } } List_Delete(curves); diff --git a/Geo/GModelIO_OCC.cpp b/Geo/GModelIO_OCC.cpp index a8634b1210..3249fcefbd 100644 --- a/Geo/GModelIO_OCC.cpp +++ b/Geo/GModelIO_OCC.cpp @@ -367,6 +367,11 @@ void OCC_Internals::loadBREP(const char *fn) buildLists(); } +void OCC_Internals::writeBREP(const char *fn) +{ + BRepTools::Write(shape, (char*)fn); +} + void OCC_Internals::loadSTEP(const char *fn) { STEPControl_Reader reader; @@ -385,6 +390,15 @@ void OCC_Internals::loadSTEP(const char *fn) buildLists(); } +void OCC_Internals::writeSTEP(const char *fn) +{ + STEPControl_Writer writer; + IFSelect_ReturnStatus status = writer.Transfer( shape, STEPControl_ManifoldSolidBrep ) ; + if ( status == IFSelect_RetDone ) + status = writer.Write( (char*) fn) ; +} + + void OCC_Internals::loadIGES(const char *fn) { IGESControl_Reader reader; @@ -473,6 +487,118 @@ static void addSimpleShapes(TopoDS_Shape theShape, TopTools_ListOfShape &theList } } } +void GModel::addShape (char *name, + std::vector<double> &p, + char *op){ + if (!_occ_internals) + _occ_internals = new OCC_Internals; + + OCC_Internals::BooleanOperator o = OCC_Internals::Intersection; + if (!strcmp(op,"Cut")) o = OCC_Internals::Cut; + else if (!strcmp(op,"Section")) o = OCC_Internals::Section; + else if (!strcmp(op,"Fuse") || !strcmp(op,"Union")) o = OCC_Internals::Fuse; + else if (!strcmp(op,"Intersection")) o = OCC_Internals::Intersection; + + if (!strcmp(name,"Sphere")){ + if (p.size() != 4){ + Msg::Error("4 parameters have to be defined for a sphere"); + return; + } + _occ_internals->Sphere(SPoint3(p[0],p[1],p[2]),p[3],o); + } + else if (!strcmp(name,"Cylinder")){ + if (p.size() != 8){ + Msg::Error("8 parameters have to be defined for a Cylinder"); + return; + } + _occ_internals->Cylinder(SPoint3(p[0],p[1],p[2]), + SVector3(p[3],p[4],p[5]),p[6],p[7],o); + } + else if (!strcmp(name,"Torus")){ + if (p.size() == 8){ + _occ_internals->Torus(SPoint3(p[0],p[1],p[2]), + SVector3(p[3],p[4],p[5]),p[6],p[7],o); + } + else if (p.size() == 9){ + _occ_internals->Torus(SPoint3(p[0],p[1],p[2]), + SVector3(p[3],p[4],p[5]),p[6],p[7],p[8],o); + } + else{ + Msg::Error("Wrong number of parameters for a Torus (8 or 9 is OK)"); + return; + } + } + else if (!strcmp(name,"Cone")){ + if (p.size() != 9){ + Msg::Error("9 parameters have to be defined for a Cone"); + return; + } + _occ_internals->Cone(SPoint3(p[0],p[1],p[2]), + SVector3(p[3],p[4],p[5]),p[6],p[7],p[8],o); + } + else if (!strcmp(name,"Box")){ + if (p.size() != 6){ + Msg::Error("6 parameters have to be defined for a Box"); + return; + } + _occ_internals->Box(SPoint3(p[0],p[1],p[2]), + SPoint3(p[3],p[4],p[5]),o); + } + else{ + // we should that at the end, a test now !! + _occ_internals->buildLists(); + _occ_internals->buildGModel(this); + } +} + +TopoDS_Shape GlueFaces (const TopoDS_Shape& theShape, + const Standard_Real theTolerance) +{ + + Msg::Error("glue !"); + return theShape; + +// Standard_Integer iErr, iWrn; +// TopoDS_Shape aRes; +// GEOMAlgo_Gluer aGluer; + +// aGluer.SetShape(theShape); +// aGluer.SetTolerance(theTolerance); +// aGluer.SetCheckGeometry(Standard_True); + +// aGluer.Perform(); + +// iErr = aGluer.ErrorStatus(); +// if (iErr) { +// switch (iErr) { +// case 2: +// Msg::Error("No vertices found in source shape"); +// break; +// case 5: +// Msg::Error("Source shape is Null"); +// break; +// case 6: +// Msg::Error("Result shape is Null"); +// break; +// case 200: +// Msg::Error("Error occured during check of geometric coincidence"); +// break; +// default: +// { +// // description of all errors see in GEOMAlgo_Gluer.cxx +// TCollection_AsciiString aMsg ("Error in GEOMAlgo_Gluer with code "); +// aMsg += TCollection_AsciiString(iErr); +// Msg::Error(aMsg.ToCString()); +// break; +// } +// } +// return aRes; +// } + +// aRes = aGluer.Result(); + +// return aRes; +} void OCC_Internals::applyBooleanOperator(TopoDS_Shape tool, const BooleanOperator &op) { @@ -480,7 +606,7 @@ void OCC_Internals::applyBooleanOperator(TopoDS_Shape tool, const BooleanOperato if (shape.IsNull()) shape = tool; else{ switch(op){ - case OCC_Internals::Add : + case OCC_Internals::Intersection : { TopoDS_Shape theNewShape; BRep_Builder B; @@ -500,7 +626,7 @@ void OCC_Internals::applyBooleanOperator(TopoDS_Shape tool, const BooleanOperato TopoDS_Shape aValue2 = itSub2.Value(); BRepAlgoAPI_Common BO (aValue1, aValue2); if (!BO.IsDone()) { - Msg::Error("Boolean Add Operator can not be performed"); + Msg::Error("Boolean Intersection Operator can not be performed"); } if (isCompound) { TopoDS_Shape aStepResult = BO.Shape(); @@ -528,14 +654,127 @@ void OCC_Internals::applyBooleanOperator(TopoDS_Shape tool, const BooleanOperato if (aValueC.ShapeType() != TopAbs_SOLID) isOnlySolids = false; } if (isOnlySolids) - Msg::Error("Face gluing not implemented"); - // theNewShape = GEOMImpl_GlueDriver::GlueFaces(C, Precision::Confusion()); - //else - theNewShape = C; - } + theNewShape = GlueFaces(C, Precision::Confusion()); + else + theNewShape = C; + } + shape = theNewShape; } break; case OCC_Internals::Cut : + { + TopoDS_Shape theNewShape; + BRep_Builder B; + TopoDS_Compound C; + B.MakeCompound(C); + + TopTools_ListOfShape listShapes, listTools; + addSimpleShapes(shape, listShapes); + addSimpleShapes(tool, listTools); + + Standard_Boolean isCompound = (listShapes.Extent() > 1); + + TopTools_ListIteratorOfListOfShape itSub1 (listShapes); + for (; itSub1.More(); itSub1.Next()) { + TopoDS_Shape aCut = itSub1.Value(); + // tools + TopTools_ListIteratorOfListOfShape itSub2 (listTools); + for (; itSub2.More(); itSub2.Next()) { + TopoDS_Shape aTool = itSub2.Value(); + BRepAlgoAPI_Cut BO (aCut, aTool); + if (!BO.IsDone()) { + Msg::Error("Cut operation can not be performed on the given shapes"); + return; + } + aCut = BO.Shape(); + } + if (isCompound) { + if (aCut.ShapeType() == TopAbs_COMPOUND) { + TopoDS_Iterator aCompIter (aCut); + for (; aCompIter.More(); aCompIter.Next()) { + B.Add(C, aCompIter.Value()); + } + } + else { + B.Add(C, aCut); + } + } + else + theNewShape = aCut; + } + + if (isCompound) { + TopTools_ListOfShape listShapeC; + addSimpleShapes(C, listShapeC); + TopTools_ListIteratorOfListOfShape itSubC (listShapeC); + bool isOnlySolids = true; + for (; itSubC.More(); itSubC.Next()) { + TopoDS_Shape aValueC = itSubC.Value(); + if (aValueC.ShapeType() != TopAbs_SOLID) isOnlySolids = false; + } + if (isOnlySolids) + theNewShape = GlueFaces(C, Precision::Confusion()); + else + theNewShape = C; + } + shape = theNewShape; + } + break; + case OCC_Internals::Fuse : + { + BRepAlgoAPI_Fuse BO (tool, shape); + if (!BO.IsDone()) { + Msg::Error("Fuse operation can not be performed on the given shapes"); + } + shape = BO.Shape(); + } + break; + case OCC_Internals::Section : + { + TopoDS_Shape theNewShape; + BRep_Builder B; + TopoDS_Compound C; + B.MakeCompound(C); + + TopTools_ListOfShape listShapes, listTools; + addSimpleShapes(shape, listShapes); + addSimpleShapes(tool, listTools); + + Standard_Boolean isCompound = (listShapes.Extent() > 1); + TopTools_ListIteratorOfListOfShape itSub1 (listShapes); + for (; itSub1.More(); itSub1.Next()) { + TopoDS_Shape aValue1 = itSub1.Value(); + TopTools_ListIteratorOfListOfShape itSub2 (listTools); + for (; itSub2.More(); itSub2.Next()) { + TopoDS_Shape aValue2 = itSub2.Value(); + BRepAlgoAPI_Section BO (aValue1, aValue2, Standard_False); + BO.Approximation(Standard_True); + BO.Build(); + if (!BO.IsDone()) { + Msg::Error("Section operation can not be performed on the given shapes"); + return; + } + if (isCompound) { + TopoDS_Shape aStepResult = BO.Shape(); + if (aStepResult.ShapeType() == TopAbs_COMPOUND) { + TopoDS_Iterator aCompIter (aStepResult); + for (; aCompIter.More(); aCompIter.Next()) { + B.Add(C, aCompIter.Value()); + } + } + else { + B.Add(C, aStepResult); + } + } + else + theNewShape = BO.Shape(); + } + } + if (isCompound) + theNewShape = C; + shape = theNewShape; + } + break; default : Msg::Error("Requested boolean operation not implemented"); break; @@ -554,6 +793,95 @@ void OCC_Internals::Sphere(const SPoint3 ¢er, const double &radius, applyBooleanOperator(aShape, op); } +void OCC_Internals::Cylinder(const SPoint3 &p, const SVector3 &d, double R, double H, + const BooleanOperator &op) +{ + // build a sphere + gp_Pnt aP(p.x(),p.y(),p.z()); + gp_Vec aV(d.x(),d.y(),d.z()); + gp_Ax2 anAxes (aP, aV); + BRepPrimAPI_MakeCylinder MC (anAxes, R, H); + MC.Build(); + if (!MC.IsDone()) { + Msg::Error("Cylinder can't be computed from the given parameters"); + return; + } + TopoDS_Shape aShape = MC.Shape(); + if (aShape.IsNull()) return; + applyBooleanOperator(aShape, op); +} + +void OCC_Internals::Torus(const SPoint3 &p, const SVector3 &d, double R1, double R2, + const BooleanOperator &op) +{ + // build a sphere + gp_Pnt aP(p.x(),p.y(),p.z()); + gp_Vec aV(d.x(),d.y(),d.z()); + gp_Ax2 anAxes (aP, aV); + BRepPrimAPI_MakeTorus MC (anAxes, R1, R2); + MC.Build(); + if (!MC.IsDone()) { + Msg::Error("Cylinder can't be computed from the given parameters"); + return; + } + TopoDS_Shape aShape = MC.Shape(); + if (aShape.IsNull()) return; + applyBooleanOperator(aShape, op); +} + +void OCC_Internals::Torus(const SPoint3 &p, const SVector3 &d, double R1, double R2, + double angle, const BooleanOperator &op) +{ + // build a sphere + gp_Pnt aP(p.x(),p.y(),p.z()); + gp_Vec aV(d.x(),d.y(),d.z()); + gp_Ax2 anAxes (aP, aV); + BRepPrimAPI_MakeTorus MC (anAxes, R1, R2, angle); + MC.Build(); + if (!MC.IsDone()) { + Msg::Error("Cylinder can't be computed from the given parameters"); + return; + } + TopoDS_Shape aShape = MC.Shape(); + if (aShape.IsNull()) return; + applyBooleanOperator(aShape, op); +} + +void OCC_Internals::Cone(const SPoint3 &p, const SVector3 &d, double R1, double R2, double H, + const BooleanOperator &op) +{ + // build a cone + gp_Pnt aP(p.x(),p.y(),p.z()); + gp_Vec aV(d.x(),d.y(),d.z()); + gp_Ax2 anAxes (aP, aV); + BRepPrimAPI_MakeCone MC (anAxes, R1, R2,H); + MC.Build(); + if (!MC.IsDone()) { + Msg::Error("Cone can't be computed from the given parameters"); + return; + } + TopoDS_Shape aShape = MC.Shape(); + if (aShape.IsNull()) return; + applyBooleanOperator(aShape, op); +} + + +void OCC_Internals::Box(const SPoint3 &p1, const SPoint3 &p2, + const BooleanOperator &op) +{ + gp_Pnt P1(p1.x(),p1.y(),p1.z()); + gp_Pnt P2(p2.x(),p2.y(),p2.z()); + BRepPrimAPI_MakeBox MB (P1,P2); + MB.Build(); + if (!MB.IsDone()) { + Msg::Error("Box can not be computed from the given point"); + return; + } + TopoDS_Shape aShape = MB.Shape(); + applyBooleanOperator(aShape, op); +} + + void GModel::_deleteOCCInternals() { if(_occ_internals) delete _occ_internals; @@ -569,6 +897,28 @@ int GModel::readOCCBREP(const std::string &fn) return 1; } +int GModel::writeOCCBREP(const std::string &fn) +{ + if (!_occ_internals){ + Msg::Error("No OCC Model Found"); + return 0; + } + else + _occ_internals->writeBREP(fn.c_str()); + return 1; +} + +int GModel::writeOCCSTEP(const std::string &fn) +{ + if (!_occ_internals){ + Msg::Error("No OCC Model Found"); + return 0; + } + else + _occ_internals->writeSTEP(fn.c_str()); + return 1; +} + int GModel::readOCCIGES(const std::string &fn) { _occ_internals = new OCC_Internals; @@ -598,6 +948,10 @@ int GModel::importOCCShape(const void *shape) int GModel::applyOCCMeshConstraints(const void *constraints) { #if defined(HAVE_OCC_MESH_CONSTRAINTS) + + // FIXME !!!!!!!!!!!!!!!! + // COMPUTE 1D MESH AUTOMATICALLY WHEN NO CONSTRAINTS ARE APPLIED + // ON SOME GEDGES !!!!!!!!!!!!!!!!!! MeshGmsh_Constrain *meshConstraints = (MeshGmsh_Constrain*)constraints; // apply mesh constraints on model vertices @@ -754,4 +1108,12 @@ int GModel::applyOCCMeshConstraints(const void *constraints) return 0; } +void GModel::updateShape (char *name, + std::vector<double> ¶meters, + char *op){ + Msg::Error("Gmsh must be compiled with OpenCascade support to apply " + "Boolean Operators On Solids"); +} + + #endif diff --git a/Geo/GModelIO_OCC.h b/Geo/GModelIO_OCC.h index b373bceb99..594ef34b65 100644 --- a/Geo/GModelIO_OCC.h +++ b/Geo/GModelIO_OCC.h @@ -11,6 +11,7 @@ #include "OCCIncludes.h" #if defined(HAVE_OCC) +#include <vector> class OCC_Options { private: @@ -24,7 +25,7 @@ class OCC_Internals { TopoDS_Shape shape; TopTools_IndexedMapOfShape fmap, emap, vmap, somap, shmap, wmap; public: - enum BooleanOperator { Add, Cut }; + enum BooleanOperator { Intersection, Cut, Section, Fuse }; OCC_Internals() { somap.Clear(); @@ -38,16 +39,30 @@ class OCC_Internals { bool fixspotstripfaces, bool sewfaces, bool makesolids=false, bool connect=false); void loadBREP(const char *); + void writeBREP(const char *); void loadSTEP(const char *); + void writeSTEP(const char *); void loadIGES(const char *); void loadShape(const TopoDS_Shape *); void buildGModel(GModel *gm); void buildLists(); void removeAllDuplicates(const double &tolerance); + void Cone(const SPoint3 &p1, const SPoint3 &p2, const BooleanOperator &op); + void Box(const SPoint3 &p1, const SPoint3 &p2, const BooleanOperator &op); void Sphere(const SPoint3 ¢er, const double &radius, const BooleanOperator &op); - void Cylinder(const SPoint3 &bottom_center, const SVector3 &dir, const BooleanOperator &op); + void Cylinder(const SPoint3 &bottom_center, const SVector3 &dir, double R, double H, + const BooleanOperator &op); + void Cone(const SPoint3 &bottom_center, const SVector3 &dir, double R1, double R2, + double H, const BooleanOperator &op); + void Torus(const SPoint3 &bottom_center, const SVector3 &dir, double R1, double R2, + const BooleanOperator &op); + void Torus(const SPoint3 &bottom_center, const SVector3 &dir, double R1, double R2, + double angle, const BooleanOperator &op); void applyBooleanOperator(TopoDS_Shape tool, const BooleanOperator &op); + void updateShape (char *name, + std::vector<double> &par, + char *op); }; #endif diff --git a/Geo/Geo.cpp b/Geo/Geo.cpp index 7c20aadc42..2aa84adc94 100644 --- a/Geo/Geo.cpp +++ b/Geo/Geo.cpp @@ -255,7 +255,9 @@ void End_Curve(Curve *c) } } } - + + c->degenerated = false; + if(c->Typ == MSH_SEGM_CIRC || c->Typ == MSH_SEGM_CIRC_INV || c->Typ == MSH_SEGM_ELLI || c->Typ == MSH_SEGM_ELLI_INV) { diff --git a/Geo/Geo.h b/Geo/Geo.h index 0148f3a55b..a24f0cfa63 100644 --- a/Geo/Geo.h +++ b/Geo/Geo.h @@ -110,6 +110,7 @@ class Curve{ public: int Num; int Typ; + bool degenerated; char Visible; int Method; int nbPointsTransfinite; diff --git a/Geo/OCCFace.cpp b/Geo/OCCFace.cpp index fdf1e6c148..6beecdeb3e 100644 --- a/Geo/OCCFace.cpp +++ b/Geo/OCCFace.cpp @@ -294,6 +294,9 @@ surface_params OCCFace::getSurfaceParams() const case GEntity::Cylinder: p.radius = Handle(Geom_CylindricalSurface)::DownCast(occface)->Radius(); break; + case GEntity::Sphere: + p.radius = Handle(Geom_SphericalSurface)::DownCast(occface)->Radius(); + break; default: break; } diff --git a/Geo/OCCIncludes.h b/Geo/OCCIncludes.h index 76c230ca82..2430eae644 100644 --- a/Geo/OCCIncludes.h +++ b/Geo/OCCIncludes.h @@ -104,10 +104,16 @@ using std::iostream; #include "TopoDS_Compound.hxx" #include "TopoDS_Iterator.hxx" #include "BRepPrimAPI_MakeSphere.hxx" +#include "BRepPrimAPI_MakeBox.hxx" +#include "BRepPrimAPI_MakeCylinder.hxx" +#include "BRepPrimAPI_MakeCone.hxx" +#include "BRepPrimAPI_MakeTorus.hxx" #include "TopTools_ListIteratorOfListOfShape.hxx" #include "Precision.hxx" #include "BRepAlgoAPI_Common.hxx" #include "BRepAlgoAPI_Cut.hxx" +#include "BRepAlgoAPI_Section.hxx" +#include "BRepAlgoAPI_Fuse.hxx" #endif #if defined(WIN32) diff --git a/Mesh/Generator.cpp b/Mesh/Generator.cpp index 6ca8621b1b..6f7c9f56cc 100644 --- a/Mesh/Generator.cpp +++ b/Mesh/Generator.cpp @@ -117,6 +117,30 @@ geomTresholdVertexEquivalence::geomTresholdVertexEquivalence(GModel *g) printf("Finally : %d equivalent to %d\n", v->getNum(), other->getNum()); g->mesh_vertices.clear(); g->mesh_vertices.push_back(other); + std::list<GEdge*> ed = g->edges(); + for (std::list<GEdge*>::iterator ite = ed.begin() ; ite != ed.end() ; ++ite){ + std::vector<MLine*> newl; + for (int i=0;i<(*ite)->lines.size();++i){ + MLine *l = (*ite)->lines[i]; + MVertex *v1 = l->getVertex(0); + MVertex *v2 = l->getVertex(1); + if (v1 == v && v2 != other){ + delete l; + l = new MLine(other,v2); + newl.push_back(l); + } + else if (v1 != other && v2 == v){ + delete l; + l = new MLine(v1,other); + newl.push_back(l); + } + else if (v1 != v && v2 != v) + newl.push_back(l); + else + delete l; + } + (*ite)->lines = newl; + } } } } diff --git a/Mesh/meshGFace.cpp b/Mesh/meshGFace.cpp index a907785925..b48b2b42ad 100644 --- a/Mesh/meshGFace.cpp +++ b/Mesh/meshGFace.cpp @@ -1371,6 +1371,7 @@ void deMeshGFace::operator() (GFace *gf) } const int debugSurface = -1;//-100; +//const int debugSurface = -100; void meshGFace::operator() (GFace *gf) { diff --git a/Mesh/meshGFaceBDS.cpp b/Mesh/meshGFaceBDS.cpp index 9b20e35956..49c4a3010a 100644 --- a/Mesh/meshGFaceBDS.cpp +++ b/Mesh/meshGFaceBDS.cpp @@ -529,6 +529,43 @@ void splitEdgePassUnsorted(GFace *gf, BDS_Mesh &m, double MAXE_, int &nb_split) } } +/* + A test for spheres +*/ + +static void midpointsphere (GFace *gf, + double u1, + double v1, + double u2, + double v2, double &u12, double &v12, double r){ + GPoint p1 = gf->point(u1,v1); + GPoint p2 = gf->point(u2,v2); + double guess [2] = {0.5*(u1+u2),0.5*(v1+v2)}; + u12 = guess[0]; + v12 = guess[1]; + + double d = sqrt((p1.x()-p2.x())*(p1.x()-p2.x())+ + (p1.y()-p2.y())*(p1.y()-p2.y())+ + (p1.z()-p2.z())*(p1.z()-p2.z())); + + if (d > r/3){ + return; + } + const double X = 0.5*(p1.x() + p2.x()); + const double Y = 0.5*(p1.y() + p2.y()); + const double Z = 0.5*(p1.z() + p2.z()); + + GPoint proj = gf->closestPoint(SPoint3(X,Y,Z),guess); + if (proj.succeeded()){ + u12 = proj.u(); + v12 = proj.v(); + } + + return; + printf("%g %g -- %g %g -- %g %g -- %g %g\n",u1,v1,u2,v2,u12,v12,0.5*(u1+u2),0.5*(v1+v2)); +} + + void splitEdgePass(GFace *gf, BDS_Mesh &m, double MAXE_, int &nb_split) { std::list<BDS_Edge*>::iterator it = m.edges.begin(); @@ -550,11 +587,19 @@ void splitEdgePass(GFace *gf, BDS_Mesh &m, double MAXE_, int &nb_split) BDS_Edge *e = edges[i].second; if (!e->deleted){ const double coord = 0.5; - // const double coord = computeEdgeMiddleCoord((*it)->p1, (*it)->p2, gf, - // m.scalingU, m.scalingV); + //const double coord = computeEdgeMiddleCoord((*it)->p1, (*it)->p2, gf, + // m.scalingU, m.scalingV); BDS_Point *mid ; - double U = coord * e->p1->u + (1 - coord) * e->p2->u; - double V = coord * e->p1->v + (1 - coord) * e->p2->v; + + double U,V; + if (0 && gf->geomType() == GEntity::Sphere){ + midpointsphere(gf,e->p1->u,e->p1->v,e->p2->u,e->p2->v,U,V, + gf-> getSurfaceParams().radius); + } + else{ + U = coord * e->p1->u + (1 - coord) * e->p2->u; + V = coord * e->p1->v + (1 - coord) * e->p2->v; + } GPoint gpp = gf->point(m.scalingU*U,m.scalingV*V); if (gpp.succeeded()){ diff --git a/Numeric/gmshLaplace.h b/Numeric/gmshLaplace.h index afc45dd653..e0428c8705 100644 --- a/Numeric/gmshLaplace.h +++ b/Numeric/gmshLaplace.h @@ -16,7 +16,8 @@ class gmshLaplaceTerm : public gmshNodalFemTerm<double> { protected: const gmshFunction<double> *_diffusivity; - const int _iField ; + const int _iField; + int _iFieldB ; public: virtual int sizeOfR(MElement *e) const { return e->getNumVertices(); } virtual int sizeOfC(MElement *e) const { return e->getNumVertices(); } @@ -26,9 +27,18 @@ class gmshLaplaceTerm : public gmshNodalFemTerm<double> { *iCompR = 0; *iFieldR = _iField; } + void getLocalDofC(MElement *e, int iRow, MVertex **vR, int *iCompR, int *iFieldR) const + { + *vR = e->getVertex(iRow); + *iCompR = 0; + *iFieldR = _iFieldB; + } public: - gmshLaplaceTerm(GModel *gm, gmshFunction<double> *diffusivity, int iField = 0) : - gmshNodalFemTerm<double>(gm), _diffusivity(diffusivity), _iField(iField){} + gmshLaplaceTerm(GModel *gm, gmshFunction<double> *diffusivity, int iField = 0, int iFieldB=-1) : + gmshNodalFemTerm<double>(gm), _diffusivity(diffusivity), _iField(iField) + { + _iFieldB = (iFieldB==-1) ? _iField : iFieldB; + } virtual void elementMatrix(MElement *e, gmshMatrix<double> &m) const; }; diff --git a/Numeric/gmshLinearSystemFull.h b/Numeric/gmshLinearSystemFull.h index 399739d14d..269bfeda5e 100644 --- a/Numeric/gmshLinearSystemFull.h +++ b/Numeric/gmshLinearSystemFull.h @@ -67,7 +67,8 @@ class gmshLinearSystemFull : public gmshLinearSystem<scalar> { } virtual int systemSolve() { - _a->lu_solve(*_b, *_x); + if (_b->size()) + _a->lu_solve(*_b, *_x); // _x->print("********* mySol"); return 1; } diff --git a/Parser/Gmsh.l b/Parser/Gmsh.l index 7cc27c0e65..2d033793ff 100644 --- a/Parser/Gmsh.l +++ b/Parser/Gmsh.l @@ -111,6 +111,7 @@ Call return tCall; CreateTopology return tCreateTopology; Delete return tDelete; +Degenerated return tDegenerated; Dilate return tDilate; Draw return tDraw; @@ -162,6 +163,7 @@ MPI_Size return tMPI_Size; Nurbs return tNurbs; Order return tOrder; +OCCShape return tOCCShape; Physical return tPhysical; Pi return tPi; diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index fcd9c714bc..826abdf280 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -137,64 +137,66 @@ tCompound = 318, tUsing = 319, tPlugin = 320, - tRotate = 321, - tTranslate = 322, - tSymmetry = 323, - tDilate = 324, - tExtrude = 325, - tLevelset = 326, - tLoop = 327, - tRecombine = 328, - tSmoother = 329, - tSplit = 330, - tDelete = 331, - tCoherence = 332, - tIntersect = 333, - tLayers = 334, - tHole = 335, - tAlias = 336, - tAliasWithOptions = 337, - tText2D = 338, - tText3D = 339, - tInterpolationScheme = 340, - tTime = 341, - tCombine = 342, - tBSpline = 343, - tBezier = 344, - tNurbs = 345, - tOrder = 346, - tKnots = 347, - tColor = 348, - tColorTable = 349, - tFor = 350, - tIn = 351, - tEndFor = 352, - tIf = 353, - tEndIf = 354, - tExit = 355, - tField = 356, - tReturn = 357, - tCall = 358, - tFunction = 359, - tShow = 360, - tHide = 361, - tGetValue = 362, - tGMSH_MAJOR_VERSION = 363, - tGMSH_MINOR_VERSION = 364, - tGMSH_PATCH_VERSION = 365, - tAFFECTDIVIDE = 366, - tAFFECTTIMES = 367, - tAFFECTMINUS = 368, - tAFFECTPLUS = 369, - tOR = 370, - tAND = 371, - tNOTEQUAL = 372, - tEQUAL = 373, - tGREATEROREQUAL = 374, - tLESSOREQUAL = 375, - UNARYPREC = 376, - tMINUSMINUS = 377, - tPLUSPLUS = 378 + tDegenerated = 321, + tOCCShape = 322, + tRotate = 323, + tTranslate = 324, + tSymmetry = 325, + tDilate = 326, + tExtrude = 327, + tLevelset = 328, + tLoop = 329, + tRecombine = 330, + tSmoother = 331, + tSplit = 332, + tDelete = 333, + tCoherence = 334, + tIntersect = 335, + tLayers = 336, + tHole = 337, + tAlias = 338, + tAliasWithOptions = 339, + tText2D = 340, + tText3D = 341, + tInterpolationScheme = 342, + tTime = 343, + tCombine = 344, + tBSpline = 345, + tBezier = 346, + tNurbs = 347, + tOrder = 348, + tKnots = 349, + tColor = 350, + tColorTable = 351, + tFor = 352, + tIn = 353, + tEndFor = 354, + tIf = 355, + tEndIf = 356, + tExit = 357, + tField = 358, + tReturn = 359, + tCall = 360, + tFunction = 361, + tShow = 362, + tHide = 363, + tGetValue = 364, + tGMSH_MAJOR_VERSION = 365, + tGMSH_MINOR_VERSION = 366, + tGMSH_PATCH_VERSION = 367, + tAFFECTDIVIDE = 368, + tAFFECTTIMES = 369, + tAFFECTMINUS = 370, + tAFFECTPLUS = 371, + tOR = 372, + tAND = 373, + tNOTEQUAL = 374, + tEQUAL = 375, + tGREATEROREQUAL = 376, + tLESSOREQUAL = 377, + UNARYPREC = 378, + tMINUSMINUS = 379, + tPLUSPLUS = 380 }; #endif /* Tokens. */ @@ -261,64 +263,66 @@ #define tCompound 318 #define tUsing 319 #define tPlugin 320 -#define tRotate 321 -#define tTranslate 322 -#define tSymmetry 323 -#define tDilate 324 -#define tExtrude 325 -#define tLevelset 326 -#define tLoop 327 -#define tRecombine 328 -#define tSmoother 329 -#define tSplit 330 -#define tDelete 331 -#define tCoherence 332 -#define tIntersect 333 -#define tLayers 334 -#define tHole 335 -#define tAlias 336 -#define tAliasWithOptions 337 -#define tText2D 338 -#define tText3D 339 -#define tInterpolationScheme 340 -#define tTime 341 -#define tCombine 342 -#define tBSpline 343 -#define tBezier 344 -#define tNurbs 345 -#define tOrder 346 -#define tKnots 347 -#define tColor 348 -#define tColorTable 349 -#define tFor 350 -#define tIn 351 -#define tEndFor 352 -#define tIf 353 -#define tEndIf 354 -#define tExit 355 -#define tField 356 -#define tReturn 357 -#define tCall 358 -#define tFunction 359 -#define tShow 360 -#define tHide 361 -#define tGetValue 362 -#define tGMSH_MAJOR_VERSION 363 -#define tGMSH_MINOR_VERSION 364 -#define tGMSH_PATCH_VERSION 365 -#define tAFFECTDIVIDE 366 -#define tAFFECTTIMES 367 -#define tAFFECTMINUS 368 -#define tAFFECTPLUS 369 -#define tOR 370 -#define tAND 371 -#define tNOTEQUAL 372 -#define tEQUAL 373 -#define tGREATEROREQUAL 374 -#define tLESSOREQUAL 375 -#define UNARYPREC 376 -#define tMINUSMINUS 377 -#define tPLUSPLUS 378 +#define tDegenerated 321 +#define tOCCShape 322 +#define tRotate 323 +#define tTranslate 324 +#define tSymmetry 325 +#define tDilate 326 +#define tExtrude 327 +#define tLevelset 328 +#define tLoop 329 +#define tRecombine 330 +#define tSmoother 331 +#define tSplit 332 +#define tDelete 333 +#define tCoherence 334 +#define tIntersect 335 +#define tLayers 336 +#define tHole 337 +#define tAlias 338 +#define tAliasWithOptions 339 +#define tText2D 340 +#define tText3D 341 +#define tInterpolationScheme 342 +#define tTime 343 +#define tCombine 344 +#define tBSpline 345 +#define tBezier 346 +#define tNurbs 347 +#define tOrder 348 +#define tKnots 349 +#define tColor 350 +#define tColorTable 351 +#define tFor 352 +#define tIn 353 +#define tEndFor 354 +#define tIf 355 +#define tEndIf 356 +#define tExit 357 +#define tField 358 +#define tReturn 359 +#define tCall 360 +#define tFunction 361 +#define tShow 362 +#define tHide 363 +#define tGetValue 364 +#define tGMSH_MAJOR_VERSION 365 +#define tGMSH_MINOR_VERSION 366 +#define tGMSH_PATCH_VERSION 367 +#define tAFFECTDIVIDE 368 +#define tAFFECTTIMES 369 +#define tAFFECTMINUS 370 +#define tAFFECTPLUS 371 +#define tOR 372 +#define tAND 373 +#define tNOTEQUAL 374 +#define tEQUAL 375 +#define tGREATEROREQUAL 376 +#define tLESSOREQUAL 377 +#define UNARYPREC 378 +#define tMINUSMINUS 379 +#define tPLUSPLUS 380 @@ -429,7 +433,7 @@ typedef union YYSTYPE List_T *l; } /* Line 193 of yacc.c. */ -#line 433 "Gmsh.tab.cpp" +#line 437 "Gmsh.tab.cpp" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -442,7 +446,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 446 "Gmsh.tab.cpp" +#line 450 "Gmsh.tab.cpp" #ifdef short # undef short @@ -657,20 +661,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 6877 +#define YYLAST 6948 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 144 +#define YYNTOKENS 146 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 79 /* YYNRULES -- Number of rules. */ -#define YYNRULES 375 +#define YYNRULES 377 /* YYNRULES -- Number of states. */ -#define YYNSTATES 1312 +#define YYNSTATES 1325 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 378 +#define YYMAXUTOK 380 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -681,16 +685,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 129, 2, 139, 2, 128, 2, 2, - 134, 135, 126, 124, 140, 125, 138, 127, 2, 2, + 2, 2, 2, 131, 2, 141, 2, 130, 2, 2, + 136, 137, 128, 126, 142, 127, 140, 129, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 120, 2, 121, 115, 2, 2, 2, 2, 2, 2, + 122, 2, 123, 117, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 136, 2, 137, 133, 2, 2, 2, 2, 2, + 2, 138, 2, 139, 135, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 141, 2, 142, 143, 2, 2, 2, + 2, 2, 2, 143, 2, 144, 145, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -715,7 +719,8 @@ static const yytype_uint8 yytranslate[] = 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 116, 117, 118, 119, 122, 123, 130, 131, 132 + 115, 116, 118, 119, 120, 121, 124, 125, 132, 133, + 134 }; #if YYDEBUG @@ -732,257 +737,259 @@ static const yytype_uint16 yyprhs[] = 227, 229, 231, 236, 244, 254, 261, 268, 272, 279, 284, 291, 301, 308, 318, 324, 333, 342, 354, 361, 371, 377, 385, 395, 405, 417, 427, 437, 439, 441, - 442, 448, 449, 452, 460, 461, 471, 478, 486, 494, - 503, 512, 520, 528, 540, 549, 550, 560, 569, 579, - 583, 588, 599, 607, 615, 624, 625, 635, 644, 657, - 666, 675, 684, 692, 693, 703, 709, 721, 727, 737, - 742, 752, 762, 764, 766, 767, 770, 777, 784, 791, - 798, 807, 822, 839, 852, 861, 870, 877, 892, 897, - 904, 911, 915, 920, 926, 930, 934, 939, 944, 948, - 956, 964, 968, 976, 980, 983, 986, 989, 1005, 1008, - 1011, 1018, 1027, 1036, 1047, 1049, 1052, 1054, 1058, 1063, - 1065, 1071, 1083, 1097, 1098, 1106, 1107, 1121, 1122, 1138, - 1139, 1146, 1155, 1164, 1173, 1186, 1199, 1212, 1227, 1242, - 1257, 1258, 1271, 1272, 1285, 1286, 1299, 1300, 1317, 1318, - 1335, 1336, 1353, 1354, 1373, 1374, 1393, 1394, 1413, 1415, - 1418, 1424, 1432, 1442, 1445, 1455, 1456, 1460, 1461, 1463, - 1464, 1467, 1468, 1471, 1479, 1486, 1495, 1501, 1507, 1514, - 1525, 1536, 1547, 1558, 1561, 1565, 1567, 1571, 1574, 1577, - 1580, 1584, 1588, 1592, 1596, 1600, 1604, 1608, 1612, 1616, - 1620, 1624, 1628, 1632, 1636, 1642, 1647, 1652, 1657, 1662, - 1667, 1672, 1677, 1682, 1687, 1692, 1699, 1704, 1709, 1714, - 1719, 1724, 1729, 1736, 1743, 1750, 1755, 1760, 1765, 1770, - 1775, 1780, 1785, 1790, 1795, 1800, 1805, 1812, 1817, 1822, - 1827, 1832, 1837, 1842, 1849, 1856, 1863, 1868, 1870, 1872, - 1874, 1876, 1878, 1880, 1882, 1884, 1890, 1895, 1900, 1903, - 1909, 1913, 1920, 1925, 1933, 1940, 1942, 1945, 1948, 1952, - 1956, 1968, 1978, 1986, 1994, 1996, 2000, 2002, 2004, 2007, - 2011, 2016, 2022, 2024, 2026, 2029, 2033, 2037, 2043, 2048, - 2050, 2052, 2056, 2063, 2065, 2067, 2071, 2075, 2085, 2093, - 2095, 2101, 2105, 2112, 2114, 2118, 2120, 2122, 2126, 2133, - 2135, 2137, 2144, 2149, 2154, 2159 + 442, 448, 449, 452, 460, 461, 471, 478, 486, 491, + 499, 508, 517, 525, 533, 545, 554, 555, 565, 574, + 584, 588, 593, 604, 612, 620, 629, 630, 640, 649, + 662, 671, 680, 689, 697, 707, 708, 718, 724, 736, + 742, 752, 757, 767, 777, 779, 781, 782, 785, 792, + 799, 806, 813, 822, 837, 854, 867, 876, 885, 892, + 907, 912, 919, 926, 930, 935, 941, 945, 949, 954, + 959, 963, 971, 979, 983, 991, 995, 998, 1001, 1004, + 1020, 1023, 1026, 1033, 1042, 1051, 1062, 1064, 1067, 1069, + 1073, 1078, 1080, 1086, 1098, 1112, 1113, 1121, 1122, 1136, + 1137, 1153, 1154, 1161, 1170, 1179, 1188, 1201, 1214, 1227, + 1242, 1257, 1272, 1273, 1286, 1287, 1300, 1301, 1314, 1315, + 1332, 1333, 1350, 1351, 1368, 1369, 1388, 1389, 1408, 1409, + 1428, 1430, 1433, 1439, 1447, 1457, 1460, 1470, 1471, 1475, + 1476, 1478, 1479, 1482, 1483, 1486, 1494, 1501, 1510, 1516, + 1522, 1529, 1540, 1551, 1562, 1573, 1576, 1580, 1582, 1586, + 1589, 1592, 1595, 1599, 1603, 1607, 1611, 1615, 1619, 1623, + 1627, 1631, 1635, 1639, 1643, 1647, 1651, 1657, 1662, 1667, + 1672, 1677, 1682, 1687, 1692, 1697, 1702, 1707, 1714, 1719, + 1724, 1729, 1734, 1739, 1744, 1751, 1758, 1765, 1770, 1775, + 1780, 1785, 1790, 1795, 1800, 1805, 1810, 1815, 1820, 1827, + 1832, 1837, 1842, 1847, 1852, 1857, 1864, 1871, 1878, 1883, + 1885, 1887, 1889, 1891, 1893, 1895, 1897, 1899, 1905, 1910, + 1915, 1918, 1924, 1928, 1935, 1940, 1948, 1955, 1957, 1960, + 1963, 1967, 1971, 1983, 1993, 2001, 2009, 2011, 2015, 2017, + 2019, 2022, 2026, 2031, 2037, 2039, 2041, 2044, 2048, 2052, + 2058, 2063, 2065, 2067, 2071, 2078, 2080, 2082, 2086, 2090, + 2100, 2108, 2110, 2116, 2120, 2127, 2129, 2133, 2135, 2137, + 2141, 2148, 2150, 2152, 2159, 2164, 2169, 2174 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 145, 0, -1, 146, -1, 1, 6, -1, -1, 146, - 147, -1, 150, -1, 149, -1, 168, -1, 172, -1, - 177, -1, 181, -1, 182, -1, 183, -1, 186, -1, - 206, -1, 207, -1, 208, -1, 185, -1, 184, -1, - 180, -1, 121, -1, 121, 121, -1, 35, 134, 5, - 135, 6, -1, 35, 134, 5, 135, 148, 221, 6, - -1, 35, 134, 5, 140, 217, 135, 6, -1, 35, - 134, 5, 140, 217, 135, 148, 221, 6, -1, 4, - 5, 141, 151, 142, 6, -1, 81, 4, 136, 209, - 137, 6, -1, 82, 4, 136, 209, 137, 6, -1, - -1, 151, 154, -1, 151, 158, -1, 151, 161, -1, - 151, 163, -1, 151, 164, -1, 209, -1, 152, 140, - 209, -1, 209, -1, 153, 140, 209, -1, -1, -1, - 4, 155, 134, 152, 135, 156, 141, 153, 142, 6, - -1, 221, -1, 157, 140, 221, -1, -1, 83, 134, - 209, 140, 209, 140, 209, 135, 159, 141, 157, 142, - 6, -1, 221, -1, 160, 140, 221, -1, -1, 84, - 134, 209, 140, 209, 140, 209, 140, 209, 135, 162, - 141, 160, 142, 6, -1, 85, 141, 213, 142, 141, - 213, 142, 6, -1, 85, 141, 213, 142, 141, 213, - 142, 141, 213, 142, 141, 213, 142, 6, -1, -1, - 86, 165, 141, 153, 142, 6, -1, 7, -1, 114, - -1, 113, -1, 112, -1, 111, -1, 132, -1, 131, - -1, 4, 166, 209, 6, -1, 4, 136, 209, 137, - 166, 209, 6, -1, 4, 136, 141, 217, 142, 137, - 166, 214, 6, -1, 4, 136, 137, 7, 214, 6, - -1, 4, 136, 137, 114, 214, 6, -1, 4, 167, - 6, -1, 4, 136, 209, 137, 167, 6, -1, 4, - 7, 222, 6, -1, 4, 138, 4, 7, 222, 6, - -1, 4, 136, 209, 137, 138, 4, 7, 222, 6, - -1, 4, 138, 4, 166, 209, 6, -1, 4, 136, - 209, 137, 138, 4, 166, 209, 6, -1, 4, 138, - 4, 167, 6, -1, 4, 136, 209, 137, 138, 4, - 167, 6, -1, 4, 138, 93, 138, 4, 7, 218, - 6, -1, 4, 136, 209, 137, 138, 93, 138, 4, - 7, 218, 6, -1, 4, 138, 94, 7, 219, 6, - -1, 4, 136, 209, 137, 138, 94, 7, 219, 6, - -1, 4, 101, 7, 209, 6, -1, 101, 136, 209, - 137, 7, 4, 6, -1, 101, 136, 209, 137, 138, - 4, 7, 209, 6, -1, 101, 136, 209, 137, 138, - 4, 7, 222, 6, -1, 101, 136, 209, 137, 138, - 4, 7, 141, 217, 142, 6, -1, 65, 134, 4, - 135, 138, 4, 7, 209, 6, -1, 65, 134, 4, - 135, 138, 4, 7, 222, 6, -1, 209, -1, 222, - -1, -1, 96, 49, 141, 209, 142, -1, -1, 58, - 211, -1, 45, 134, 209, 135, 7, 211, 6, -1, - -1, 62, 45, 173, 134, 169, 135, 7, 214, 6, - -1, 54, 55, 214, 7, 209, 6, -1, 48, 134, - 209, 135, 7, 214, 6, -1, 52, 134, 209, 135, - 7, 214, 6, -1, 46, 134, 209, 135, 7, 214, - 171, 6, -1, 47, 134, 209, 135, 7, 214, 171, - 6, -1, 88, 134, 209, 135, 7, 214, 6, -1, - 89, 134, 209, 135, 7, 214, 6, -1, 90, 134, - 209, 135, 7, 214, 92, 214, 91, 209, 6, -1, - 48, 72, 134, 209, 135, 7, 214, 6, -1, -1, - 62, 48, 174, 134, 169, 135, 7, 214, 6, -1, - 58, 51, 134, 209, 135, 7, 214, 6, -1, 59, - 51, 134, 209, 135, 7, 214, 170, 6, -1, 12, - 13, 6, -1, 13, 51, 209, 6, -1, 56, 51, - 134, 209, 135, 7, 5, 5, 5, 6, -1, 49, - 134, 209, 135, 7, 214, 6, -1, 50, 134, 209, - 135, 7, 214, 6, -1, 51, 72, 134, 209, 135, - 7, 214, 6, -1, -1, 62, 51, 175, 134, 169, - 135, 7, 214, 6, -1, 63, 53, 134, 209, 135, - 7, 214, 6, -1, 63, 51, 134, 209, 135, 7, - 214, 4, 141, 213, 142, 6, -1, 63, 51, 134, - 209, 135, 7, 214, 6, -1, 63, 48, 134, 209, - 135, 7, 214, 6, -1, 61, 53, 134, 209, 135, - 7, 214, 6, -1, 53, 134, 209, 135, 7, 214, - 6, -1, -1, 62, 53, 176, 134, 169, 135, 7, - 214, 6, -1, 67, 211, 141, 178, 142, -1, 66, - 141, 211, 140, 211, 140, 209, 142, 141, 178, 142, - -1, 68, 211, 141, 178, 142, -1, 69, 141, 211, - 140, 209, 142, 141, 178, 142, -1, 4, 141, 178, - 142, -1, 78, 48, 141, 217, 142, 51, 141, 209, - 142, -1, 75, 48, 134, 209, 135, 141, 217, 142, - 6, -1, 179, -1, 177, -1, -1, 179, 172, -1, - 179, 45, 141, 217, 142, 6, -1, 179, 48, 141, - 217, 142, 6, -1, 179, 51, 141, 217, 142, 6, - -1, 179, 53, 141, 217, 142, 6, -1, 71, 58, - 134, 209, 135, 7, 214, 6, -1, 71, 58, 134, - 209, 135, 7, 141, 211, 140, 211, 140, 217, 142, - 6, -1, 71, 58, 134, 209, 135, 7, 141, 211, - 140, 211, 140, 211, 140, 217, 142, 6, -1, 71, - 49, 134, 209, 135, 7, 141, 211, 140, 217, 142, - 6, -1, 71, 4, 134, 209, 135, 7, 214, 6, - -1, 71, 4, 134, 209, 135, 7, 5, 6, -1, - 71, 4, 141, 209, 142, 6, -1, 71, 4, 134, - 209, 135, 7, 141, 211, 140, 211, 140, 217, 142, - 6, -1, 76, 141, 179, 142, -1, 76, 101, 136, - 209, 137, 6, -1, 76, 4, 136, 209, 137, 6, - -1, 76, 4, 6, -1, 76, 4, 4, 6, -1, - 93, 218, 141, 179, 142, -1, 105, 5, 6, -1, - 106, 5, 6, -1, 105, 141, 179, 142, -1, 106, - 141, 179, 142, -1, 4, 222, 6, -1, 4, 4, - 136, 209, 137, 221, 6, -1, 4, 4, 4, 136, - 209, 137, 6, -1, 4, 209, 6, -1, 65, 134, - 4, 135, 138, 4, 6, -1, 87, 4, 6, -1, - 100, 6, -1, 43, 6, -1, 40, 6, -1, 40, - 141, 209, 140, 209, 140, 209, 140, 209, 140, 209, - 140, 209, 142, 6, -1, 41, 6, -1, 44, 6, - -1, 95, 134, 209, 8, 209, 135, -1, 95, 134, - 209, 8, 209, 8, 209, 135, -1, 95, 4, 96, - 141, 209, 8, 209, 142, -1, 95, 4, 96, 141, - 209, 8, 209, 8, 209, 142, -1, 97, -1, 104, - 4, -1, 102, -1, 103, 4, 6, -1, 98, 134, - 209, 135, -1, 99, -1, 70, 211, 141, 179, 142, - -1, 70, 141, 211, 140, 211, 140, 209, 142, 141, - 179, 142, -1, 70, 141, 211, 140, 211, 140, 211, - 140, 209, 142, 141, 179, 142, -1, -1, 70, 211, - 141, 179, 187, 200, 142, -1, -1, 70, 141, 211, - 140, 211, 140, 209, 142, 141, 179, 188, 200, 142, - -1, -1, 70, 141, 211, 140, 211, 140, 211, 140, - 209, 142, 141, 179, 189, 200, 142, -1, -1, 70, - 141, 179, 190, 200, 142, -1, 70, 45, 141, 209, - 140, 211, 142, 6, -1, 70, 48, 141, 209, 140, - 211, 142, 6, -1, 70, 51, 141, 209, 140, 211, - 142, 6, -1, 70, 45, 141, 209, 140, 211, 140, - 211, 140, 209, 142, 6, -1, 70, 48, 141, 209, - 140, 211, 140, 211, 140, 209, 142, 6, -1, 70, - 51, 141, 209, 140, 211, 140, 211, 140, 209, 142, - 6, -1, 70, 45, 141, 209, 140, 211, 140, 211, - 140, 211, 140, 209, 142, 6, -1, 70, 48, 141, - 209, 140, 211, 140, 211, 140, 211, 140, 209, 142, - 6, -1, 70, 51, 141, 209, 140, 211, 140, 211, - 140, 211, 140, 209, 142, 6, -1, -1, 70, 45, - 141, 209, 140, 211, 142, 191, 141, 200, 142, 6, - -1, -1, 70, 48, 141, 209, 140, 211, 142, 192, - 141, 200, 142, 6, -1, -1, 70, 51, 141, 209, - 140, 211, 142, 193, 141, 200, 142, 6, -1, -1, - 70, 45, 141, 209, 140, 211, 140, 211, 140, 209, - 142, 194, 141, 200, 142, 6, -1, -1, 70, 48, - 141, 209, 140, 211, 140, 211, 140, 209, 142, 195, - 141, 200, 142, 6, -1, -1, 70, 51, 141, 209, - 140, 211, 140, 211, 140, 209, 142, 196, 141, 200, - 142, 6, -1, -1, 70, 45, 141, 209, 140, 211, - 140, 211, 140, 211, 140, 209, 142, 197, 141, 200, - 142, 6, -1, -1, 70, 48, 141, 209, 140, 211, - 140, 211, 140, 211, 140, 209, 142, 198, 141, 200, - 142, 6, -1, -1, 70, 51, 141, 209, 140, 211, - 140, 211, 140, 211, 140, 209, 142, 199, 141, 200, - 142, 6, -1, 201, -1, 200, 201, -1, 79, 141, - 209, 142, 6, -1, 79, 141, 214, 140, 214, 142, - 6, -1, 79, 141, 214, 140, 214, 140, 214, 142, - 6, -1, 73, 6, -1, 80, 134, 209, 135, 7, - 214, 64, 209, 6, -1, -1, 64, 4, 209, -1, - -1, 4, -1, -1, 7, 214, -1, -1, 7, 209, - -1, 60, 48, 215, 7, 209, 202, 6, -1, 60, - 51, 215, 204, 203, 6, -1, 57, 51, 141, 209, - 142, 7, 214, 6, -1, 60, 53, 215, 204, 6, - -1, 73, 51, 215, 205, 6, -1, 74, 51, 214, - 7, 209, 6, -1, 45, 141, 217, 142, 96, 51, - 141, 209, 142, 6, -1, 48, 141, 217, 142, 96, - 51, 141, 209, 142, 6, -1, 48, 141, 217, 142, - 96, 53, 141, 209, 142, 6, -1, 51, 141, 217, - 142, 96, 53, 141, 209, 142, 6, -1, 77, 6, - -1, 77, 4, 6, -1, 210, -1, 134, 209, 135, - -1, 125, 209, -1, 124, 209, -1, 129, 209, -1, - 209, 125, 209, -1, 209, 124, 209, -1, 209, 126, - 209, -1, 209, 127, 209, -1, 209, 128, 209, -1, - 209, 133, 209, -1, 209, 120, 209, -1, 209, 121, - 209, -1, 209, 123, 209, -1, 209, 122, 209, -1, - 209, 119, 209, -1, 209, 118, 209, -1, 209, 117, - 209, -1, 209, 116, 209, -1, 209, 115, 209, 8, - 209, -1, 14, 134, 209, 135, -1, 15, 134, 209, - 135, -1, 16, 134, 209, 135, -1, 17, 134, 209, - 135, -1, 18, 134, 209, 135, -1, 19, 134, 209, - 135, -1, 20, 134, 209, 135, -1, 21, 134, 209, - 135, -1, 22, 134, 209, 135, -1, 24, 134, 209, - 135, -1, 25, 134, 209, 140, 209, 135, -1, 26, - 134, 209, 135, -1, 27, 134, 209, 135, -1, 28, - 134, 209, 135, -1, 29, 134, 209, 135, -1, 30, - 134, 209, 135, -1, 31, 134, 209, 135, -1, 32, - 134, 209, 140, 209, 135, -1, 33, 134, 209, 140, - 209, 135, -1, 34, 134, 209, 140, 209, 135, -1, - 23, 134, 209, 135, -1, 14, 136, 209, 137, -1, - 15, 136, 209, 137, -1, 16, 136, 209, 137, -1, - 17, 136, 209, 137, -1, 18, 136, 209, 137, -1, - 19, 136, 209, 137, -1, 20, 136, 209, 137, -1, - 21, 136, 209, 137, -1, 22, 136, 209, 137, -1, - 24, 136, 209, 137, -1, 25, 136, 209, 140, 209, - 137, -1, 26, 136, 209, 137, -1, 27, 136, 209, - 137, -1, 28, 136, 209, 137, -1, 29, 136, 209, - 137, -1, 30, 136, 209, 137, -1, 31, 136, 209, - 137, -1, 32, 136, 209, 140, 209, 137, -1, 33, - 136, 209, 140, 209, 137, -1, 34, 136, 209, 140, - 209, 137, -1, 23, 136, 209, 137, -1, 3, -1, - 9, -1, 10, -1, 11, -1, 108, -1, 109, -1, - 110, -1, 4, -1, 4, 143, 141, 209, 142, -1, - 4, 136, 209, 137, -1, 139, 4, 136, 137, -1, - 4, 167, -1, 4, 136, 209, 137, 167, -1, 4, - 138, 4, -1, 4, 136, 209, 137, 138, 4, -1, - 4, 138, 4, 167, -1, 4, 136, 209, 137, 138, - 4, 167, -1, 107, 134, 5, 140, 209, 135, -1, - 212, -1, 125, 211, -1, 124, 211, -1, 211, 125, - 211, -1, 211, 124, 211, -1, 141, 209, 140, 209, - 140, 209, 140, 209, 140, 209, 142, -1, 141, 209, - 140, 209, 140, 209, 140, 209, 142, -1, 141, 209, - 140, 209, 140, 209, 142, -1, 134, 209, 140, 209, - 140, 209, 135, -1, 214, -1, 213, 140, 214, -1, - 209, -1, 216, -1, 141, 142, -1, 141, 217, 142, - -1, 125, 141, 217, 142, -1, 209, 126, 141, 217, - 142, -1, 214, -1, 5, -1, 125, 216, -1, 209, - 126, 216, -1, 209, 8, 209, -1, 209, 8, 209, - 8, 209, -1, 45, 141, 209, 142, -1, 177, -1, - 186, -1, 4, 136, 137, -1, 4, 136, 141, 217, - 142, 137, -1, 209, -1, 216, -1, 217, 140, 209, - -1, 217, 140, 216, -1, 141, 209, 140, 209, 140, - 209, 140, 209, 142, -1, 141, 209, 140, 209, 140, - 209, 142, -1, 4, -1, 4, 138, 93, 138, 4, - -1, 141, 220, 142, -1, 4, 136, 209, 137, 138, - 94, -1, 218, -1, 220, 140, 218, -1, 222, -1, - 4, -1, 4, 138, 4, -1, 4, 136, 209, 137, - 138, 4, -1, 5, -1, 42, -1, 37, 134, 221, - 140, 221, 135, -1, 38, 134, 221, 135, -1, 39, - 134, 221, 135, -1, 36, 134, 221, 135, -1, 36, - 134, 221, 140, 217, 135, -1 + 147, 0, -1, 148, -1, 1, 6, -1, -1, 148, + 149, -1, 152, -1, 151, -1, 170, -1, 174, -1, + 179, -1, 183, -1, 184, -1, 185, -1, 188, -1, + 208, -1, 209, -1, 210, -1, 187, -1, 186, -1, + 182, -1, 123, -1, 123, 123, -1, 35, 136, 5, + 137, 6, -1, 35, 136, 5, 137, 150, 223, 6, + -1, 35, 136, 5, 142, 219, 137, 6, -1, 35, + 136, 5, 142, 219, 137, 150, 223, 6, -1, 4, + 5, 143, 153, 144, 6, -1, 83, 4, 138, 211, + 139, 6, -1, 84, 4, 138, 211, 139, 6, -1, + -1, 153, 156, -1, 153, 160, -1, 153, 163, -1, + 153, 165, -1, 153, 166, -1, 211, -1, 154, 142, + 211, -1, 211, -1, 155, 142, 211, -1, -1, -1, + 4, 157, 136, 154, 137, 158, 143, 155, 144, 6, + -1, 223, -1, 159, 142, 223, -1, -1, 85, 136, + 211, 142, 211, 142, 211, 137, 161, 143, 159, 144, + 6, -1, 223, -1, 162, 142, 223, -1, -1, 86, + 136, 211, 142, 211, 142, 211, 142, 211, 137, 164, + 143, 162, 144, 6, -1, 87, 143, 215, 144, 143, + 215, 144, 6, -1, 87, 143, 215, 144, 143, 215, + 144, 143, 215, 144, 143, 215, 144, 6, -1, -1, + 88, 167, 143, 155, 144, 6, -1, 7, -1, 116, + -1, 115, -1, 114, -1, 113, -1, 134, -1, 133, + -1, 4, 168, 211, 6, -1, 4, 138, 211, 139, + 168, 211, 6, -1, 4, 138, 143, 219, 144, 139, + 168, 216, 6, -1, 4, 138, 139, 7, 216, 6, + -1, 4, 138, 139, 116, 216, 6, -1, 4, 169, + 6, -1, 4, 138, 211, 139, 169, 6, -1, 4, + 7, 224, 6, -1, 4, 140, 4, 7, 224, 6, + -1, 4, 138, 211, 139, 140, 4, 7, 224, 6, + -1, 4, 140, 4, 168, 211, 6, -1, 4, 138, + 211, 139, 140, 4, 168, 211, 6, -1, 4, 140, + 4, 169, 6, -1, 4, 138, 211, 139, 140, 4, + 169, 6, -1, 4, 140, 95, 140, 4, 7, 220, + 6, -1, 4, 138, 211, 139, 140, 95, 140, 4, + 7, 220, 6, -1, 4, 140, 96, 7, 221, 6, + -1, 4, 138, 211, 139, 140, 96, 7, 221, 6, + -1, 4, 103, 7, 211, 6, -1, 103, 138, 211, + 139, 7, 4, 6, -1, 103, 138, 211, 139, 140, + 4, 7, 211, 6, -1, 103, 138, 211, 139, 140, + 4, 7, 224, 6, -1, 103, 138, 211, 139, 140, + 4, 7, 143, 219, 144, 6, -1, 65, 136, 4, + 137, 140, 4, 7, 211, 6, -1, 65, 136, 4, + 137, 140, 4, 7, 224, 6, -1, 211, -1, 224, + -1, -1, 98, 49, 143, 211, 144, -1, -1, 58, + 213, -1, 45, 136, 211, 137, 7, 213, 6, -1, + -1, 62, 45, 175, 136, 171, 137, 7, 216, 6, + -1, 54, 55, 216, 7, 211, 6, -1, 48, 136, + 211, 137, 7, 216, 6, -1, 66, 48, 216, 6, + -1, 52, 136, 211, 137, 7, 216, 6, -1, 46, + 136, 211, 137, 7, 216, 173, 6, -1, 47, 136, + 211, 137, 7, 216, 173, 6, -1, 90, 136, 211, + 137, 7, 216, 6, -1, 91, 136, 211, 137, 7, + 216, 6, -1, 92, 136, 211, 137, 7, 216, 94, + 216, 93, 211, 6, -1, 48, 74, 136, 211, 137, + 7, 216, 6, -1, -1, 62, 48, 176, 136, 171, + 137, 7, 216, 6, -1, 58, 51, 136, 211, 137, + 7, 216, 6, -1, 59, 51, 136, 211, 137, 7, + 216, 172, 6, -1, 12, 13, 6, -1, 13, 51, + 211, 6, -1, 56, 51, 136, 211, 137, 7, 5, + 5, 5, 6, -1, 49, 136, 211, 137, 7, 216, + 6, -1, 50, 136, 211, 137, 7, 216, 6, -1, + 51, 74, 136, 211, 137, 7, 216, 6, -1, -1, + 62, 51, 177, 136, 171, 137, 7, 216, 6, -1, + 63, 53, 136, 211, 137, 7, 216, 6, -1, 63, + 51, 136, 211, 137, 7, 216, 4, 143, 215, 144, + 6, -1, 63, 51, 136, 211, 137, 7, 216, 6, + -1, 63, 48, 136, 211, 137, 7, 216, 6, -1, + 61, 53, 136, 211, 137, 7, 216, 6, -1, 53, + 136, 211, 137, 7, 216, 6, -1, 67, 136, 5, + 142, 216, 142, 5, 137, 6, -1, -1, 62, 53, + 178, 136, 171, 137, 7, 216, 6, -1, 69, 213, + 143, 180, 144, -1, 68, 143, 213, 142, 213, 142, + 211, 144, 143, 180, 144, -1, 70, 213, 143, 180, + 144, -1, 71, 143, 213, 142, 211, 144, 143, 180, + 144, -1, 4, 143, 180, 144, -1, 80, 48, 143, + 219, 144, 51, 143, 211, 144, -1, 77, 48, 136, + 211, 137, 143, 219, 144, 6, -1, 181, -1, 179, + -1, -1, 181, 174, -1, 181, 45, 143, 219, 144, + 6, -1, 181, 48, 143, 219, 144, 6, -1, 181, + 51, 143, 219, 144, 6, -1, 181, 53, 143, 219, + 144, 6, -1, 73, 58, 136, 211, 137, 7, 216, + 6, -1, 73, 58, 136, 211, 137, 7, 143, 213, + 142, 213, 142, 219, 144, 6, -1, 73, 58, 136, + 211, 137, 7, 143, 213, 142, 213, 142, 213, 142, + 219, 144, 6, -1, 73, 49, 136, 211, 137, 7, + 143, 213, 142, 219, 144, 6, -1, 73, 4, 136, + 211, 137, 7, 216, 6, -1, 73, 4, 136, 211, + 137, 7, 5, 6, -1, 73, 4, 143, 211, 144, + 6, -1, 73, 4, 136, 211, 137, 7, 143, 213, + 142, 213, 142, 219, 144, 6, -1, 78, 143, 181, + 144, -1, 78, 103, 138, 211, 139, 6, -1, 78, + 4, 138, 211, 139, 6, -1, 78, 4, 6, -1, + 78, 4, 4, 6, -1, 95, 220, 143, 181, 144, + -1, 107, 5, 6, -1, 108, 5, 6, -1, 107, + 143, 181, 144, -1, 108, 143, 181, 144, -1, 4, + 224, 6, -1, 4, 4, 138, 211, 139, 223, 6, + -1, 4, 4, 4, 138, 211, 139, 6, -1, 4, + 211, 6, -1, 65, 136, 4, 137, 140, 4, 6, + -1, 89, 4, 6, -1, 102, 6, -1, 43, 6, + -1, 40, 6, -1, 40, 143, 211, 142, 211, 142, + 211, 142, 211, 142, 211, 142, 211, 144, 6, -1, + 41, 6, -1, 44, 6, -1, 97, 136, 211, 8, + 211, 137, -1, 97, 136, 211, 8, 211, 8, 211, + 137, -1, 97, 4, 98, 143, 211, 8, 211, 144, + -1, 97, 4, 98, 143, 211, 8, 211, 8, 211, + 144, -1, 99, -1, 106, 4, -1, 104, -1, 105, + 4, 6, -1, 100, 136, 211, 137, -1, 101, -1, + 72, 213, 143, 181, 144, -1, 72, 143, 213, 142, + 213, 142, 211, 144, 143, 181, 144, -1, 72, 143, + 213, 142, 213, 142, 213, 142, 211, 144, 143, 181, + 144, -1, -1, 72, 213, 143, 181, 189, 202, 144, + -1, -1, 72, 143, 213, 142, 213, 142, 211, 144, + 143, 181, 190, 202, 144, -1, -1, 72, 143, 213, + 142, 213, 142, 213, 142, 211, 144, 143, 181, 191, + 202, 144, -1, -1, 72, 143, 181, 192, 202, 144, + -1, 72, 45, 143, 211, 142, 213, 144, 6, -1, + 72, 48, 143, 211, 142, 213, 144, 6, -1, 72, + 51, 143, 211, 142, 213, 144, 6, -1, 72, 45, + 143, 211, 142, 213, 142, 213, 142, 211, 144, 6, + -1, 72, 48, 143, 211, 142, 213, 142, 213, 142, + 211, 144, 6, -1, 72, 51, 143, 211, 142, 213, + 142, 213, 142, 211, 144, 6, -1, 72, 45, 143, + 211, 142, 213, 142, 213, 142, 213, 142, 211, 144, + 6, -1, 72, 48, 143, 211, 142, 213, 142, 213, + 142, 213, 142, 211, 144, 6, -1, 72, 51, 143, + 211, 142, 213, 142, 213, 142, 213, 142, 211, 144, + 6, -1, -1, 72, 45, 143, 211, 142, 213, 144, + 193, 143, 202, 144, 6, -1, -1, 72, 48, 143, + 211, 142, 213, 144, 194, 143, 202, 144, 6, -1, + -1, 72, 51, 143, 211, 142, 213, 144, 195, 143, + 202, 144, 6, -1, -1, 72, 45, 143, 211, 142, + 213, 142, 213, 142, 211, 144, 196, 143, 202, 144, + 6, -1, -1, 72, 48, 143, 211, 142, 213, 142, + 213, 142, 211, 144, 197, 143, 202, 144, 6, -1, + -1, 72, 51, 143, 211, 142, 213, 142, 213, 142, + 211, 144, 198, 143, 202, 144, 6, -1, -1, 72, + 45, 143, 211, 142, 213, 142, 213, 142, 213, 142, + 211, 144, 199, 143, 202, 144, 6, -1, -1, 72, + 48, 143, 211, 142, 213, 142, 213, 142, 213, 142, + 211, 144, 200, 143, 202, 144, 6, -1, -1, 72, + 51, 143, 211, 142, 213, 142, 213, 142, 213, 142, + 211, 144, 201, 143, 202, 144, 6, -1, 203, -1, + 202, 203, -1, 81, 143, 211, 144, 6, -1, 81, + 143, 216, 142, 216, 144, 6, -1, 81, 143, 216, + 142, 216, 142, 216, 144, 6, -1, 75, 6, -1, + 82, 136, 211, 137, 7, 216, 64, 211, 6, -1, + -1, 64, 4, 211, -1, -1, 4, -1, -1, 7, + 216, -1, -1, 7, 211, -1, 60, 48, 217, 7, + 211, 204, 6, -1, 60, 51, 217, 206, 205, 6, + -1, 57, 51, 143, 211, 144, 7, 216, 6, -1, + 60, 53, 217, 206, 6, -1, 75, 51, 217, 207, + 6, -1, 76, 51, 216, 7, 211, 6, -1, 45, + 143, 219, 144, 98, 51, 143, 211, 144, 6, -1, + 48, 143, 219, 144, 98, 51, 143, 211, 144, 6, + -1, 48, 143, 219, 144, 98, 53, 143, 211, 144, + 6, -1, 51, 143, 219, 144, 98, 53, 143, 211, + 144, 6, -1, 79, 6, -1, 79, 4, 6, -1, + 212, -1, 136, 211, 137, -1, 127, 211, -1, 126, + 211, -1, 131, 211, -1, 211, 127, 211, -1, 211, + 126, 211, -1, 211, 128, 211, -1, 211, 129, 211, + -1, 211, 130, 211, -1, 211, 135, 211, -1, 211, + 122, 211, -1, 211, 123, 211, -1, 211, 125, 211, + -1, 211, 124, 211, -1, 211, 121, 211, -1, 211, + 120, 211, -1, 211, 119, 211, -1, 211, 118, 211, + -1, 211, 117, 211, 8, 211, -1, 14, 136, 211, + 137, -1, 15, 136, 211, 137, -1, 16, 136, 211, + 137, -1, 17, 136, 211, 137, -1, 18, 136, 211, + 137, -1, 19, 136, 211, 137, -1, 20, 136, 211, + 137, -1, 21, 136, 211, 137, -1, 22, 136, 211, + 137, -1, 24, 136, 211, 137, -1, 25, 136, 211, + 142, 211, 137, -1, 26, 136, 211, 137, -1, 27, + 136, 211, 137, -1, 28, 136, 211, 137, -1, 29, + 136, 211, 137, -1, 30, 136, 211, 137, -1, 31, + 136, 211, 137, -1, 32, 136, 211, 142, 211, 137, + -1, 33, 136, 211, 142, 211, 137, -1, 34, 136, + 211, 142, 211, 137, -1, 23, 136, 211, 137, -1, + 14, 138, 211, 139, -1, 15, 138, 211, 139, -1, + 16, 138, 211, 139, -1, 17, 138, 211, 139, -1, + 18, 138, 211, 139, -1, 19, 138, 211, 139, -1, + 20, 138, 211, 139, -1, 21, 138, 211, 139, -1, + 22, 138, 211, 139, -1, 24, 138, 211, 139, -1, + 25, 138, 211, 142, 211, 139, -1, 26, 138, 211, + 139, -1, 27, 138, 211, 139, -1, 28, 138, 211, + 139, -1, 29, 138, 211, 139, -1, 30, 138, 211, + 139, -1, 31, 138, 211, 139, -1, 32, 138, 211, + 142, 211, 139, -1, 33, 138, 211, 142, 211, 139, + -1, 34, 138, 211, 142, 211, 139, -1, 23, 138, + 211, 139, -1, 3, -1, 9, -1, 10, -1, 11, + -1, 110, -1, 111, -1, 112, -1, 4, -1, 4, + 145, 143, 211, 144, -1, 4, 138, 211, 139, -1, + 141, 4, 138, 139, -1, 4, 169, -1, 4, 138, + 211, 139, 169, -1, 4, 140, 4, -1, 4, 138, + 211, 139, 140, 4, -1, 4, 140, 4, 169, -1, + 4, 138, 211, 139, 140, 4, 169, -1, 109, 136, + 5, 142, 211, 137, -1, 214, -1, 127, 213, -1, + 126, 213, -1, 213, 127, 213, -1, 213, 126, 213, + -1, 143, 211, 142, 211, 142, 211, 142, 211, 142, + 211, 144, -1, 143, 211, 142, 211, 142, 211, 142, + 211, 144, -1, 143, 211, 142, 211, 142, 211, 144, + -1, 136, 211, 142, 211, 142, 211, 137, -1, 216, + -1, 215, 142, 216, -1, 211, -1, 218, -1, 143, + 144, -1, 143, 219, 144, -1, 127, 143, 219, 144, + -1, 211, 128, 143, 219, 144, -1, 216, -1, 5, + -1, 127, 218, -1, 211, 128, 218, -1, 211, 8, + 211, -1, 211, 8, 211, 8, 211, -1, 45, 143, + 211, 144, -1, 179, -1, 188, -1, 4, 138, 139, + -1, 4, 138, 143, 219, 144, 139, -1, 211, -1, + 218, -1, 219, 142, 211, -1, 219, 142, 218, -1, + 143, 211, 142, 211, 142, 211, 142, 211, 144, -1, + 143, 211, 142, 211, 142, 211, 144, -1, 4, -1, + 4, 140, 95, 140, 4, -1, 143, 222, 144, -1, + 4, 138, 211, 139, 140, 96, -1, 220, -1, 222, + 142, 220, -1, 224, -1, 4, -1, 4, 140, 4, + -1, 4, 138, 211, 139, 140, 4, -1, 5, -1, + 42, -1, 37, 136, 223, 142, 223, 137, -1, 38, + 136, 223, 137, -1, 39, 136, 223, 137, -1, 36, + 136, 223, 137, -1, 36, 136, 223, 142, 219, 137, + -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -997,35 +1004,35 @@ static const yytype_uint16 yyrline[] = 565, 566, 573, 595, 622, 662, 672, 680, 688, 700, 709, 715, 724, 742, 760, 769, 781, 786, 794, 814, 837, 844, 850, 870, 891, 917, 929, 946, 950, 961, - 964, 977, 980, 990, 1014, 1013, 1033, 1055, 1073, 1091, - 1121, 1151, 1169, 1187, 1213, 1231, 1230, 1253, 1271, 1310, - 1316, 1322, 1329, 1354, 1379, 1396, 1395, 1415, 1432, 1460, - 1477, 1497, 1515, 1533, 1532, 1557, 1562, 1567, 1572, 1577, - 1597, 1603, 1614, 1615, 1620, 1623, 1627, 1650, 1673, 1696, - 1724, 1745, 1766, 1788, 1808, 1902, 1921, 1935, 2044, 2053, - 2057, 2072, 2099, 2116, 2130, 2136, 2142, 2151, 2165, 2213, - 2231, 2246, 2265, 2277, 2301, 2305, 2312, 2318, 2323, 2329, - 2338, 2355, 2372, 2391, 2410, 2438, 2446, 2452, 2459, 2463, - 2472, 2480, 2488, 2497, 2496, 2509, 2508, 2521, 2520, 2533, - 2532, 2545, 2552, 2559, 2566, 2573, 2580, 2587, 2594, 2601, - 2609, 2608, 2620, 2619, 2631, 2630, 2642, 2641, 2653, 2652, - 2664, 2663, 2675, 2674, 2686, 2685, 2697, 2696, 2711, 2714, - 2720, 2729, 2749, 2772, 2776, 2800, 2803, 2819, 2822, 2835, - 2838, 2844, 2847, 2854, 2910, 2980, 2985, 3052, 3095, 3121, - 3144, 3167, 3170, 3179, 3183, 3199, 3200, 3201, 3202, 3203, - 3204, 3205, 3206, 3207, 3214, 3215, 3216, 3217, 3218, 3219, - 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, - 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, - 3240, 3241, 3242, 3243, 3244, 3245, 3247, 3248, 3249, 3250, - 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, - 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3276, 3277, 3278, - 3279, 3280, 3281, 3282, 3286, 3299, 3311, 3326, 3336, 3346, - 3364, 3369, 3374, 3384, 3394, 3402, 3406, 3410, 3414, 3418, - 3425, 3429, 3433, 3437, 3444, 3449, 3456, 3461, 3465, 3470, - 3474, 3482, 3493, 3497, 3509, 3517, 3525, 3532, 3543, 3563, - 3573, 3583, 3593, 3613, 3618, 3622, 3626, 3638, 3642, 3654, - 3661, 3671, 3675, 3690, 3695, 3702, 3706, 3719, 3727, 3738, - 3742, 3750, 3758, 3772, 3786, 3790 + 964, 977, 980, 990, 1014, 1013, 1033, 1055, 1073, 1095, + 1113, 1143, 1173, 1191, 1209, 1235, 1253, 1252, 1275, 1293, + 1332, 1338, 1344, 1351, 1376, 1401, 1418, 1417, 1437, 1454, + 1482, 1499, 1519, 1537, 1555, 1568, 1567, 1593, 1598, 1603, + 1608, 1613, 1633, 1639, 1650, 1651, 1656, 1659, 1663, 1686, + 1709, 1732, 1760, 1781, 1802, 1824, 1844, 1938, 1957, 1971, + 2080, 2089, 2093, 2108, 2135, 2152, 2166, 2172, 2178, 2187, + 2201, 2249, 2267, 2282, 2301, 2313, 2337, 2341, 2348, 2354, + 2359, 2365, 2374, 2391, 2408, 2427, 2446, 2474, 2482, 2488, + 2495, 2499, 2508, 2516, 2524, 2533, 2532, 2545, 2544, 2557, + 2556, 2569, 2568, 2581, 2588, 2595, 2602, 2609, 2616, 2623, + 2630, 2637, 2645, 2644, 2656, 2655, 2667, 2666, 2678, 2677, + 2689, 2688, 2700, 2699, 2711, 2710, 2722, 2721, 2733, 2732, + 2747, 2750, 2756, 2765, 2785, 2808, 2812, 2836, 2839, 2855, + 2858, 2871, 2874, 2880, 2883, 2890, 2946, 3016, 3021, 3088, + 3131, 3157, 3180, 3203, 3206, 3215, 3219, 3235, 3236, 3237, + 3238, 3239, 3240, 3241, 3242, 3243, 3250, 3251, 3252, 3253, + 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, + 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, + 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3283, 3284, + 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, + 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3312, + 3313, 3314, 3315, 3316, 3317, 3318, 3322, 3335, 3347, 3362, + 3372, 3382, 3400, 3405, 3410, 3420, 3430, 3438, 3442, 3446, + 3450, 3454, 3461, 3465, 3469, 3473, 3480, 3485, 3492, 3497, + 3501, 3506, 3510, 3518, 3529, 3533, 3545, 3553, 3561, 3568, + 3579, 3599, 3609, 3619, 3629, 3649, 3654, 3658, 3662, 3674, + 3678, 3690, 3697, 3707, 3711, 3726, 3731, 3738, 3742, 3755, + 3763, 3774, 3778, 3786, 3794, 3808, 3822, 3826 }; #endif @@ -1044,29 +1051,30 @@ static const char *const yytname[] = "tPoint", "tCircle", "tEllipse", "tLine", "tSphere", "tPolarSphere", "tSurface", "tSpline", "tVolume", "tCharacteristic", "tLength", "tParametric", "tElliptic", "tPlane", "tRuled", "tTransfinite", - "tComplex", "tPhysical", "tCompound", "tUsing", "tPlugin", "tRotate", - "tTranslate", "tSymmetry", "tDilate", "tExtrude", "tLevelset", "tLoop", - "tRecombine", "tSmoother", "tSplit", "tDelete", "tCoherence", - "tIntersect", "tLayers", "tHole", "tAlias", "tAliasWithOptions", - "tText2D", "tText3D", "tInterpolationScheme", "tTime", "tCombine", - "tBSpline", "tBezier", "tNurbs", "tOrder", "tKnots", "tColor", - "tColorTable", "tFor", "tIn", "tEndFor", "tIf", "tEndIf", "tExit", - "tField", "tReturn", "tCall", "tFunction", "tShow", "tHide", "tGetValue", - "tGMSH_MAJOR_VERSION", "tGMSH_MINOR_VERSION", "tGMSH_PATCH_VERSION", - "tAFFECTDIVIDE", "tAFFECTTIMES", "tAFFECTMINUS", "tAFFECTPLUS", "'?'", - "tOR", "tAND", "tNOTEQUAL", "tEQUAL", "'<'", "'>'", "tGREATEROREQUAL", - "tLESSOREQUAL", "'+'", "'-'", "'*'", "'/'", "'%'", "'!'", "UNARYPREC", - "tMINUSMINUS", "tPLUSPLUS", "'^'", "'('", "')'", "'['", "']'", "'.'", - "'#'", "','", "'{'", "'}'", "'~'", "$accept", "All", "GeoFormatItems", - "GeoFormatItem", "SendToFile", "Printf", "View", "Views", - "ElementCoords", "ElementValues", "Element", "@1", "@2", "Text2DValues", - "Text2D", "@3", "Text3DValues", "Text3D", "@4", "InterpolationMatrix", - "Time", "@5", "NumericAffectation", "NumericIncrement", "Affectation", - "PhysicalId", "InSphereCenter", "CircleOptions", "Shape", "@6", "@7", - "@8", "@9", "Transform", "MultipleShape", "ListOfShapes", "LevelSet", - "Delete", "Colorify", "Visibility", "Command", "Loop", "Extrude", "@10", - "@11", "@12", "@13", "@14", "@15", "@16", "@17", "@18", "@19", "@20", - "@21", "@22", "ExtrudeParameters", "ExtrudeParameter", "TransfiniteType", + "tComplex", "tPhysical", "tCompound", "tUsing", "tPlugin", + "tDegenerated", "tOCCShape", "tRotate", "tTranslate", "tSymmetry", + "tDilate", "tExtrude", "tLevelset", "tLoop", "tRecombine", "tSmoother", + "tSplit", "tDelete", "tCoherence", "tIntersect", "tLayers", "tHole", + "tAlias", "tAliasWithOptions", "tText2D", "tText3D", + "tInterpolationScheme", "tTime", "tCombine", "tBSpline", "tBezier", + "tNurbs", "tOrder", "tKnots", "tColor", "tColorTable", "tFor", "tIn", + "tEndFor", "tIf", "tEndIf", "tExit", "tField", "tReturn", "tCall", + "tFunction", "tShow", "tHide", "tGetValue", "tGMSH_MAJOR_VERSION", + "tGMSH_MINOR_VERSION", "tGMSH_PATCH_VERSION", "tAFFECTDIVIDE", + "tAFFECTTIMES", "tAFFECTMINUS", "tAFFECTPLUS", "'?'", "tOR", "tAND", + "tNOTEQUAL", "tEQUAL", "'<'", "'>'", "tGREATEROREQUAL", "tLESSOREQUAL", + "'+'", "'-'", "'*'", "'/'", "'%'", "'!'", "UNARYPREC", "tMINUSMINUS", + "tPLUSPLUS", "'^'", "'('", "')'", "'['", "']'", "'.'", "'#'", "','", + "'{'", "'}'", "'~'", "$accept", "All", "GeoFormatItems", "GeoFormatItem", + "SendToFile", "Printf", "View", "Views", "ElementCoords", + "ElementValues", "Element", "@1", "@2", "Text2DValues", "Text2D", "@3", + "Text3DValues", "Text3D", "@4", "InterpolationMatrix", "Time", "@5", + "NumericAffectation", "NumericIncrement", "Affectation", "PhysicalId", + "InSphereCenter", "CircleOptions", "Shape", "@6", "@7", "@8", "@9", + "Transform", "MultipleShape", "ListOfShapes", "LevelSet", "Delete", + "Colorify", "Visibility", "Command", "Loop", "Extrude", "@10", "@11", + "@12", "@13", "@14", "@15", "@16", "@17", "@18", "@19", "@20", "@21", + "@22", "ExtrudeParameters", "ExtrudeParameter", "TransfiniteType", "TransfiniteArrangement", "TransfiniteCorners", "RecombineAngle", "Transfinite", "Embedding", "Coherence", "FExpr", "FExpr_Single", "VExpr", "VExpr_Single", "RecursiveListOfListOfDouble", "ListOfDouble", @@ -1091,54 +1099,54 @@ static const yytype_uint16 yytoknum[] = 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 63, 370, 371, 372, 373, - 60, 62, 374, 375, 43, 45, 42, 47, 37, 33, - 376, 377, 378, 94, 40, 41, 91, 93, 46, 35, - 44, 123, 125, 126 + 365, 366, 367, 368, 369, 370, 371, 63, 372, 373, + 374, 375, 60, 62, 376, 377, 43, 45, 42, 47, + 37, 33, 378, 379, 380, 94, 40, 41, 91, 93, + 46, 35, 44, 123, 125, 126 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 144, 145, 145, 146, 146, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 148, 148, 149, 149, 149, 149, 150, 150, 150, - 151, 151, 151, 151, 151, 151, 152, 152, 153, 153, - 155, 156, 154, 157, 157, 159, 158, 160, 160, 162, - 161, 163, 163, 165, 164, 166, 166, 166, 166, 166, - 167, 167, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 169, 169, 170, - 170, 171, 171, 172, 173, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 174, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 175, 172, 172, 172, 172, - 172, 172, 172, 176, 172, 177, 177, 177, 177, 177, - 177, 177, 178, 178, 179, 179, 179, 179, 179, 179, - 180, 180, 180, 180, 180, 180, 180, 180, 181, 181, - 181, 181, 181, 182, 183, 183, 183, 183, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, - 186, 186, 186, 187, 186, 188, 186, 189, 186, 190, + 0, 146, 147, 147, 148, 148, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 150, 150, 151, 151, 151, 151, 152, 152, 152, + 153, 153, 153, 153, 153, 153, 154, 154, 155, 155, + 157, 158, 156, 159, 159, 161, 160, 162, 162, 164, + 163, 165, 165, 167, 166, 168, 168, 168, 168, 168, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 171, 171, 172, + 172, 173, 173, 174, 175, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 176, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 177, 174, 174, 174, + 174, 174, 174, 174, 174, 178, 174, 179, 179, 179, + 179, 179, 179, 179, 180, 180, 181, 181, 181, 181, + 181, 181, 182, 182, 182, 182, 182, 182, 182, 182, + 183, 183, 183, 183, 183, 184, 185, 185, 185, 185, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - 191, 186, 192, 186, 193, 186, 194, 186, 195, 186, - 196, 186, 197, 186, 198, 186, 199, 186, 200, 200, - 201, 201, 201, 201, 201, 202, 202, 203, 203, 204, - 204, 205, 205, 206, 206, 206, 206, 206, 206, 207, - 207, 207, 207, 208, 208, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 210, 210, 210, - 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 211, 211, 211, 211, 211, - 212, 212, 212, 212, 213, 213, 214, 214, 214, 214, - 214, 214, 215, 215, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 217, 217, 217, 217, 218, 218, 218, - 218, 219, 219, 220, 220, 221, 221, 221, 221, 222, - 222, 222, 222, 222, 222, 222 + 186, 186, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 188, 188, 188, 189, 188, 190, 188, 191, + 188, 192, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 193, 188, 194, 188, 195, 188, 196, 188, + 197, 188, 198, 188, 199, 188, 200, 188, 201, 188, + 202, 202, 203, 203, 203, 203, 203, 204, 204, 205, + 205, 206, 206, 207, 207, 208, 208, 208, 208, 208, + 208, 209, 209, 209, 209, 210, 210, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 212, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 213, 213, 213, + 213, 213, 214, 214, 214, 214, 215, 215, 216, 216, + 216, 216, 216, 216, 217, 217, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 219, 219, 219, 219, 220, + 220, 220, 220, 221, 221, 222, 222, 223, 223, 223, + 223, 224, 224, 224, 224, 224, 224, 224 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1153,35 +1161,35 @@ static const yytype_uint8 yyr2[] = 1, 1, 4, 7, 9, 6, 6, 3, 6, 4, 6, 9, 6, 9, 5, 8, 8, 11, 6, 9, 5, 7, 9, 9, 11, 9, 9, 1, 1, 0, - 5, 0, 2, 7, 0, 9, 6, 7, 7, 8, - 8, 7, 7, 11, 8, 0, 9, 8, 9, 3, - 4, 10, 7, 7, 8, 0, 9, 8, 12, 8, - 8, 8, 7, 0, 9, 5, 11, 5, 9, 4, - 9, 9, 1, 1, 0, 2, 6, 6, 6, 6, - 8, 14, 16, 12, 8, 8, 6, 14, 4, 6, - 6, 3, 4, 5, 3, 3, 4, 4, 3, 7, - 7, 3, 7, 3, 2, 2, 2, 15, 2, 2, - 6, 8, 8, 10, 1, 2, 1, 3, 4, 1, - 5, 11, 13, 0, 7, 0, 13, 0, 15, 0, - 6, 8, 8, 8, 12, 12, 12, 14, 14, 14, - 0, 12, 0, 12, 0, 12, 0, 16, 0, 16, - 0, 16, 0, 18, 0, 18, 0, 18, 1, 2, - 5, 7, 9, 2, 9, 0, 3, 0, 1, 0, - 2, 0, 2, 7, 6, 8, 5, 5, 6, 10, - 10, 10, 10, 2, 3, 1, 3, 2, 2, 2, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 5, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 6, 4, 4, 4, 4, - 4, 4, 6, 6, 6, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 6, 4, 4, 4, - 4, 4, 4, 6, 6, 6, 4, 1, 1, 1, - 1, 1, 1, 1, 1, 5, 4, 4, 2, 5, - 3, 6, 4, 7, 6, 1, 2, 2, 3, 3, - 11, 9, 7, 7, 1, 3, 1, 1, 2, 3, - 4, 5, 1, 1, 2, 3, 3, 5, 4, 1, - 1, 3, 6, 1, 1, 3, 3, 9, 7, 1, - 5, 3, 6, 1, 3, 1, 1, 3, 6, 1, - 1, 6, 4, 4, 4, 6 + 5, 0, 2, 7, 0, 9, 6, 7, 4, 7, + 8, 8, 7, 7, 11, 8, 0, 9, 8, 9, + 3, 4, 10, 7, 7, 8, 0, 9, 8, 12, + 8, 8, 8, 7, 9, 0, 9, 5, 11, 5, + 9, 4, 9, 9, 1, 1, 0, 2, 6, 6, + 6, 6, 8, 14, 16, 12, 8, 8, 6, 14, + 4, 6, 6, 3, 4, 5, 3, 3, 4, 4, + 3, 7, 7, 3, 7, 3, 2, 2, 2, 15, + 2, 2, 6, 8, 8, 10, 1, 2, 1, 3, + 4, 1, 5, 11, 13, 0, 7, 0, 13, 0, + 15, 0, 6, 8, 8, 8, 12, 12, 12, 14, + 14, 14, 0, 12, 0, 12, 0, 12, 0, 16, + 0, 16, 0, 16, 0, 18, 0, 18, 0, 18, + 1, 2, 5, 7, 9, 2, 9, 0, 3, 0, + 1, 0, 2, 0, 2, 7, 6, 8, 5, 5, + 6, 10, 10, 10, 10, 2, 3, 1, 3, 2, + 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 5, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 6, 4, 4, + 4, 4, 4, 4, 6, 6, 6, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 6, 4, + 4, 4, 4, 4, 4, 6, 6, 6, 4, 1, + 1, 1, 1, 1, 1, 1, 1, 5, 4, 4, + 2, 5, 3, 6, 4, 7, 6, 1, 2, 2, + 3, 3, 11, 9, 7, 7, 1, 3, 1, 1, + 2, 3, 4, 5, 1, 1, 2, 3, 3, 5, + 4, 1, 1, 3, 6, 1, 1, 3, 3, 9, + 7, 1, 5, 3, 6, 1, 3, 1, 1, 3, + 6, 1, 1, 6, 4, 4, 4, 6 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1194,298 +1202,300 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 174, 0, 179, 0, 0, 176, 0, - 0, 0, 0, 5, 7, 6, 8, 9, 10, 20, - 11, 12, 13, 19, 18, 14, 15, 16, 17, 307, - 314, 369, 55, 308, 309, 310, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 176, 0, 181, 0, 0, + 178, 0, 0, 0, 0, 5, 7, 6, 8, 9, + 10, 20, 11, 12, 13, 19, 18, 14, 15, 16, + 17, 309, 316, 371, 55, 310, 311, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 370, 0, 0, 311, 312, 313, 59, 58, 57, - 56, 0, 0, 0, 61, 60, 0, 0, 0, 0, - 134, 0, 0, 0, 245, 0, 0, 0, 0, 166, - 0, 168, 165, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 372, 0, 0, 313, 314, 315, 59, + 58, 57, 56, 0, 0, 0, 61, 60, 0, 0, + 0, 0, 136, 0, 0, 0, 247, 0, 0, 0, + 0, 168, 0, 170, 167, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 105, 115, 123, + 0, 0, 0, 0, 0, 0, 0, 0, 94, 106, + 116, 125, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, + 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 136, 0, 245, 0, 0, 0, 0, 0, 0, 0, + 361, 0, 0, 0, 0, 0, 166, 0, 0, 177, + 0, 136, 0, 136, 0, 0, 0, 0, 320, 30, + 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 325, 0, 0, 0, 0, 0, 134, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 134, 0, 243, 0, - 0, 0, 0, 0, 0, 0, 359, 0, 0, 0, - 0, 0, 164, 0, 0, 175, 0, 134, 0, 134, - 0, 0, 0, 0, 318, 30, 369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 316, 250, 249, 251, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 135, 0, 134, 0, 67, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 314, 248, 247, 249, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, - 0, 132, 0, 67, 161, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 160, 110, 0, 0, 0, 0, + 316, 0, 0, 351, 352, 355, 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 158, 109, 0, 0, 0, 0, 314, 0, 0, 349, - 350, 353, 354, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 336, 0, 337, - 0, 0, 0, 0, 343, 342, 0, 229, 229, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, - 326, 0, 0, 0, 0, 134, 134, 0, 0, 0, - 0, 0, 0, 0, 189, 0, 134, 0, 0, 0, - 0, 231, 0, 0, 0, 151, 0, 0, 0, 244, - 0, 0, 0, 163, 0, 0, 0, 0, 0, 134, - 0, 0, 0, 0, 177, 154, 0, 155, 0, 0, - 0, 320, 0, 0, 69, 0, 0, 0, 0, 0, + 0, 338, 0, 339, 0, 0, 0, 0, 345, 344, + 0, 231, 231, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 329, 328, 0, 0, 0, + 0, 136, 136, 0, 0, 0, 0, 0, 0, 0, + 191, 0, 136, 0, 0, 0, 0, 233, 0, 0, + 0, 153, 0, 0, 0, 246, 0, 0, 0, 165, + 0, 0, 0, 0, 0, 136, 0, 0, 0, 0, + 179, 156, 0, 157, 0, 0, 0, 322, 0, 0, + 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 366, 0, 365, - 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, - 0, 55, 0, 0, 0, 0, 0, 129, 0, 0, - 0, 0, 135, 62, 0, 263, 262, 261, 260, 256, - 257, 259, 258, 251, 250, 252, 253, 254, 255, 110, - 0, 0, 0, 0, 0, 0, 247, 344, 0, 0, + 0, 0, 0, 368, 0, 367, 0, 0, 0, 0, + 0, 0, 248, 0, 0, 0, 0, 55, 0, 0, + 0, 0, 0, 131, 0, 0, 0, 0, 137, 62, + 0, 265, 264, 263, 262, 258, 259, 261, 260, 253, + 252, 254, 255, 256, 257, 111, 0, 0, 0, 0, + 0, 0, 249, 346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 338, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 227, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 329, 328, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, - 0, 0, 0, 0, 0, 0, 0, 0, 152, 0, - 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 178, 0, 156, 157, 0, 316, 322, - 0, 40, 0, 0, 0, 53, 0, 31, 32, 33, - 34, 35, 265, 286, 266, 287, 267, 288, 268, 289, - 269, 290, 270, 291, 271, 292, 272, 293, 273, 294, - 285, 306, 274, 295, 0, 0, 276, 297, 277, 298, - 278, 299, 279, 300, 280, 301, 281, 302, 0, 0, - 0, 0, 0, 0, 0, 0, 374, 0, 0, 372, - 373, 80, 0, 0, 0, 0, 0, 55, 0, 0, - 0, 0, 0, 74, 0, 0, 0, 0, 317, 0, - 0, 0, 0, 0, 23, 21, 0, 0, 0, 0, - 351, 0, 0, 346, 252, 345, 355, 356, 0, 0, + 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 98, 0, 0, 0, 0, 331, 330, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, + 0, 0, 0, 0, 0, 0, 154, 0, 0, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 339, 0, 0, 0, 0, 0, 0, 225, 230, - 228, 0, 236, 0, 0, 87, 88, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 125, 127, 0, - 0, 0, 0, 0, 0, 0, 0, 218, 0, 180, - 0, 0, 0, 0, 0, 232, 237, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, - 0, 0, 0, 0, 0, 0, 319, 0, 315, 0, - 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 367, 0, 0, 0, 316, 65, - 66, 0, 0, 0, 0, 0, 68, 70, 72, 0, - 0, 363, 0, 78, 0, 0, 0, 0, 264, 22, - 0, 0, 0, 0, 0, 348, 0, 0, 91, 91, + 0, 180, 0, 158, 159, 0, 318, 324, 0, 40, + 0, 0, 0, 53, 0, 31, 32, 33, 34, 35, + 267, 288, 268, 289, 269, 290, 270, 291, 271, 292, + 272, 293, 273, 294, 274, 295, 275, 296, 287, 308, + 276, 297, 0, 0, 278, 299, 279, 300, 280, 301, + 281, 302, 282, 303, 283, 304, 0, 0, 0, 0, + 0, 0, 0, 0, 376, 0, 0, 374, 375, 80, + 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, + 0, 74, 0, 0, 0, 0, 319, 0, 0, 0, + 0, 0, 23, 21, 0, 0, 0, 0, 353, 0, + 0, 348, 254, 347, 357, 358, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 341, + 0, 0, 0, 0, 0, 0, 227, 232, 230, 0, + 238, 0, 0, 87, 88, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 127, 129, 0, 0, + 0, 0, 0, 0, 0, 0, 220, 0, 182, 0, + 0, 0, 0, 0, 234, 239, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, + 0, 0, 0, 0, 0, 321, 0, 317, 0, 0, + 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 369, 0, 0, 0, 318, 65, 66, + 0, 0, 0, 0, 0, 68, 70, 72, 0, 0, + 365, 0, 78, 0, 0, 0, 0, 266, 22, 0, + 0, 0, 0, 0, 350, 0, 0, 91, 91, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 342, + 0, 96, 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 340, 0, 96, 0, 0, 0, 0, 0, 0, 234, + 0, 0, 0, 0, 0, 0, 225, 0, 0, 192, + 221, 0, 0, 0, 148, 0, 0, 240, 0, 152, + 151, 0, 28, 29, 0, 0, 0, 362, 0, 0, + 0, 172, 0, 0, 162, 323, 161, 0, 0, 0, + 0, 336, 0, 277, 298, 284, 305, 285, 306, 286, + 307, 0, 377, 373, 326, 0, 55, 0, 0, 0, + 0, 63, 0, 0, 0, 363, 0, 0, 0, 0, + 24, 25, 0, 0, 93, 0, 349, 0, 0, 0, + 0, 0, 97, 0, 0, 113, 114, 0, 0, 99, + 123, 343, 0, 0, 0, 89, 0, 235, 0, 0, + 0, 0, 0, 0, 0, 0, 164, 0, 0, 0, + 0, 0, 136, 0, 202, 0, 204, 0, 206, 338, + 0, 0, 0, 0, 186, 0, 0, 0, 0, 0, + 0, 0, 0, 102, 103, 0, 0, 0, 0, 81, + 0, 325, 0, 36, 0, 0, 0, 0, 0, 38, + 0, 0, 0, 0, 75, 0, 0, 76, 0, 366, + 138, 139, 140, 141, 0, 0, 354, 0, 92, 100, + 101, 105, 0, 0, 115, 0, 0, 237, 108, 0, + 0, 228, 122, 0, 0, 0, 0, 121, 0, 120, + 118, 0, 0, 0, 0, 335, 0, 334, 0, 0, + 193, 0, 0, 194, 0, 0, 195, 0, 0, 0, + 0, 0, 0, 147, 0, 0, 146, 0, 0, 142, + 0, 0, 0, 0, 360, 0, 174, 173, 0, 0, + 0, 41, 0, 0, 0, 337, 0, 0, 0, 370, + 64, 71, 73, 0, 79, 0, 26, 0, 0, 0, + 0, 0, 0, 0, 109, 95, 107, 117, 126, 0, + 85, 86, 124, 136, 0, 130, 0, 0, 0, 0, + 0, 0, 222, 0, 0, 136, 0, 0, 0, 0, + 133, 132, 0, 0, 0, 0, 82, 83, 0, 37, + 0, 0, 0, 39, 54, 0, 364, 0, 241, 242, + 243, 244, 112, 0, 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 223, 0, 0, 190, - 219, 0, 0, 0, 146, 0, 0, 238, 0, 150, - 149, 0, 28, 29, 0, 0, 0, 360, 0, 0, - 0, 170, 0, 0, 160, 321, 159, 0, 0, 0, - 0, 334, 0, 275, 296, 282, 303, 283, 304, 284, - 305, 0, 375, 371, 324, 0, 55, 0, 0, 0, - 0, 63, 0, 0, 0, 361, 0, 0, 0, 0, - 24, 25, 0, 0, 93, 0, 347, 0, 0, 0, - 0, 0, 97, 0, 0, 112, 113, 0, 0, 98, - 122, 341, 0, 0, 0, 89, 0, 233, 0, 0, - 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, - 0, 134, 0, 200, 0, 202, 0, 204, 336, 0, - 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, - 0, 0, 101, 102, 0, 0, 0, 0, 81, 0, - 323, 0, 36, 0, 0, 0, 0, 0, 38, 0, - 0, 0, 0, 75, 0, 0, 76, 0, 364, 136, - 137, 138, 139, 0, 0, 352, 0, 92, 99, 100, - 104, 0, 0, 114, 0, 0, 235, 107, 0, 0, - 226, 121, 0, 0, 0, 0, 120, 0, 119, 117, - 0, 0, 0, 333, 0, 332, 0, 0, 191, 0, - 0, 192, 0, 0, 193, 0, 0, 0, 0, 0, - 0, 145, 0, 0, 144, 0, 0, 140, 0, 0, - 0, 0, 358, 0, 172, 171, 0, 0, 0, 41, - 0, 0, 0, 335, 0, 0, 0, 368, 64, 71, - 73, 0, 79, 0, 26, 0, 0, 0, 0, 0, - 0, 0, 108, 95, 106, 116, 124, 0, 85, 86, - 134, 0, 128, 0, 0, 0, 0, 0, 0, 220, - 0, 0, 134, 0, 0, 0, 0, 131, 130, 0, - 0, 0, 0, 82, 83, 0, 37, 0, 0, 0, - 39, 54, 0, 362, 0, 239, 240, 241, 242, 111, - 0, 0, 0, 0, 331, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, - 0, 0, 0, 357, 173, 0, 0, 0, 0, 0, - 77, 0, 0, 0, 126, 0, 206, 0, 0, 208, - 0, 0, 210, 0, 0, 0, 221, 0, 181, 0, - 134, 0, 0, 0, 103, 84, 0, 45, 0, 51, - 0, 0, 90, 118, 330, 194, 0, 0, 201, 195, - 0, 0, 203, 196, 0, 0, 205, 0, 0, 0, - 187, 0, 143, 0, 0, 0, 0, 0, 0, 0, - 0, 212, 0, 214, 0, 216, 222, 224, 186, 182, - 0, 0, 0, 0, 42, 0, 49, 0, 0, 0, - 197, 0, 0, 198, 0, 0, 199, 0, 0, 147, - 0, 141, 0, 43, 0, 0, 167, 0, 0, 0, - 0, 0, 0, 188, 0, 0, 0, 0, 0, 207, - 0, 209, 0, 211, 0, 142, 44, 46, 0, 47, - 0, 0, 0, 0, 0, 0, 52, 213, 215, 217, - 48, 50 + 187, 0, 0, 0, 0, 0, 359, 175, 0, 0, + 0, 0, 0, 77, 0, 0, 0, 128, 0, 208, + 0, 0, 210, 0, 0, 212, 0, 0, 0, 223, + 0, 183, 0, 136, 0, 0, 0, 104, 84, 0, + 45, 0, 51, 0, 0, 90, 119, 332, 196, 0, + 0, 203, 197, 0, 0, 205, 198, 0, 0, 207, + 0, 0, 0, 189, 0, 145, 0, 0, 0, 0, + 0, 0, 0, 0, 214, 0, 216, 0, 218, 224, + 226, 188, 184, 0, 0, 0, 0, 42, 0, 49, + 0, 0, 0, 199, 0, 0, 200, 0, 0, 201, + 0, 0, 149, 0, 143, 0, 43, 0, 0, 169, + 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, + 0, 0, 209, 0, 211, 0, 213, 0, 144, 44, + 46, 0, 47, 0, 0, 0, 0, 0, 0, 52, + 215, 217, 219, 48, 50 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 2, 3, 63, 676, 64, 65, 413, 991, 997, - 597, 769, 1135, 1272, 598, 1236, 1298, 599, 1274, 600, - 601, 773, 131, 224, 66, 714, 1029, 929, 482, 350, - 351, 352, 353, 319, 290, 291, 69, 70, 71, 72, - 73, 74, 320, 740, 1199, 1250, 557, 1049, 1052, 1055, - 1216, 1220, 1224, 1261, 1264, 1267, 736, 737, 838, 711, - 534, 565, 76, 77, 78, 337, 134, 360, 180, 890, - 891, 346, 339, 525, 208, 667, 802, 458, 459 + -1, 2, 3, 65, 684, 66, 67, 419, 1002, 1008, + 605, 778, 1148, 1285, 606, 1249, 1311, 607, 1287, 608, + 609, 782, 133, 228, 68, 722, 1040, 939, 488, 354, + 355, 356, 357, 323, 294, 295, 71, 72, 73, 74, + 75, 76, 324, 749, 1212, 1263, 565, 1061, 1064, 1067, + 1229, 1233, 1237, 1274, 1277, 1280, 745, 746, 847, 719, + 540, 573, 78, 79, 80, 341, 136, 366, 184, 900, + 901, 350, 343, 531, 212, 675, 811, 464, 465 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -1083 +#define YYPACT_NINF -1085 static const yytype_int16 yypact[] = { - 3368, 70, 4, 3447, -1083, -1083, 1630, 2, -10, -47, - 6, 131, 194, 203, 72, 130, 144, -50, 227, 244, - -43, 253, 254, 296, 305, 347, 358, 359, 226, 344, - 607, 235, 298, 295, -66, -66, 323, 141, 48, 407, - 417, 426, 13, 47, 435, 461, 480, 493, 366, 367, - 390, 16, 41, -1083, 401, -1083, 510, 383, -1083, 532, - 539, 18, 19, -1083, -1083, -1083, -1083, -1083, -1083, -1083, - -1083, -1083, -1083, -1083, -1083, -1083, -1083, -1083, -1083, -1083, - 38, 424, 316, -1083, -1083, -1083, -46, 84, 85, 343, - 374, 378, 379, 391, 413, 457, 477, 486, 513, 514, - 535, 564, 575, 576, 623, 650, 654, 421, 432, 437, - 452, -1083, 580, 460, -1083, -1083, -1083, -1083, -1083, -1083, - -1083, 3071, 3071, 3071, -1083, -1083, 3071, 2637, 10, 591, - 385, 3071, 594, 698, -1083, 611, 615, 3071, 649, -1083, - 3071, -1083, -1083, -1083, 3071, 3001, 3071, 3071, 494, 3071, - 3001, 3071, 3071, 527, 3001, 3071, 3071, 2035, 534, 533, - 558, 565, 1769, 1769, 1769, 600, -1083, -1083, -1083, -1083, - 610, 633, 645, 669, -66, -66, -66, 3071, 3071, -55, - -1083, -17, -66, 552, 606, 614, 2868, 190, 170, 653, - 658, 1769, 2035, 674, 32, 646, -1083, 746, -1083, 642, - 676, 691, 843, 3071, 3071, 3071, 712, 3071, 713, 757, - 3071, 3071, -1083, 3071, 854, -1083, 873, -1083, 874, -1083, - 748, 3071, 899, 765, -1083, -1083, -1083, 924, 3071, 3071, - 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071, - 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071, - 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071, - 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071, - 43, 43, 43, 43, 3071, 933, 559, 827, 827, 827, - 5631, 42, 3001, 4895, 195, 823, 955, 828, 822, -1083, - 824, 3514, 1034, -1083, -1083, 3071, 3071, 3071, 3071, 3071, - 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071, - -1083, -1083, 1296, -35, 2932, 5652, 264, 826, 3001, -1083, - -1083, 3098, -1083, -41, 5673, 5694, 3071, 5715, 291, 5736, - 5757, 3071, 485, 5778, 5799, 2168, 1488, 3155, 958, -1083, - 3071, 3071, 3071, 3071, -1083, -1083, 961, 963, 963, 3071, - 837, 839, 840, 842, 3071, 3071, 3071, 844, 220, -1083, - -1083, 4219, 4245, -66, -66, 385, 385, 310, 3071, 3071, - 3071, 2868, 2868, 3071, 3514, 317, -1083, 3071, 3071, 3071, - 3071, 970, 971, 3071, 974, -1083, 3071, 3071, 1040, -1083, - 3001, 3071, 3071, -1083, 5820, 5841, 5862, 888, 4271, -1083, - 841, 3174, 5883, 4918, -1083, -1083, 1232, -1083, 1531, 3071, - 4941, -13, 3071, 9, -1083, 5904, 4964, 5925, 4987, 5946, - 5010, 5967, 5033, 5988, 5056, 6009, 5079, 6030, 5102, 6051, - 5125, 6072, 5148, 6093, 5171, 6114, 5194, 4297, 4323, 6135, - 5217, 6156, 5240, 6177, 5263, 6198, 5286, 6219, 5309, 6240, - 5332, 4349, 4375, 4401, 4427, 4453, 4479, 655, 55, -1083, - 845, 849, 856, 1356, 852, 3071, -1083, 2035, 2035, 660, - -2, 316, 3071, 983, 989, 17, 857, -1083, 258, -45, - -28, 304, -1083, -1083, 3193, 791, 714, 648, 648, 671, - 671, 671, 671, 242, 242, 827, 827, 827, 827, -1083, - 44, 3001, 3071, 988, 2833, 3071, 827, -1083, 3071, 3001, - 3001, 900, 991, 992, 6261, 993, 905, 995, 996, 6282, - 908, 998, 1000, 3001, -1083, 661, 2301, 3071, 6303, 3268, - 6324, 6345, 3071, 2035, 1005, 1004, 6366, 3128, 3128, 3128, - 3128, 6387, 6408, 6429, 875, -66, 3071, 3071, -1083, -1083, - 876, 877, 3071, 4505, 4531, 4557, 4193, -16, -66, 1807, - 6450, 3549, 6471, 6492, 3071, 1008, 3071, 6513, -1083, 5355, - 5378, -1083, 665, 5401, 5424, 1009, 1010, 1014, 885, 3071, - 1940, 3071, 3071, -1083, 26, -1083, -1083, 5447, 35, -1083, - 3577, -1083, 890, 891, 886, -1083, 1022, -1083, -1083, -1083, - -1083, -1083, -1083, -1083, -1083, -1083, -1083, -1083, -1083, -1083, - -1083, -1083, -1083, -1083, -1083, -1083, -1083, -1083, -1083, -1083, - -1083, -1083, -1083, -1083, 3071, 3071, -1083, -1083, -1083, -1083, - -1083, -1083, -1083, -1083, -1083, -1083, -1083, -1083, 3071, 3071, - 3071, 3071, 3071, 3071, 3071, 1026, -1083, 3001, 43, -1083, - -1083, -1083, 3071, 5470, 1025, 1028, 895, -1083, 33, 3071, - 1029, 1031, 1559, -1083, 1035, 907, 16, 1038, -1083, 3001, - 3001, 3001, 3001, 3071, -1083, 920, 43, 178, 4583, -66, - -1083, 3001, 3605, 3219, 827, -1083, 3098, -1083, 994, 2035, - 2035, 1039, 2035, 758, 2035, 2035, 1041, 997, 2035, 2035, - 706, -1083, 3001, 1594, 1042, 1044, 1048, 1050, 598, -1083, - -1083, 1052, -1083, 1054, 912, 6744, -1083, 928, 931, 934, - 1061, 1064, 1065, 1055, 346, 4609, 4635, -1083, -1083, 3633, - -66, -66, -66, 1072, 939, 947, -19, -1083, 348, -1083, - -16, 1076, 1089, 1090, 1093, 6744, -1083, 2265, 964, 1098, - 1100, 1057, 1104, 1106, 2035, 2035, 2035, 1109, 4661, -1083, - 3238, 772, 1110, 1111, 1112, 1113, -1083, 1115, -1083, 982, - 3071, 3071, 2035, 981, -1083, 6534, 5493, 6555, 5516, 6576, - 5539, 6597, 5562, 5585, -1083, 184, 990, 6618, 79, -1083, - -1083, 71, 315, 986, 1119, 2366, -1083, -1083, -1083, 16, - 3071, -1083, 716, -1083, 717, 721, 724, 725, 6744, -1083, - 1121, 56, 3071, 37, 728, -1083, 3071, 999, 1078, 1078, - 2035, 1131, 1001, 1002, 1133, 1135, 2035, 1007, 1139, 1140, - -1083, 729, -1083, 1158, 2035, 2035, 2035, 1160, 1159, -1083, - 2035, 1161, 1162, 1164, 1165, 2035, 2035, 2035, 181, 3071, - 3071, 3071, 1032, 54, 145, 217, -1083, 2035, 3071, -1083, - -1083, 2868, 237, 1902, -1083, 1033, 2434, -1083, 3001, -1083, - -1083, 1036, -1083, -1083, 1169, 1170, 1074, -1083, 3071, 3071, - 3071, -1083, 1172, 1173, -1083, -13, -1083, 3071, 4687, 4713, - 735, -1083, 3071, -1083, -1083, -1083, -1083, -1083, -1083, -1083, - -1083, 1047, -1083, -1083, -1083, 2035, 316, 3071, 1180, 1175, - 17, -1083, 1182, 5608, 16, -1083, 1183, 1184, 1186, 1187, - -1083, -1083, 43, 4739, -1083, 1059, 6744, 3071, -66, 1188, - 1192, 1193, -1083, 3071, 3071, -1083, -1083, 1194, 3071, -1083, - -1083, -1083, 1196, 1197, 1198, 1114, 3071, -1083, 1200, 2035, - 2035, 2035, 2035, 1201, 872, 1202, -1083, 3128, 3661, 6639, - 3465, 385, -66, 1203, -66, 1206, -66, 1208, 297, 1077, - 6660, 3689, 365, -1083, 1210, 1327, 1212, -66, 1327, 1213, - 743, 3071, -1083, -1083, 2035, 3493, 561, 6681, -1083, 2700, - -1083, 193, 6744, 3071, 3071, 2035, 1079, 762, 6744, 1217, - 1219, 1220, 2398, -1083, 1216, 1221, -1083, 1091, -1083, -1083, - -1083, -1083, -1083, 1222, 3071, -1083, 3717, 222, -1083, -1083, - -1083, 3745, 3773, -1083, 3801, 1225, -1083, -1083, 1191, 1226, - 6744, -1083, 1229, 1231, 1235, 1241, -1083, 1107, -1083, -1083, - 2499, 1243, 1116, -1083, 3071, -1083, 1108, 382, -1083, 1117, - 474, -1083, 1122, 491, -1083, 1123, 1245, 2035, 1224, 1124, - 3071, -1083, 2567, 499, -1083, 505, 608, -1083, 1246, 3829, - 1163, 3071, -1083, 3071, -1083, -1083, 3001, 2666, 1247, -1083, - 3071, 4765, 4791, -1083, 2035, 3071, 1249, -1083, -1083, -1083, - -1083, 16, -1083, 1166, -1083, 4817, 1250, 1256, 1260, 1261, - 1262, 1128, -1083, -1083, -1083, -1083, -1083, 2035, -1083, -1083, - 385, 3521, -1083, 2868, -16, 2868, -16, 2868, -16, -1083, - 780, 2035, -1083, 3857, -66, 3001, -66, -1083, -1083, 3071, - 3885, 3913, 783, -1083, -1083, 1129, 6744, 3071, 3071, 789, - 6744, -1083, 1265, -1083, 3071, -1083, -1083, -1083, -1083, -1083, - 3071, 793, 1130, 3071, -1083, 3941, 613, 259, 3969, 616, - 376, 3997, 618, 402, 2035, 1267, 1211, 2073, 1146, 621, - 794, 626, 2789, -1083, -1083, 1268, 3071, 6702, 4843, 12, - -1083, 4869, 4025, 1270, -1083, 4053, 1283, 3071, 1286, 1290, - 3071, 1291, 1297, 3071, 1298, 1167, -1083, 3071, -1083, -16, - -1083, 3001, 1299, 2567, -1083, -1083, 799, -1083, 3071, -1083, - 2035, 3071, -1083, -1083, -1083, -1083, 1171, 4081, -1083, -1083, - 1174, 4109, -1083, -1083, 1176, 4137, -1083, 1300, 2811, 412, - 2206, 802, -1083, 638, 803, 1301, 1177, 6723, 807, 4165, - -16, 1302, -16, 1305, -16, 1307, -1083, -1083, -1083, -1083, - -16, 1308, 3001, 1310, -1083, 43, -1083, 1178, 1317, 414, - -1083, 1185, 450, -1083, 1199, 484, -1083, 1227, 509, -1083, - 808, -1083, 812, -1083, 1228, 2035, -1083, 1318, -16, 1319, - -16, 1321, -16, -1083, 1322, 43, 1323, 43, 813, -1083, - 517, -1083, 528, -1083, 530, -1083, -1083, -1083, 816, -1083, - 1326, 1328, 1329, 1333, 43, 1357, -1083, -1083, -1083, -1083, - -1083, -1083 + 3407, 40, 79, 3488, -1085, -1085, 1621, 57, -11, -47, + 30, 128, 138, 177, 70, 76, 87, -50, 146, 178, + -49, 187, 199, 136, 222, 300, 316, 330, 169, 344, + 602, 494, 281, 375, 293, 289, 295, 295, 290, 267, + 14, 389, 400, 413, 6, 72, 422, 467, 496, 509, + 388, 399, 424, 10, 41, -1085, 434, -1085, 524, 437, + -1085, 588, 604, 21, 24, -1085, -1085, -1085, -1085, -1085, + -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, + -1085, -1085, 23, 431, 59, -1085, -1085, -1085, -36, 268, + 429, 444, 449, 453, 468, 498, 527, 530, 544, 563, + 569, 570, 573, 574, 577, 578, 606, 609, 614, 487, + 492, 497, 502, -1085, 632, 512, -1085, -1085, -1085, -1085, + -1085, -1085, -1085, 3084, 3084, 3084, -1085, -1085, 3084, 2644, + 19, 656, 206, 3084, 646, 1046, -1085, 663, 664, 3084, + 624, -1085, 3084, -1085, -1085, -1085, 3084, 3012, 3084, 3084, + 540, 3084, 3012, 3084, 3084, 564, 3012, 3084, 3084, 2032, + 610, 542, 618, 629, 1762, 1762, 1762, 636, -1085, -1085, + -1085, -1085, 650, 660, 665, 699, 2032, 733, 295, 295, + 295, 3084, 3084, -19, -1085, 184, 295, 596, 608, 677, + 2877, 299, 135, 681, 700, 1762, 2032, 704, 27, 630, + -1085, 807, -1085, 698, 711, 722, 846, 3084, 3084, 3084, + 723, 3084, 721, 772, 3084, 3084, -1085, 3084, 875, -1085, + 879, -1085, 880, -1085, 749, 3084, 884, 746, -1085, -1085, + -1085, 887, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, + 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, + 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, + 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, + 3084, 3084, 3084, 3084, 620, 620, 620, 620, 3084, 885, + 603, 759, 759, 759, 5700, 55, 3012, 4964, 175, 755, + 902, 774, 771, -1085, 773, 3557, 1128, -1085, -1085, 3084, + 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, + 3084, 3084, 3084, 3084, -1085, -1085, 1147, -21, 4262, 5721, + 301, 779, 3012, -1085, -1085, 3168, -1085, 137, 5742, 5763, + 3084, 5784, 611, 5805, 5826, 3084, 615, 5847, 5868, 2167, + 1476, 3189, 908, -1085, 3084, 3084, 3084, 3084, -1085, -1085, + 909, 912, 912, 3084, 785, 789, 790, 791, 3084, 3084, + 3084, 792, 922, 788, -52, -1085, -1085, 4288, 4314, 295, + 295, 206, 206, -14, 3084, 3084, 3084, 2877, 2877, 3084, + 3557, 142, -1085, 3084, 3084, 3084, 3084, 929, 932, 3084, + 934, -1085, 3084, 3084, 776, -1085, 3012, 3084, 3084, -1085, + 5889, 5910, 5931, 848, 4340, -1085, 798, 3208, 5952, 4987, + -1085, -1085, 1659, -1085, 1800, 3084, 5010, -67, 3084, 18, + -1085, 5973, 5033, 5994, 5056, 6015, 5079, 6036, 5102, 6057, + 5125, 6078, 5148, 6099, 5171, 6120, 5194, 6141, 5217, 6162, + 5240, 6183, 5263, 4366, 4392, 6204, 5286, 6225, 5309, 6246, + 5332, 6267, 5355, 6288, 5378, 6309, 5401, 4418, 4444, 4470, + 4496, 4522, 4548, 623, 271, -1085, 803, 810, 811, 1321, + 809, 3084, -1085, 2032, 2032, 616, 81, 59, 3084, 943, + 948, 17, 815, -1085, 220, -44, -32, 223, -1085, -1085, + 3236, 778, 972, 567, 567, 348, 348, 348, 348, 549, + 549, 759, 759, 759, 759, -1085, 9, 3012, 3084, 949, + 2842, 3084, 759, -1085, 3084, 3012, 3012, 860, 952, 953, + 6330, 955, 865, 957, 960, 6351, 872, 964, 965, 3012, + -1085, 622, 2302, 3084, 6372, 3305, 6393, 6414, 3084, 2032, + 969, 970, 6435, 3141, 3141, 3141, 3141, 6456, 6477, 6498, + 837, -1085, 2032, 295, 3084, 3084, -1085, -1085, 834, 835, + 3084, 4574, 4600, 4626, 4236, 117, 295, 1935, 6519, 3592, + 6540, 6561, 3084, 975, 3084, 6582, -1085, 5424, 5447, -1085, + 625, 5470, 5493, 977, 978, 980, 842, 3084, 2070, 3084, + 3084, -1085, 32, -1085, -1085, 5516, 45, -1085, 3620, -1085, + 852, 853, 847, -1085, 985, -1085, -1085, -1085, -1085, -1085, + -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, + -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, + -1085, -1085, 3084, 3084, -1085, -1085, -1085, -1085, -1085, -1085, + -1085, -1085, -1085, -1085, -1085, -1085, 3084, 3084, 3084, 3084, + 3084, 3084, 3084, 988, -1085, 3012, 620, -1085, -1085, -1085, + 3084, 5539, 987, 991, 862, -1085, 34, 3084, 996, 997, + 1446, -1085, 998, 866, 10, 1000, -1085, 3012, 3012, 3012, + 3012, 3084, -1085, 888, 620, 278, 4652, 295, -1085, 3012, + 3648, 3255, 759, -1085, 3168, -1085, 959, 2032, 2032, 1001, + 2032, 724, 2032, 2032, 1005, 961, 2032, 2032, 634, -1085, + 3012, 1556, 1006, 1008, 1009, 1010, 2941, -1085, -1085, 1012, + -1085, 1013, 886, 6813, -1085, 889, 890, 891, 1014, 1015, + 1018, 1025, 905, 195, 4678, 4704, -1085, -1085, 3676, 295, + 295, 295, 1042, 911, 895, -34, -1085, 218, -1085, 117, + 1048, 1050, 1051, 1053, 6813, -1085, 2369, 914, 1056, 1057, + 1016, 1058, 1059, 2032, 2032, 2032, 1065, 4730, -1085, 3275, + 916, 1066, 1067, 1069, 1068, -1085, 1070, -1085, 937, 3084, + 3084, 2032, 935, -1085, 6603, 5562, 6624, 5585, 6645, 5608, + 6666, 5631, 5654, -1085, 315, 944, 6687, 192, -1085, -1085, + 73, 285, 940, 1076, 2402, -1085, -1085, -1085, 10, 3084, + -1085, 637, -1085, 638, 641, 648, 649, 6813, -1085, 1078, + 46, 3084, 54, 653, -1085, 3084, 942, 1029, 1029, 2032, + 1082, 946, 947, 1097, 1098, 2032, 962, 1103, 1105, -1085, + 658, -1085, 1107, 2032, 2032, 2032, 1109, 1108, -1085, 2032, + 1111, 1114, 1116, 1118, 2032, 2032, 2032, 119, 1110, 3084, + 3084, 3084, 973, -83, -73, 204, -1085, 2032, 3084, -1085, + -1085, 2877, -24, 1897, -1085, 984, 2437, -1085, 3012, -1085, + -1085, 986, -1085, -1085, 1122, 1124, 1037, -1085, 3084, 3084, + 3084, -1085, 1132, 1133, -1085, -67, -1085, 3084, 4756, 4782, + 662, -1085, 3084, -1085, -1085, -1085, -1085, -1085, -1085, -1085, + -1085, 999, -1085, -1085, -1085, 2032, 59, 3084, 1135, 1138, + 17, -1085, 1137, 5677, 10, -1085, 1140, 1141, 1142, 1143, + -1085, -1085, 620, 4808, -1085, 1011, 6813, 3084, 295, 1146, + 1148, 1149, -1085, 3084, 3084, -1085, -1085, 1150, 3084, -1085, + -1085, -1085, 1153, 1155, 1156, 1061, 3084, -1085, 1171, 2032, + 2032, 2032, 2032, 1172, 801, 1173, -1085, 3141, 1043, 3704, + 6708, 3508, 206, 295, 1176, 295, 1178, 295, 1179, 368, + 1045, 6729, 3732, 337, -1085, 1182, 1292, 1183, 295, 1292, + 1184, 666, 3084, -1085, -1085, 2032, 3536, 605, 6750, -1085, + 2707, -1085, 374, 6813, 3084, 3084, 2032, 1049, 667, 6813, + 1187, 1189, 1192, 2504, -1085, 1186, 1193, -1085, 1062, -1085, + -1085, -1085, -1085, -1085, 1195, 3084, -1085, 3760, 258, -1085, + -1085, -1085, 3788, 3816, -1085, 3844, 1198, -1085, -1085, 1157, + 1199, 6813, -1085, 1201, 1203, 1205, 1206, -1085, 1071, -1085, + -1085, 2673, 1207, 1210, 1074, -1085, 3084, -1085, 1077, 380, + -1085, 1080, 392, -1085, 1083, 394, -1085, 1084, 1224, 2032, + 1225, 1088, 3084, -1085, 2572, 417, -1085, 430, 436, -1085, + 1227, 3872, 1144, 3084, -1085, 3084, -1085, -1085, 3012, 2798, + 1228, -1085, 3084, 4834, 4860, -1085, 2032, 3084, 1229, -1085, + -1085, -1085, -1085, 10, -1085, 1164, -1085, 4886, 1230, 1232, + 1233, 1234, 1236, 1100, -1085, -1085, -1085, -1085, -1085, 2032, + -1085, -1085, -1085, 206, 3564, -1085, 2877, 117, 2877, 117, + 2877, 117, -1085, 670, 2032, -1085, 3900, 295, 3012, 295, + -1085, -1085, 3084, 3928, 3956, 674, -1085, -1085, 1119, 6813, + 3084, 3084, 689, 6813, -1085, 1255, -1085, 3084, -1085, -1085, + -1085, -1085, -1085, 3084, 702, 1134, 3084, -1085, 3984, 470, + 56, 4012, 476, 143, 4040, 488, 238, 2032, 1273, 1216, + 2205, 1145, 490, 703, 493, 2820, -1085, -1085, 1275, 3084, + 6771, 4912, 31, -1085, 4938, 4068, 1277, -1085, 4096, 1278, + 3084, 1283, 1284, 3084, 1285, 1286, 3084, 1287, 1154, -1085, + 3084, -1085, 117, -1085, 3012, 1288, 2572, -1085, -1085, 706, + -1085, 3084, -1085, 2032, 3084, -1085, -1085, -1085, -1085, 1161, + 4124, -1085, -1085, 1162, 4152, -1085, -1085, 1185, 4180, -1085, + 1291, 3113, 261, 2340, 714, -1085, 495, 715, 1293, 1188, + 6792, 727, 4208, 117, 1294, 117, 1324, 117, 1326, -1085, + -1085, -1085, -1085, 117, 1327, 3012, 1328, -1085, 620, -1085, + 1196, 1329, 280, -1085, 1197, 283, -1085, 1202, 314, -1085, + 1204, 355, -1085, 731, -1085, 732, -1085, 1209, 2032, -1085, + 1330, 117, 1332, 117, 1335, 117, -1085, 1336, 620, 1338, + 620, 735, -1085, 373, -1085, 385, -1085, 387, -1085, -1085, + -1085, 736, -1085, 1340, 1342, 1343, 1344, 620, 1347, -1085, + -1085, -1085, -1085, -1085, -1085 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -1083, -1083, -1083, -1083, 522, -1083, -1083, -1083, -1083, 189, - -1083, -1083, -1083, -1083, -1083, -1083, -1083, -1083, -1083, -1083, - -1083, -1083, -254, -3, -1083, -473, -1083, 547, 1364, -1083, - -1083, -1083, -1083, 25, -356, -185, -1083, -1083, -1083, -1083, - -1083, -1083, 1368, -1083, -1083, -1083, -1083, -1083, -1083, -1083, - -1083, -1083, -1083, -1083, -1083, -1083, -638, -720, -1083, -1083, - 1027, -1083, -1083, -1083, -1083, -6, -1083, 98, -1083, -1082, - 544, -108, 58, -119, -647, 463, -1083, -265, 40 + -1085, -1085, -1085, -1085, 534, -1085, -1085, -1085, -1085, 166, + -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, + -1085, -1085, -286, -3, -1085, -64, -1085, 528, 1355, -1085, + -1085, -1085, -1085, 3, -367, -189, -1085, -1085, -1085, -1085, + -1085, -1085, 1356, -1085, -1085, -1085, -1085, -1085, -1085, -1085, + -1085, -1085, -1085, -1085, -1085, -1085, -684, -717, -1085, -1085, + 1021, -1085, -1085, -1085, -1085, -6, -1085, -20, -1085, -1084, + 522, -110, 255, -79, -654, 448, -1085, -268, 7 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1495,1524 +1505,1539 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -5 static const yytype_int16 yytable[] = { - 133, 374, 1139, 132, 5, 657, 460, 461, 462, 550, - 551, 388, 139, 591, 284, 136, 860, 194, 1209, 801, - 206, 665, 148, 216, 218, 1151, 323, 148, 68, 153, - 472, 328, 406, 762, 408, 332, 384, 792, 385, 457, - 226, 137, 220, 924, 153, 209, 135, 457, 226, 467, - 674, 197, 188, 198, 733, 347, 348, 733, 175, 176, - 734, 735, 921, 734, 735, 717, 718, 719, 177, 363, - 364, 107, 108, 109, 110, 178, 4, 111, 657, 107, - 108, 109, 110, 381, 149, 111, 365, 138, 228, 149, - 229, 150, 592, 593, 594, 595, 670, 189, 154, 510, - 500, 511, 862, 285, 286, 501, 190, 363, 364, 117, - 118, 119, 120, 671, 195, 277, 278, 279, 124, 125, - 280, 283, 227, 859, 366, 292, 793, 794, 1238, 124, - 125, 312, 179, 181, 314, 187, 658, 141, 315, 321, - 324, 325, 860, 327, 321, 329, 330, 140, 321, 333, - 334, 596, 912, 1210, 196, 289, 468, 207, 666, 217, - 219, 363, 364, 469, 763, 675, 124, 125, 386, 124, - 125, 361, 362, 765, 221, 210, 222, 675, 363, 364, - 362, 223, 117, 118, 119, 120, 183, 956, 957, 184, - 646, 559, 185, 1288, 962, 647, 963, 394, 395, 396, - 142, 398, 471, 322, 401, 402, 144, 403, 322, 143, - 124, 125, 322, 145, 580, 410, 659, 765, 230, 232, - 231, 233, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 146, 175, 176, 1008, 463, 363, - 364, 572, 358, 359, 162, 177, 321, 163, 147, 164, - 367, 473, 186, 170, 375, 964, 171, 965, 172, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 377, 508, 117, 118, 119, 120, - 733, 378, 506, 811, 363, 364, 734, 735, 510, 902, - 514, 226, 906, 767, 510, 519, 124, 125, 1079, 506, - 321, 376, 733, 1080, 528, 529, 530, 531, 734, 735, - 322, 363, 364, 536, 363, 364, 363, 364, 541, 542, - 543, 157, 107, 108, 109, 110, 158, 966, 111, 967, - 545, 151, 553, 554, 555, 277, 278, 556, 306, 307, - 308, 560, 561, 562, 563, 309, 507, 567, 152, 973, - 569, 570, 677, 786, 321, 573, 574, 155, 156, 288, - 289, 289, 144, 507, 322, 124, 125, 165, 159, 669, - 504, 1188, 222, 587, 700, 130, 590, 223, 589, 160, - 161, 810, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 526, 307, 308, 117, 118, 119, 120, - 309, 510, 173, 516, 363, 364, 174, 860, 156, 1056, - 860, 363, 364, 860, 1142, 672, 124, 125, 322, 733, - 552, 33, 34, 35, 36, 734, 735, 558, 191, 653, - 41, 548, 549, 44, 182, 200, 662, 660, 192, 359, - 363, 364, 363, 364, 193, 733, 1157, 234, 1160, 235, - 1163, 734, 735, 199, 201, 733, 849, 733, 861, 363, - 364, 734, 735, 734, 735, 321, 678, 202, 653, 682, - 203, 204, 683, 684, 686, 1060, 363, 364, 236, 860, - 237, 661, 238, 240, 239, 241, 212, 321, 1191, 213, - 684, 703, 1113, 733, 205, 242, 708, 243, 785, 734, - 735, 715, 715, 715, 715, 211, 214, 905, 907, 860, - 725, 726, 860, 215, 1194, 860, 729, 244, 860, 245, - 804, 805, 806, 807, 1248, 270, 1277, 733, 745, 322, - 747, 1229, 814, 734, 735, 225, 271, 685, 687, 1073, - 860, 272, 860, 758, 860, 760, 761, 716, 716, 716, - 716, 322, 733, 831, 685, 766, 273, 274, 734, 735, - 733, 246, 1279, 247, 275, 287, 734, 735, 363, 364, - 293, 733, 1259, 733, 1262, 1046, 1265, 734, 735, 734, - 735, 248, 1268, 249, 1115, 363, 364, 310, 775, 776, - 250, 311, 251, 363, 364, 510, 1281, 520, 326, 363, - 364, 1117, 777, 778, 779, 780, 781, 782, 783, 1124, - 1290, 321, 1292, 724, 1294, 1125, 787, 252, 254, 253, - 255, 1283, 166, 795, 313, 167, 738, 1013, 168, 1301, - 169, 331, 837, 321, 321, 321, 321, 808, 340, 256, - 1302, 257, 1303, 357, 341, 321, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 124, 125, 342, 368, 309, 465, 321, 222, 258, 343, - 259, 338, 223, 1074, 294, 322, 345, 345, 345, 260, - 262, 261, 263, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 322, 322, 322, - 322, 309, 363, 364, 349, 345, 382, 363, 364, 322, - 363, 364, 363, 364, 354, 363, 364, 369, 1126, 980, - 363, 364, 389, 1187, 1152, 370, 1190, 264, 1193, 265, - 322, 1201, 363, 364, 888, 889, 1203, 355, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 813, 1252, 356, - 880, 309, 387, 390, 266, 766, 267, 379, 268, 908, - 269, 644, 380, 645, 913, 304, 305, 306, 307, 308, - 510, 510, 656, 701, 309, 510, 923, 751, 383, 822, - 926, 823, 391, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 392, 853, 854, - 855, 309, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 958, 959, 960, 510, 309, 830, 393, - 397, 968, 970, 400, 399, 971, 914, 510, 915, 916, - 404, 510, 321, 917, 510, 510, 918, 919, 510, 510, - 925, 941, 985, 986, 987, 995, 1037, 996, 1038, 405, - 407, 992, 990, 510, 409, 1068, 998, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 1002, 1085, 411, 1086, 309, 412, 881, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 1164, 1016, 1165, 510, 309, 1175, 322, 1021, 1022, 995, - 414, 1179, 1024, 995, 510, 1183, 1202, 1167, 464, 1085, - 1030, 1235, 510, 510, 1251, 1253, 1001, 995, 510, 1257, - 1284, 1040, 1285, 995, 1286, 1300, 1304, 1132, 1305, 972, - 309, 474, 475, 130, 476, 527, 477, 505, 532, 321, - 533, 537, 321, 538, 539, 1069, 540, 564, 566, 544, - 568, 578, 581, 1077, 649, 648, 289, 1081, 1082, 663, - 1273, 650, 652, 664, 668, 679, 688, 1041, 689, 690, - 692, 693, 694, 695, 697, 698, 1170, 699, 1095, 710, - 712, 654, 655, 723, 746, 1230, 754, 755, 727, 728, - 1296, 756, 1299, 757, 770, 771, 1017, 772, 774, 1078, - 784, 789, 791, 322, 790, 796, 322, 797, 1111, 1310, - 483, 809, 799, 800, 803, 817, 820, 841, 826, 833, - 827, 834, 7, 8, 1123, 835, 506, 836, 839, 848, - 1047, 840, 1050, 842, 1053, 1130, 843, 1131, 845, 844, - 321, 846, 847, 1063, 1136, 1065, 1066, 709, 856, 1140, - 857, 858, 1231, 863, 1234, 478, 15, 16, 479, 18, - 19, 480, 21, 481, 23, 864, 24, 865, 26, 27, - 866, 29, 30, 31, 869, 868, 870, 1155, 871, 1158, - 872, 1161, 873, 877, 882, 883, 887, 885, 884, 321, - 507, 886, 892, 1172, 909, 903, 910, 920, 48, 49, - 50, 1177, 1178, 1270, 322, 289, 928, 932, 1181, 935, - 927, 936, 933, 934, 1182, 939, 940, 1185, 938, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 942, 946, 947, 984, 309, 949, 950, - 998, 951, 952, 961, 977, 982, 983, 981, 988, 1004, - 989, 1217, 571, 322, 1221, 999, 1003, 1225, 1006, 1009, - 1010, 1228, 1011, 1012, 1018, 321, 1015, 321, 1019, 1020, - 1023, 1025, 1237, 1026, 1027, 1239, 1031, 1036, 1039, 1048, - 1028, 1156, 1051, 1159, 1054, 1162, 1061, 1057, 1064, 1067, - 1084, 1087, 1169, 1091, 1171, 1088, 1089, 1092, 1094, 1093, - 1100, 1121, 1102, 818, 819, 1103, 821, 1104, 824, 825, - 1101, 1105, 828, 829, 7, 8, 321, 1106, 1107, 1109, - 1112, 1119, 1127, 1134, 1129, 1141, 1145, 1110, 1114, 322, - 1143, 322, 1146, 1116, 1118, 1122, 1147, 1148, 1149, 1150, - 1176, 1180, 1184, 1196, 1205, 1197, 1213, 478, 15, 16, - 479, 18, 19, 480, 21, 481, 23, 1200, 24, 1215, - 26, 27, 1218, 29, 30, 31, 1219, 1222, 874, 875, - 876, 1233, 499, 1223, 1226, 1232, 1246, 1254, 1260, 1227, - 322, 1263, 1240, 1266, 1269, 1242, 1271, 1244, 1255, 1275, - 48, 49, 50, 1276, 1289, 1291, 1278, 1293, 1295, 1297, - 79, 316, 1306, 922, 1307, 1308, 83, 84, 85, 1309, - 1280, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 651, 1311, 931, 1206, 930, 67, 1282, 1287, - 937, 75, 317, 1005, 585, 535, 0, 0, 943, 944, - 945, 0, 0, 0, 948, 0, 0, 0, 0, 953, - 954, 955, 0, 33, 34, 35, 36, 37, 0, 0, - 0, 969, 41, 0, 0, 44, 0, 976, 0, 0, - 979, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 0, 0, 0, 0, 309, - 0, 0, 0, 0, 113, 114, 115, 116, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1000, - 0, 371, 1062, 0, 0, 0, 123, 0, 0, 0, - 0, 373, 0, 0, 0, 0, 129, 0, 178, 524, - 0, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 0, 0, 0, 0, 309, - 0, 79, 316, 1032, 1033, 1034, 1035, 83, 84, 85, - 0, 0, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 0, 0, 0, 0, 0, 1070, 0, - 0, 0, 0, 317, 0, 0, 0, 0, 0, 1083, - 0, 0, 0, 7, 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 34, 35, 36, 37, 0, - 0, 0, 0, 41, 0, 798, 44, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 478, 15, 16, 479, - 18, 19, 480, 21, 481, 23, 0, 24, 0, 26, - 27, 0, 29, 30, 31, 113, 114, 115, 116, 0, - 832, 1120, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 121, 318, 0, 0, 0, 123, 0, 48, - 49, 50, 126, 0, 0, 0, 0, 129, 0, 0, - 524, 0, 0, 79, 80, 81, 0, 82, 0, 83, - 84, 85, 0, 0, 86, 87, 88, 89, 90, 91, + 135, 380, 478, 134, 558, 559, 70, 466, 467, 468, + 198, 394, 1152, 137, 210, 682, 183, 185, 192, 191, + 810, 673, 599, 288, 150, 155, 220, 224, 870, 222, + 150, 390, 412, 391, 414, 1164, 141, 1222, 801, 771, + 139, 742, 155, 369, 370, 213, 4, 743, 744, 463, + 230, 742, 931, 369, 370, 351, 352, 743, 744, 973, + 934, 974, 473, 193, 230, 872, 126, 127, 327, 975, + 138, 976, 194, 332, 369, 370, 201, 336, 202, 5, + 665, 109, 110, 111, 112, 387, 151, 113, 665, 140, + 553, 231, 151, 152, 156, 109, 110, 111, 112, 678, + 232, 113, 233, 600, 601, 602, 603, 369, 370, 199, + 869, 679, 369, 370, 289, 290, 506, 281, 282, 283, + 984, 507, 284, 287, 371, 966, 967, 296, 560, 802, + 803, 742, 683, 316, 143, 293, 318, 743, 744, 1251, + 319, 325, 328, 329, 144, 331, 325, 333, 334, 200, + 325, 337, 338, 211, 922, 870, 126, 127, 364, 365, + 674, 225, 604, 226, 221, 392, 373, 223, 227, 683, + 381, 474, 772, 142, 1223, 367, 368, 214, 126, 127, + 369, 370, 477, 145, 368, 774, 119, 120, 121, 122, + 667, 159, 742, 567, 119, 120, 121, 122, 743, 744, + 1201, 400, 401, 402, 1301, 404, 146, 475, 407, 408, + 292, 409, 148, 147, 126, 127, 588, 164, 742, 416, + 165, 666, 166, 149, 743, 744, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 369, 370, + 1019, 383, 469, 160, 35, 36, 37, 38, 384, 516, + 325, 517, 153, 43, 566, 479, 46, 1204, 119, 120, + 121, 122, 916, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 126, 127, + 369, 370, 187, 742, 154, 188, 512, 580, 189, 743, + 744, 369, 370, 157, 520, 126, 127, 372, 776, 525, + 369, 370, 774, 512, 325, 158, 742, 859, 534, 535, + 536, 537, 743, 744, 369, 370, 977, 542, 978, 556, + 557, 161, 547, 548, 549, 742, 146, 365, 742, 158, + 871, 743, 744, 677, 743, 744, 680, 162, 561, 562, + 563, 281, 282, 564, 293, 293, 514, 568, 569, 570, + 571, 163, 1207, 575, 369, 370, 577, 578, 795, 742, + 325, 581, 582, 179, 180, 743, 744, 167, 119, 120, + 121, 122, 326, 181, 234, 1261, 235, 326, 654, 595, + 190, 326, 598, 655, 597, 820, 819, 175, 126, 127, + 516, 179, 180, 176, 1290, 369, 370, 1292, 685, 177, + 742, 181, 178, 186, 126, 127, 743, 744, 182, 510, + 195, 226, 382, 1170, 132, 1173, 227, 1176, 742, 1155, + 708, 196, 912, 870, 743, 744, 870, 516, 1294, 870, + 742, 197, 742, 369, 370, 661, 743, 744, 743, 744, + 203, 204, 670, 668, 308, 309, 310, 311, 312, 1072, + 725, 726, 727, 313, 669, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 532, 311, 312, 1296, + 205, 325, 686, 313, 661, 690, 369, 370, 691, 692, + 694, 1091, 1068, 206, 915, 917, 1092, 1314, 369, 370, + 369, 370, 1126, 325, 207, 870, 692, 711, 1242, 1315, + 216, 1316, 716, 733, 1128, 208, 1130, 723, 723, 723, + 723, 326, 172, 369, 370, 173, 747, 174, 734, 735, + 724, 724, 724, 724, 738, 870, 369, 370, 870, 1137, + 209, 870, 369, 370, 870, 236, 754, 237, 756, 1272, + 215, 1275, 1138, 1278, 229, 217, 794, 513, 1139, 1281, + 238, 767, 239, 769, 770, 240, 870, 241, 870, 242, + 870, 243, 218, 775, 513, 326, 369, 370, 813, 814, + 815, 816, 369, 370, 244, 1058, 245, 1303, 219, 1305, + 823, 1307, 1200, 1085, 369, 370, 369, 370, 1203, 369, + 370, 369, 370, 274, 463, 230, 784, 785, 275, 317, + 1206, 840, 1214, 276, 246, 1216, 247, 1265, 277, 278, + 786, 787, 788, 789, 790, 791, 792, 168, 279, 325, + 169, 326, 297, 170, 796, 171, 109, 110, 111, 112, + 291, 804, 113, 248, 1024, 249, 250, 822, 251, 314, + 315, 325, 325, 325, 325, 817, 330, 310, 311, 312, + 252, 342, 253, 325, 313, 345, 349, 349, 349, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 362, 254, + 335, 255, 313, 361, 325, 256, 258, 257, 259, 260, + 262, 261, 263, 264, 266, 265, 267, 349, 388, 863, + 864, 865, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 126, 127, 363, 374, + 313, 471, 268, 226, 269, 270, 344, 271, 227, 1086, + 272, 375, 273, 516, 346, 522, 1165, 516, 516, 526, + 664, 652, 326, 653, 516, 347, 709, 516, 393, 760, + 693, 695, 353, 898, 899, 831, 516, 832, 839, 924, + 516, 925, 926, 516, 326, 927, 358, 693, 7, 8, + 516, 516, 928, 929, 775, 516, 359, 935, 918, 991, + 516, 360, 951, 923, 1006, 1048, 1007, 1049, 516, 1097, + 1080, 1098, 1177, 395, 1178, 933, 516, 385, 1188, 936, + 376, 484, 15, 16, 485, 18, 19, 486, 21, 487, + 23, 1006, 24, 1192, 26, 27, 386, 29, 30, 31, + 389, 396, 33, 34, 1006, 516, 1196, 1215, 1097, 397, + 1248, 983, 399, 969, 970, 971, 516, 516, 1264, 1266, + 398, 979, 981, 403, 405, 982, 50, 51, 52, 1006, + 406, 1270, 325, 516, 1298, 1297, 1299, 1006, 1317, 1313, + 1318, 410, 996, 997, 998, 411, 413, 415, 417, 418, + 470, 1003, 1001, 420, 313, 480, 1009, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 481, + 326, 1013, 482, 313, 132, 533, 538, 483, 1028, 539, + 579, 543, 511, 1012, 890, 544, 545, 546, 551, 550, + 552, 1027, 326, 326, 326, 326, 572, 1032, 1033, 574, + 576, 589, 1035, 586, 326, 656, 1180, 657, 658, 671, + 1041, 660, 672, 1059, 676, 1062, 687, 1065, 696, 697, + 698, 1051, 700, 701, 702, 326, 1075, 703, 1077, 1078, + 705, 706, 707, 718, 1052, 293, 720, 731, 736, 737, + 325, 755, 766, 325, 763, 764, 1081, 765, 779, 780, + 781, 783, 793, 798, 1089, 662, 663, 799, 1093, 1094, + 1286, 800, 805, 806, 809, 808, 812, 1090, 829, 1145, + 826, 818, 835, 842, 836, 843, 844, 845, 848, 1107, + 849, 854, 855, 850, 1243, 856, 851, 852, 853, 857, + 1309, 868, 1312, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 858, 866, 1323, + 1124, 313, 298, 891, 867, 873, 874, 878, 875, 1183, + 876, 717, 879, 880, 882, 883, 1136, 881, 512, 887, + 892, 893, 895, 897, 732, 894, 896, 1143, 902, 1144, + 919, 913, 325, 920, 930, 937, 1149, 938, 942, 943, + 944, 1153, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 945, 946, 948, 1169, 313, 1172, 949, + 1175, 950, 952, 956, 957, 968, 972, 1182, 959, 1184, + 1168, 960, 1171, 961, 1174, 962, 293, 988, 993, 992, + 994, 995, 325, 326, 489, 1244, 1185, 1247, 999, 1010, + 1000, 1014, 1015, 1017, 1190, 1191, 1020, 1021, 1022, 1023, + 1026, 1194, 1029, 505, 1030, 1031, 1034, 1195, 1036, 1039, + 1198, 1037, 1038, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 1042, 1047, 1050, + 1053, 313, 1060, 1009, 1063, 1066, 1283, 1069, 1073, 1076, + 1079, 1099, 1096, 1103, 1230, 1100, 1246, 1234, 1101, 1104, + 1238, 1106, 1105, 1112, 1241, 1114, 1113, 1115, 325, 1116, + 325, 1117, 1118, 1121, 1119, 1250, 1122, 1123, 1252, 827, + 828, 1125, 830, 1127, 833, 834, 1129, 1131, 837, 838, + 1132, 1135, 1134, 1140, 1147, 1154, 1158, 1142, 1159, 1160, + 1161, 326, 1162, 1163, 326, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 325, + 1156, 1193, 1189, 313, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 1197, 1209, + 1210, 1218, 313, 1226, 1228, 884, 885, 886, 1213, 1231, + 1232, 1235, 1236, 1239, 1245, 81, 320, 1259, 1240, 1267, + 1273, 85, 86, 87, 1253, 1255, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 1166, 107, 108, 109, 110, - 0, 0, 111, 586, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1195, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 0, 0, 0, 0, 309, 0, 0, - 0, 112, 0, 0, 0, 0, 0, 113, 114, 115, - 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 121, 122, 0, 0, 0, 123, - 0, 124, 125, 0, 126, 0, 127, 0, 128, 129, - 0, 130, 79, 316, 344, 0, 0, 0, 83, 84, - 85, 0, 0, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 317, 0, 0, 0, 0, 7, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 33, 34, 35, 36, 37, - 0, 0, 0, 0, 41, 0, 0, 44, 0, 0, - 0, 0, 478, 15, 16, 479, 18, 19, 480, 21, - 481, 23, 0, 24, 0, 26, 27, 0, 29, 30, - 31, 0, 0, 0, 0, 0, 113, 114, 115, 116, + 102, 103, 104, 105, 106, 107, 108, 659, 1257, 513, + 1276, 1268, 1279, 1282, 1284, 1289, 1302, 321, 1304, 1288, + 1291, 1306, 1308, 326, 1310, 1293, 1319, 1295, 1320, 1321, + 1322, 941, 1300, 1324, 932, 1219, 940, 947, 69, 77, + 35, 36, 37, 38, 39, 953, 954, 955, 1016, 43, + 0, 958, 46, 541, 0, 0, 963, 964, 965, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 980, + 0, 0, 0, 326, 0, 987, 0, 0, 990, 0, + 0, 115, 116, 117, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 377, 1074, + 0, 0, 0, 125, 0, 0, 0, 0, 379, 0, + 0, 0, 0, 131, 0, 182, 530, 1011, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 807, 0, 0, 0, 313, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 326, + 0, 326, 0, 0, 0, 0, 0, 0, 0, 81, + 320, 1043, 1044, 1045, 1046, 85, 86, 87, 0, 0, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 0, 0, 0, 0, 0, 0, 1082, 0, 0, + 326, 321, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 121, 335, 48, 49, 50, 123, 0, - 0, 0, 0, 126, 0, 79, 316, 974, 129, 0, - 336, 83, 84, 85, 0, 0, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 317, 0, 739, + 0, 0, 0, 0, 35, 36, 37, 38, 39, 0, + 0, 0, 0, 43, 0, 0, 46, 0, 0, 0, + 0, 0, 841, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 0, 0, 115, 116, 117, 118, 0, + 0, 1133, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 123, 322, 0, 0, 0, 125, 0, 0, + 0, 0, 128, 0, 0, 0, 0, 131, 0, 0, + 530, 0, 0, 0, 81, 82, 83, 0, 84, 0, + 85, 86, 87, 0, 0, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 1179, 109, 110, 111, + 112, 0, 0, 113, 0, 0, 0, 0, 0, 0, + 0, 7, 8, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 0, 0, 0, 1208, + 0, 0, 0, 0, 484, 15, 16, 485, 18, 19, + 486, 21, 487, 23, 0, 24, 0, 26, 27, 0, + 29, 30, 31, 0, 114, 33, 34, 0, 0, 0, + 115, 116, 117, 118, 119, 120, 121, 122, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 123, 124, 50, + 51, 52, 125, 0, 126, 127, 0, 128, 0, 129, + 0, 130, 131, 0, 132, 81, 320, 348, 0, 0, + 0, 85, 86, 87, 0, 0, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 0, 0, 0, + 0, 0, 0, 593, 0, 0, 0, 321, 0, 0, 0, 0, 7, 8, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 34, - 35, 36, 37, 0, 0, 0, 0, 41, 0, 0, - 44, 0, 0, 0, 0, 478, 15, 16, 479, 18, - 19, 480, 21, 481, 23, 0, 24, 0, 26, 27, - 0, 29, 30, 31, 0, 0, 0, 0, 0, 113, - 114, 115, 116, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 121, 335, 48, 49, - 50, 123, 0, 0, 0, 0, 126, 0, 79, 316, - 0, 129, 0, 975, 83, 84, 85, 0, 0, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 35, 36, 37, 38, 39, 0, 0, 0, 0, 43, + 0, 0, 46, 0, 0, 484, 15, 16, 485, 18, + 19, 486, 21, 487, 23, 0, 24, 0, 26, 27, + 0, 29, 30, 31, 0, 0, 33, 34, 0, 0, + 0, 115, 116, 117, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 123, 339, + 50, 51, 52, 125, 0, 0, 0, 0, 128, 0, + 81, 320, 985, 131, 0, 340, 85, 86, 87, 0, + 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 321, 0, 594, 0, 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 317, 0, 759, 0, 0, 7, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 35, 36, 37, 38, 39, + 0, 0, 0, 0, 43, 0, 0, 46, 0, 0, + 484, 15, 16, 485, 18, 19, 486, 21, 487, 23, + 0, 24, 0, 26, 27, 0, 29, 30, 31, 0, + 0, 33, 34, 0, 0, 0, 115, 116, 117, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 33, 34, 35, 36, 37, 0, 0, 0, 0, - 41, 0, 0, 44, 0, 0, 0, 0, 478, 15, - 16, 479, 18, 19, 480, 21, 481, 23, 0, 24, - 0, 26, 27, 0, 29, 30, 31, 0, 0, 0, - 0, 0, 113, 114, 115, 116, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, - 335, 48, 49, 50, 123, 0, 0, 0, 0, 126, - 0, 79, 316, 0, 129, 0, 336, 83, 84, 85, - 0, 0, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 317, 0, 1198, 0, 0, 7, 8, + 0, 0, 0, 123, 339, 50, 51, 52, 125, 0, + 0, 0, 0, 128, 0, 81, 320, 0, 131, 0, + 986, 85, 86, 87, 0, 0, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 321, 0, 748, + 0, 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 34, 35, 36, 37, 0, - 0, 0, 0, 41, 0, 0, 44, 0, 0, 0, - 0, 478, 15, 16, 479, 18, 19, 480, 21, 481, - 23, 0, 24, 0, 26, 27, 0, 29, 30, 31, - 0, 867, 0, 0, 0, 113, 114, 115, 116, 0, + 35, 36, 37, 38, 39, 0, 0, 0, 0, 43, + 0, 0, 46, 0, 0, 484, 15, 16, 485, 18, + 19, 486, 21, 487, 23, 0, 24, 0, 26, 27, + 0, 29, 30, 31, 0, 0, 33, 34, 0, 0, + 0, 115, 116, 117, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 123, 339, + 50, 51, 52, 125, 0, 0, 0, 0, 128, 0, + 81, 320, 0, 131, 0, 340, 85, 86, 87, 0, + 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 321, 0, 768, 0, 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 121, 318, 48, 49, 50, 123, 0, 0, - 0, 0, 126, 0, 79, 316, 0, 129, 0, 523, - 83, 84, 85, 0, 0, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 317, 0, 1249, 0, + 0, 0, 0, 0, 0, 35, 36, 37, 38, 39, + 0, 0, 0, 0, 43, 0, 0, 46, 0, 0, + 484, 15, 16, 485, 18, 19, 486, 21, 487, 23, + 0, 24, 0, 26, 27, 0, 29, 30, 31, 0, + 0, 33, 34, 0, 0, 0, 115, 116, 117, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 33, 34, 35, - 36, 37, 911, 0, 0, 0, 41, 0, 0, 44, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 0, 0, 0, 0, 1090, 0, 0, 0, 113, 114, - 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 121, 318, 0, 0, 0, - 123, 0, 0, 0, 0, 126, 0, 79, 316, 0, - 129, 0, 702, 83, 84, 85, 0, 0, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, - 0, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 0, 0, 0, 0, 309, - 33, 34, 35, 36, 37, 1108, 0, 0, 0, 41, - 0, 0, 44, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 0, 0, 0, - 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 113, 114, 115, 116, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 121, 335, - 0, 0, 0, 123, 0, 0, 0, 0, 126, 0, - 79, 316, 0, 129, 0, 978, 83, 84, 85, 0, - 0, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 317, 0, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 33, 34, 35, 36, 37, 0, 0, - 79, 276, 41, 0, 0, 44, 83, 84, 85, 0, - 0, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 1133, 0, 113, 114, 115, 116, 0, 0, + 0, 0, 0, 123, 322, 50, 51, 52, 125, 0, + 0, 0, 0, 128, 0, 81, 320, 0, 131, 0, + 529, 85, 86, 87, 0, 0, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 321, 0, 1211, + 0, 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 371, 1062, 0, 0, 0, 123, 0, 0, 0, - 0, 373, 0, 79, 276, 226, 129, 0, 178, 83, - 84, 85, 0, 0, 86, 87, 88, 89, 90, 91, + 35, 36, 37, 38, 39, 877, 0, 0, 0, 43, + 0, 0, 46, 0, 0, 484, 15, 16, 485, 18, + 19, 486, 21, 487, 23, 0, 24, 0, 26, 27, + 0, 29, 30, 31, 0, 0, 33, 34, 921, 0, + 0, 115, 116, 117, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 123, 322, + 50, 51, 52, 125, 0, 0, 0, 0, 128, 0, + 81, 320, 0, 131, 0, 710, 85, 86, 87, 0, + 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 321, 0, 1262, 0, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 0, 0, 0, 0, 313, 35, 36, 37, 38, 39, + 1102, 0, 0, 0, 43, 0, 0, 46, 0, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 123, 339, 0, 0, 0, 125, 0, + 0, 0, 0, 128, 0, 81, 320, 0, 131, 0, + 989, 85, 86, 87, 0, 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, - 0, 0, 111, 0, 113, 114, 115, 116, 0, 0, + 102, 103, 104, 105, 106, 107, 108, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 321, 0, 0, + 0, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 35, 36, 37, 38, 39, 0, 0, 81, 280, 43, + 0, 0, 46, 85, 86, 87, 0, 0, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 1120, + 0, 115, 116, 117, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 377, 1074, + 0, 0, 0, 125, 0, 0, 0, 0, 379, 0, + 81, 280, 230, 131, 0, 182, 85, 86, 87, 0, + 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 0, 109, 110, 111, 112, 0, 0, 113, + 0, 0, 0, 115, 116, 117, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 121, 122, 0, 0, 0, 123, 0, 0, 0, - 0, 126, 0, 0, 281, 0, 129, 0, 282, 0, - 0, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 1204, 0, 0, 0, 309, - 0, 0, 0, 0, 0, 0, 0, 113, 114, 115, - 116, 0, 0, 0, 0, 0, 0, 1247, 0, 0, - 0, 0, 0, 0, 121, 122, 0, 0, 0, 123, - 0, 0, 0, 0, 126, 0, 79, 276, 0, 129, - 0, 1076, 83, 84, 85, 0, 0, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 0, 0, - 0, 79, 276, 0, 0, 0, 0, 83, 84, 85, - 0, 0, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 0, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 0, 0, 295, 296, 297, 298, + 123, 124, 0, 0, 0, 125, 0, 0, 0, 0, + 128, 0, 0, 285, 0, 131, 0, 286, 0, 0, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 113, 114, 115, 116, 309, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 121, 122, 0, - 0, 0, 123, 0, 0, 0, 0, 126, 0, 0, - 680, 0, 129, 0, 681, 113, 114, 115, 116, 0, + 309, 310, 311, 312, 1146, 0, 0, 0, 313, 0, + 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, + 0, 0, 0, 0, 0, 0, 1217, 0, 0, 0, + 0, 0, 0, 123, 124, 0, 0, 0, 125, 0, + 0, 0, 0, 128, 0, 81, 280, 0, 131, 0, + 1088, 85, 86, 87, 0, 0, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 0, 0, 0, + 81, 280, 0, 0, 0, 0, 85, 86, 87, 0, + 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 0, 0, 0, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 0, 0, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 115, 116, 117, 118, 313, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 123, 124, + 0, 0, 0, 125, 0, 0, 0, 0, 128, 0, + 0, 688, 0, 131, 0, 689, 115, 116, 117, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 371, 372, 0, 0, 0, 123, 0, 0, - 0, 0, 373, 0, 79, 316, 0, 129, 0, 178, - 83, 84, 85, 0, 0, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 317, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 0, 0, 0, 0, 309, 0, 33, 34, 35, - 36, 37, 502, 0, 79, 276, 41, 0, 0, 44, - 83, 84, 85, 0, 0, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 508, 0, 113, 114, - 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 121, 318, 0, 0, 0, - 123, 79, 276, 226, 0, 126, 0, 83, 84, 85, - 129, 0, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 508, 107, 108, 109, 110, 0, 0, - 111, 0, 0, 0, 0, 0, 0, 0, 113, 114, - 115, 116, 582, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 121, 122, 0, 0, 0, - 123, 673, 0, 0, 0, 126, 0, 0, 0, 0, - 129, 0, 0, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 509, 307, 308, 816, 0, 0, - 0, 309, 0, 0, 0, 113, 114, 115, 116, 0, - 0, 0, 0, 0, 0, 0, 879, 0, 0, 0, - 0, 0, 121, 122, 0, 0, 0, 123, 0, 0, - 0, 0, 126, 0, 0, 0, 0, 129, 0, 0, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 526, 307, 308, 0, 0, 0, 0, 309, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 0, 0, 0, 0, 309, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 0, 0, - 0, 0, 0, 0, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 0, -4, 1, - 0, 309, -4, 0, 0, 0, 0, 0, 0, 0, - -4, -4, 0, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 0, 0, 0, - 0, 309, 0, -4, 0, 0, 0, 0, -4, -4, - 705, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, 0, -4, -4, -4, -4, -4, -4, - -4, -4, 0, -4, -4, -4, -4, -4, -4, -4, - 0, -4, -4, -4, -4, -4, -4, 0, 0, -4, - -4, 6, 0, 0, 0, -4, -4, -4, -4, 7, - 8, -4, 0, -4, 0, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, - 0, 0, 9, 0, 0, 0, 0, 10, 11, 0, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, - 31, 0, 32, 33, 34, 35, 36, 37, 38, 0, - 39, 40, 41, 42, 43, 44, 7, 8, 45, 46, - 0, 0, 0, 0, 47, 48, 49, 50, 0, 0, - 51, 0, 52, 0, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 0, 0, 0, 0, 0, 478, - 15, 16, 479, 18, 19, 480, 21, 481, 23, 0, - 24, 0, 26, 27, 0, 29, 30, 31, 0, 0, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 0, 0, 48, 49, 50, 1044, 0, 1045, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 0, 0, - 0, 0, 0, 1071, 0, 1072, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, - 0, 1153, 0, 1154, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, - 0, 742, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 0, 0, 0, 0, - 309, 0, 0, 0, 0, 0, 0, 0, 0, 768, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 0, 0, 0, 0, 0, 0, 0, 815, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 0, 0, - 0, 0, 0, 0, 0, 852, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, - 0, 0, 0, 1042, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, - 0, 1059, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 0, 0, 0, 0, - 309, 0, 0, 0, 0, 0, 0, 0, 0, 1096, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 0, 0, 0, 0, 0, 0, 0, 1097, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 0, 0, - 0, 0, 0, 0, 0, 1098, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, - 0, 0, 0, 1099, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, - 0, 1128, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 0, 0, 0, 0, - 309, 0, 0, 0, 0, 0, 0, 0, 0, 1168, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 0, 0, 0, 0, 0, 0, 0, 1173, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 0, 0, - 0, 0, 0, 0, 0, 1174, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, - 0, 0, 0, 1186, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, - 0, 1189, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 0, 0, 0, 0, - 309, 0, 0, 0, 0, 0, 0, 0, 0, 1192, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 0, 0, 0, 0, 0, 0, 0, 1212, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 0, 0, - 0, 0, 0, 0, 0, 1214, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, - 0, 0, 0, 1241, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, - 0, 1243, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 0, 0, 0, 0, - 309, 0, 0, 0, 0, 0, 0, 0, 0, 1245, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 0, 0, 0, 0, 0, 0, 0, 1258, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 466, 0, - 0, 0, 0, 546, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 0, 0, 0, 0, 0, 546, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 0, 0, 0, 0, 0, 547, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, - 0, 579, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 0, 0, 0, 0, - 309, 0, 0, 0, 0, 0, 0, 624, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 0, 0, - 0, 0, 0, 625, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 0, 0, 0, 0, 0, 638, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 0, 0, 0, 0, 0, 639, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, - 0, 640, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 0, 0, 0, 0, - 309, 0, 0, 0, 0, 0, 0, 641, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 0, 0, - 0, 0, 0, 642, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 0, 0, 0, 0, 0, 643, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 0, 0, 0, 0, 0, 730, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, - 0, 731, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 0, 0, 0, 0, - 309, 0, 0, 0, 0, 0, 0, 732, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 0, 0, - 0, 0, 0, 812, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 0, 0, 0, 0, 0, 850, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 0, 0, 0, 0, 0, 851, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, - 0, 878, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 0, 0, 0, 0, - 309, 0, 0, 0, 0, 0, 0, 993, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 0, 0, - 0, 0, 0, 994, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 0, 0, 0, 0, 0, 1014, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 0, 0, 0, 0, 0, 1137, 295, 296, 297, 298, + 0, 0, 0, 377, 378, 846, 0, 0, 125, 0, + 0, 0, 0, 379, 0, 81, 320, 0, 131, 0, + 182, 85, 86, 87, 0, 0, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 321, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, + 35, 36, 37, 38, 39, 0, 0, 81, 280, 43, + 0, 0, 46, 85, 86, 87, 0, 0, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 1260, + 0, 115, 116, 117, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 123, 322, + 0, 0, 0, 125, 81, 280, 230, 0, 128, 0, + 85, 86, 87, 131, 0, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 514, 109, 110, 111, + 112, 0, 0, 113, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 115, 116, 117, 118, 514, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 123, 124, 0, 0, 0, 125, 590, 0, 0, 0, + 128, 0, 0, 0, 0, 131, 0, 0, 0, 0, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, - 0, 1138, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 0, 0, 0, 0, - 309, 0, 0, 0, 0, 0, 0, 1144, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 0, 0, - 0, 0, 0, 1208, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 0, 0, 0, 0, 0, 1211, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 0, 0, 470, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 0, 0, 0, - 0, 309, 0, 0, 0, 584, 295, 296, 297, 298, + 309, 310, 311, 312, 681, 0, 0, 0, 313, 0, + 115, 116, 117, 118, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 825, 0, 0, 0, 123, 124, 0, + 0, 0, 125, 0, 0, 0, 0, 128, 0, 0, + 0, 0, 131, 889, 0, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 515, 311, 312, 0, + 0, 0, 0, 313, 0, 0, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 532, 311, 312, + 0, 0, 0, 0, 313, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, + 313, 0, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 0, -4, 1, 0, + 313, -4, 0, 0, 0, 0, 0, 0, 0, -4, + -4, 0, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, + 313, 0, -4, 0, 0, 0, 0, -4, -4, 713, + -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + -4, -4, 0, -4, -4, -4, -4, -4, -4, -4, + -4, 0, -4, -4, -4, -4, -4, -4, -4, -4, + -4, 0, -4, -4, -4, -4, -4, -4, 0, 0, + -4, -4, 6, 0, 0, 0, -4, -4, -4, -4, + 7, 8, -4, 0, -4, 0, -4, -4, -4, -4, + -4, -4, -4, -4, -4, -4, 0, 0, 0, 0, + 0, 0, 0, 9, 0, 0, 0, 0, 10, 11, + 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, + 30, 31, 0, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 0, 41, 42, 43, 44, 45, 46, 7, + 8, 47, 48, 0, 0, 0, 0, 49, 50, 51, + 52, 0, 0, 53, 0, 54, 0, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 0, 0, 0, + 0, 0, 484, 15, 16, 485, 18, 19, 486, 21, + 487, 23, 0, 24, 0, 26, 27, 0, 29, 30, + 31, 0, 0, 33, 34, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 0, 0, 50, 51, 52, + 1056, 0, 1057, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 0, 0, 1083, 0, + 1084, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 0, 0, 0, 0, 0, 1166, 0, 1167, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 0, 0, 751, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, + 0, 0, 0, 0, 777, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, + 0, 0, 824, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, + 862, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 0, 0, 0, 0, 0, 0, 0, 1054, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 0, 0, 1071, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, + 0, 0, 0, 0, 1108, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, + 0, 0, 1109, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, + 1110, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 0, 0, 0, 0, 0, 0, 0, 1111, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 0, 0, 1141, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, + 0, 0, 0, 0, 1181, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, + 0, 0, 1186, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, + 1187, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 0, 0, 0, 0, 0, 0, 0, 1199, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 0, 0, 1202, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, + 0, 0, 0, 0, 1205, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, + 0, 0, 1225, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, + 1227, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 0, 0, 0, 0, 0, 0, 0, 1254, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 0, 0, 1256, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, + 0, 0, 0, 0, 1258, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, + 0, 0, 1271, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 472, 0, 0, 0, 0, 554, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 508, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, + 554, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 0, 0, 0, 0, 0, 555, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, + 0, 0, 587, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 0, 0, 632, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 633, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, + 646, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 0, 0, 0, 0, 0, 647, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, + 0, 0, 648, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 0, 0, 649, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 650, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, + 651, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 0, 0, 0, 0, 0, 739, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, + 0, 0, 740, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 0, 0, 741, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 821, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, + 860, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 0, 0, 0, 0, 0, 861, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, + 0, 0, 888, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 0, 0, 1004, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 1005, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, + 1025, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 0, 0, 0, 0, 0, 1150, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, + 0, 0, 1151, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 0, 0, 1157, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 1221, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, + 1224, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 0, 0, 476, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, + 0, 0, 313, 0, 0, 0, 592, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 0, 0, 596, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 0, 0, 309, 0, 0, 0, 588, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 0, 0, 0, 0, 309, 0, 0, - 0, 603, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 0, 0, 0, 0, - 309, 0, 0, 0, 605, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 0, - 0, 0, 0, 309, 0, 0, 0, 607, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 0, 0, - 609, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 0, 0, 0, 0, 309, - 0, 0, 0, 611, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 0, 0, 613, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 0, 0, 0, 0, 309, 0, 0, 0, 615, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 0, 0, 617, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 0, 0, 0, - 0, 309, 0, 0, 0, 619, 295, 296, 297, 298, + 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, + 0, 0, 611, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 0, 0, 613, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 0, 0, 0, 0, 313, 0, 0, 0, 615, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, + 0, 617, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, + 313, 0, 0, 0, 619, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 0, 0, 621, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, + 623, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 0, 0, 625, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, + 0, 0, 313, 0, 0, 0, 627, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 0, 0, 629, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 0, 0, 309, 0, 0, 0, 621, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 0, 0, 0, 0, 309, 0, 0, - 0, 623, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 0, 0, 0, 0, - 309, 0, 0, 0, 627, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 0, - 0, 0, 0, 309, 0, 0, 0, 629, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 0, 0, - 631, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 0, 0, 0, 0, 309, - 0, 0, 0, 633, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 0, 0, 635, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 0, 0, 0, 0, 309, 0, 0, 0, 637, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 0, 0, 749, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 0, 0, 0, - 0, 309, 0, 0, 0, 750, 295, 296, 297, 298, + 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, + 0, 0, 631, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 0, 0, 635, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 0, 0, 0, 0, 313, 0, 0, 0, 637, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, + 0, 639, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, + 313, 0, 0, 0, 641, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 0, 0, 643, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, + 645, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 0, 0, 758, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, + 0, 0, 313, 0, 0, 0, 759, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 0, 0, 761, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 0, 0, 309, 0, 0, 0, 752, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 0, 0, 0, 0, 309, 0, 0, - 0, 753, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 0, 0, 0, 0, - 309, 0, 0, 0, 764, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 0, - 0, 0, 0, 309, 0, 0, 0, 788, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 0, 0, - 894, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 0, 0, 0, 0, 309, - 0, 0, 0, 896, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 0, 0, 898, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 0, 0, 0, 0, 309, 0, 0, 0, 900, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 0, 0, 901, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 0, 0, 0, - 0, 309, 0, 0, 0, 1007, 295, 296, 297, 298, + 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, + 0, 0, 762, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 0, 0, 773, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 0, 0, 0, 0, 313, 0, 0, 0, 797, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, + 0, 904, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, + 313, 0, 0, 0, 906, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 0, 0, 908, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, + 910, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 0, 0, 911, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, + 0, 0, 313, 0, 0, 0, 1018, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 472, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 0, 0, 0, 0, 313, 0, 509, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 518, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 0, 0, 309, 0, 466, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 0, 0, 0, 0, 309, 0, 503, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 512, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 0, 0, 0, 0, 309, 0, 513, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 515, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 0, 0, 0, 0, 309, - 0, 517, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 0, 0, 0, 0, - 309, 0, 518, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 0, 0, 0, - 0, 309, 0, 521, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 522, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 0, - 0, 0, 0, 309, 0, 575, 295, 296, 297, 298, + 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, + 519, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 521, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, + 313, 0, 523, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 524, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, + 0, 0, 313, 0, 527, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 528, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 0, 0, 0, 0, 313, 0, 583, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 584, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 0, 0, 0, 0, 313, 0, 585, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 591, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 0, 0, 309, 0, 576, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 0, 0, 0, 0, 309, 0, 577, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 583, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 0, 0, 0, 0, 309, 0, 602, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 604, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 0, 0, 0, 0, 309, - 0, 606, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 0, 0, 0, 0, - 309, 0, 608, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 0, 0, 0, - 0, 309, 0, 610, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 612, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 0, - 0, 0, 0, 309, 0, 614, 295, 296, 297, 298, + 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, + 610, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 612, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, + 313, 0, 614, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 616, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, + 0, 0, 313, 0, 618, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 620, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 0, 0, 0, 0, 313, 0, 622, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 624, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 0, 0, 0, 0, 313, 0, 626, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 628, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 0, 0, 309, 0, 616, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 0, 0, 0, 0, 309, 0, 618, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 620, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 0, 0, 0, 0, 309, 0, 622, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 626, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 0, 0, 0, 0, 309, - 0, 628, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 0, 0, 0, 0, - 309, 0, 630, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 0, 0, 0, - 0, 309, 0, 632, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 634, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 0, - 0, 0, 0, 309, 0, 636, 295, 296, 297, 298, + 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, + 630, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 634, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, + 313, 0, 636, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 638, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, + 0, 0, 313, 0, 640, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 642, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 0, 0, 0, 0, 313, 0, 644, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 699, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 0, 0, 0, 0, 313, 0, 704, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 712, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 0, 0, 309, 0, 691, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 0, 0, 0, 0, 309, 0, 696, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 704, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 0, 0, 0, 0, 309, 0, 706, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 707, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 0, 0, 0, 0, 309, - 0, 713, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 0, 0, 0, 0, - 309, 0, 720, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 0, 0, 0, - 0, 309, 0, 721, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 722, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 0, - 0, 0, 0, 309, 0, 741, 295, 296, 297, 298, + 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, + 714, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 715, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, + 313, 0, 721, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 728, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, + 0, 0, 313, 0, 729, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 730, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 0, 0, 0, 0, 313, 0, 750, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 752, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 0, 0, 0, 0, 313, 0, 753, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 757, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 0, 0, 309, 0, 743, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 0, 0, 0, 0, 309, 0, 744, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 748, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 0, 0, 0, 0, 309, 0, 893, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 0, 0, 309, 0, - 895, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 0, 0, 0, 0, 309, - 0, 897, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 0, 0, 0, 0, - 309, 0, 899, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 0, 0, 0, - 0, 309, 0, 904, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 0, 0, 309, 0, 1043, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 0, - 0, 0, 0, 309, 0, 1058, 295, 296, 297, 298, + 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, + 903, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 905, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, + 313, 0, 907, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 909, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, + 0, 0, 313, 0, 914, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 1055, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 0, 0, 0, 0, 313, 0, 1070, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 1087, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 0, 0, 0, 0, 313, 0, 1220, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 1269, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 0, 0, 309, 0, 1075, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 0, 0, 0, 0, 309, 0, 1207, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 0, 0, 0, 309, 0, 1256, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 0, 0, 0, 0, 309 + 309, 310, 311, 312, 0, 0, 0, 0, 313 }; static const yytype_int16 yycheck[] = { - 6, 186, 1084, 6, 0, 7, 271, 272, 273, 365, - 366, 196, 6, 4, 4, 13, 736, 4, 6, 666, - 4, 4, 72, 5, 5, 1107, 145, 72, 3, 72, - 284, 150, 217, 7, 219, 154, 4, 4, 6, 4, - 5, 51, 4, 6, 72, 4, 6, 4, 5, 7, - 6, 4, 4, 6, 73, 163, 164, 73, 124, 125, - 79, 80, 6, 79, 80, 538, 539, 540, 134, 124, - 125, 36, 37, 38, 39, 141, 6, 42, 7, 36, - 37, 38, 39, 191, 134, 42, 141, 134, 134, 134, - 136, 141, 83, 84, 85, 86, 141, 49, 141, 140, - 135, 142, 740, 93, 94, 140, 58, 124, 125, 111, - 112, 113, 114, 141, 101, 121, 122, 123, 131, 132, - 126, 127, 82, 142, 141, 131, 93, 94, 1210, 131, - 132, 137, 34, 35, 140, 37, 138, 6, 144, 145, - 146, 147, 862, 149, 150, 151, 152, 141, 154, 155, - 156, 142, 799, 141, 141, 130, 114, 141, 141, 141, - 141, 124, 125, 282, 138, 121, 131, 132, 136, 131, - 132, 177, 178, 138, 136, 134, 138, 121, 124, 125, - 186, 143, 111, 112, 113, 114, 45, 6, 7, 48, - 135, 376, 51, 1275, 140, 140, 142, 203, 204, 205, - 6, 207, 7, 145, 210, 211, 134, 213, 150, 6, - 131, 132, 154, 141, 399, 221, 470, 138, 134, 134, - 136, 136, 228, 229, 230, 231, 232, 233, 234, 235, + 6, 190, 288, 6, 371, 372, 3, 275, 276, 277, + 4, 200, 1096, 6, 4, 6, 36, 37, 4, 39, + 674, 4, 4, 4, 74, 74, 5, 4, 745, 5, + 74, 4, 221, 6, 223, 1119, 6, 6, 4, 7, + 51, 75, 74, 126, 127, 4, 6, 81, 82, 4, + 5, 75, 6, 126, 127, 165, 166, 81, 82, 142, + 6, 144, 7, 49, 5, 749, 133, 134, 147, 142, + 13, 144, 58, 152, 126, 127, 4, 156, 6, 0, + 7, 36, 37, 38, 39, 195, 136, 42, 7, 136, + 142, 84, 136, 143, 143, 36, 37, 38, 39, 143, + 136, 42, 138, 85, 86, 87, 88, 126, 127, 103, + 144, 143, 126, 127, 95, 96, 137, 123, 124, 125, + 144, 142, 128, 129, 143, 6, 7, 133, 142, 95, + 96, 75, 123, 139, 6, 132, 142, 81, 82, 1223, + 146, 147, 148, 149, 6, 151, 152, 153, 154, 143, + 156, 157, 158, 143, 808, 872, 133, 134, 178, 179, + 143, 138, 144, 140, 143, 138, 186, 143, 145, 123, + 190, 116, 140, 143, 143, 181, 182, 136, 133, 134, + 126, 127, 7, 6, 190, 140, 113, 114, 115, 116, + 476, 55, 75, 382, 113, 114, 115, 116, 81, 82, + 144, 207, 208, 209, 1288, 211, 136, 286, 214, 215, + 4, 217, 136, 143, 133, 134, 405, 48, 75, 225, + 51, 140, 53, 136, 81, 82, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 134, 124, 125, 914, 274, 124, - 125, 390, 174, 175, 48, 134, 282, 51, 134, 53, - 182, 284, 141, 48, 186, 140, 51, 142, 53, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 134, 8, 111, 112, 113, 114, - 73, 141, 318, 135, 124, 125, 79, 80, 140, 135, - 326, 5, 7, 588, 140, 331, 131, 132, 135, 335, - 336, 141, 73, 140, 340, 341, 342, 343, 79, 80, - 282, 124, 125, 349, 124, 125, 124, 125, 354, 355, - 356, 55, 36, 37, 38, 39, 51, 140, 42, 142, - 140, 134, 368, 369, 370, 371, 372, 373, 126, 127, - 128, 377, 378, 379, 380, 133, 318, 383, 134, 142, - 386, 387, 501, 648, 390, 391, 392, 134, 134, 4, - 365, 366, 134, 335, 336, 131, 132, 53, 51, 141, - 136, 142, 138, 409, 523, 141, 412, 143, 411, 51, - 51, 676, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 111, 112, 113, 114, - 133, 140, 134, 142, 124, 125, 141, 1157, 134, 142, - 1160, 124, 125, 1163, 1091, 141, 131, 132, 390, 73, - 140, 66, 67, 68, 69, 79, 80, 140, 51, 465, - 75, 363, 364, 78, 141, 4, 472, 470, 51, 371, - 124, 125, 124, 125, 48, 73, 1114, 134, 1116, 136, - 1118, 79, 80, 48, 4, 73, 140, 73, 140, 124, - 125, 79, 80, 79, 80, 501, 502, 4, 504, 505, - 134, 134, 508, 509, 510, 140, 124, 125, 134, 1229, - 136, 471, 134, 134, 136, 136, 6, 523, 142, 136, - 526, 527, 140, 73, 134, 134, 532, 136, 647, 79, - 80, 537, 538, 539, 540, 134, 4, 791, 792, 1259, - 546, 547, 1262, 4, 142, 1265, 552, 134, 1268, 136, - 669, 670, 671, 672, 142, 134, 142, 73, 564, 501, - 566, 1199, 681, 79, 80, 141, 134, 509, 510, 8, - 1290, 134, 1292, 579, 1294, 581, 582, 537, 538, 539, - 540, 523, 73, 702, 526, 588, 134, 7, 79, 80, - 73, 134, 142, 136, 134, 4, 79, 80, 124, 125, - 6, 73, 1240, 73, 1242, 961, 1244, 79, 80, 79, - 80, 134, 1250, 136, 140, 124, 125, 6, 624, 625, - 134, 6, 136, 124, 125, 140, 142, 142, 134, 124, - 125, 140, 638, 639, 640, 641, 642, 643, 644, 140, - 1278, 647, 1280, 545, 1282, 140, 652, 134, 134, 136, - 136, 142, 45, 659, 5, 48, 558, 922, 51, 142, - 53, 134, 64, 669, 670, 671, 672, 673, 134, 134, - 142, 136, 142, 4, 141, 681, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 131, 132, 134, 141, 133, 136, 702, 138, 134, 134, - 136, 157, 143, 142, 6, 647, 162, 163, 164, 134, - 134, 136, 136, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 669, 670, 671, - 672, 133, 124, 125, 134, 191, 192, 124, 125, 681, - 124, 125, 124, 125, 134, 124, 125, 141, 140, 868, - 124, 125, 6, 140, 1110, 141, 140, 134, 140, 136, - 702, 140, 124, 125, 770, 771, 140, 134, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 679, 140, 134, - 8, 133, 136, 141, 134, 788, 136, 134, 134, 792, - 136, 136, 134, 138, 800, 124, 125, 126, 127, 128, - 140, 140, 142, 142, 133, 140, 812, 142, 134, 51, - 816, 53, 136, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 136, 730, 731, - 732, 133, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 849, 850, 851, 140, 133, 142, 6, - 138, 857, 858, 96, 141, 861, 140, 140, 142, 142, - 6, 140, 868, 142, 140, 140, 142, 142, 140, 140, - 142, 142, 878, 879, 880, 140, 4, 142, 6, 6, - 6, 887, 885, 140, 136, 142, 892, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 907, 140, 4, 142, 133, 141, 135, 117, 118, + 266, 267, 268, 269, 270, 271, 272, 273, 126, 127, + 924, 136, 278, 51, 68, 69, 70, 71, 143, 142, + 286, 144, 136, 77, 142, 288, 80, 144, 113, 114, + 115, 116, 7, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 133, 134, + 126, 127, 45, 75, 136, 48, 322, 396, 51, 81, + 82, 126, 127, 136, 330, 133, 134, 143, 596, 335, + 126, 127, 140, 339, 340, 136, 75, 142, 344, 345, + 346, 347, 81, 82, 126, 127, 142, 353, 144, 369, + 370, 51, 358, 359, 360, 75, 136, 377, 75, 136, + 142, 81, 82, 143, 81, 82, 143, 51, 374, 375, + 376, 377, 378, 379, 371, 372, 8, 383, 384, 385, + 386, 51, 144, 389, 126, 127, 392, 393, 656, 75, + 396, 397, 398, 126, 127, 81, 82, 53, 113, 114, + 115, 116, 147, 136, 136, 144, 138, 152, 137, 415, + 143, 156, 418, 142, 417, 137, 684, 136, 133, 134, + 142, 126, 127, 48, 144, 126, 127, 144, 507, 136, + 75, 136, 143, 143, 133, 134, 81, 82, 143, 138, + 51, 140, 143, 1127, 143, 1129, 145, 1131, 75, 1103, + 529, 51, 137, 1170, 81, 82, 1173, 142, 144, 1176, + 75, 48, 75, 126, 127, 471, 81, 82, 81, 82, + 48, 4, 478, 476, 126, 127, 128, 129, 130, 142, + 544, 545, 546, 135, 477, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 144, + 4, 507, 508, 135, 510, 511, 126, 127, 514, 515, + 516, 137, 144, 4, 800, 801, 142, 144, 126, 127, + 126, 127, 142, 529, 136, 1242, 532, 533, 1212, 144, + 6, 144, 538, 553, 142, 136, 142, 543, 544, 545, + 546, 286, 48, 126, 127, 51, 566, 53, 554, 555, + 543, 544, 545, 546, 560, 1272, 126, 127, 1275, 142, + 136, 1278, 126, 127, 1281, 136, 572, 138, 574, 1253, + 136, 1255, 142, 1257, 143, 138, 655, 322, 142, 1263, + 136, 587, 138, 589, 590, 136, 1303, 138, 1305, 136, + 1307, 138, 4, 596, 339, 340, 126, 127, 677, 678, + 679, 680, 126, 127, 136, 972, 138, 1291, 4, 1293, + 689, 1295, 142, 8, 126, 127, 126, 127, 142, 126, + 127, 126, 127, 136, 4, 5, 632, 633, 136, 5, + 142, 710, 142, 136, 136, 142, 138, 142, 136, 7, + 646, 647, 648, 649, 650, 651, 652, 45, 136, 655, + 48, 396, 6, 51, 660, 53, 36, 37, 38, 39, + 4, 667, 42, 136, 932, 138, 136, 687, 138, 6, + 6, 677, 678, 679, 680, 681, 136, 128, 129, 130, + 136, 159, 138, 689, 135, 143, 164, 165, 166, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 176, 136, + 136, 138, 135, 4, 710, 136, 136, 138, 138, 136, + 136, 138, 138, 136, 136, 138, 138, 195, 196, 739, + 740, 741, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 133, 134, 5, 143, + 135, 138, 136, 140, 138, 136, 136, 138, 145, 144, + 136, 143, 138, 142, 136, 144, 1123, 142, 142, 144, + 144, 138, 507, 140, 142, 136, 144, 142, 138, 144, + 515, 516, 136, 779, 780, 51, 142, 53, 144, 142, + 142, 144, 144, 142, 529, 144, 136, 532, 12, 13, + 142, 142, 144, 144, 797, 142, 136, 144, 801, 878, + 142, 136, 144, 809, 142, 4, 144, 6, 142, 142, + 144, 144, 142, 6, 144, 821, 142, 136, 144, 825, + 143, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 142, 56, 144, 58, 59, 136, 61, 62, 63, + 136, 143, 66, 67, 142, 142, 144, 144, 142, 138, + 144, 871, 6, 859, 860, 861, 142, 142, 144, 144, + 138, 867, 868, 140, 143, 871, 90, 91, 92, 142, + 98, 144, 878, 142, 142, 144, 144, 142, 142, 144, + 144, 6, 888, 889, 890, 6, 6, 138, 4, 143, + 5, 897, 895, 6, 135, 140, 902, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 7, + 655, 917, 138, 135, 143, 7, 7, 144, 938, 7, + 144, 136, 143, 916, 8, 136, 136, 136, 6, 137, + 142, 937, 677, 678, 679, 680, 7, 943, 944, 7, + 6, 143, 948, 95, 689, 142, 1135, 137, 137, 6, + 956, 142, 4, 973, 139, 975, 7, 977, 98, 7, + 7, 967, 7, 98, 7, 710, 986, 7, 988, 989, + 98, 7, 7, 4, 967, 972, 6, 140, 144, 144, + 986, 6, 140, 989, 7, 7, 992, 7, 136, 136, + 143, 6, 4, 6, 1000, 473, 474, 6, 1004, 1005, + 1268, 139, 6, 6, 138, 7, 6, 1000, 7, 1088, + 51, 123, 7, 7, 53, 7, 7, 7, 6, 1025, + 7, 7, 7, 137, 1213, 7, 137, 137, 137, 4, + 1298, 136, 1300, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 142, 6, 1317, + 1056, 135, 6, 137, 143, 7, 6, 143, 7, 1138, + 7, 539, 6, 6, 6, 6, 1072, 51, 1074, 4, + 4, 4, 4, 136, 552, 6, 6, 1083, 143, 1085, + 140, 137, 1088, 7, 6, 143, 1092, 58, 6, 143, + 143, 1097, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 6, 6, 143, 1126, 135, 1128, 6, + 1130, 6, 5, 4, 6, 5, 143, 1137, 7, 1139, + 1126, 7, 1128, 7, 1130, 7, 1123, 143, 6, 143, + 6, 94, 1138, 878, 6, 1214, 1142, 1216, 6, 140, + 7, 6, 4, 6, 1150, 1151, 6, 6, 6, 6, + 139, 1157, 6, 6, 6, 6, 6, 1163, 5, 98, + 1166, 6, 6, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 6, 6, 6, + 137, 135, 6, 1189, 6, 6, 1265, 142, 6, 6, + 6, 4, 143, 7, 1200, 6, 1216, 1203, 6, 6, + 1206, 6, 140, 5, 1210, 6, 49, 6, 1214, 6, + 1216, 6, 6, 6, 143, 1221, 6, 143, 1224, 697, + 698, 144, 700, 143, 702, 703, 143, 143, 706, 707, + 6, 143, 7, 6, 6, 6, 6, 93, 6, 6, + 6, 986, 6, 143, 989, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 1265, + 96, 6, 143, 135, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 144, 6, + 64, 6, 135, 6, 6, 763, 764, 765, 143, 6, + 6, 6, 6, 6, 6, 3, 4, 6, 144, 6, + 6, 9, 10, 11, 143, 143, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 6, 143, 1074, + 6, 143, 6, 6, 6, 6, 6, 45, 6, 143, + 143, 6, 6, 1088, 6, 143, 6, 143, 6, 6, + 6, 829, 143, 6, 820, 1189, 828, 835, 3, 3, + 68, 69, 70, 71, 72, 843, 844, 845, 920, 77, + -1, 849, 80, 352, -1, -1, 854, 855, 856, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 867, + -1, -1, -1, 1138, -1, 873, -1, -1, 876, -1, + -1, 109, 110, 111, 112, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 126, 127, + -1, -1, -1, 131, -1, -1, -1, -1, 136, -1, + -1, -1, -1, 141, -1, 143, 144, 915, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 140, 927, 142, 140, 133, 142, 868, 933, 934, 140, - 6, 142, 938, 140, 140, 142, 142, 1122, 5, 140, - 946, 142, 140, 140, 142, 142, 906, 140, 140, 142, - 142, 957, 140, 140, 142, 142, 140, 1076, 142, 861, - 133, 138, 7, 141, 136, 7, 142, 141, 7, 975, - 7, 134, 978, 134, 134, 981, 134, 7, 7, 135, - 6, 93, 141, 989, 135, 140, 961, 993, 994, 6, - 1255, 135, 140, 4, 137, 7, 96, 957, 7, 7, - 7, 96, 7, 7, 96, 7, 1125, 7, 1014, 4, - 6, 467, 468, 138, 6, 1200, 7, 7, 142, 142, - 1285, 7, 1287, 138, 134, 134, 928, 141, 6, 989, - 4, 6, 137, 975, 6, 6, 978, 6, 1044, 1304, - 6, 121, 7, 136, 6, 51, 7, 135, 7, 7, - 53, 7, 12, 13, 1060, 7, 1062, 7, 6, 4, - 962, 7, 964, 135, 966, 1071, 135, 1073, 7, 135, - 1076, 7, 7, 975, 1080, 977, 978, 533, 6, 1085, - 141, 134, 1201, 7, 1203, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 6, 56, 7, 58, 59, - 7, 61, 62, 63, 6, 141, 6, 1113, 51, 1115, - 6, 1117, 6, 4, 4, 4, 134, 4, 6, 1125, - 1062, 6, 141, 1129, 138, 135, 7, 6, 88, 89, - 90, 1137, 1138, 1252, 1076, 1110, 58, 6, 1144, 6, - 141, 6, 141, 141, 1150, 6, 6, 1153, 141, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 5, 4, 6, 92, 133, 7, 7, - 1176, 7, 7, 141, 141, 6, 6, 141, 6, 4, - 7, 1187, 142, 1125, 1190, 138, 6, 1193, 6, 6, - 6, 1197, 6, 6, 6, 1201, 137, 1203, 6, 6, - 6, 5, 1208, 6, 6, 1211, 6, 6, 6, 6, - 96, 1113, 6, 1115, 6, 1117, 6, 140, 6, 6, - 141, 4, 1124, 7, 1126, 6, 6, 6, 6, 138, - 5, 7, 6, 689, 690, 6, 692, 6, 694, 695, - 49, 6, 698, 699, 12, 13, 1252, 6, 141, 6, - 142, 6, 6, 6, 91, 6, 6, 141, 141, 1201, - 94, 1203, 6, 141, 141, 141, 6, 6, 6, 141, - 141, 6, 142, 6, 6, 64, 6, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 141, 56, 6, - 58, 59, 6, 61, 62, 63, 6, 6, 754, 755, - 756, 1203, 6, 6, 6, 6, 6, 6, 6, 142, - 1252, 6, 141, 6, 6, 141, 6, 141, 141, 141, - 88, 89, 90, 6, 6, 6, 141, 6, 6, 6, - 3, 4, 6, 811, 6, 6, 9, 10, 11, 6, - 141, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 6, 6, 820, 1176, 819, 3, 141, 141, - 826, 3, 45, 910, 142, 348, -1, -1, 834, 835, - 836, -1, -1, -1, 840, -1, -1, -1, -1, 845, - 846, 847, -1, 66, 67, 68, 69, 70, -1, -1, - -1, 857, 75, -1, -1, 78, -1, 863, -1, -1, - 866, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, -1, -1, -1, -1, 133, - -1, -1, -1, -1, 107, 108, 109, 110, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 905, - -1, 124, 125, -1, -1, -1, 129, -1, -1, -1, - -1, 134, -1, -1, -1, -1, 139, -1, 141, 142, - -1, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, -1, -1, -1, -1, 133, - -1, 3, 4, 949, 950, 951, 952, 9, 10, 11, - -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, -1, -1, -1, -1, -1, 984, -1, - -1, -1, -1, 45, -1, -1, -1, -1, -1, 995, - -1, -1, -1, 12, 13, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 66, 67, 68, 69, 70, -1, - -1, -1, -1, 75, -1, 6, 78, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, -1, 56, -1, 58, - 59, -1, 61, 62, 63, 107, 108, 109, 110, -1, - 6, 1057, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 124, 125, -1, -1, -1, 129, -1, 88, - 89, 90, 134, -1, -1, -1, -1, 139, -1, -1, - 142, -1, -1, 3, 4, 5, -1, 7, -1, 9, - 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 1121, 36, 37, 38, 39, - -1, -1, 42, 142, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1164, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, -1, -1, -1, -1, 133, -1, -1, - -1, 101, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 124, 125, -1, -1, -1, 129, - -1, 131, 132, -1, 134, -1, 136, -1, 138, 139, - -1, 141, 3, 4, 5, -1, -1, -1, 9, 10, - 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 45, -1, -1, -1, -1, 12, - 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 66, 67, 68, 69, 70, - -1, -1, -1, -1, 75, -1, -1, 78, -1, -1, - -1, -1, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, -1, 56, -1, 58, 59, -1, 61, 62, - 63, -1, -1, -1, -1, -1, 107, 108, 109, 110, + 129, 130, 6, -1, -1, -1, 135, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1214, + -1, 1216, -1, -1, -1, -1, -1, -1, -1, 3, + 4, 959, 960, 961, 962, 9, 10, 11, -1, -1, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, -1, -1, -1, -1, -1, -1, 995, -1, -1, + 1265, 45, -1, -1, -1, -1, -1, -1, 1006, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 124, 125, 88, 89, 90, 129, -1, - -1, -1, -1, 134, -1, 3, 4, 5, 139, -1, - 141, 9, 10, 11, -1, -1, 14, 15, 16, 17, + -1, -1, -1, -1, 68, 69, 70, 71, 72, -1, + -1, -1, -1, 77, -1, -1, 80, -1, -1, -1, + -1, -1, 6, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, -1, -1, 109, 110, 111, 112, -1, + -1, 1069, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 126, 127, -1, -1, -1, 131, -1, -1, + -1, -1, 136, -1, -1, -1, -1, 141, -1, -1, + 144, -1, -1, -1, 3, 4, 5, -1, 7, -1, + 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 1134, 36, 37, 38, + 39, -1, -1, 42, -1, -1, -1, -1, -1, -1, + -1, 12, 13, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, -1, -1, -1, -1, -1, -1, 1177, + -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, -1, 56, -1, 58, 59, -1, + 61, 62, 63, -1, 103, 66, 67, -1, -1, -1, + 109, 110, 111, 112, 113, 114, 115, 116, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 126, 127, 90, + 91, 92, 131, -1, 133, 134, -1, 136, -1, 138, + -1, 140, 141, -1, 143, 3, 4, 5, -1, -1, + -1, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 45, -1, 142, + -1, -1, -1, 144, -1, -1, -1, 45, -1, -1, -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, - 68, 69, 70, -1, -1, -1, -1, 75, -1, -1, - 78, -1, -1, -1, -1, 45, 46, 47, 48, 49, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 68, 69, 70, 71, 72, -1, -1, -1, -1, 77, + -1, -1, 80, -1, -1, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, -1, 56, -1, 58, 59, - -1, 61, 62, 63, -1, -1, -1, -1, -1, 107, - 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 124, 125, 88, 89, - 90, 129, -1, -1, -1, -1, 134, -1, 3, 4, - -1, 139, -1, 141, 9, 10, 11, -1, -1, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + -1, 61, 62, 63, -1, -1, 66, 67, -1, -1, + -1, 109, 110, 111, 112, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 126, 127, + 90, 91, 92, 131, -1, -1, -1, -1, 136, -1, + 3, 4, 5, 141, -1, 143, 9, 10, 11, -1, + -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 45, -1, 144, -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 45, -1, 142, -1, -1, 12, 13, -1, -1, -1, + -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, + -1, -1, -1, -1, 77, -1, -1, 80, -1, -1, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + -1, 56, -1, 58, 59, -1, 61, 62, 63, -1, + -1, 66, 67, -1, -1, -1, 109, 110, 111, 112, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 126, 127, 90, 91, 92, 131, -1, + -1, -1, -1, 136, -1, 3, 4, -1, 141, -1, + 143, 9, 10, 11, -1, -1, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 45, -1, 144, + -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 66, 67, 68, 69, 70, -1, -1, -1, -1, - 75, -1, -1, 78, -1, -1, -1, -1, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, -1, 56, - -1, 58, 59, -1, 61, 62, 63, -1, -1, -1, - -1, -1, 107, 108, 109, 110, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, - 125, 88, 89, 90, 129, -1, -1, -1, -1, 134, - -1, 3, 4, -1, 139, -1, 141, 9, 10, 11, - -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 45, -1, 142, -1, -1, 12, 13, + 68, 69, 70, 71, 72, -1, -1, -1, -1, 77, + -1, -1, 80, -1, -1, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, -1, 56, -1, 58, 59, + -1, 61, 62, 63, -1, -1, 66, 67, -1, -1, + -1, 109, 110, 111, 112, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 126, 127, + 90, 91, 92, 131, -1, -1, -1, -1, 136, -1, + 3, 4, -1, 141, -1, 143, 9, 10, 11, -1, + -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 45, -1, 144, -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 66, 67, 68, 69, 70, -1, - -1, -1, -1, 75, -1, -1, 78, -1, -1, -1, - -1, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, -1, 56, -1, 58, 59, -1, 61, 62, 63, - -1, 6, -1, -1, -1, 107, 108, 109, 110, -1, + -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, + -1, -1, -1, -1, 77, -1, -1, 80, -1, -1, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + -1, 56, -1, 58, 59, -1, 61, 62, 63, -1, + -1, 66, 67, -1, -1, -1, 109, 110, 111, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 124, 125, 88, 89, 90, 129, -1, -1, - -1, -1, 134, -1, 3, 4, -1, 139, -1, 141, - 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 45, -1, 142, -1, + -1, -1, -1, 126, 127, 90, 91, 92, 131, -1, + -1, -1, -1, 136, -1, 3, 4, -1, 141, -1, + 143, 9, 10, 11, -1, -1, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 45, -1, 144, + -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 66, 67, 68, - 69, 70, 6, -1, -1, -1, 75, -1, -1, 78, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - -1, -1, -1, -1, 6, -1, -1, -1, 107, 108, - 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, - 129, -1, -1, -1, -1, 134, -1, 3, 4, -1, - 139, -1, 141, 9, 10, 11, -1, -1, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, - -1, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, -1, -1, -1, -1, 133, - 66, 67, 68, 69, 70, 6, -1, -1, -1, 75, - -1, -1, 78, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, -1, -1, -1, - -1, 133, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 107, 108, 109, 110, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, - -1, -1, -1, 129, -1, -1, -1, -1, 134, -1, - 3, 4, -1, 139, -1, 141, 9, 10, 11, -1, + 68, 69, 70, 71, 72, 6, -1, -1, -1, 77, + -1, -1, 80, -1, -1, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, -1, 56, -1, 58, 59, + -1, 61, 62, 63, -1, -1, 66, 67, 6, -1, + -1, 109, 110, 111, 112, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 126, 127, + 90, 91, 92, 131, -1, -1, -1, -1, 136, -1, + 3, 4, -1, 141, -1, 143, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 45, -1, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, 66, 67, 68, 69, 70, -1, -1, - 3, 4, 75, -1, -1, 78, 9, 10, 11, -1, + -1, -1, 45, -1, 144, -1, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + -1, -1, -1, -1, 135, 68, 69, 70, 71, 72, + 6, -1, -1, -1, 77, -1, -1, 80, -1, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, + -1, -1, -1, -1, -1, -1, 109, 110, 111, 112, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 126, 127, -1, -1, -1, 131, -1, + -1, -1, -1, 136, -1, 3, 4, -1, 141, -1, + 143, 9, 10, 11, -1, -1, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 45, -1, -1, + -1, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + 68, 69, 70, 71, 72, -1, -1, 3, 4, 77, + -1, -1, 80, 9, 10, 11, -1, -1, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 6, + -1, 109, 110, 111, 112, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 126, 127, + -1, -1, -1, 131, -1, -1, -1, -1, 136, -1, + 3, 4, 5, 141, -1, 143, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 6, -1, 107, 108, 109, 110, -1, -1, + 33, 34, -1, 36, 37, 38, 39, -1, -1, 42, + -1, -1, -1, 109, 110, 111, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 124, 125, -1, -1, -1, 129, -1, -1, -1, - -1, 134, -1, 3, 4, 5, 139, -1, 141, 9, - 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, -1, 36, 37, 38, 39, - -1, -1, 42, -1, 107, 108, 109, 110, -1, -1, + 126, 127, -1, -1, -1, 131, -1, -1, -1, -1, + 136, -1, -1, 139, -1, 141, -1, 143, -1, -1, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 6, -1, -1, -1, 135, -1, + -1, -1, -1, -1, -1, -1, 109, 110, 111, 112, + -1, -1, -1, -1, -1, -1, 6, -1, -1, -1, + -1, -1, -1, 126, 127, -1, -1, -1, 131, -1, + -1, -1, -1, 136, -1, 3, 4, -1, 141, -1, + 143, 9, 10, 11, -1, -1, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, + 3, 4, -1, -1, -1, -1, 9, 10, 11, -1, + -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, -1, -1, -1, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, -1, -1, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 109, 110, 111, 112, 135, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 126, 127, + -1, -1, -1, 131, -1, -1, -1, -1, 136, -1, + -1, 139, -1, 141, -1, 143, 109, 110, 111, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 124, 125, -1, -1, -1, 129, -1, -1, -1, - -1, 134, -1, -1, 137, -1, 139, -1, 141, -1, - -1, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 6, -1, -1, -1, 133, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, -1, -1, -1, -1, -1, -1, 6, -1, -1, - -1, -1, -1, -1, 124, 125, -1, -1, -1, 129, - -1, -1, -1, -1, 134, -1, 3, 4, -1, 139, - -1, 141, 9, 10, 11, -1, -1, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, - -1, 3, 4, -1, -1, -1, -1, 9, 10, 11, - -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, -1, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, -1, -1, 115, 116, 117, 118, + -1, -1, -1, 126, 127, 64, -1, -1, 131, -1, + -1, -1, -1, 136, -1, 3, 4, -1, 141, -1, + 143, 9, 10, 11, -1, -1, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 45, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 107, 108, 109, 110, 133, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, - -1, -1, 129, -1, -1, -1, -1, 134, -1, -1, - 137, -1, 139, -1, 141, 107, 108, 109, 110, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 124, 125, -1, -1, -1, 129, -1, -1, - -1, -1, 134, -1, 3, 4, -1, 139, -1, 141, - 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 45, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, -1, -1, -1, -1, 133, -1, 66, 67, 68, - 69, 70, 140, -1, 3, 4, 75, -1, -1, 78, - 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, + 129, 130, -1, -1, -1, -1, 135, -1, -1, -1, + 68, 69, 70, 71, 72, -1, -1, 3, 4, 77, + -1, -1, 80, 9, 10, 11, -1, -1, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 6, + -1, 109, 110, 111, 112, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 126, 127, + -1, -1, -1, 131, 3, 4, 5, -1, 136, -1, + 9, 10, 11, 141, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 8, -1, 107, 108, - 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, - 129, 3, 4, 5, -1, 134, -1, 9, 10, 11, - 139, -1, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 8, 36, 37, 38, 39, -1, -1, - 42, -1, -1, -1, -1, -1, -1, -1, 107, 108, - 109, 110, 8, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, - 129, 8, -1, -1, -1, 134, -1, -1, -1, -1, - 139, -1, -1, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 8, -1, -1, - -1, 133, -1, -1, -1, 107, 108, 109, 110, -1, - -1, -1, -1, -1, -1, -1, 8, -1, -1, -1, - -1, -1, 124, 125, -1, -1, -1, 129, -1, -1, - -1, -1, 134, -1, -1, -1, -1, 139, -1, -1, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, -1, -1, -1, -1, 133, 115, 116, + 29, 30, 31, 32, 33, 34, 8, 36, 37, 38, + 39, -1, -1, 42, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 109, 110, 111, 112, 8, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 126, 127, -1, -1, -1, 131, 8, -1, -1, -1, + 136, -1, -1, -1, -1, 141, -1, -1, -1, -1, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, -1, -1, - -1, -1, -1, -1, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, -1, 0, 1, - -1, 133, 4, -1, -1, -1, -1, -1, -1, -1, - 12, 13, -1, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, -1, -1, -1, - -1, 133, -1, 35, -1, -1, -1, -1, 40, 41, - 142, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, - 62, 63, -1, 65, 66, 67, 68, 69, 70, 71, - -1, 73, 74, 75, 76, 77, 78, -1, -1, 81, - 82, 4, -1, -1, -1, 87, 88, 89, 90, 12, - 13, 93, -1, 95, -1, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, -1, -1, -1, -1, -1, - -1, -1, 35, -1, -1, -1, -1, 40, 41, -1, + 127, 128, 129, 130, 8, -1, -1, -1, 135, -1, + 109, 110, 111, 112, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 8, -1, -1, -1, 126, 127, -1, + -1, -1, 131, -1, -1, -1, -1, 136, -1, -1, + -1, -1, 141, 8, -1, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, -1, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + -1, -1, -1, -1, 135, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, + 135, -1, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, -1, 0, 1, -1, + 135, 4, -1, -1, -1, -1, -1, -1, -1, 12, + 13, -1, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, + 135, -1, 35, -1, -1, -1, -1, 40, 41, 144, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, 62, - 63, -1, 65, 66, 67, 68, 69, 70, 71, -1, - 73, 74, 75, 76, 77, 78, 12, 13, 81, 82, - -1, -1, -1, -1, 87, 88, 89, 90, -1, -1, - 93, -1, 95, -1, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, -1, -1, -1, -1, -1, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, -1, - 56, -1, 58, 59, -1, 61, 62, 63, -1, -1, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - -1, -1, 88, 89, 90, 140, -1, 142, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, -1, -1, - -1, -1, -1, 140, -1, 142, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, - -1, 140, -1, 142, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, -1, -1, -1, -1, -1, -1, - -1, 142, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, - 133, -1, -1, -1, -1, -1, -1, -1, -1, 142, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - -1, -1, -1, -1, -1, -1, -1, 142, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, -1, -1, - -1, -1, -1, -1, -1, 142, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, - -1, -1, -1, 142, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, -1, -1, -1, -1, -1, -1, - -1, 142, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, - 133, -1, -1, -1, -1, -1, -1, -1, -1, 142, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - -1, -1, -1, -1, -1, -1, -1, 142, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, -1, -1, - -1, -1, -1, -1, -1, 142, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, - -1, -1, -1, 142, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, -1, -1, -1, -1, -1, -1, - -1, 142, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, - 133, -1, -1, -1, -1, -1, -1, -1, -1, 142, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - -1, -1, -1, -1, -1, -1, -1, 142, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, -1, -1, - -1, -1, -1, -1, -1, 142, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, - -1, -1, -1, 142, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, -1, -1, -1, -1, -1, -1, - -1, 142, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, - 133, -1, -1, -1, -1, -1, -1, -1, -1, 142, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - -1, -1, -1, -1, -1, -1, -1, 142, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, -1, -1, - -1, -1, -1, -1, -1, 142, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, - -1, -1, -1, 142, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, -1, -1, -1, -1, -1, -1, - -1, 142, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, - 133, -1, -1, -1, -1, -1, -1, -1, -1, 142, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - -1, -1, -1, -1, -1, -1, -1, 142, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, 135, -1, - -1, -1, -1, 140, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - -1, -1, -1, -1, -1, 140, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, - -1, 140, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, - 133, -1, -1, -1, -1, -1, -1, 140, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, -1, -1, - -1, -1, -1, 140, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - -1, -1, -1, -1, -1, 140, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, - -1, 140, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, - 133, -1, -1, -1, -1, -1, -1, 140, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, -1, -1, - -1, -1, -1, 140, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - -1, -1, -1, -1, -1, 140, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, - -1, 140, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, - 133, -1, -1, -1, -1, -1, -1, 140, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, -1, -1, - -1, -1, -1, 140, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - -1, -1, -1, -1, -1, 140, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, - -1, 140, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, - 133, -1, -1, -1, -1, -1, -1, 140, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, -1, -1, - -1, -1, -1, 140, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - -1, -1, -1, -1, -1, 140, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, - -1, 140, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, - 133, -1, -1, -1, -1, -1, -1, 140, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, -1, -1, - -1, -1, -1, 140, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - -1, -1, 137, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, -1, -1, -1, - -1, 133, -1, -1, -1, 137, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - -1, -1, -1, -1, 133, -1, -1, -1, 137, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, -1, -1, -1, -1, 133, -1, -1, - -1, 137, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, - 133, -1, -1, -1, 137, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, -1, - -1, -1, -1, 133, -1, -1, -1, 137, 115, 116, + 63, -1, 65, 66, 67, 68, 69, 70, 71, 72, + 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, + 83, 84, 4, -1, -1, -1, 89, 90, 91, 92, + 12, 13, 95, -1, 97, -1, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, -1, -1, -1, -1, + -1, -1, -1, 35, -1, -1, -1, -1, 40, 41, + -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, + 62, 63, -1, 65, 66, 67, 68, 69, 70, 71, + 72, 73, -1, 75, 76, 77, 78, 79, 80, 12, + 13, 83, 84, -1, -1, -1, -1, 89, 90, 91, + 92, -1, -1, 95, -1, 97, -1, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, -1, -1, -1, + -1, -1, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, -1, 56, -1, 58, 59, -1, 61, 62, + 63, -1, -1, 66, 67, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, -1, -1, 90, 91, 92, + 142, -1, 144, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, -1, -1, -1, -1, -1, 142, -1, + 144, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + -1, -1, -1, -1, -1, -1, 142, -1, 144, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, + -1, -1, -1, -1, -1, -1, 144, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, + -1, -1, -1, -1, 144, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, + -1, -1, 144, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, + 144, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + -1, -1, -1, -1, -1, -1, -1, -1, 144, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, + -1, -1, -1, -1, -1, -1, 144, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, + -1, -1, -1, -1, 144, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, + -1, -1, 144, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, + 144, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + -1, -1, -1, -1, -1, -1, -1, -1, 144, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, + -1, -1, -1, -1, -1, -1, 144, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, + -1, -1, -1, -1, 144, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, + -1, -1, 144, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, + 144, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + -1, -1, -1, -1, -1, -1, -1, -1, 144, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, + -1, -1, -1, -1, -1, -1, 144, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, + -1, -1, -1, -1, 144, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, + -1, -1, 144, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, + 144, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + -1, -1, -1, -1, -1, -1, -1, -1, 144, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, + -1, -1, -1, -1, -1, -1, 144, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, + -1, -1, -1, -1, 144, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, + -1, -1, 144, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, 137, -1, -1, -1, -1, 142, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, + -1, -1, -1, -1, 142, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, + 142, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + -1, -1, -1, -1, -1, -1, 142, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, + -1, -1, 142, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, -1, -1, -1, -1, -1, 142, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, + -1, -1, -1, -1, 142, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, + 142, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + -1, -1, -1, -1, -1, -1, 142, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, + -1, -1, 142, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, -1, -1, -1, -1, -1, 142, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, + -1, -1, -1, -1, 142, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, + 142, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + -1, -1, -1, -1, -1, -1, 142, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, + -1, -1, 142, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, -1, -1, -1, -1, -1, 142, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, + -1, -1, -1, -1, 142, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, + 142, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + -1, -1, -1, -1, -1, -1, 142, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, + -1, -1, 142, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, -1, -1, -1, -1, -1, 142, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, + -1, -1, -1, -1, 142, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, + 142, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + -1, -1, -1, -1, -1, -1, 142, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, + -1, -1, 142, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, -1, -1, -1, -1, -1, 142, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, + -1, -1, -1, -1, 142, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, + 142, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + -1, -1, -1, 139, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, -1, -1, + -1, -1, 135, -1, -1, -1, 139, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 135, -1, -1, -1, 139, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, -1, -1, - 137, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, -1, -1, -1, -1, 133, - -1, -1, -1, 137, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, -1, -1, 137, 115, 116, 117, + 127, 128, 129, 130, -1, -1, -1, -1, 135, -1, + -1, -1, 139, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, -1, -1, 139, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + -1, -1, -1, -1, 135, -1, -1, -1, 139, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, -1, -1, -1, -1, 133, -1, -1, -1, 137, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - -1, -1, 137, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, -1, -1, -1, - -1, 133, -1, -1, -1, 137, 115, 116, 117, 118, + 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, + -1, 139, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, + 135, -1, -1, -1, 139, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, -1, -1, 139, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - -1, -1, -1, -1, 133, -1, -1, -1, 137, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, -1, -1, -1, -1, 133, -1, -1, - -1, 137, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, - 133, -1, -1, -1, 137, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, -1, - -1, -1, -1, 133, -1, -1, -1, 137, 115, 116, + 129, 130, -1, -1, -1, -1, 135, -1, -1, -1, + 139, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + -1, -1, -1, 139, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, -1, -1, + -1, -1, 135, -1, -1, -1, 139, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 135, -1, -1, -1, 139, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, -1, -1, - 137, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, -1, -1, -1, -1, 133, - -1, -1, -1, 137, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, -1, -1, 137, 115, 116, 117, + 127, 128, 129, 130, -1, -1, -1, -1, 135, -1, + -1, -1, 139, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, -1, -1, 139, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + -1, -1, -1, -1, 135, -1, -1, -1, 139, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, -1, -1, -1, -1, 133, -1, -1, -1, 137, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - -1, -1, 137, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, -1, -1, -1, - -1, 133, -1, -1, -1, 137, 115, 116, 117, 118, + 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, + -1, 139, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, + 135, -1, -1, -1, 139, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, -1, -1, 139, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - -1, -1, -1, -1, 133, -1, -1, -1, 137, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, -1, -1, -1, -1, 133, -1, -1, - -1, 137, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, - 133, -1, -1, -1, 137, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, -1, - -1, -1, -1, 133, -1, -1, -1, 137, 115, 116, + 129, 130, -1, -1, -1, -1, 135, -1, -1, -1, + 139, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + -1, -1, -1, 139, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, -1, -1, + -1, -1, 135, -1, -1, -1, 139, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 135, -1, -1, -1, 139, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, -1, -1, - 137, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, -1, -1, -1, -1, 133, - -1, -1, -1, 137, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, -1, -1, 137, 115, 116, 117, + 127, 128, 129, 130, -1, -1, -1, -1, 135, -1, + -1, -1, 139, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, -1, -1, 139, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + -1, -1, -1, -1, 135, -1, -1, -1, 139, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, -1, -1, -1, -1, 133, -1, -1, -1, 137, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - -1, -1, 137, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, -1, -1, -1, - -1, 133, -1, -1, -1, 137, 115, 116, 117, 118, + 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, + -1, 139, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, + 135, -1, -1, -1, 139, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, -1, -1, 139, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, -1, -1, -1, -1, 135, -1, -1, -1, + 139, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + -1, -1, -1, 139, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, -1, -1, + -1, -1, 135, -1, -1, -1, 139, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - -1, -1, -1, -1, 133, -1, 135, 115, 116, 117, + 129, 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, -1, -1, -1, -1, 133, -1, 135, 115, 116, + 128, 129, 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, 135, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, -1, -1, -1, -1, 133, -1, 135, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - 135, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, -1, -1, -1, -1, 133, - -1, 135, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, - 133, -1, 135, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, -1, -1, -1, - -1, 133, -1, 135, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, 135, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, -1, - -1, -1, -1, 133, -1, 135, 115, 116, 117, 118, + 127, 128, 129, 130, -1, -1, -1, -1, 135, -1, + 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, + 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, -1, -1, + -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - -1, -1, -1, -1, 133, -1, 135, 115, 116, 117, + 129, 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, -1, -1, -1, -1, 133, -1, 135, 115, 116, + 128, 129, 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, 135, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, -1, -1, -1, -1, 133, -1, 135, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - 135, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, -1, -1, -1, -1, 133, - -1, 135, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, - 133, -1, 135, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, -1, -1, -1, - -1, 133, -1, 135, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, 135, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, -1, - -1, -1, -1, 133, -1, 135, 115, 116, 117, 118, + 127, 128, 129, 130, -1, -1, -1, -1, 135, -1, + 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, + 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, -1, -1, + -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - -1, -1, -1, -1, 133, -1, 135, 115, 116, 117, + 129, 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, -1, -1, -1, -1, 133, -1, 135, 115, 116, + 128, 129, 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, 135, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, -1, -1, -1, -1, 133, -1, 135, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - 135, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, -1, -1, -1, -1, 133, - -1, 135, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, - 133, -1, 135, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, -1, -1, -1, - -1, 133, -1, 135, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, 135, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, -1, - -1, -1, -1, 133, -1, 135, 115, 116, 117, 118, + 127, 128, 129, 130, -1, -1, -1, -1, 135, -1, + 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, + 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, -1, -1, + -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - -1, -1, -1, -1, 133, -1, 135, 115, 116, 117, + 129, 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, -1, -1, -1, -1, 133, -1, 135, 115, 116, + 128, 129, 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, 135, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, -1, -1, -1, -1, 133, -1, 135, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - 135, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, -1, -1, -1, -1, 133, - -1, 135, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, - 133, -1, 135, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, -1, -1, -1, - -1, 133, -1, 135, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, 135, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, -1, - -1, -1, -1, 133, -1, 135, 115, 116, 117, 118, + 127, 128, 129, 130, -1, -1, -1, -1, 135, -1, + 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, + 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, -1, -1, + -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - -1, -1, -1, -1, 133, -1, 135, 115, 116, 117, + 129, 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, -1, -1, -1, -1, 133, -1, 135, 115, 116, + 128, 129, 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, 135, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, -1, -1, -1, -1, 133, -1, 135, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 133, -1, - 135, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, -1, -1, -1, -1, 133, - -1, 135, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, - 133, -1, 135, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, -1, -1, -1, - -1, 133, -1, 135, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, - -1, -1, 133, -1, 135, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, -1, - -1, -1, -1, 133, -1, 135, 115, 116, 117, 118, + 127, 128, 129, 130, -1, -1, -1, -1, 135, -1, + 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, + -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, + 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, + -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, -1, -1, + -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, + -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - -1, -1, -1, -1, 133, -1, 135, 115, 116, 117, + 129, 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, -1, -1, -1, -1, 133, -1, 135, 115, 116, + 128, 129, 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, -1, -1, -1, -1, 133, -1, 135, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, -1, -1, -1, -1, 133 + 127, 128, 129, 130, -1, -1, -1, -1, 135 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 1, 145, 146, 6, 0, 4, 12, 13, 35, + 0, 1, 147, 148, 6, 0, 4, 12, 13, 35, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, - 62, 63, 65, 66, 67, 68, 69, 70, 71, 73, - 74, 75, 76, 77, 78, 81, 82, 87, 88, 89, - 90, 93, 95, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 147, 149, 150, 168, 172, 177, 180, - 181, 182, 183, 184, 185, 186, 206, 207, 208, 3, - 4, 5, 7, 9, 10, 11, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, - 39, 42, 101, 107, 108, 109, 110, 111, 112, 113, - 114, 124, 125, 129, 131, 132, 134, 136, 138, 139, - 141, 166, 167, 209, 210, 222, 13, 51, 134, 6, - 141, 6, 6, 6, 134, 141, 134, 134, 72, 134, - 141, 134, 134, 72, 141, 134, 134, 55, 51, 51, - 51, 51, 48, 51, 53, 53, 45, 48, 51, 53, - 48, 51, 53, 134, 141, 124, 125, 134, 141, 211, - 212, 211, 141, 45, 48, 51, 141, 211, 4, 49, - 58, 51, 51, 48, 4, 101, 141, 4, 6, 48, - 4, 4, 4, 134, 134, 134, 4, 141, 218, 4, - 134, 134, 6, 136, 4, 4, 5, 141, 5, 141, - 4, 136, 138, 143, 167, 141, 5, 222, 134, 136, - 134, 136, 134, 136, 134, 136, 134, 136, 134, 136, - 134, 136, 134, 136, 134, 136, 134, 136, 134, 136, - 134, 136, 134, 136, 134, 136, 134, 136, 134, 136, - 134, 136, 134, 136, 134, 136, 134, 136, 134, 136, - 134, 134, 134, 134, 7, 134, 4, 209, 209, 209, - 209, 137, 141, 209, 4, 93, 94, 4, 4, 177, - 178, 179, 209, 6, 6, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 133, - 6, 6, 209, 5, 209, 209, 4, 45, 125, 177, - 186, 209, 216, 217, 209, 209, 134, 209, 217, 209, - 209, 134, 217, 209, 209, 125, 141, 209, 214, 216, - 134, 141, 134, 134, 5, 214, 215, 215, 215, 134, - 173, 174, 175, 176, 134, 134, 134, 4, 211, 211, - 211, 209, 209, 124, 125, 141, 141, 211, 141, 141, - 141, 124, 125, 134, 179, 211, 141, 134, 141, 134, - 134, 215, 214, 134, 4, 6, 136, 136, 179, 6, - 141, 136, 136, 6, 209, 209, 209, 138, 209, 141, - 96, 209, 209, 209, 6, 6, 179, 6, 179, 136, - 209, 4, 141, 151, 6, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 4, 221, 222, - 221, 221, 221, 209, 5, 136, 135, 7, 114, 217, - 137, 7, 166, 167, 138, 7, 136, 142, 45, 48, - 51, 53, 172, 6, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 6, - 135, 140, 140, 135, 136, 141, 209, 216, 8, 126, - 140, 142, 135, 135, 209, 135, 142, 135, 135, 209, - 142, 135, 135, 141, 142, 217, 126, 7, 209, 209, - 209, 209, 7, 7, 204, 204, 209, 134, 134, 134, - 134, 209, 209, 209, 135, 140, 140, 140, 211, 211, - 178, 178, 140, 209, 209, 209, 209, 190, 140, 179, - 209, 209, 209, 209, 7, 205, 7, 209, 6, 209, - 209, 142, 217, 209, 209, 135, 135, 135, 93, 140, - 179, 141, 8, 135, 137, 142, 142, 209, 137, 167, - 209, 4, 83, 84, 85, 86, 142, 154, 158, 161, - 163, 164, 135, 137, 135, 137, 135, 137, 135, 137, - 135, 137, 135, 137, 135, 137, 135, 137, 135, 137, - 135, 137, 135, 137, 140, 140, 135, 137, 135, 137, - 135, 137, 135, 137, 135, 137, 135, 137, 140, 140, - 140, 140, 140, 140, 136, 138, 135, 140, 140, 135, - 135, 6, 140, 209, 214, 214, 142, 7, 138, 166, - 167, 222, 209, 6, 4, 4, 141, 219, 137, 141, - 141, 141, 141, 8, 6, 121, 148, 217, 209, 7, - 137, 141, 209, 209, 209, 216, 209, 216, 96, 7, - 7, 135, 7, 96, 7, 7, 135, 96, 7, 7, - 217, 142, 141, 209, 135, 142, 135, 135, 209, 214, - 4, 203, 6, 135, 169, 209, 222, 169, 169, 169, - 135, 135, 135, 138, 211, 209, 209, 142, 142, 209, - 140, 140, 140, 73, 79, 80, 200, 201, 211, 142, - 187, 135, 142, 135, 135, 209, 6, 209, 135, 137, - 137, 142, 137, 137, 7, 7, 7, 138, 209, 142, - 209, 209, 7, 138, 137, 138, 167, 221, 142, 155, - 134, 134, 141, 165, 6, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 4, 217, 221, 209, 137, 6, - 6, 137, 4, 93, 94, 209, 6, 6, 6, 7, - 136, 218, 220, 6, 217, 217, 217, 217, 209, 121, - 221, 135, 140, 211, 217, 142, 8, 51, 214, 214, - 7, 214, 51, 53, 214, 214, 7, 53, 214, 214, - 142, 217, 6, 7, 7, 7, 7, 64, 202, 6, - 7, 135, 135, 135, 135, 7, 7, 7, 4, 140, - 140, 140, 142, 211, 211, 211, 6, 141, 134, 142, - 201, 140, 200, 7, 6, 7, 7, 6, 141, 6, - 6, 51, 6, 6, 214, 214, 214, 4, 140, 8, - 8, 135, 4, 4, 6, 4, 6, 134, 209, 209, - 213, 214, 141, 135, 137, 135, 137, 135, 137, 135, - 137, 137, 135, 135, 135, 166, 7, 166, 167, 138, - 7, 6, 218, 209, 140, 142, 142, 142, 142, 142, - 6, 6, 148, 209, 6, 142, 209, 141, 58, 171, - 171, 214, 6, 141, 141, 6, 6, 214, 141, 6, - 6, 142, 5, 214, 214, 214, 4, 6, 214, 7, - 7, 7, 7, 214, 214, 214, 6, 7, 209, 209, - 209, 141, 140, 142, 140, 142, 140, 142, 209, 214, - 209, 209, 211, 142, 5, 141, 214, 141, 141, 214, - 217, 141, 6, 6, 92, 209, 209, 209, 6, 7, - 167, 152, 209, 140, 140, 140, 142, 153, 209, 138, - 214, 222, 209, 6, 4, 219, 6, 137, 218, 6, - 6, 6, 6, 221, 140, 137, 209, 211, 6, 6, - 6, 209, 209, 6, 209, 5, 6, 6, 96, 170, - 209, 6, 214, 214, 214, 214, 6, 4, 6, 6, - 209, 222, 142, 135, 140, 142, 178, 211, 6, 191, - 211, 6, 192, 211, 6, 193, 142, 140, 135, 142, - 140, 6, 125, 211, 6, 211, 211, 6, 142, 209, - 214, 140, 142, 8, 142, 135, 141, 209, 222, 135, - 140, 209, 209, 214, 141, 140, 142, 4, 6, 6, - 6, 7, 6, 138, 6, 209, 142, 142, 142, 142, - 5, 49, 6, 6, 6, 6, 6, 141, 6, 6, - 141, 209, 142, 140, 141, 140, 141, 140, 141, 6, - 214, 7, 141, 209, 140, 140, 140, 6, 142, 91, - 209, 209, 217, 6, 6, 156, 209, 140, 140, 213, - 209, 6, 218, 94, 140, 6, 6, 6, 6, 6, - 141, 213, 178, 140, 142, 209, 211, 200, 209, 211, - 200, 209, 211, 200, 140, 142, 214, 179, 142, 211, - 217, 211, 209, 142, 142, 142, 141, 209, 209, 142, - 6, 209, 209, 142, 142, 209, 142, 140, 142, 142, - 140, 142, 142, 140, 142, 214, 6, 64, 142, 188, - 141, 140, 142, 140, 6, 6, 153, 135, 140, 6, - 141, 140, 142, 6, 142, 6, 194, 209, 6, 6, - 195, 209, 6, 6, 196, 209, 6, 142, 209, 200, - 179, 217, 6, 211, 217, 142, 159, 209, 213, 209, - 141, 142, 141, 142, 141, 142, 6, 6, 142, 142, - 189, 142, 140, 142, 6, 141, 135, 142, 142, 200, - 6, 197, 200, 6, 198, 200, 6, 199, 200, 6, - 217, 6, 157, 221, 162, 141, 6, 142, 141, 142, - 141, 142, 141, 142, 142, 140, 142, 141, 213, 6, - 200, 6, 200, 6, 200, 6, 221, 6, 160, 221, - 142, 142, 142, 142, 140, 142, 6, 6, 6, 6, - 221, 6 + 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 75, 76, 77, 78, 79, 80, 83, 84, 89, + 90, 91, 92, 95, 97, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 149, 151, 152, 170, 174, + 179, 182, 183, 184, 185, 186, 187, 188, 208, 209, + 210, 3, 4, 5, 7, 9, 10, 11, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, + 37, 38, 39, 42, 103, 109, 110, 111, 112, 113, + 114, 115, 116, 126, 127, 131, 133, 134, 136, 138, + 140, 141, 143, 168, 169, 211, 212, 224, 13, 51, + 136, 6, 143, 6, 6, 6, 136, 143, 136, 136, + 74, 136, 143, 136, 136, 74, 143, 136, 136, 55, + 51, 51, 51, 51, 48, 51, 53, 53, 45, 48, + 51, 53, 48, 51, 53, 136, 48, 136, 143, 126, + 127, 136, 143, 213, 214, 213, 143, 45, 48, 51, + 143, 213, 4, 49, 58, 51, 51, 48, 4, 103, + 143, 4, 6, 48, 4, 4, 4, 136, 136, 136, + 4, 143, 220, 4, 136, 136, 6, 138, 4, 4, + 5, 143, 5, 143, 4, 138, 140, 145, 169, 143, + 5, 224, 136, 138, 136, 138, 136, 138, 136, 138, + 136, 138, 136, 138, 136, 138, 136, 138, 136, 138, + 136, 138, 136, 138, 136, 138, 136, 138, 136, 138, + 136, 138, 136, 138, 136, 138, 136, 138, 136, 138, + 136, 138, 136, 138, 136, 136, 136, 136, 7, 136, + 4, 211, 211, 211, 211, 139, 143, 211, 4, 95, + 96, 4, 4, 179, 180, 181, 211, 6, 6, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 135, 6, 6, 211, 5, 211, 211, + 4, 45, 127, 179, 188, 211, 218, 219, 211, 211, + 136, 211, 219, 211, 211, 136, 219, 211, 211, 127, + 143, 211, 216, 218, 136, 143, 136, 136, 5, 216, + 217, 217, 217, 136, 175, 176, 177, 178, 136, 136, + 136, 4, 216, 5, 213, 213, 213, 211, 211, 126, + 127, 143, 143, 213, 143, 143, 143, 126, 127, 136, + 181, 213, 143, 136, 143, 136, 136, 217, 216, 136, + 4, 6, 138, 138, 181, 6, 143, 138, 138, 6, + 211, 211, 211, 140, 211, 143, 98, 211, 211, 211, + 6, 6, 181, 6, 181, 138, 211, 4, 143, 153, + 6, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 4, 223, 224, 223, 223, 223, 211, + 5, 138, 137, 7, 116, 219, 139, 7, 168, 169, + 140, 7, 138, 144, 45, 48, 51, 53, 174, 6, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 6, 137, 142, 142, 137, + 138, 143, 211, 218, 8, 128, 142, 144, 137, 137, + 211, 137, 144, 137, 137, 211, 144, 137, 137, 143, + 144, 219, 128, 7, 211, 211, 211, 211, 7, 7, + 206, 206, 211, 136, 136, 136, 136, 211, 211, 211, + 137, 6, 142, 142, 142, 142, 213, 213, 180, 180, + 142, 211, 211, 211, 211, 192, 142, 181, 211, 211, + 211, 211, 7, 207, 7, 211, 6, 211, 211, 144, + 219, 211, 211, 137, 137, 137, 95, 142, 181, 143, + 8, 137, 139, 144, 144, 211, 139, 169, 211, 4, + 85, 86, 87, 88, 144, 156, 160, 163, 165, 166, + 137, 139, 137, 139, 137, 139, 137, 139, 137, 139, + 137, 139, 137, 139, 137, 139, 137, 139, 137, 139, + 137, 139, 142, 142, 137, 139, 137, 139, 137, 139, + 137, 139, 137, 139, 137, 139, 142, 142, 142, 142, + 142, 142, 138, 140, 137, 142, 142, 137, 137, 6, + 142, 211, 216, 216, 144, 7, 140, 168, 169, 224, + 211, 6, 4, 4, 143, 221, 139, 143, 143, 143, + 143, 8, 6, 123, 150, 219, 211, 7, 139, 143, + 211, 211, 211, 218, 211, 218, 98, 7, 7, 137, + 7, 98, 7, 7, 137, 98, 7, 7, 219, 144, + 143, 211, 137, 144, 137, 137, 211, 216, 4, 205, + 6, 137, 171, 211, 224, 171, 171, 171, 137, 137, + 137, 140, 216, 213, 211, 211, 144, 144, 211, 142, + 142, 142, 75, 81, 82, 202, 203, 213, 144, 189, + 137, 144, 137, 137, 211, 6, 211, 137, 139, 139, + 144, 139, 139, 7, 7, 7, 140, 211, 144, 211, + 211, 7, 140, 139, 140, 169, 223, 144, 157, 136, + 136, 143, 167, 6, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 4, 219, 223, 211, 139, 6, 6, + 139, 4, 95, 96, 211, 6, 6, 6, 7, 138, + 220, 222, 6, 219, 219, 219, 219, 211, 123, 223, + 137, 142, 213, 219, 144, 8, 51, 216, 216, 7, + 216, 51, 53, 216, 216, 7, 53, 216, 216, 144, + 219, 6, 7, 7, 7, 7, 64, 204, 6, 7, + 137, 137, 137, 137, 7, 7, 7, 4, 142, 142, + 142, 142, 144, 213, 213, 213, 6, 143, 136, 144, + 203, 142, 202, 7, 6, 7, 7, 6, 143, 6, + 6, 51, 6, 6, 216, 216, 216, 4, 142, 8, + 8, 137, 4, 4, 6, 4, 6, 136, 211, 211, + 215, 216, 143, 137, 139, 137, 139, 137, 139, 137, + 139, 139, 137, 137, 137, 168, 7, 168, 169, 140, + 7, 6, 220, 211, 142, 144, 144, 144, 144, 144, + 6, 6, 150, 211, 6, 144, 211, 143, 58, 173, + 173, 216, 6, 143, 143, 6, 6, 216, 143, 6, + 6, 144, 5, 216, 216, 216, 4, 6, 216, 7, + 7, 7, 7, 216, 216, 216, 6, 7, 5, 211, + 211, 211, 143, 142, 144, 142, 144, 142, 144, 211, + 216, 211, 211, 213, 144, 5, 143, 216, 143, 143, + 216, 219, 143, 6, 6, 94, 211, 211, 211, 6, + 7, 169, 154, 211, 142, 142, 142, 144, 155, 211, + 140, 216, 224, 211, 6, 4, 221, 6, 139, 220, + 6, 6, 6, 6, 223, 142, 139, 211, 213, 6, + 6, 6, 211, 211, 6, 211, 5, 6, 6, 98, + 172, 211, 6, 216, 216, 216, 216, 6, 4, 6, + 6, 211, 224, 137, 144, 137, 142, 144, 180, 213, + 6, 193, 213, 6, 194, 213, 6, 195, 144, 142, + 137, 144, 142, 6, 127, 213, 6, 213, 213, 6, + 144, 211, 216, 142, 144, 8, 144, 137, 143, 211, + 224, 137, 142, 211, 211, 216, 143, 142, 144, 4, + 6, 6, 6, 7, 6, 140, 6, 211, 144, 144, + 144, 144, 5, 49, 6, 6, 6, 6, 6, 143, + 6, 6, 6, 143, 211, 144, 142, 143, 142, 143, + 142, 143, 6, 216, 7, 143, 211, 142, 142, 142, + 6, 144, 93, 211, 211, 219, 6, 6, 158, 211, + 142, 142, 215, 211, 6, 220, 96, 142, 6, 6, + 6, 6, 6, 143, 215, 180, 142, 144, 211, 213, + 202, 211, 213, 202, 211, 213, 202, 142, 144, 216, + 181, 144, 213, 219, 213, 211, 144, 144, 144, 143, + 211, 211, 144, 6, 211, 211, 144, 144, 211, 144, + 142, 144, 144, 142, 144, 144, 142, 144, 216, 6, + 64, 144, 190, 143, 142, 144, 142, 6, 6, 155, + 137, 142, 6, 143, 142, 144, 6, 144, 6, 196, + 211, 6, 6, 197, 211, 6, 6, 198, 211, 6, + 144, 211, 202, 181, 219, 6, 213, 219, 144, 161, + 211, 215, 211, 143, 144, 143, 144, 143, 144, 6, + 6, 144, 144, 191, 144, 142, 144, 6, 143, 137, + 144, 144, 202, 6, 199, 202, 6, 200, 202, 6, + 201, 202, 6, 219, 6, 159, 223, 164, 143, 6, + 144, 143, 144, 143, 144, 143, 144, 144, 142, 144, + 143, 215, 6, 202, 6, 202, 6, 202, 6, 223, + 6, 162, 223, 144, 144, 144, 144, 142, 144, 6, + 6, 6, 6, 223, 6 }; #define yyerrok (yyerrstatus = 0) @@ -4934,6 +4959,30 @@ yyreduce: case 98: #line 1074 "Gmsh.y" + { + for (int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ + double dnum; + List_Read((yyvsp[(3) - (4)].l), i, &dnum); + int num = (int) fabs(dnum); + Curve *c = FindCurve(num); + if (c){ + c->degenerated = true; + } + else{ + GEdge *ge = GModel::current()->getEdgeByTag(num); + if (!ge){ + yymsg(0, "Curve %d does not exist", num); + } + else{ + ge->setTooSmall(true); + } + } + } + ;} + break; + + case 99: +#line 1096 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -4953,8 +5002,8 @@ yyreduce: ;} break; - case 99: -#line 1092 "Gmsh.y" + case 100: +#line 1114 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); if(FindCurve(num)){ @@ -4986,8 +5035,8 @@ yyreduce: ;} break; - case 100: -#line 1122 "Gmsh.y" + case 101: +#line 1144 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); if(FindCurve(num)){ @@ -5019,8 +5068,8 @@ yyreduce: ;} break; - case 101: -#line 1152 "Gmsh.y" + case 102: +#line 1174 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -5040,8 +5089,8 @@ yyreduce: ;} break; - case 102: -#line 1170 "Gmsh.y" + case 103: +#line 1192 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -5061,8 +5110,8 @@ yyreduce: ;} break; - case 103: -#line 1188 "Gmsh.y" + case 104: +#line 1210 "Gmsh.y" { int num = (int)(yyvsp[(3) - (11)].d); if(List_Nbr((yyvsp[(6) - (11)].l)) + (int)(yyvsp[(10) - (11)].d) + 1 != List_Nbr((yyvsp[(8) - (11)].l))){ @@ -5090,8 +5139,8 @@ yyreduce: ;} break; - case 104: -#line 1214 "Gmsh.y" + case 105: +#line 1236 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindEdgeLoop(num)){ @@ -5110,15 +5159,15 @@ yyreduce: ;} break; - case 105: -#line 1231 "Gmsh.y" + case 106: +#line 1253 "Gmsh.y" { curPhysDim = 1; ;} break; - case 106: -#line 1235 "Gmsh.y" + case 107: +#line 1257 "Gmsh.y" { int num = (int)(yyvsp[(5) - (9)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_LINE)){ @@ -5136,8 +5185,8 @@ yyreduce: ;} break; - case 107: -#line 1254 "Gmsh.y" + case 108: +#line 1276 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindSurface(num)){ @@ -5157,8 +5206,8 @@ yyreduce: ;} break; - case 108: -#line 1272 "Gmsh.y" + case 109: +#line 1294 "Gmsh.y" { int num = (int)(yyvsp[(4) - (9)].d), type = 0; if(FindSurface(num)){ @@ -5199,8 +5248,8 @@ yyreduce: ;} break; - case 109: -#line 1311 "Gmsh.y" + case 110: +#line 1333 "Gmsh.y" { myGmshSurface = 0; (yyval.s).Type = 0; @@ -5208,8 +5257,8 @@ yyreduce: ;} break; - case 110: -#line 1317 "Gmsh.y" + case 111: +#line 1339 "Gmsh.y" { myGmshSurface = gmshSurface::getSurface((int)(yyvsp[(3) - (4)].d)); (yyval.s).Type = 0; @@ -5217,8 +5266,8 @@ yyreduce: ;} break; - case 111: -#line 1323 "Gmsh.y" + case 112: +#line 1345 "Gmsh.y" { int num = (int)(yyvsp[(4) - (10)].d); myGmshSurface = gmshParametricSurface::NewParametricSurface(num, (yyvsp[(7) - (10)].c), (yyvsp[(8) - (10)].c), (yyvsp[(9) - (10)].c)); @@ -5227,8 +5276,8 @@ yyreduce: ;} break; - case 112: -#line 1330 "Gmsh.y" + case 113: +#line 1352 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if (List_Nbr((yyvsp[(6) - (7)].l)) != 2){ @@ -5255,8 +5304,8 @@ yyreduce: ;} break; - case 113: -#line 1355 "Gmsh.y" + case 114: +#line 1377 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if (List_Nbr((yyvsp[(6) - (7)].l)) != 2){ @@ -5283,8 +5332,8 @@ yyreduce: ;} break; - case 114: -#line 1380 "Gmsh.y" + case 115: +#line 1402 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindSurfaceLoop(num)){ @@ -5302,15 +5351,15 @@ yyreduce: ;} break; - case 115: -#line 1396 "Gmsh.y" + case 116: +#line 1418 "Gmsh.y" { curPhysDim = 2; ;} break; - case 116: -#line 1400 "Gmsh.y" + case 117: +#line 1422 "Gmsh.y" { int num = (int)(yyvsp[(5) - (9)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){ @@ -5328,8 +5377,8 @@ yyreduce: ;} break; - case 117: -#line 1416 "Gmsh.y" + case 118: +#line 1438 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME)){ @@ -5348,8 +5397,8 @@ yyreduce: ;} break; - case 118: -#line 1434 "Gmsh.y" + case 119: +#line 1456 "Gmsh.y" { int num = (int)(yyvsp[(4) - (12)].d); if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){ @@ -5378,8 +5427,8 @@ yyreduce: ;} break; - case 119: -#line 1461 "Gmsh.y" + case 120: +#line 1483 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){ @@ -5398,8 +5447,8 @@ yyreduce: ;} break; - case 120: -#line 1478 "Gmsh.y" + case 121: +#line 1500 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindPhysicalGroup(num, MSH_PHYSICAL_LINE)){ @@ -5418,8 +5467,8 @@ yyreduce: ;} break; - case 121: -#line 1498 "Gmsh.y" + case 122: +#line 1520 "Gmsh.y" { yymsg(0, "'Complex Volume' command is deprecated: use 'Volume' instead"); int num = (int)(yyvsp[(4) - (8)].d); @@ -5439,8 +5488,8 @@ yyreduce: ;} break; - case 122: -#line 1516 "Gmsh.y" + case 123: +#line 1538 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindVolume(num)){ @@ -5459,15 +5508,29 @@ yyreduce: ;} break; - case 123: -#line 1533 "Gmsh.y" + case 124: +#line 1556 "Gmsh.y" + { +#if defined(HAVE_OCC) + std::vector<double> data; + for (int i=0 ; i<List_Nbr((yyvsp[(5) - (9)].l)) ; i++){ + double d; List_Read ((yyvsp[(5) - (9)].l),i,&d); + data.push_back(d); + } + GModel::current()->addShape((yyvsp[(3) - (9)].c),data,(yyvsp[(7) - (9)].c)); +#endif + ;} + break; + + case 125: +#line 1568 "Gmsh.y" { curPhysDim = 3; ;} break; - case 124: -#line 1537 "Gmsh.y" + case 126: +#line 1572 "Gmsh.y" { int num = (int)(yyvsp[(5) - (9)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME)){ @@ -5485,40 +5548,40 @@ yyreduce: ;} break; - case 125: -#line 1558 "Gmsh.y" + case 127: +#line 1594 "Gmsh.y" { TranslateShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(4) - (5)].l)); (yyval.l) = (yyvsp[(4) - (5)].l); ;} break; - case 126: -#line 1563 "Gmsh.y" + case 128: +#line 1599 "Gmsh.y" { RotateShapes((yyvsp[(3) - (11)].v)[0], (yyvsp[(3) - (11)].v)[1], (yyvsp[(3) - (11)].v)[2], (yyvsp[(5) - (11)].v)[0], (yyvsp[(5) - (11)].v)[1], (yyvsp[(5) - (11)].v)[2], (yyvsp[(7) - (11)].d), (yyvsp[(10) - (11)].l)); (yyval.l) = (yyvsp[(10) - (11)].l); ;} break; - case 127: -#line 1568 "Gmsh.y" + case 129: +#line 1604 "Gmsh.y" { SymmetryShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(2) - (5)].v)[3], (yyvsp[(4) - (5)].l)); (yyval.l) = (yyvsp[(4) - (5)].l); ;} break; - case 128: -#line 1573 "Gmsh.y" + case 130: +#line 1609 "Gmsh.y" { DilatShapes((yyvsp[(3) - (9)].v)[0], (yyvsp[(3) - (9)].v)[1], (yyvsp[(3) - (9)].v)[2], (yyvsp[(5) - (9)].d), (yyvsp[(8) - (9)].l)); (yyval.l) = (yyvsp[(8) - (9)].l); ;} break; - case 129: -#line 1578 "Gmsh.y" + case 131: +#line 1614 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); if(!strcmp((yyvsp[(1) - (4)].c), "Duplicata")){ @@ -5540,8 +5603,8 @@ yyreduce: ;} break; - case 130: -#line 1598 "Gmsh.y" + case 132: +#line 1634 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); IntersectCurvesWithSurface((yyvsp[(4) - (9)].l), (int)(yyvsp[(8) - (9)].d), (yyval.l)); @@ -5549,8 +5612,8 @@ yyreduce: ;} break; - case 131: -#line 1604 "Gmsh.y" + case 133: +#line 1640 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape*)); List_T *tmp = ListOfDouble2ListOfInt((yyvsp[(7) - (9)].l)); @@ -5560,32 +5623,32 @@ yyreduce: ;} break; - case 132: -#line 1614 "Gmsh.y" + case 134: +#line 1650 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 133: -#line 1615 "Gmsh.y" + case 135: +#line 1651 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 134: -#line 1620 "Gmsh.y" + case 136: +#line 1656 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); ;} break; - case 135: -#line 1624 "Gmsh.y" + case 137: +#line 1660 "Gmsh.y" { List_Add((yyval.l), &(yyvsp[(2) - (2)].s)); ;} break; - case 136: -#line 1628 "Gmsh.y" + case 138: +#line 1664 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5610,8 +5673,8 @@ yyreduce: ;} break; - case 137: -#line 1651 "Gmsh.y" + case 139: +#line 1687 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5636,8 +5699,8 @@ yyreduce: ;} break; - case 138: -#line 1674 "Gmsh.y" + case 140: +#line 1710 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5662,8 +5725,8 @@ yyreduce: ;} break; - case 139: -#line 1697 "Gmsh.y" + case 141: +#line 1733 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5688,8 +5751,8 @@ yyreduce: ;} break; - case 140: -#line 1725 "Gmsh.y" + case 142: +#line 1761 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(7) - (8)].l)) == 4){ @@ -5712,8 +5775,8 @@ yyreduce: ;} break; - case 141: -#line 1747 "Gmsh.y" + case 143: +#line 1783 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(12) - (14)].l)) == 0){ @@ -5735,8 +5798,8 @@ yyreduce: ;} break; - case 142: -#line 1768 "Gmsh.y" + case 144: +#line 1804 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(14) - (16)].l)) == 0){ @@ -5759,8 +5822,8 @@ yyreduce: ;} break; - case 143: -#line 1789 "Gmsh.y" + case 145: +#line 1825 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(10) - (12)].l)) == 1){ @@ -5782,8 +5845,8 @@ yyreduce: ;} break; - case 144: -#line 1809 "Gmsh.y" + case 146: +#line 1845 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (8)].c), "Union")){ @@ -5879,8 +5942,8 @@ yyreduce: ;} break; - case 145: -#line 1903 "Gmsh.y" + case 147: +#line 1939 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (8)].c), "MathEval")){ @@ -5901,8 +5964,8 @@ yyreduce: ;} break; - case 146: -#line 1922 "Gmsh.y" + case 148: +#line 1958 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (6)].c), "CutMesh")){ @@ -5918,8 +5981,8 @@ yyreduce: ;} break; - case 147: -#line 1937 "Gmsh.y" + case 149: +#line 1973 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (14)].c), "Cylinder") && List_Nbr((yyvsp[(12) - (14)].l)) == 1){ @@ -6024,8 +6087,8 @@ yyreduce: ;} break; - case 148: -#line 2045 "Gmsh.y" + case 150: +#line 2081 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -6036,15 +6099,15 @@ yyreduce: ;} break; - case 149: -#line 2054 "Gmsh.y" + case 151: +#line 2090 "Gmsh.y" { GModel::current()->getFields()->deleteField((int)(yyvsp[(4) - (6)].d)); ;} break; - case 150: -#line 2058 "Gmsh.y" + case 152: +#line 2094 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -6061,8 +6124,8 @@ yyreduce: ;} break; - case 151: -#line 2073 "Gmsh.y" + case 153: +#line 2109 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Meshes") || !strcmp((yyvsp[(2) - (3)].c), "All")){ for(unsigned int i = 0; i < GModel::list.size(); i++){ @@ -6091,8 +6154,8 @@ yyreduce: ;} break; - case 152: -#line 2100 "Gmsh.y" + case 154: +#line 2136 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (4)].c), "Empty") && !strcmp((yyvsp[(3) - (4)].c), "Views")){ @@ -6106,8 +6169,8 @@ yyreduce: ;} break; - case 153: -#line 2117 "Gmsh.y" + case 155: +#line 2153 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -6118,8 +6181,8 @@ yyreduce: ;} break; - case 154: -#line 2131 "Gmsh.y" + case 156: +#line 2167 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 1); @@ -6127,8 +6190,8 @@ yyreduce: ;} break; - case 155: -#line 2137 "Gmsh.y" + case 157: +#line 2173 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 0); @@ -6136,8 +6199,8 @@ yyreduce: ;} break; - case 156: -#line 2143 "Gmsh.y" + case 158: +#line 2179 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -6148,8 +6211,8 @@ yyreduce: ;} break; - case 157: -#line 2152 "Gmsh.y" + case 159: +#line 2188 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -6160,8 +6223,8 @@ yyreduce: ;} break; - case 158: -#line 2166 "Gmsh.y" + case 160: +#line 2202 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Include")){ char tmpstring[1024]; @@ -6211,8 +6274,8 @@ yyreduce: ;} break; - case 159: -#line 2214 "Gmsh.y" + case 161: +#line 2250 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Save") && !strcmp((yyvsp[(2) - (7)].c), "View")){ @@ -6232,8 +6295,8 @@ yyreduce: ;} break; - case 160: -#line 2232 "Gmsh.y" + case 162: +#line 2268 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Background") && !strcmp((yyvsp[(2) - (7)].c), "Mesh") && !strcmp((yyvsp[(3) - (7)].c), "View")){ @@ -6250,8 +6313,8 @@ yyreduce: ;} break; - case 161: -#line 2247 "Gmsh.y" + case 163: +#line 2283 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){ SleepInSeconds((yyvsp[(2) - (3)].d)); @@ -6272,8 +6335,8 @@ yyreduce: ;} break; - case 162: -#line 2266 "Gmsh.y" + case 164: +#line 2302 "Gmsh.y" { #if !defined(HAVE_NO_POST) try { @@ -6287,8 +6350,8 @@ yyreduce: ;} break; - case 163: -#line 2278 "Gmsh.y" + case 165: +#line 2314 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (3)].c), "ElementsFromAllViews")) @@ -6314,15 +6377,15 @@ yyreduce: ;} break; - case 164: -#line 2302 "Gmsh.y" + case 166: +#line 2338 "Gmsh.y" { exit(0); ;} break; - case 165: -#line 2306 "Gmsh.y" + case 167: +#line 2342 "Gmsh.y" { // FIXME: this is a hack to force a transfer from the old DB to // the new DB. This will become unnecessary if/when we fill the @@ -6331,8 +6394,8 @@ yyreduce: ;} break; - case 166: -#line 2313 "Gmsh.y" + case 168: +#line 2349 "Gmsh.y" { CTX::instance()->forcedBBox = 0; GModel::current()->importGEOInternals(); @@ -6340,16 +6403,16 @@ yyreduce: ;} break; - case 167: -#line 2319 "Gmsh.y" + case 169: +#line 2355 "Gmsh.y" { CTX::instance()->forcedBBox = 1; SetBoundingBox((yyvsp[(3) - (15)].d), (yyvsp[(5) - (15)].d), (yyvsp[(7) - (15)].d), (yyvsp[(9) - (15)].d), (yyvsp[(11) - (15)].d), (yyvsp[(13) - (15)].d)); ;} break; - case 168: -#line 2324 "Gmsh.y" + case 170: +#line 2360 "Gmsh.y" { #if defined(HAVE_FLTK) Draw(); @@ -6357,15 +6420,15 @@ yyreduce: ;} break; - case 169: -#line 2330 "Gmsh.y" + case 171: +#line 2366 "Gmsh.y" { GModel::current()->createTopologyFromMesh(); ;} break; - case 170: -#line 2339 "Gmsh.y" + case 172: +#line 2375 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (6)].d); @@ -6384,8 +6447,8 @@ yyreduce: ;} break; - case 171: -#line 2356 "Gmsh.y" + case 173: +#line 2392 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (8)].d); @@ -6404,8 +6467,8 @@ yyreduce: ;} break; - case 172: -#line 2373 "Gmsh.y" + case 174: +#line 2409 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (8)].d); @@ -6426,8 +6489,8 @@ yyreduce: ;} break; - case 173: -#line 2392 "Gmsh.y" + case 175: +#line 2428 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d); @@ -6448,8 +6511,8 @@ yyreduce: ;} break; - case 174: -#line 2411 "Gmsh.y" + case 176: +#line 2447 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(0, "Invalid For/EndFor loop"); @@ -6479,8 +6542,8 @@ yyreduce: ;} break; - case 175: -#line 2439 "Gmsh.y" + case 177: +#line 2475 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction ((yyvsp[(2) - (2)].c), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6490,8 +6553,8 @@ yyreduce: ;} break; - case 176: -#line 2447 "Gmsh.y" + case 178: +#line 2483 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction (&gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6499,8 +6562,8 @@ yyreduce: ;} break; - case 177: -#line 2453 "Gmsh.y" + case 179: +#line 2489 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction ((yyvsp[(2) - (3)].c), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6509,21 +6572,21 @@ yyreduce: ;} break; - case 178: -#line 2460 "Gmsh.y" + case 180: +#line 2496 "Gmsh.y" { if(!(yyvsp[(3) - (4)].d)) skip_until("If", "EndIf"); ;} break; - case 179: -#line 2464 "Gmsh.y" + case 181: +#line 2500 "Gmsh.y" { ;} break; - case 180: -#line 2473 "Gmsh.y" + case 182: +#line 2509 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (5)].l), @@ -6533,8 +6596,8 @@ yyreduce: ;} break; - case 181: -#line 2481 "Gmsh.y" + case 183: +#line 2517 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (11)].l), @@ -6544,8 +6607,8 @@ yyreduce: ;} break; - case 182: -#line 2489 "Gmsh.y" + case 184: +#line 2525 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l), @@ -6555,15 +6618,15 @@ yyreduce: ;} break; - case 183: -#line 2497 "Gmsh.y" + case 185: +#line 2533 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 184: -#line 2501 "Gmsh.y" + case 186: +#line 2537 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l), @@ -6573,15 +6636,15 @@ yyreduce: ;} break; - case 185: -#line 2509 "Gmsh.y" + case 187: +#line 2545 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 186: -#line 2513 "Gmsh.y" + case 188: +#line 2549 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), @@ -6591,15 +6654,15 @@ yyreduce: ;} break; - case 187: -#line 2521 "Gmsh.y" + case 189: +#line 2557 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 188: -#line 2525 "Gmsh.y" + case 190: +#line 2561 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), @@ -6609,15 +6672,15 @@ yyreduce: ;} break; - case 189: -#line 2533 "Gmsh.y" + case 191: +#line 2569 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 190: -#line 2537 "Gmsh.y" + case 192: +#line 2573 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(3) - (6)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., @@ -6626,8 +6689,8 @@ yyreduce: ;} break; - case 191: -#line 2546 "Gmsh.y" + case 193: +#line 2582 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), @@ -6636,8 +6699,8 @@ yyreduce: ;} break; - case 192: -#line 2553 "Gmsh.y" + case 194: +#line 2589 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), @@ -6646,8 +6709,8 @@ yyreduce: ;} break; - case 193: -#line 2560 "Gmsh.y" + case 195: +#line 2596 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), @@ -6656,8 +6719,8 @@ yyreduce: ;} break; - case 194: -#line 2567 "Gmsh.y" + case 196: +#line 2603 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -6666,8 +6729,8 @@ yyreduce: ;} break; - case 195: -#line 2574 "Gmsh.y" + case 197: +#line 2610 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -6676,8 +6739,8 @@ yyreduce: ;} break; - case 196: -#line 2581 "Gmsh.y" + case 198: +#line 2617 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -6686,8 +6749,8 @@ yyreduce: ;} break; - case 197: -#line 2588 "Gmsh.y" + case 199: +#line 2624 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), @@ -6696,8 +6759,8 @@ yyreduce: ;} break; - case 198: -#line 2595 "Gmsh.y" + case 200: +#line 2631 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), @@ -6706,8 +6769,8 @@ yyreduce: ;} break; - case 199: -#line 2602 "Gmsh.y" + case 201: +#line 2638 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), @@ -6716,15 +6779,15 @@ yyreduce: ;} break; - case 200: -#line 2609 "Gmsh.y" + case 202: +#line 2645 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 201: -#line 2613 "Gmsh.y" + case 203: +#line 2649 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -6733,15 +6796,15 @@ yyreduce: ;} break; - case 202: -#line 2620 "Gmsh.y" + case 204: +#line 2656 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 203: -#line 2624 "Gmsh.y" + case 205: +#line 2660 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -6750,15 +6813,15 @@ yyreduce: ;} break; - case 204: -#line 2631 "Gmsh.y" + case 206: +#line 2667 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 205: -#line 2635 "Gmsh.y" + case 207: +#line 2671 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -6767,15 +6830,15 @@ yyreduce: ;} break; - case 206: -#line 2642 "Gmsh.y" + case 208: +#line 2678 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 207: -#line 2646 "Gmsh.y" + case 209: +#line 2682 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), @@ -6784,15 +6847,15 @@ yyreduce: ;} break; - case 208: -#line 2653 "Gmsh.y" + case 210: +#line 2689 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 209: -#line 2657 "Gmsh.y" + case 211: +#line 2693 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), @@ -6801,15 +6864,15 @@ yyreduce: ;} break; - case 210: -#line 2664 "Gmsh.y" + case 212: +#line 2700 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 211: -#line 2668 "Gmsh.y" + case 213: +#line 2704 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), @@ -6818,15 +6881,15 @@ yyreduce: ;} break; - case 212: -#line 2675 "Gmsh.y" + case 214: +#line 2711 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 213: -#line 2679 "Gmsh.y" + case 215: +#line 2715 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), @@ -6835,15 +6898,15 @@ yyreduce: ;} break; - case 214: -#line 2686 "Gmsh.y" + case 216: +#line 2722 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 215: -#line 2690 "Gmsh.y" + case 217: +#line 2726 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), @@ -6852,15 +6915,15 @@ yyreduce: ;} break; - case 216: -#line 2697 "Gmsh.y" + case 218: +#line 2733 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 217: -#line 2701 "Gmsh.y" + case 219: +#line 2737 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), @@ -6869,20 +6932,20 @@ yyreduce: ;} break; - case 218: -#line 2712 "Gmsh.y" + case 220: +#line 2748 "Gmsh.y" { ;} break; - case 219: -#line 2715 "Gmsh.y" + case 221: +#line 2751 "Gmsh.y" { ;} break; - case 220: -#line 2721 "Gmsh.y" + case 222: +#line 2757 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = 1; @@ -6893,8 +6956,8 @@ yyreduce: ;} break; - case 221: -#line 2730 "Gmsh.y" + case 223: +#line 2766 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l)); @@ -6916,8 +6979,8 @@ yyreduce: ;} break; - case 222: -#line 2750 "Gmsh.y" + case 224: +#line 2786 "Gmsh.y" { yymsg(0, "Explicit region numbers in layers are deprecated"); extr.mesh.ExtrudeMesh = true; @@ -6942,15 +7005,15 @@ yyreduce: ;} break; - case 223: -#line 2773 "Gmsh.y" + case 225: +#line 2809 "Gmsh.y" { extr.mesh.Recombine = true; ;} break; - case 224: -#line 2777 "Gmsh.y" + case 226: +#line 2813 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindSurface(num)){ @@ -6971,15 +7034,15 @@ yyreduce: ;} break; - case 225: -#line 2800 "Gmsh.y" + case 227: +#line 2836 "Gmsh.y" { (yyval.v)[0] = (yyval.v)[1] = 1.; ;} break; - case 226: -#line 2804 "Gmsh.y" + case 228: +#line 2840 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power")) (yyval.v)[0] = 1.; @@ -6994,15 +7057,15 @@ yyreduce: ;} break; - case 227: -#line 2819 "Gmsh.y" + case 229: +#line 2855 "Gmsh.y" { (yyval.i) = -1; // left ;} break; - case 228: -#line 2823 "Gmsh.y" + case 230: +#line 2859 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Right")) (yyval.i) = 1; @@ -7014,36 +7077,36 @@ yyreduce: ;} break; - case 229: -#line 2835 "Gmsh.y" + case 231: +#line 2871 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; - case 230: -#line 2839 "Gmsh.y" + case 232: +#line 2875 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; - case 231: -#line 2844 "Gmsh.y" + case 233: +#line 2880 "Gmsh.y" { (yyval.i) = 45; ;} break; - case 232: -#line 2848 "Gmsh.y" + case 234: +#line 2884 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(2) - (2)].d); ;} break; - case 233: -#line 2855 "Gmsh.y" + case 235: +#line 2891 "Gmsh.y" { int type = (int)(yyvsp[(6) - (7)].v)[0]; double coef = fabs((yyvsp[(6) - (7)].v)[1]); @@ -7101,8 +7164,8 @@ yyreduce: ;} break; - case 234: -#line 2911 "Gmsh.y" + case 236: +#line 2947 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (6)].l)); if(k != 0 && k != 3 && k != 4){ @@ -7174,16 +7237,16 @@ yyreduce: ;} break; - case 235: -#line 2981 "Gmsh.y" + case 237: +#line 3017 "Gmsh.y" { yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete((yyvsp[(7) - (8)].l)); ;} break; - case 236: -#line 2986 "Gmsh.y" + case 238: +#line 3022 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (5)].l)); if(k != 0 && k != 6 && k != 8){ @@ -7252,8 +7315,8 @@ yyreduce: ;} break; - case 237: -#line 3053 "Gmsh.y" + case 239: +#line 3089 "Gmsh.y" { if(!(yyvsp[(3) - (5)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -7298,8 +7361,8 @@ yyreduce: ;} break; - case 238: -#line 3096 "Gmsh.y" + case 240: +#line 3132 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -7321,8 +7384,8 @@ yyreduce: ;} break; - case 239: -#line 3122 "Gmsh.y" + case 241: +#line 3158 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -7347,8 +7410,8 @@ yyreduce: ;} break; - case 240: -#line 3145 "Gmsh.y" + case 242: +#line 3181 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -7373,27 +7436,27 @@ yyreduce: ;} break; - case 241: -#line 3168 "Gmsh.y" + case 243: +#line 3204 "Gmsh.y" { ;} break; - case 242: -#line 3171 "Gmsh.y" + case 244: +#line 3207 "Gmsh.y" { ;} break; - case 243: -#line 3180 "Gmsh.y" + case 245: +#line 3216 "Gmsh.y" { ReplaceAllDuplicates(); ;} break; - case 244: -#line 3184 "Gmsh.y" + case 246: +#line 3220 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) ReplaceAllDuplicates(); @@ -7405,48 +7468,48 @@ yyreduce: ;} break; - case 245: -#line 3199 "Gmsh.y" + case 247: +#line 3235 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; - case 246: -#line 3200 "Gmsh.y" + case 248: +#line 3236 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; - case 247: -#line 3201 "Gmsh.y" + case 249: +#line 3237 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; - case 248: -#line 3202 "Gmsh.y" + case 250: +#line 3238 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; - case 249: -#line 3203 "Gmsh.y" + case 251: +#line 3239 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; - case 250: -#line 3204 "Gmsh.y" + case 252: +#line 3240 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; - case 251: -#line 3205 "Gmsh.y" + case 253: +#line 3241 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; - case 252: -#line 3206 "Gmsh.y" + case 254: +#line 3242 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} break; - case 253: -#line 3208 "Gmsh.y" + case 255: +#line 3244 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -7455,308 +7518,308 @@ yyreduce: ;} break; - case 254: -#line 3214 "Gmsh.y" + case 256: +#line 3250 "Gmsh.y" { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; - case 255: -#line 3215 "Gmsh.y" + case 257: +#line 3251 "Gmsh.y" { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; - case 256: -#line 3216 "Gmsh.y" + case 258: +#line 3252 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; - case 257: -#line 3217 "Gmsh.y" + case 259: +#line 3253 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; - case 258: -#line 3218 "Gmsh.y" + case 260: +#line 3254 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; - case 259: -#line 3219 "Gmsh.y" + case 261: +#line 3255 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; - case 260: -#line 3220 "Gmsh.y" + case 262: +#line 3256 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; - case 261: -#line 3221 "Gmsh.y" + case 263: +#line 3257 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; - case 262: -#line 3222 "Gmsh.y" + case 264: +#line 3258 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; - case 263: -#line 3223 "Gmsh.y" + case 265: +#line 3259 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; - case 264: -#line 3224 "Gmsh.y" + case 266: +#line 3260 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; - case 265: -#line 3225 "Gmsh.y" + case 267: +#line 3261 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; - case 266: -#line 3226 "Gmsh.y" + case 268: +#line 3262 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; - case 267: -#line 3227 "Gmsh.y" + case 269: +#line 3263 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; - case 268: -#line 3228 "Gmsh.y" + case 270: +#line 3264 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; - case 269: -#line 3229 "Gmsh.y" + case 271: +#line 3265 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; - case 270: -#line 3230 "Gmsh.y" + case 272: +#line 3266 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; - case 271: -#line 3231 "Gmsh.y" + case 273: +#line 3267 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; - case 272: -#line 3232 "Gmsh.y" + case 274: +#line 3268 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; - case 273: -#line 3233 "Gmsh.y" + case 275: +#line 3269 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; - case 274: -#line 3234 "Gmsh.y" + case 276: +#line 3270 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; - case 275: -#line 3235 "Gmsh.y" + case 277: +#line 3271 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; - case 276: -#line 3236 "Gmsh.y" + case 278: +#line 3272 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; - case 277: -#line 3237 "Gmsh.y" + case 279: +#line 3273 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; - case 278: -#line 3238 "Gmsh.y" + case 280: +#line 3274 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; - case 279: -#line 3239 "Gmsh.y" + case 281: +#line 3275 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; - case 280: -#line 3240 "Gmsh.y" + case 282: +#line 3276 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; - case 281: -#line 3241 "Gmsh.y" + case 283: +#line 3277 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; - case 282: -#line 3242 "Gmsh.y" + case 284: +#line 3278 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 283: -#line 3243 "Gmsh.y" + case 285: +#line 3279 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 284: -#line 3244 "Gmsh.y" + case 286: +#line 3280 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; - case 285: -#line 3245 "Gmsh.y" + case 287: +#line 3281 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; - case 286: -#line 3247 "Gmsh.y" + case 288: +#line 3283 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; - case 287: -#line 3248 "Gmsh.y" + case 289: +#line 3284 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; - case 288: -#line 3249 "Gmsh.y" + case 290: +#line 3285 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; - case 289: -#line 3250 "Gmsh.y" + case 291: +#line 3286 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; - case 290: -#line 3251 "Gmsh.y" + case 292: +#line 3287 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; - case 291: -#line 3252 "Gmsh.y" + case 293: +#line 3288 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; - case 292: -#line 3253 "Gmsh.y" + case 294: +#line 3289 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; - case 293: -#line 3254 "Gmsh.y" + case 295: +#line 3290 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; - case 294: -#line 3255 "Gmsh.y" + case 296: +#line 3291 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; - case 295: -#line 3256 "Gmsh.y" + case 297: +#line 3292 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; - case 296: -#line 3257 "Gmsh.y" + case 298: +#line 3293 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; - case 297: -#line 3258 "Gmsh.y" + case 299: +#line 3294 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; - case 298: -#line 3259 "Gmsh.y" + case 300: +#line 3295 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; - case 299: -#line 3260 "Gmsh.y" + case 301: +#line 3296 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; - case 300: -#line 3261 "Gmsh.y" + case 302: +#line 3297 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; - case 301: -#line 3262 "Gmsh.y" + case 303: +#line 3298 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; - case 302: -#line 3263 "Gmsh.y" + case 304: +#line 3299 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; - case 303: -#line 3264 "Gmsh.y" + case 305: +#line 3300 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 304: -#line 3265 "Gmsh.y" + case 306: +#line 3301 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 305: -#line 3266 "Gmsh.y" + case 307: +#line 3302 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; - case 306: -#line 3267 "Gmsh.y" + case 308: +#line 3303 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; - case 307: -#line 3276 "Gmsh.y" + case 309: +#line 3312 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; - case 308: -#line 3277 "Gmsh.y" + case 310: +#line 3313 "Gmsh.y" { (yyval.d) = 3.141592653589793; ;} break; - case 309: -#line 3278 "Gmsh.y" + case 311: +#line 3314 "Gmsh.y" { (yyval.d) = Msg::GetCommRank(); ;} break; - case 310: -#line 3279 "Gmsh.y" + case 312: +#line 3315 "Gmsh.y" { (yyval.d) = Msg::GetCommSize(); ;} break; - case 311: -#line 3280 "Gmsh.y" + case 313: +#line 3316 "Gmsh.y" { (yyval.d) = GetGmshMajorVersion(); ;} break; - case 312: -#line 3281 "Gmsh.y" + case 314: +#line 3317 "Gmsh.y" { (yyval.d) = GetGmshMinorVersion(); ;} break; - case 313: -#line 3282 "Gmsh.y" + case 315: +#line 3318 "Gmsh.y" { (yyval.d) = GetGmshPatchVersion(); ;} break; - case 314: -#line 3287 "Gmsh.y" + case 316: +#line 3323 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c)); @@ -7768,8 +7831,8 @@ yyreduce: ;} break; - case 315: -#line 3300 "Gmsh.y" + case 317: +#line 3336 "Gmsh.y" { char tmpstring[1024]; sprintf(tmpstring, "%s_%d", (yyvsp[(1) - (5)].c), (int)(yyvsp[(4) - (5)].d)) ; @@ -7783,8 +7846,8 @@ yyreduce: ;} break; - case 316: -#line 3312 "Gmsh.y" + case 318: +#line 3348 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -7801,8 +7864,8 @@ yyreduce: ;} break; - case 317: -#line 3327 "Gmsh.y" + case 319: +#line 3363 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(2) - (4)].c)); @@ -7814,8 +7877,8 @@ yyreduce: ;} break; - case 318: -#line 3337 "Gmsh.y" + case 320: +#line 3373 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -7827,8 +7890,8 @@ yyreduce: ;} break; - case 319: -#line 3347 "Gmsh.y" + case 321: +#line 3383 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -7845,24 +7908,24 @@ yyreduce: ;} break; - case 320: -#line 3365 "Gmsh.y" + case 322: +#line 3401 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), (yyval.d)); Free((yyvsp[(1) - (3)].c)); Free((yyvsp[(3) - (3)].c)); ;} break; - case 321: -#line 3370 "Gmsh.y" + case 323: +#line 3406 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), (yyval.d)); Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(6) - (6)].c)); ;} break; - case 322: -#line 3375 "Gmsh.y" + case 324: +#line 3411 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -7874,8 +7937,8 @@ yyreduce: ;} break; - case 323: -#line 3385 "Gmsh.y" + case 325: +#line 3421 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -7887,124 +7950,124 @@ yyreduce: ;} break; - case 324: -#line 3395 "Gmsh.y" + case 326: +#line 3431 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); ;} break; - case 325: -#line 3403 "Gmsh.y" + case 327: +#line 3439 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; - case 326: -#line 3407 "Gmsh.y" + case 328: +#line 3443 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; - case 327: -#line 3411 "Gmsh.y" + case 329: +#line 3447 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; - case 328: -#line 3415 "Gmsh.y" + case 330: +#line 3451 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; - case 329: -#line 3419 "Gmsh.y" + case 331: +#line 3455 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; - case 330: -#line 3426 "Gmsh.y" + case 332: +#line 3462 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (11)].d); (yyval.v)[1] = (yyvsp[(4) - (11)].d); (yyval.v)[2] = (yyvsp[(6) - (11)].d); (yyval.v)[3] = (yyvsp[(8) - (11)].d); (yyval.v)[4] = (yyvsp[(10) - (11)].d); ;} break; - case 331: -#line 3430 "Gmsh.y" + case 333: +#line 3466 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (9)].d); (yyval.v)[1] = (yyvsp[(4) - (9)].d); (yyval.v)[2] = (yyvsp[(6) - (9)].d); (yyval.v)[3] = (yyvsp[(8) - (9)].d); (yyval.v)[4] = 1.0; ;} break; - case 332: -#line 3434 "Gmsh.y" + case 334: +#line 3470 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; - case 333: -#line 3438 "Gmsh.y" + case 335: +#line 3474 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; - case 334: -#line 3445 "Gmsh.y" + case 336: +#line 3481 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); ;} break; - case 335: -#line 3450 "Gmsh.y" + case 337: +#line 3486 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; - case 336: -#line 3457 "Gmsh.y" + case 338: +#line 3493 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 337: -#line 3462 "Gmsh.y" + case 339: +#line 3498 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 338: -#line 3466 "Gmsh.y" + case 340: +#line 3502 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); ;} break; - case 339: -#line 3471 "Gmsh.y" + case 341: +#line 3507 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 340: -#line 3475 "Gmsh.y" + case 342: +#line 3511 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8014,8 +8077,8 @@ yyreduce: ;} break; - case 341: -#line 3483 "Gmsh.y" + case 343: +#line 3519 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8025,15 +8088,15 @@ yyreduce: ;} break; - case 342: -#line 3494 "Gmsh.y" + case 344: +#line 3530 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 343: -#line 3498 "Gmsh.y" + case 345: +#line 3534 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all")) (yyval.l) = 0; @@ -8044,8 +8107,8 @@ yyreduce: ;} break; - case 344: -#line 3510 "Gmsh.y" + case 346: +#line 3546 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8055,8 +8118,8 @@ yyreduce: ;} break; - case 345: -#line 3518 "Gmsh.y" + case 347: +#line 3554 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8066,8 +8129,8 @@ yyreduce: ;} break; - case 346: -#line 3526 "Gmsh.y" + case 348: +#line 3562 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); for(double d = (yyvsp[(1) - (3)].d); ((yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d)) ? (d <= (yyvsp[(3) - (3)].d)) : (d >= (yyvsp[(3) - (3)].d)); @@ -8076,8 +8139,8 @@ yyreduce: ;} break; - case 347: -#line 3533 "Gmsh.y" + case 349: +#line 3569 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!(yyvsp[(5) - (5)].d) || ((yyvsp[(1) - (5)].d) < (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) < 0) || ((yyvsp[(1) - (5)].d) > (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) > 0)){ @@ -8090,8 +8153,8 @@ yyreduce: ;} break; - case 348: -#line 3544 "Gmsh.y" + case 350: +#line 3580 "Gmsh.y" { // Returns the coordinates of a point and fills a list with it. // This allows to ensure e.g. that relative point positions are @@ -8113,8 +8176,8 @@ yyreduce: ;} break; - case 349: -#line 3564 "Gmsh.y" + case 351: +#line 3600 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -8126,8 +8189,8 @@ yyreduce: ;} break; - case 350: -#line 3574 "Gmsh.y" + case 352: +#line 3610 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -8139,8 +8202,8 @@ yyreduce: ;} break; - case 351: -#line 3584 "Gmsh.y" + case 353: +#line 3620 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -8152,8 +8215,8 @@ yyreduce: ;} break; - case 352: -#line 3594 "Gmsh.y" + case 354: +#line 3630 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -8172,30 +8235,30 @@ yyreduce: ;} break; - case 353: -#line 3614 "Gmsh.y" + case 355: +#line 3650 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 354: -#line 3619 "Gmsh.y" + case 356: +#line 3655 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 355: -#line 3623 "Gmsh.y" + case 357: +#line 3659 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; - case 356: -#line 3627 "Gmsh.y" + case 358: +#line 3663 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -8206,22 +8269,22 @@ yyreduce: ;} break; - case 357: -#line 3639 "Gmsh.y" + case 359: +#line 3675 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (9)].d), (int)(yyvsp[(4) - (9)].d), (int)(yyvsp[(6) - (9)].d), (int)(yyvsp[(8) - (9)].d)); ;} break; - case 358: -#line 3643 "Gmsh.y" + case 360: +#line 3679 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (7)].d), (int)(yyvsp[(4) - (7)].d), (int)(yyvsp[(6) - (7)].d), 255); ;} break; - case 359: -#line 3655 "Gmsh.y" + case 361: +#line 3691 "Gmsh.y" { int flag; (yyval.u) = GetColorForString(ColorString, -1, (yyvsp[(1) - (1)].c), &flag); @@ -8230,8 +8293,8 @@ yyreduce: ;} break; - case 360: -#line 3662 "Gmsh.y" + case 362: +#line 3698 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -8240,15 +8303,15 @@ yyreduce: ;} break; - case 361: -#line 3672 "Gmsh.y" + case 363: +#line 3708 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 362: -#line 3676 "Gmsh.y" + case 364: +#line 3712 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (6)].d)); @@ -8262,30 +8325,30 @@ yyreduce: ;} break; - case 363: -#line 3691 "Gmsh.y" + case 365: +#line 3727 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); ;} break; - case 364: -#line 3696 "Gmsh.y" + case 366: +#line 3732 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; - case 365: -#line 3703 "Gmsh.y" + case 367: +#line 3739 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 366: -#line 3707 "Gmsh.y" + case 368: +#line 3743 "Gmsh.y" { if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown string variable '%s'", (yyvsp[(1) - (1)].c)); @@ -8300,8 +8363,8 @@ yyreduce: ;} break; - case 367: -#line 3720 "Gmsh.y" + case 369: +#line 3756 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), out); @@ -8311,8 +8374,8 @@ yyreduce: ;} break; - case 368: -#line 3728 "Gmsh.y" + case 370: +#line 3764 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), out); @@ -8322,15 +8385,15 @@ yyreduce: ;} break; - case 369: -#line 3739 "Gmsh.y" + case 371: +#line 3775 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 370: -#line 3743 "Gmsh.y" + case 372: +#line 3779 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -8340,8 +8403,8 @@ yyreduce: ;} break; - case 371: -#line 3751 "Gmsh.y" + case 373: +#line 3787 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (6)].c)) + strlen((yyvsp[(5) - (6)].c)) + 1) * sizeof(char)); strcpy((yyval.c), (yyvsp[(3) - (6)].c)); @@ -8351,8 +8414,8 @@ yyreduce: ;} break; - case 372: -#line 3759 "Gmsh.y" + case 374: +#line 3795 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -8368,8 +8431,8 @@ yyreduce: ;} break; - case 373: -#line 3773 "Gmsh.y" + case 375: +#line 3809 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -8385,15 +8448,15 @@ yyreduce: ;} break; - case 374: -#line 3787 "Gmsh.y" + case 376: +#line 3823 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; - case 375: -#line 3791 "Gmsh.y" + case 377: +#line 3827 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -8416,7 +8479,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 8420 "Gmsh.tab.cpp" +#line 8483 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -8630,7 +8693,7 @@ yyreturn: } -#line 3811 "Gmsh.y" +#line 3847 "Gmsh.y" int PrintListOfDouble(char *format, List_T *list, char *buffer) diff --git a/Parser/Gmsh.tab.hpp b/Parser/Gmsh.tab.hpp index b0d1532ab9..1fd495e553 100644 --- a/Parser/Gmsh.tab.hpp +++ b/Parser/Gmsh.tab.hpp @@ -102,64 +102,66 @@ tCompound = 318, tUsing = 319, tPlugin = 320, - tRotate = 321, - tTranslate = 322, - tSymmetry = 323, - tDilate = 324, - tExtrude = 325, - tLevelset = 326, - tLoop = 327, - tRecombine = 328, - tSmoother = 329, - tSplit = 330, - tDelete = 331, - tCoherence = 332, - tIntersect = 333, - tLayers = 334, - tHole = 335, - tAlias = 336, - tAliasWithOptions = 337, - tText2D = 338, - tText3D = 339, - tInterpolationScheme = 340, - tTime = 341, - tCombine = 342, - tBSpline = 343, - tBezier = 344, - tNurbs = 345, - tOrder = 346, - tKnots = 347, - tColor = 348, - tColorTable = 349, - tFor = 350, - tIn = 351, - tEndFor = 352, - tIf = 353, - tEndIf = 354, - tExit = 355, - tField = 356, - tReturn = 357, - tCall = 358, - tFunction = 359, - tShow = 360, - tHide = 361, - tGetValue = 362, - tGMSH_MAJOR_VERSION = 363, - tGMSH_MINOR_VERSION = 364, - tGMSH_PATCH_VERSION = 365, - tAFFECTDIVIDE = 366, - tAFFECTTIMES = 367, - tAFFECTMINUS = 368, - tAFFECTPLUS = 369, - tOR = 370, - tAND = 371, - tNOTEQUAL = 372, - tEQUAL = 373, - tGREATEROREQUAL = 374, - tLESSOREQUAL = 375, - UNARYPREC = 376, - tMINUSMINUS = 377, - tPLUSPLUS = 378 + tDegenerated = 321, + tOCCShape = 322, + tRotate = 323, + tTranslate = 324, + tSymmetry = 325, + tDilate = 326, + tExtrude = 327, + tLevelset = 328, + tLoop = 329, + tRecombine = 330, + tSmoother = 331, + tSplit = 332, + tDelete = 333, + tCoherence = 334, + tIntersect = 335, + tLayers = 336, + tHole = 337, + tAlias = 338, + tAliasWithOptions = 339, + tText2D = 340, + tText3D = 341, + tInterpolationScheme = 342, + tTime = 343, + tCombine = 344, + tBSpline = 345, + tBezier = 346, + tNurbs = 347, + tOrder = 348, + tKnots = 349, + tColor = 350, + tColorTable = 351, + tFor = 352, + tIn = 353, + tEndFor = 354, + tIf = 355, + tEndIf = 356, + tExit = 357, + tField = 358, + tReturn = 359, + tCall = 360, + tFunction = 361, + tShow = 362, + tHide = 363, + tGetValue = 364, + tGMSH_MAJOR_VERSION = 365, + tGMSH_MINOR_VERSION = 366, + tGMSH_PATCH_VERSION = 367, + tAFFECTDIVIDE = 368, + tAFFECTTIMES = 369, + tAFFECTMINUS = 370, + tAFFECTPLUS = 371, + tOR = 372, + tAND = 373, + tNOTEQUAL = 374, + tEQUAL = 375, + tGREATEROREQUAL = 376, + tLESSOREQUAL = 377, + UNARYPREC = 378, + tMINUSMINUS = 379, + tPLUSPLUS = 380 }; #endif /* Tokens. */ @@ -226,64 +228,66 @@ #define tCompound 318 #define tUsing 319 #define tPlugin 320 -#define tRotate 321 -#define tTranslate 322 -#define tSymmetry 323 -#define tDilate 324 -#define tExtrude 325 -#define tLevelset 326 -#define tLoop 327 -#define tRecombine 328 -#define tSmoother 329 -#define tSplit 330 -#define tDelete 331 -#define tCoherence 332 -#define tIntersect 333 -#define tLayers 334 -#define tHole 335 -#define tAlias 336 -#define tAliasWithOptions 337 -#define tText2D 338 -#define tText3D 339 -#define tInterpolationScheme 340 -#define tTime 341 -#define tCombine 342 -#define tBSpline 343 -#define tBezier 344 -#define tNurbs 345 -#define tOrder 346 -#define tKnots 347 -#define tColor 348 -#define tColorTable 349 -#define tFor 350 -#define tIn 351 -#define tEndFor 352 -#define tIf 353 -#define tEndIf 354 -#define tExit 355 -#define tField 356 -#define tReturn 357 -#define tCall 358 -#define tFunction 359 -#define tShow 360 -#define tHide 361 -#define tGetValue 362 -#define tGMSH_MAJOR_VERSION 363 -#define tGMSH_MINOR_VERSION 364 -#define tGMSH_PATCH_VERSION 365 -#define tAFFECTDIVIDE 366 -#define tAFFECTTIMES 367 -#define tAFFECTMINUS 368 -#define tAFFECTPLUS 369 -#define tOR 370 -#define tAND 371 -#define tNOTEQUAL 372 -#define tEQUAL 373 -#define tGREATEROREQUAL 374 -#define tLESSOREQUAL 375 -#define UNARYPREC 376 -#define tMINUSMINUS 377 -#define tPLUSPLUS 378 +#define tDegenerated 321 +#define tOCCShape 322 +#define tRotate 323 +#define tTranslate 324 +#define tSymmetry 325 +#define tDilate 326 +#define tExtrude 327 +#define tLevelset 328 +#define tLoop 329 +#define tRecombine 330 +#define tSmoother 331 +#define tSplit 332 +#define tDelete 333 +#define tCoherence 334 +#define tIntersect 335 +#define tLayers 336 +#define tHole 337 +#define tAlias 338 +#define tAliasWithOptions 339 +#define tText2D 340 +#define tText3D 341 +#define tInterpolationScheme 342 +#define tTime 343 +#define tCombine 344 +#define tBSpline 345 +#define tBezier 346 +#define tNurbs 347 +#define tOrder 348 +#define tKnots 349 +#define tColor 350 +#define tColorTable 351 +#define tFor 352 +#define tIn 353 +#define tEndFor 354 +#define tIf 355 +#define tEndIf 356 +#define tExit 357 +#define tField 358 +#define tReturn 359 +#define tCall 360 +#define tFunction 361 +#define tShow 362 +#define tHide 363 +#define tGetValue 364 +#define tGMSH_MAJOR_VERSION 365 +#define tGMSH_MINOR_VERSION 366 +#define tGMSH_PATCH_VERSION 367 +#define tAFFECTDIVIDE 368 +#define tAFFECTTIMES 369 +#define tAFFECTMINUS 370 +#define tAFFECTPLUS 371 +#define tOR 372 +#define tAND 373 +#define tNOTEQUAL 374 +#define tEQUAL 375 +#define tGREATEROREQUAL 376 +#define tLESSOREQUAL 377 +#define UNARYPREC 378 +#define tMINUSMINUS 379 +#define tPLUSPLUS 380 @@ -301,7 +305,7 @@ typedef union YYSTYPE List_T *l; } /* Line 1529 of yacc.c. */ -#line 305 "Gmsh.tab.hpp" +#line 309 "Gmsh.tab.hpp" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index ebcee8e0e7..113bf187cc 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -93,7 +93,7 @@ void FixRelativePath(const char *in, char *out); %token tPoint tCircle tEllipse tLine tSphere tPolarSphere tSurface tSpline tVolume %token tCharacteristic tLength tParametric tElliptic %token tPlane tRuled tTransfinite tComplex tPhysical tCompound -%token tUsing tPlugin +%token tUsing tPlugin tDegenerated tOCCShape %token tRotate tTranslate tSymmetry tDilate tExtrude tLevelset %token tLoop tRecombine tSmoother tSplit tDelete tCoherence tIntersect %token tLayers tHole tAlias tAliasWithOptions @@ -1070,6 +1070,28 @@ Shape : $$.Type = MSH_SEGM_LINE; $$.Num = num; } + | tDegenerated tLine ListOfDouble tEND + { + for (int i = 0; i < List_Nbr($3); i++){ + double dnum; + List_Read($3, i, &dnum); + int num = (int) fabs(dnum); + Curve *c = FindCurve(num); + if (c){ + c->degenerated = true; + } + else{ + GEdge *ge = GModel::current()->getEdgeByTag(num); + if (!ge){ + yymsg(0, "Curve %d does not exist", num); + } + else{ + ge->setTooSmall(true); + } + } + } + } + | tSpline '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$3; @@ -1529,6 +1551,19 @@ Shape : $$.Type = MSH_VOLUME; $$.Num = num; } + + | tOCCShape '(' tBIGSTR ',' ListOfDouble ',' tBIGSTR ')' tEND + { +#if defined(HAVE_OCC) + std::vector<double> data; + for (int i=0 ; i<List_Nbr($5) ; i++){ + double d; List_Read ($5,i,&d); + data.push_back(d); + } + GModel::current()->addShape($3,data,$7); +#endif + } + | tPhysical tVolume { curPhysDim = 3; @@ -1549,6 +1584,7 @@ Shape : $$.Type = MSH_PHYSICAL_VOLUME; $$.Num = num; } + ; // T R A N S F O R M diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index 30173608aa..c9352af877 100644 --- a/Parser/Gmsh.yy.cpp +++ b/Parser/Gmsh.yy.cpp @@ -364,8 +364,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 145 -#define YY_END_OF_BUFFER 146 +#define YY_NUM_RULES 147 +#define YY_END_OF_BUFFER 148 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -373,76 +373,78 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[618] = +static yyconst flex_int16_t yy_accept[634] = { 0, - 0, 0, 146, 144, 1, 1, 144, 5, 144, 6, - 144, 144, 144, 144, 144, 139, 21, 2, 144, 16, - 144, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 144, 28, 24, 19, 25, 17, 26, - 18, 0, 141, 3, 4, 20, 140, 139, 0, 29, - 27, 30, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 85, 84, 143, 143, - - 143, 143, 143, 143, 143, 143, 143, 143, 143, 102, - 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 129, 130, 143, 143, 143, - 143, 143, 143, 143, 23, 22, 0, 140, 0, 0, - 142, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 49, 143, - 143, 143, 143, 143, 143, 143, 143, 62, 143, 143, - 143, 143, 143, 75, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 92, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - - 143, 143, 143, 143, 143, 143, 116, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 135, 143, 143, - 143, 143, 143, 0, 141, 0, 0, 140, 31, 143, - 143, 143, 143, 35, 37, 143, 143, 143, 57, 143, - 44, 143, 143, 143, 143, 143, 143, 143, 48, 143, - 143, 143, 61, 143, 143, 143, 143, 70, 143, 71, - 143, 143, 74, 143, 143, 143, 81, 82, 143, 143, - 143, 143, 143, 143, 143, 90, 143, 91, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 143, 112, - 143, 143, 143, 143, 126, 117, 143, 143, 143, 143, - - 115, 143, 143, 143, 143, 143, 143, 131, 134, 143, - 143, 143, 143, 10, 15, 9, 8, 143, 12, 14, - 0, 140, 33, 143, 143, 143, 39, 143, 143, 143, - 143, 143, 143, 143, 52, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 68, 143, 143, 72, 73, 143, - 143, 143, 83, 143, 143, 88, 143, 143, 143, 93, - 143, 143, 143, 99, 100, 143, 143, 103, 143, 104, - 143, 143, 143, 143, 143, 111, 143, 143, 143, 120, - 143, 143, 143, 143, 143, 143, 143, 136, 143, 137, - 143, 11, 143, 13, 143, 32, 36, 38, 143, 41, - - 143, 143, 143, 45, 143, 143, 143, 143, 143, 143, - 143, 59, 60, 143, 143, 67, 143, 143, 143, 143, - 143, 143, 143, 143, 94, 89, 143, 143, 143, 96, - 143, 143, 108, 143, 107, 143, 113, 110, 143, 118, - 119, 143, 123, 143, 143, 143, 143, 143, 143, 143, - 138, 7, 143, 40, 42, 143, 143, 143, 143, 143, - 47, 51, 143, 143, 143, 64, 143, 143, 143, 65, - 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 122, 143, 143, 121, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 143, 54, - - 143, 143, 63, 66, 143, 76, 143, 143, 143, 77, - 143, 143, 95, 97, 98, 143, 101, 143, 143, 114, - 143, 143, 127, 143, 143, 143, 143, 143, 143, 143, - 46, 143, 143, 143, 69, 143, 143, 143, 143, 86, - 143, 143, 109, 124, 143, 128, 143, 133, 143, 143, - 56, 143, 53, 143, 143, 143, 143, 143, 143, 105, - 143, 143, 143, 143, 43, 143, 55, 143, 143, 143, - 143, 143, 106, 125, 132, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 50, 58, 143, 143, 143, 143, 143, 143, 143, 143, - - 143, 34, 143, 143, 143, 143, 143, 143, 143, 143, - 78, 79, 80, 143, 143, 87, 0 + 0, 0, 148, 146, 1, 1, 146, 5, 146, 6, + 146, 146, 146, 146, 146, 141, 21, 2, 146, 16, + 146, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 146, 28, 24, 19, 25, 17, 26, + 18, 0, 143, 3, 4, 20, 142, 141, 0, 29, + 27, 30, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 86, 85, 145, 145, + + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 104, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 131, 132, 145, 145, + 145, 145, 145, 145, 145, 23, 22, 0, 142, 0, + 0, 144, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 49, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 63, + 145, 145, 145, 145, 145, 76, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 93, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + + 145, 145, 145, 145, 145, 145, 145, 145, 145, 118, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 137, 145, 145, 145, 145, 145, 0, 143, 0, 0, + 142, 31, 145, 145, 145, 145, 35, 37, 145, 145, + 145, 57, 145, 44, 145, 145, 145, 145, 145, 145, + 145, 48, 145, 145, 145, 145, 62, 145, 145, 145, + 145, 71, 145, 72, 145, 145, 75, 145, 145, 145, + 82, 83, 145, 145, 145, 145, 145, 145, 145, 91, + 145, 92, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 114, 145, 145, 145, 145, 128, + + 119, 145, 145, 145, 145, 117, 145, 145, 145, 145, + 145, 145, 133, 136, 145, 145, 145, 145, 10, 15, + 9, 8, 145, 12, 14, 0, 142, 33, 145, 145, + 145, 39, 145, 145, 145, 145, 145, 145, 145, 52, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 69, 145, 145, 73, 74, 145, 145, 145, 84, 145, + 145, 89, 145, 145, 145, 94, 145, 145, 145, 100, + 145, 101, 145, 145, 105, 145, 106, 145, 145, 145, + 145, 145, 113, 145, 145, 145, 122, 145, 145, 145, + 145, 145, 145, 145, 138, 145, 139, 145, 11, 145, + + 13, 145, 32, 36, 38, 145, 41, 145, 145, 145, + 45, 145, 145, 145, 145, 145, 145, 145, 145, 59, + 61, 145, 145, 68, 145, 145, 145, 145, 145, 145, + 145, 145, 95, 90, 145, 145, 145, 97, 145, 145, + 145, 110, 145, 109, 145, 115, 112, 145, 120, 121, + 145, 125, 145, 145, 145, 145, 145, 145, 145, 140, + 7, 145, 40, 42, 145, 145, 145, 145, 145, 47, + 51, 145, 145, 145, 145, 65, 145, 145, 145, 66, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 124, 145, 145, 123, + + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 54, 145, 145, 145, 64, 67, 145, 77, 145, 145, + 145, 78, 145, 145, 96, 98, 99, 102, 145, 103, + 145, 145, 116, 145, 145, 129, 145, 145, 145, 145, + 145, 145, 145, 46, 145, 145, 145, 145, 70, 145, + 145, 145, 145, 87, 145, 145, 111, 126, 145, 130, + 145, 135, 145, 145, 56, 145, 53, 145, 145, 145, + 145, 145, 145, 145, 107, 145, 145, 145, 145, 43, + 145, 55, 145, 60, 145, 145, 145, 145, 108, 127, + 134, 145, 145, 145, 145, 145, 145, 145, 145, 145, + + 145, 145, 145, 145, 145, 145, 50, 58, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 34, 145, 145, + 145, 145, 145, 145, 145, 145, 79, 80, 81, 145, + 145, 88, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -489,151 +491,155 @@ static yyconst flex_int32_t yy_meta[73] = 2, 1 } ; -static yyconst flex_int16_t yy_base[619] = +static yyconst flex_int16_t yy_base[635] = { 0, - 0, 0, 739, 740, 740, 740, 717, 740, 731, 740, - 715, 64, 65, 63, 75, 77, 740, 740, 714, 713, - 712, 46, 48, 66, 51, 65, 78, 46, 45, 71, - 0, 673, 90, 80, 665, 667, 92, 106, 109, 145, - 665, 668, 676, 654, 740, 740, 740, 740, 740, 740, - 740, 714, 167, 740, 740, 740, 172, 187, 211, 740, - 740, 740, 0, 664, 668, 673, 666, 673, 658, 647, - 651, 62, 661, 668, 651, 152, 662, 655, 654, 663, - 652, 658, 658, 93, 658, 654, 644, 643, 639, 642, - 659, 634, 648, 640, 635, 653, 0, 629, 633, 622, - - 84, 632, 109, 659, 639, 625, 637, 623, 615, 0, - 35, 136, 629, 624, 67, 617, 624, 620, 620, 618, - 102, 614, 613, 612, 119, 0, 0, 639, 614, 622, - 624, 615, 612, 600, 740, 740, 220, 226, 235, 241, - 246, 603, 619, 190, 606, 605, 606, 607, 602, 603, - 601, 601, 594, 607, 604, 594, 217, 590, 598, 604, - 599, 602, 580, 592, 191, 589, 580, 0, 581, 579, - 585, 581, 590, 0, 590, 608, 593, 585, 584, 574, - 606, 581, 566, 579, 576, 577, 576, 612, 564, 578, - 557, 574, 570, 573, 555, 559, 564, 557, 568, 555, - - 563, 552, 545, 563, 558, 540, 553, 546, 554, 549, - 548, 537, 241, 549, 542, 550, 571, 543, 549, 536, - 535, 527, 219, 274, 279, 288, 293, 298, 0, 528, - 531, 535, 542, 0, 573, 532, 535, 535, 0, 518, - 0, 536, 525, 518, 517, 524, 207, 528, 0, 512, - 511, 510, 0, 513, 513, 520, 516, 0, 504, 0, - 519, 505, 0, 502, 520, 518, 0, 0, 499, 523, - 499, 497, 497, 494, 501, 0, 544, 0, 155, 499, - 491, 491, 495, 497, 500, 495, 484, 485, 482, 0, - 488, 482, 479, 493, 0, 0, 477, 478, 148, 481, - - 0, 492, 475, 486, 489, 484, 499, 0, 0, 463, - 468, 478, 472, 0, 0, 472, 0, 477, 470, 0, - 303, 308, 481, 461, 465, 464, 0, 463, 458, 465, - 462, 469, 466, 465, 473, 455, 462, 446, 456, 459, - 458, 457, 182, 444, 0, 456, 455, 0, 0, 449, - 234, 446, 0, 464, 437, 0, 436, 445, 434, 0, - 450, 441, 435, 0, 0, 443, 444, 0, 433, 0, - 450, 438, 441, 429, 436, 0, 432, 434, 433, 0, - 418, 417, 430, 423, 430, 413, 417, 0, 116, 0, - 425, 0, 422, 0, 419, 0, 0, 458, 421, 0, - - 412, 413, 404, 0, 409, 420, 415, 396, 405, 404, - 420, 0, 0, 219, 406, 0, 405, 408, 398, 303, - 434, 390, 418, 403, 0, 0, 402, 393, 380, 0, - 385, 402, 0, 387, 0, 392, 0, 0, 395, 0, - 0, 393, 0, 392, 396, 391, 378, 390, 384, 391, - 0, 0, 372, 0, 0, 383, 395, 383, 384, 384, - 0, 0, 381, 383, 369, 0, 364, 378, 379, 0, - 366, 392, 387, 380, 370, 386, 370, 353, 361, 365, - 352, 357, 359, 353, 348, 0, 355, 344, 0, 338, - 356, 347, 340, 350, 379, 342, 338, 349, 342, 0, - - 333, 336, 0, 0, 337, 0, 358, 357, 368, 0, - 369, 326, 0, 0, 0, 335, 0, 338, 337, 0, - 318, 331, 0, 328, 329, 332, 345, 321, 322, 324, - 0, 327, 326, 316, 0, 335, 334, 343, 330, 0, - 322, 307, 0, 0, 302, 0, 303, 0, 306, 297, - 0, 301, 0, 300, 306, 316, 315, 314, 328, 0, - 307, 306, 305, 290, 0, 289, 0, 293, 308, 307, - 306, 312, 0, 0, 0, 293, 292, 293, 318, 317, - 316, 306, 281, 291, 269, 298, 297, 296, 289, 274, - 0, 0, 291, 290, 289, 288, 264, 296, 269, 268, - - 260, 0, 247, 238, 236, 187, 175, 161, 154, 115, - 0, 0, 0, 77, 71, 0, 740, 82 + 0, 0, 755, 756, 756, 756, 733, 756, 747, 756, + 731, 64, 65, 63, 75, 77, 756, 756, 730, 729, + 728, 46, 48, 66, 51, 65, 78, 46, 45, 71, + 0, 689, 90, 80, 681, 76, 99, 100, 103, 155, + 682, 685, 693, 671, 756, 756, 756, 756, 756, 756, + 756, 731, 161, 756, 756, 756, 166, 181, 190, 756, + 756, 756, 0, 681, 685, 690, 683, 690, 675, 664, + 668, 62, 678, 685, 668, 156, 679, 59, 672, 681, + 670, 676, 676, 87, 676, 672, 662, 661, 657, 660, + 677, 652, 666, 658, 653, 671, 0, 647, 651, 640, + + 96, 650, 131, 677, 657, 643, 680, 654, 640, 632, + 0, 143, 27, 646, 641, 136, 634, 641, 637, 637, + 635, 165, 631, 630, 629, 165, 0, 0, 656, 631, + 639, 641, 632, 629, 617, 756, 756, 220, 225, 234, + 240, 245, 620, 636, 238, 623, 622, 623, 624, 619, + 620, 618, 618, 611, 624, 621, 611, 216, 607, 615, + 621, 616, 615, 618, 596, 608, 237, 605, 596, 0, + 597, 595, 601, 597, 606, 0, 606, 624, 609, 601, + 600, 590, 622, 597, 582, 595, 592, 593, 592, 628, + 580, 594, 573, 590, 596, 585, 588, 570, 574, 579, + + 572, 583, 570, 578, 567, 560, 578, 573, 555, 568, + 561, 569, 564, 563, 552, 244, 564, 557, 565, 586, + 558, 564, 551, 550, 542, 226, 257, 281, 290, 295, + 300, 0, 543, 546, 550, 557, 0, 588, 547, 550, + 550, 0, 533, 0, 551, 540, 533, 532, 539, 228, + 543, 0, 527, 532, 525, 524, 0, 527, 527, 534, + 530, 0, 518, 0, 533, 519, 0, 516, 534, 532, + 0, 0, 513, 537, 513, 511, 511, 508, 515, 0, + 558, 0, 185, 513, 505, 514, 504, 508, 510, 513, + 508, 497, 498, 495, 0, 501, 495, 492, 506, 0, + + 0, 490, 491, 84, 494, 0, 505, 488, 499, 502, + 497, 512, 0, 0, 476, 481, 491, 485, 0, 0, + 485, 0, 490, 483, 0, 305, 310, 494, 474, 478, + 477, 0, 476, 471, 478, 475, 482, 479, 478, 486, + 468, 475, 459, 469, 472, 471, 470, 469, 181, 456, + 0, 468, 467, 0, 0, 461, 293, 458, 0, 476, + 449, 0, 448, 457, 446, 0, 462, 453, 447, 0, + 459, 0, 454, 455, 0, 444, 0, 461, 449, 452, + 440, 447, 0, 443, 445, 444, 0, 429, 428, 441, + 434, 441, 424, 428, 0, 115, 0, 436, 0, 433, + + 0, 430, 0, 0, 469, 432, 0, 423, 424, 415, + 0, 420, 431, 426, 407, 416, 415, 431, 409, 0, + 0, 176, 416, 0, 415, 418, 408, 306, 444, 400, + 428, 413, 0, 0, 412, 403, 390, 0, 399, 394, + 411, 0, 396, 0, 401, 0, 0, 404, 0, 0, + 402, 0, 401, 405, 400, 387, 399, 393, 400, 0, + 0, 381, 0, 0, 392, 404, 392, 393, 393, 0, + 0, 390, 392, 378, 390, 0, 372, 386, 387, 0, + 374, 400, 395, 388, 378, 394, 378, 361, 369, 373, + 372, 359, 364, 366, 360, 355, 0, 362, 351, 0, + + 345, 363, 354, 347, 357, 386, 349, 345, 356, 349, + 0, 340, 343, 338, 0, 0, 343, 0, 364, 363, + 374, 0, 375, 332, 0, 0, 0, 0, 341, 0, + 344, 343, 0, 324, 337, 0, 334, 335, 338, 351, + 327, 328, 330, 0, 333, 332, 322, 330, 0, 340, + 339, 348, 335, 0, 327, 312, 0, 0, 307, 0, + 308, 0, 311, 302, 0, 306, 0, 305, 311, 317, + 320, 319, 318, 332, 0, 311, 310, 309, 294, 0, + 293, 0, 297, 0, 312, 311, 310, 316, 0, 0, + 0, 297, 296, 297, 322, 321, 320, 310, 285, 295, + + 273, 302, 301, 300, 293, 279, 0, 0, 295, 294, + 293, 292, 268, 299, 271, 270, 267, 0, 254, 249, + 244, 237, 230, 185, 175, 162, 0, 0, 0, 152, + 105, 0, 756, 96 } ; -static yyconst flex_int16_t yy_def[619] = +static yyconst flex_int16_t yy_def[635] = { 0, - 617, 1, 617, 617, 617, 617, 617, 617, 617, 617, - 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, - 617, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 617, 617, 617, 617, 617, 617, 617, - 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, - 617, 617, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 617, 617, 617, 617, 617, 617, - 617, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 617, 617, 617, 617, 617, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 617, 617, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - - 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 0, 617 + 633, 1, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 633, 633, 633, 633, 633, + 633, 633, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 633, 633, 633, 633, + 633, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 633, 633, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 0, 633 } ; -static yyconst flex_int16_t yy_nxt[813] = +static yyconst flex_int16_t yy_nxt[829] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 16, 16, 16, 17, 18, 19, @@ -643,91 +649,92 @@ static yyconst flex_int16_t yy_nxt[813] = 31, 31, 31, 31, 31, 31, 31, 31, 43, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 44, 48, 52, 50, 53, 53, 53, 53, 53, - 91, 196, 54, 63, 49, 51, 55, 57, 69, 58, - 58, 58, 58, 58, 64, 56, 92, 616, 70, 93, - - 197, 78, 65, 59, 94, 79, 96, 71, 66, 67, - 68, 615, 72, 80, 95, 202, 73, 104, 150, 74, - 75, 81, 97, 82, 85, 76, 151, 59, 77, 98, - 83, 203, 86, 84, 87, 88, 100, 89, 108, 105, - 101, 614, 185, 90, 102, 109, 110, 167, 111, 103, - 186, 112, 114, 168, 113, 209, 115, 169, 210, 126, - 127, 188, 118, 119, 211, 116, 120, 449, 189, 121, - 122, 117, 450, 123, 124, 128, 215, 216, 125, 53, - 53, 53, 53, 53, 138, 138, 138, 138, 138, 613, - 198, 129, 199, 137, 361, 362, 612, 57, 139, 58, - - 58, 58, 58, 58, 130, 155, 379, 131, 156, 157, - 611, 158, 380, 59, 231, 159, 610, 137, 255, 140, - 140, 256, 139, 141, 141, 141, 141, 141, 224, 224, - 232, 233, 225, 225, 225, 225, 225, 59, 138, 138, - 138, 138, 138, 227, 227, 414, 415, 228, 228, 228, - 228, 228, 226, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 337, 246, 302, 338, 314, 420, 466, - 315, 421, 609, 467, 608, 316, 226, 247, 303, 317, - 304, 318, 319, 607, 606, 320, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 321, 321, 605, 604, - - 322, 322, 322, 322, 322, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 322, 322, 322, 322, 322, - 322, 322, 322, 322, 322, 472, 603, 602, 601, 600, - 599, 598, 597, 473, 596, 595, 594, 593, 592, 591, + 91, 201, 54, 202, 49, 51, 55, 57, 69, 58, + 58, 58, 58, 58, 64, 56, 92, 63, 70, 93, + + 107, 78, 65, 59, 94, 79, 96, 71, 66, 67, + 68, 162, 72, 80, 95, 163, 73, 104, 151, 74, + 75, 81, 97, 82, 85, 76, 152, 59, 77, 98, + 83, 632, 86, 84, 87, 88, 100, 89, 108, 105, + 101, 169, 386, 90, 102, 109, 115, 170, 387, 103, + 116, 171, 110, 111, 187, 112, 119, 120, 113, 117, + 121, 114, 188, 122, 123, 118, 458, 124, 125, 127, + 128, 459, 126, 53, 53, 53, 53, 53, 139, 139, + 139, 139, 139, 190, 205, 129, 631, 138, 630, 199, + 191, 57, 140, 58, 58, 58, 58, 58, 141, 141, + + 206, 130, 142, 142, 142, 142, 142, 59, 200, 156, + 629, 138, 157, 158, 131, 159, 140, 132, 212, 160, + 628, 213, 218, 219, 367, 368, 476, 214, 227, 227, + 477, 59, 228, 228, 228, 228, 228, 139, 139, 139, + 139, 139, 230, 230, 422, 423, 231, 231, 231, 231, + 231, 229, 142, 142, 142, 142, 142, 142, 142, 142, + 142, 142, 234, 249, 259, 627, 626, 260, 307, 228, + 228, 228, 228, 228, 319, 229, 250, 320, 235, 236, + 625, 308, 321, 309, 342, 624, 322, 343, 323, 324, + 623, 622, 325, 228, 228, 228, 228, 228, 326, 326, + + 621, 620, 327, 327, 327, 327, 327, 231, 231, 231, + 231, 231, 231, 231, 231, 231, 231, 327, 327, 327, + 327, 327, 327, 327, 327, 327, 327, 428, 482, 619, + 429, 618, 617, 616, 615, 614, 483, 613, 612, 611, + 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, + 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, + 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, 531, - 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, 496, 495, 494, 493, 492, 491, - 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, - 480, 479, 478, 477, 476, 475, 474, 471, 470, 469, - 468, 465, 464, 463, 462, 461, 460, 459, 458, 457, - 456, 455, 454, 453, 452, 451, 448, 447, 446, 445, - 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, - 434, 433, 432, 431, 430, 429, 428, 427, 426, 425, + 490, 489, 488, 487, 486, 485, 484, 481, 480, 479, + 478, 475, 474, 473, 472, 471, 470, 469, 468, 467, + 466, 465, 464, 463, 462, 461, 460, 457, 456, 455, + 454, 453, 452, 451, 450, 449, 448, 447, 446, 445, - 424, 423, 422, 419, 418, 417, 416, 413, 412, 411, + 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, + 434, 433, 432, 431, 430, 427, 426, 425, 424, 421, + 420, 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, 392, 391, - 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, + 390, 389, 388, 385, 384, 383, 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, 369, - 368, 367, 366, 365, 364, 363, 360, 359, 358, 357, + 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, - 346, 345, 344, 343, 342, 341, 340, 339, 336, 335, - 334, 333, 332, 331, 330, 329, 328, 327, 326, 325, - 324, 323, 313, 312, 311, 310, 309, 308, 307, 306, + 346, 345, 344, 341, 340, 339, 338, 337, 336, 335, - 305, 301, 300, 299, 298, 297, 296, 295, 294, 293, + 334, 333, 332, 331, 330, 329, 328, 318, 317, 316, + 315, 314, 313, 312, 311, 310, 306, 305, 304, 303, + 302, 301, 300, 299, 298, 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, - 262, 261, 260, 259, 258, 257, 254, 253, 252, 251, - 250, 249, 248, 245, 244, 243, 242, 241, 240, 239, - 238, 237, 236, 235, 234, 230, 229, 223, 222, 221, - 220, 219, 218, 217, 214, 213, 212, 208, 207, 206, - 205, 204, 201, 200, 195, 194, 193, 192, 191, 190, - 187, 184, 183, 182, 181, 180, 179, 178, 177, 176, - - 175, 174, 173, 172, 171, 170, 166, 165, 164, 163, - 162, 161, 160, 154, 153, 152, 149, 148, 147, 146, - 145, 144, 143, 142, 136, 135, 134, 133, 132, 107, - 106, 99, 62, 61, 60, 47, 46, 45, 617, 3, - 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, - 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, - 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, - 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, - 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, - 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, - - 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, - 617, 617 + 262, 261, 258, 257, 256, 255, 254, 253, 252, 251, + 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, + 238, 237, 233, 232, 226, 225, 224, 223, 222, 221, + 220, 217, 216, 215, 211, 210, 209, 208, 207, 204, + + 203, 198, 197, 196, 195, 194, 193, 192, 189, 186, + 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, + 175, 174, 173, 172, 168, 167, 166, 165, 164, 161, + 155, 154, 153, 150, 149, 148, 147, 146, 145, 144, + 143, 137, 136, 135, 134, 133, 106, 99, 62, 61, + 60, 47, 46, 45, 633, 3, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633 } ; -static yyconst flex_int16_t yy_chk[813] = +static yyconst flex_int16_t yy_chk[829] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -737,88 +744,89 @@ static yyconst flex_int16_t yy_chk[813] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 14, 13, 14, 14, 14, 14, 14, - 28, 111, 15, 618, 12, 13, 15, 16, 23, 16, - 16, 16, 16, 16, 22, 15, 28, 615, 23, 29, + 28, 113, 15, 113, 12, 13, 15, 16, 23, 16, + 16, 16, 16, 16, 22, 15, 28, 634, 23, 29, - 111, 25, 22, 16, 29, 25, 30, 23, 22, 22, - 22, 614, 24, 25, 29, 115, 24, 34, 72, 24, + 36, 25, 22, 16, 29, 25, 30, 23, 22, 22, + 22, 78, 24, 25, 29, 78, 24, 34, 72, 24, 24, 26, 30, 26, 27, 24, 72, 16, 24, 30, - 26, 115, 27, 26, 27, 27, 33, 27, 37, 34, - 33, 610, 101, 27, 33, 37, 37, 84, 37, 33, - 101, 37, 38, 84, 37, 121, 38, 84, 121, 40, - 40, 103, 39, 39, 121, 38, 39, 389, 103, 39, - 39, 38, 389, 39, 39, 40, 125, 125, 39, 53, - 53, 53, 53, 53, 57, 57, 57, 57, 57, 609, - 112, 40, 112, 53, 279, 279, 608, 58, 57, 58, - - 58, 58, 58, 58, 40, 76, 299, 40, 76, 76, - 607, 76, 299, 58, 144, 76, 606, 53, 165, 59, - 59, 165, 57, 59, 59, 59, 59, 59, 137, 137, - 144, 144, 137, 137, 137, 137, 137, 58, 138, 138, - 138, 138, 138, 139, 139, 343, 343, 139, 139, 139, - 139, 139, 138, 140, 140, 140, 140, 140, 141, 141, - 141, 141, 141, 247, 157, 213, 247, 223, 351, 414, - 223, 351, 605, 414, 604, 223, 138, 157, 213, 223, - 213, 223, 223, 603, 601, 223, 224, 224, 224, 224, - 224, 225, 225, 225, 225, 225, 226, 226, 600, 599, - - 226, 226, 226, 226, 226, 227, 227, 227, 227, 227, - 228, 228, 228, 228, 228, 321, 321, 321, 321, 321, - 322, 322, 322, 322, 322, 420, 598, 597, 596, 595, - 594, 593, 590, 420, 589, 588, 587, 586, 585, 584, - 583, 582, 581, 580, 579, 578, 577, 576, 572, 571, - 570, 569, 568, 566, 564, 563, 562, 561, 559, 558, - 557, 556, 555, 554, 552, 550, 549, 547, 545, 542, - 541, 539, 538, 537, 536, 534, 533, 532, 530, 529, - 528, 527, 526, 525, 524, 522, 521, 519, 518, 516, - 512, 511, 509, 508, 507, 505, 502, 501, 499, 498, - - 497, 496, 495, 494, 493, 492, 491, 490, 488, 487, - 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, - 475, 474, 473, 472, 471, 469, 468, 467, 465, 464, - 463, 460, 459, 458, 457, 456, 453, 450, 449, 448, - 447, 446, 445, 444, 442, 439, 436, 434, 432, 431, - 429, 428, 427, 424, 423, 422, 421, 419, 418, 417, - 415, 411, 410, 409, 408, 407, 406, 405, 403, 402, - 401, 399, 398, 395, 393, 391, 387, 386, 385, 384, - 383, 382, 381, 379, 378, 377, 375, 374, 373, 372, - 371, 369, 367, 366, 363, 362, 361, 359, 358, 357, - - 355, 354, 352, 350, 347, 346, 344, 342, 341, 340, - 339, 338, 337, 336, 335, 334, 333, 332, 331, 330, - 329, 328, 326, 325, 324, 323, 319, 318, 316, 313, - 312, 311, 310, 307, 306, 305, 304, 303, 302, 300, - 298, 297, 294, 293, 292, 291, 289, 288, 287, 286, - 285, 284, 283, 282, 281, 280, 277, 275, 274, 273, - 272, 271, 270, 269, 266, 265, 264, 262, 261, 259, - 257, 256, 255, 254, 252, 251, 250, 248, 246, 245, - 244, 243, 242, 240, 238, 237, 236, 235, 233, 232, - 231, 230, 222, 221, 220, 219, 218, 217, 216, 215, - - 214, 212, 211, 210, 209, 208, 207, 206, 205, 204, - 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, - 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, - 183, 182, 181, 180, 179, 178, 177, 176, 175, 173, - 172, 171, 170, 169, 167, 166, 164, 163, 162, 161, - 160, 159, 158, 156, 155, 154, 153, 152, 151, 150, - 149, 148, 147, 146, 145, 143, 142, 134, 133, 132, - 131, 130, 129, 128, 124, 123, 122, 120, 119, 118, - 117, 116, 114, 113, 109, 108, 107, 106, 105, 104, - 102, 100, 99, 98, 96, 95, 94, 93, 92, 91, - - 90, 89, 88, 87, 86, 85, 83, 82, 81, 80, - 79, 78, 77, 75, 74, 73, 71, 70, 69, 68, - 67, 66, 65, 64, 52, 44, 43, 42, 41, 36, - 35, 32, 21, 20, 19, 11, 9, 7, 3, 617, - 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, - 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, - 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, - 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, - 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, - 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, - - 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, - 617, 617 + 26, 631, 27, 26, 27, 27, 33, 27, 36, 34, + 33, 84, 304, 27, 33, 37, 38, 84, 304, 33, + 38, 84, 37, 37, 101, 37, 39, 39, 37, 38, + 39, 37, 101, 39, 39, 38, 396, 39, 39, 40, + 40, 396, 39, 53, 53, 53, 53, 53, 57, 57, + 57, 57, 57, 103, 116, 40, 630, 53, 626, 112, + 103, 58, 57, 58, 58, 58, 58, 58, 59, 59, + + 116, 40, 59, 59, 59, 59, 59, 58, 112, 76, + 625, 53, 76, 76, 40, 76, 57, 40, 122, 76, + 624, 122, 126, 126, 283, 283, 422, 122, 138, 138, + 422, 58, 138, 138, 138, 138, 138, 139, 139, 139, + 139, 139, 140, 140, 349, 349, 140, 140, 140, 140, + 140, 139, 141, 141, 141, 141, 141, 142, 142, 142, + 142, 142, 145, 158, 167, 623, 622, 167, 216, 227, + 227, 227, 227, 227, 226, 139, 158, 226, 145, 145, + 621, 216, 226, 216, 250, 620, 226, 250, 226, 226, + 619, 617, 226, 228, 228, 228, 228, 228, 229, 229, + + 616, 615, 229, 229, 229, 229, 229, 230, 230, 230, + 230, 230, 231, 231, 231, 231, 231, 326, 326, 326, + 326, 326, 327, 327, 327, 327, 327, 357, 428, 614, + 357, 613, 612, 611, 610, 609, 428, 606, 605, 604, + 603, 602, 601, 600, 599, 598, 597, 596, 595, 594, + 593, 592, 588, 587, 586, 585, 583, 581, 579, 578, + 577, 576, 574, 573, 572, 571, 570, 569, 568, 566, + 564, 563, 561, 559, 556, 555, 553, 552, 551, 550, + 548, 547, 546, 545, 543, 542, 541, 540, 539, 538, + 537, 535, 534, 532, 531, 529, 524, 523, 521, 520, + + 519, 517, 514, 513, 512, 510, 509, 508, 507, 506, + 505, 504, 503, 502, 501, 499, 498, 496, 495, 494, + 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, + 483, 482, 481, 479, 478, 477, 475, 474, 473, 472, + 469, 468, 467, 466, 465, 462, 459, 458, 457, 456, + 455, 454, 453, 451, 448, 445, 443, 441, 440, 439, + 437, 436, 435, 432, 431, 430, 429, 427, 426, 425, + 423, 419, 418, 417, 416, 415, 414, 413, 412, 410, + 409, 408, 406, 405, 402, 400, 398, 394, 393, 392, + 391, 390, 389, 388, 386, 385, 384, 382, 381, 380, + + 379, 378, 376, 374, 373, 371, 369, 368, 367, 365, + 364, 363, 361, 360, 358, 356, 353, 352, 350, 348, + 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, + 337, 336, 335, 334, 333, 331, 330, 329, 328, 324, + 323, 321, 318, 317, 316, 315, 312, 311, 310, 309, + 308, 307, 305, 303, 302, 299, 298, 297, 296, 294, + 293, 292, 291, 290, 289, 288, 287, 286, 285, 284, + 281, 279, 278, 277, 276, 275, 274, 273, 270, 269, + 268, 266, 265, 263, 261, 260, 259, 258, 256, 255, + 254, 253, 251, 249, 248, 247, 246, 245, 243, 241, + + 240, 239, 238, 236, 235, 234, 233, 225, 224, 223, + 222, 221, 220, 219, 218, 217, 215, 214, 213, 212, + 211, 210, 209, 208, 207, 206, 205, 204, 203, 202, + 201, 200, 199, 198, 197, 196, 195, 194, 193, 192, + 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, + 181, 180, 179, 178, 177, 175, 174, 173, 172, 171, + 169, 168, 166, 165, 164, 163, 162, 161, 160, 159, + 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, + 147, 146, 144, 143, 135, 134, 133, 132, 131, 130, + 129, 125, 124, 123, 121, 120, 119, 118, 117, 115, + + 114, 110, 109, 108, 107, 106, 105, 104, 102, 100, + 99, 98, 96, 95, 94, 93, 92, 91, 90, 89, + 88, 87, 86, 85, 83, 82, 81, 80, 79, 77, + 75, 74, 73, 71, 70, 69, 68, 67, 66, 65, + 64, 52, 44, 43, 42, 41, 35, 32, 21, 20, + 19, 11, 9, 7, 3, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633 } ; static yy_state_type yy_last_accepting_state; @@ -875,7 +883,7 @@ void skipline(void); #define YY_NO_UNISTD_H #endif -#line 879 "Gmsh.yy.cpp" +#line 887 "Gmsh.yy.cpp" #define INITIAL 0 @@ -1031,7 +1039,7 @@ YY_DECL #line 49 "Gmsh.l" -#line 1035 "Gmsh.yy.cpp" +#line 1043 "Gmsh.yy.cpp" if ( !(yy_init) ) { @@ -1084,13 +1092,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 618 ) + if ( yy_current_state >= 634 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 740 ); + while ( yy_base[yy_current_state] != 756 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1413,22 +1421,22 @@ return tDelete; case 60: YY_RULE_SETUP #line 114 "Gmsh.l" -return tDilate; +return tDegenerated; YY_BREAK case 61: YY_RULE_SETUP #line 115 "Gmsh.l" -return tDraw; +return tDilate; YY_BREAK case 62: YY_RULE_SETUP -#line 117 "Gmsh.l" -return tExp; +#line 116 "Gmsh.l" +return tDraw; YY_BREAK case 63: YY_RULE_SETUP #line 118 "Gmsh.l" -return tEllipse; +return tExp; YY_BREAK case 64: YY_RULE_SETUP @@ -1438,400 +1446,410 @@ return tEllipse; case 65: YY_RULE_SETUP #line 120 "Gmsh.l" -return tExtrude; +return tEllipse; YY_BREAK case 66: YY_RULE_SETUP #line 121 "Gmsh.l" -return tElliptic; +return tExtrude; YY_BREAK case 67: YY_RULE_SETUP #line 122 "Gmsh.l" -return tEndFor; +return tElliptic; YY_BREAK case 68: YY_RULE_SETUP #line 123 "Gmsh.l" -return tEndIf; +return tEndFor; YY_BREAK case 69: YY_RULE_SETUP #line 124 "Gmsh.l" -return tEuclidian; +return tEndIf; YY_BREAK case 70: YY_RULE_SETUP #line 125 "Gmsh.l" -return tExit; +return tEuclidian; YY_BREAK case 71: YY_RULE_SETUP -#line 127 "Gmsh.l" -return tFabs; +#line 126 "Gmsh.l" +return tExit; YY_BREAK case 72: YY_RULE_SETUP #line 128 "Gmsh.l" -return tField; +return tFabs; YY_BREAK case 73: YY_RULE_SETUP #line 129 "Gmsh.l" -return tFloor; +return tField; YY_BREAK case 74: YY_RULE_SETUP #line 130 "Gmsh.l" -return tFmod; +return tFloor; YY_BREAK case 75: YY_RULE_SETUP #line 131 "Gmsh.l" -return tFor; +return tFmod; YY_BREAK case 76: YY_RULE_SETUP #line 132 "Gmsh.l" -return tFunction; +return tFor; YY_BREAK case 77: YY_RULE_SETUP -#line 134 "Gmsh.l" -return tGetValue; +#line 133 "Gmsh.l" +return tFunction; YY_BREAK case 78: YY_RULE_SETUP #line 135 "Gmsh.l" -return tGMSH_MAJOR_VERSION; +return tGetValue; YY_BREAK case 79: YY_RULE_SETUP #line 136 "Gmsh.l" -return tGMSH_MINOR_VERSION; +return tGMSH_MAJOR_VERSION; YY_BREAK case 80: YY_RULE_SETUP #line 137 "Gmsh.l" -return tGMSH_PATCH_VERSION; +return tGMSH_MINOR_VERSION; YY_BREAK case 81: YY_RULE_SETUP -#line 139 "Gmsh.l" -return tHide; +#line 138 "Gmsh.l" +return tGMSH_PATCH_VERSION; YY_BREAK case 82: YY_RULE_SETUP #line 140 "Gmsh.l" -return tHole; +return tHide; YY_BREAK case 83: YY_RULE_SETUP #line 141 "Gmsh.l" -return tHypot; +return tHole; YY_BREAK case 84: YY_RULE_SETUP -#line 143 "Gmsh.l" -return tIn; +#line 142 "Gmsh.l" +return tHypot; YY_BREAK case 85: YY_RULE_SETUP #line 144 "Gmsh.l" -return tIf; +return tIn; YY_BREAK case 86: YY_RULE_SETUP #line 145 "Gmsh.l" -return tIntersect; +return tIf; YY_BREAK case 87: YY_RULE_SETUP #line 146 "Gmsh.l" -return tInterpolationScheme; +return tIntersect; YY_BREAK case 88: YY_RULE_SETUP -#line 148 "Gmsh.l" -return tKnots; +#line 147 "Gmsh.l" +return tInterpolationScheme; YY_BREAK case 89: YY_RULE_SETUP -#line 150 "Gmsh.l" -return tLength; +#line 149 "Gmsh.l" +return tKnots; YY_BREAK case 90: YY_RULE_SETUP #line 151 "Gmsh.l" -return tLine; +return tLength; YY_BREAK case 91: YY_RULE_SETUP #line 152 "Gmsh.l" -return tLoop; +return tLine; YY_BREAK case 92: YY_RULE_SETUP #line 153 "Gmsh.l" -return tLog; +return tLoop; YY_BREAK case 93: YY_RULE_SETUP #line 154 "Gmsh.l" -return tLog10; +return tLog; YY_BREAK case 94: YY_RULE_SETUP #line 155 "Gmsh.l" -return tLayers; +return tLog10; YY_BREAK case 95: YY_RULE_SETUP #line 156 "Gmsh.l" -return tLevelset; +return tLayers; YY_BREAK case 96: YY_RULE_SETUP -#line 158 "Gmsh.l" -return tModulo; +#line 157 "Gmsh.l" +return tLevelset; YY_BREAK case 97: YY_RULE_SETUP #line 159 "Gmsh.l" -return tMPI_Rank; +return tModulo; YY_BREAK case 98: YY_RULE_SETUP #line 160 "Gmsh.l" -return tMPI_Size; +return tMPI_Rank; YY_BREAK case 99: YY_RULE_SETUP -#line 162 "Gmsh.l" -return tNurbs; +#line 161 "Gmsh.l" +return tMPI_Size; YY_BREAK case 100: YY_RULE_SETUP -#line 164 "Gmsh.l" -return tOrder; +#line 163 "Gmsh.l" +return tNurbs; YY_BREAK case 101: YY_RULE_SETUP -#line 166 "Gmsh.l" -return tPhysical; +#line 165 "Gmsh.l" +return tOrder; YY_BREAK case 102: YY_RULE_SETUP -#line 167 "Gmsh.l" -return tPi; +#line 166 "Gmsh.l" +return tOCCShape; YY_BREAK case 103: YY_RULE_SETUP #line 168 "Gmsh.l" -return tPlane; +return tPhysical; YY_BREAK case 104: YY_RULE_SETUP #line 169 "Gmsh.l" -return tPoint; +return tPi; YY_BREAK case 105: YY_RULE_SETUP #line 170 "Gmsh.l" -return tParametric; +return tPlane; YY_BREAK case 106: YY_RULE_SETUP #line 171 "Gmsh.l" -return tPolarSphere; +return tPoint; YY_BREAK case 107: YY_RULE_SETUP #line 172 "Gmsh.l" -return tPrintf; +return tParametric; YY_BREAK case 108: YY_RULE_SETUP #line 173 "Gmsh.l" -return tPlugin; +return tPolarSphere; YY_BREAK case 109: YY_RULE_SETUP -#line 175 "Gmsh.l" -return tRecombine; +#line 174 "Gmsh.l" +return tPrintf; YY_BREAK case 110: YY_RULE_SETUP -#line 176 "Gmsh.l" -return tRotate; +#line 175 "Gmsh.l" +return tPlugin; YY_BREAK case 111: YY_RULE_SETUP #line 177 "Gmsh.l" -return tRuled; +return tRecombine; YY_BREAK case 112: YY_RULE_SETUP #line 178 "Gmsh.l" -return tRand; +return tRotate; YY_BREAK case 113: YY_RULE_SETUP #line 179 "Gmsh.l" -return tReturn; +return tRuled; YY_BREAK case 114: YY_RULE_SETUP -#line 181 "Gmsh.l" -return tSmoother; +#line 180 "Gmsh.l" +return tRand; YY_BREAK case 115: YY_RULE_SETUP -#line 182 "Gmsh.l" -return tSqrt; +#line 181 "Gmsh.l" +return tReturn; YY_BREAK case 116: YY_RULE_SETUP #line 183 "Gmsh.l" -return tSin; +return tSmoother; YY_BREAK case 117: YY_RULE_SETUP #line 184 "Gmsh.l" -return tSinh; +return tSqrt; YY_BREAK case 118: YY_RULE_SETUP #line 185 "Gmsh.l" -return tSphere; +return tSin; YY_BREAK case 119: YY_RULE_SETUP #line 186 "Gmsh.l" -return tSpline; +return tSinh; YY_BREAK case 120: YY_RULE_SETUP #line 187 "Gmsh.l" -return tSplit; +return tSphere; YY_BREAK case 121: YY_RULE_SETUP #line 188 "Gmsh.l" -return tSurface; +return tSpline; YY_BREAK case 122: YY_RULE_SETUP #line 189 "Gmsh.l" -return tSprintf; +return tSplit; YY_BREAK case 123: YY_RULE_SETUP #line 190 "Gmsh.l" -return tStrCat; +return tSurface; YY_BREAK case 124: YY_RULE_SETUP #line 191 "Gmsh.l" -return tStrPrefix; +return tSprintf; YY_BREAK case 125: YY_RULE_SETUP #line 192 "Gmsh.l" -return tStrRelative; +return tStrCat; YY_BREAK case 126: YY_RULE_SETUP #line 193 "Gmsh.l" -return tShow; +return tStrPrefix; YY_BREAK case 127: YY_RULE_SETUP #line 194 "Gmsh.l" -return tSymmetry; +return tStrRelative; YY_BREAK case 128: YY_RULE_SETUP #line 195 "Gmsh.l" -return tSyncModel; +return tShow; YY_BREAK case 129: YY_RULE_SETUP -#line 197 "Gmsh.l" -return tText2D; +#line 196 "Gmsh.l" +return tSymmetry; YY_BREAK case 130: YY_RULE_SETUP -#line 198 "Gmsh.l" -return tText3D; +#line 197 "Gmsh.l" +return tSyncModel; YY_BREAK case 131: YY_RULE_SETUP #line 199 "Gmsh.l" -return tTime; +return tText2D; YY_BREAK case 132: YY_RULE_SETUP #line 200 "Gmsh.l" -return tTransfinite; +return tText3D; YY_BREAK case 133: YY_RULE_SETUP #line 201 "Gmsh.l" -return tTranslate; +return tTime; YY_BREAK case 134: YY_RULE_SETUP #line 202 "Gmsh.l" -return tTanh; +return tTransfinite; YY_BREAK case 135: YY_RULE_SETUP #line 203 "Gmsh.l" -return tTan; +return tTranslate; YY_BREAK case 136: YY_RULE_SETUP #line 204 "Gmsh.l" -return tToday; +return tTanh; YY_BREAK case 137: YY_RULE_SETUP -#line 206 "Gmsh.l" -return tUsing; +#line 205 "Gmsh.l" +return tTan; YY_BREAK case 138: YY_RULE_SETUP -#line 208 "Gmsh.l" -return tVolume; +#line 206 "Gmsh.l" +return tToday; YY_BREAK case 139: -#line 211 "Gmsh.l" +YY_RULE_SETUP +#line 208 "Gmsh.l" +return tUsing; + YY_BREAK case 140: -#line 212 "Gmsh.l" +YY_RULE_SETUP +#line 210 "Gmsh.l" +return tVolume; + YY_BREAK case 141: #line 213 "Gmsh.l" case 142: +#line 214 "Gmsh.l" +case 143: +#line 215 "Gmsh.l" +case 144: YY_RULE_SETUP -#line 213 "Gmsh.l" +#line 215 "Gmsh.l" { gmsh_yylval.d = atof((char *)gmsh_yytext); return tDOUBLE; } YY_BREAK -case 143: +case 145: YY_RULE_SETUP -#line 215 "Gmsh.l" +#line 217 "Gmsh.l" { gmsh_yylval.c = strsave((char*)gmsh_yytext); return tSTRING; } YY_BREAK -case 144: +case 146: YY_RULE_SETUP -#line 217 "Gmsh.l" +#line 219 "Gmsh.l" return gmsh_yytext[0]; YY_BREAK -case 145: +case 147: YY_RULE_SETUP -#line 219 "Gmsh.l" +#line 221 "Gmsh.l" ECHO; YY_BREAK -#line 1835 "Gmsh.yy.cpp" +#line 1853 "Gmsh.yy.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2115,7 +2133,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 618 ) + if ( yy_current_state >= 634 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2143,11 +2161,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 618 ) + if ( yy_current_state >= 634 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 617); + yy_is_jam = (yy_current_state == 633); return yy_is_jam ? 0 : yy_current_state; } @@ -2817,7 +2835,7 @@ void gmsh_yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 219 "Gmsh.l" +#line 221 "Gmsh.l" diff --git a/benchmarks/testsuite/testsuite.sh b/benchmarks/testsuite/testsuite.sh index b9c1440cbe..f42d50c395 100755 --- a/benchmarks/testsuite/testsuite.sh +++ b/benchmarks/testsuite/testsuite.sh @@ -1,13 +1,13 @@ #!/bin/bash date >> statreport.dat -../../bin/gmsh Block.geo Block.opt -clscale .1 -v 0 -2 -append_statreport statreport.dat -../../bin/gmsh linkrods.geo linkrods.opt -clscale 1 -v 0 -2 -append_statreport statreport.dat -../../bin/gmsh Zylkopf.geo -clscale 1 -v 0 -2 -append_statreport statreport.dat -../../bin/gmsh Top.geo -clscale 1 -v 0 -2 -append_statreport statreport.dat -../../bin/gmsh ocean.geo -clscale 1 -v 0 -2 -append_statreport statreport.dat -epslc1d 1.e-2 -algo del2d -../../bin/gmsh 15_cylinder_head.brep -v 0 -2 -clscale .1 -append_statreport statreport.dat -../../bin/gmsh sphere_Rhino3D_default.geo -clscale 1 -v 0 -2 -append_statreport statreport.dat -../../bin/gmsh Cone_1.brep -clscale 1 -v 0 -2 -append_statreport statreport.dat -../../bin/gmsh Cylinder_1.brep -clscale 1 -v 0 -2 -append_statreport statreport.dat -../../bin/gmsh Torus_1.brep -clscale 300 -v 0 -2 -append_statreport statreport.dat -../../bin/gmsh A319.geo -clscale 3 -v 0 -2 -append_statreport statreport.dat +../../gmsh Block.geo Block.opt -clscale .1 -v 0 -2 -append_statreport statreport.dat +../../gmsh linkrods.geo linkrods.opt -clscale 1 -v 0 -2 -append_statreport statreport.dat +../../gmsh Zylkopf.geo -clscale 1 -v 0 -2 -append_statreport statreport.dat +../../gmsh Top.geo -clscale 1 -v 0 -2 -append_statreport statreport.dat +../../gmsh ocean.geo -clscale 1 -v 0 -2 -append_statreport statreport.dat -epslc1d 1.e-2 -algo del2d +../../gmsh 15_cylinder_head.brep -v 0 -2 -clscale .1 -append_statreport statreport.dat +../../gmsh sphere_Rhino3D_default.geo -clscale 1 -v 0 -2 -append_statreport statreport.dat +../../gmsh Cone_1.brep -clscale 1 -v 0 -2 -append_statreport statreport.dat +../../gmsh Cylinder_1.brep -clscale 1 -v 0 -2 -append_statreport statreport.dat +../../gmsh Torus_1.brep -clscale 300 -v 0 -2 -append_statreport statreport.dat +../../gmsh A319.geo -clscale 3 -v 0 -2 -append_statreport statreport.dat -- GitLab