diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h index 30d0197e0e2596560f03458867c79980e743fd67..fbbb2590b4726187304652857e7d864e7be8a572 100644 --- a/Common/DefaultOptions.h +++ b/Common/DefaultOptions.h @@ -1030,7 +1030,7 @@ StringXNumber MeshOptions_Number[] = { "Minimum number of points used to mesh a circle" }, { F|O, "MinimumCurvePoints" , opt_mesh_min_curv_points, 3. , "Minimum number of points used to mesh a (non-straight) curve" }, - { F|O, "MshFileVersion" , opt_mesh_msh_file_version , 2.0 , + { F|O, "MshFileVersion" , opt_mesh_msh_file_version , 2.1 , "Version of the MSH file format to use" }, { F, "NbHexahedra" , opt_mesh_nb_hexahedra , 0. , diff --git a/Fltk/visibilityWindow.cpp b/Fltk/visibilityWindow.cpp index d656458eb54afc7c28f3a946e887661cee84addb..ade9229e28ca6c91fe6204902496632be04c830f 100644 --- a/Fltk/visibilityWindow.cpp +++ b/Fltk/visibilityWindow.cpp @@ -195,7 +195,7 @@ class VisibilityList { // singleton } else if(type == ElementaryEntities){ for(GModel::piter it = m->firstElementaryName(); it != m->lastElementaryName(); ++it) - setLabel(it->first, it->second, 1); + setLabel(it->first.second, it->second, 1); for(GModel::viter it = m->firstVertex(); it != m->lastVertex(); it++) _entities.push_back(new VisElementary(*it)); for(GModel::eiter it = m->firstEdge(); it != m->lastEdge(); it++) @@ -207,7 +207,7 @@ class VisibilityList { // singleton } else if(type == PhysicalEntities){ for(GModel::piter it = m->firstPhysicalName(); it != m->lastPhysicalName(); ++it) - setLabel(it->first, it->second, 1); + setLabel(it->first.second, it->second, 1); std::map<int, std::vector<GEntity*> > groups[4]; m->getPhysicalGroups(groups); for(int i = 0; i < 4; i++){ @@ -498,8 +498,8 @@ static void _add_physical_group(int dim, int num, std::vector<GEntity*> &ge, char str[256]; Flu_Tree_Browser::Node *n2 = 0; std::string name; - if(ge[0]->model()->getPhysicalName(num).size()) - name += std::string(" <<") + ge[0]->model()->getPhysicalName(num) + ">>"; + if(ge[0]->model()->getPhysicalName(dim, num).size()) + name += std::string(" <<") + ge[0]->model()->getPhysicalName(dim, num) + ">>"; switch(dim){ case 3: sprintf(str, "Physical Volume %d%s/", num, name.c_str()); diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp index 73c6391b84a2aafaff8f58d960c51822c418fb5a..09045c48fc1db8a7821633030c3cd29529203eff 100644 --- a/Geo/GModel.cpp +++ b/Geo/GModel.cpp @@ -306,27 +306,44 @@ int GModel::getMaxPhysicalNumber() return num; } -int GModel::setPhysicalName(std::string name, int number) +int GModel::setPhysicalName(std::string name, int dim, int number) { // check if the name is already used - std::map<int, std::string>::iterator it = physicalNames.begin(); + piter it = physicalNames.begin(); while(it != physicalNames.end()){ - if(it->second == name) return it->first; + if(name == it->second && dim == it->first.first) return it->first.second; ++it; } // if no number is given, find the next available one if(!number) number = getMaxPhysicalNumber() + 1; - physicalNames[number] = name; + physicalNames[std::pair<int, int>(dim, number)] = name; return number; } -std::string GModel::getPhysicalName(int number) +std::string GModel::getPhysicalName(int dim, int number) { - if(physicalNames.count(number)) - return physicalNames[number]; + if(physicalNames.count(std::pair<int, int>(dim, number))) + return physicalNames[std::pair<int, int>(dim, number)]; return ""; } +void GModel::setSelection(int val) +{ + std::vector<GEntity*> entities; + getEntities(entities); + + for(unsigned int i = 0; i < entities.size(); i++){ + entities[i]->setSelection(val); + // reset selection in elements (stored in the visibility flag to + // save space) + if(val == 0){ + for(int j = 0; j < entities[i]->getNumMeshElements(); j++) + if(entities[i]->getMeshElement(j)->getVisibility() == 2) + entities[i]->getMeshElement(j)->setVisibility(1); + } + } +} + SBoundingBox3d GModel::bounds() { std::vector<GEntity*> entities; @@ -504,12 +521,12 @@ MVertex *GModel::getMeshVertexByTag(int n) return _vertexMapCache[n]; } -void GModel::getMeshVertices(int number, int dim, std::vector<MVertex*> &v) +void GModel::getMeshVerticesForPhysicalGroup(int dim, int num, std::vector<MVertex*> &v) { v.clear(); std::map<int, std::vector<GEntity*> > groups[4]; getPhysicalGroups(groups); - std::map<int, std::vector<GEntity*> >::const_iterator it = groups[dim].find(number); + std::map<int, std::vector<GEntity*> >::const_iterator it = groups[dim].find(num); if(it == groups[dim].end()) return; const std::vector<GEntity *> &entities = it->second; std::set<MVertex*> sv; @@ -913,19 +930,172 @@ int GModel::removeDuplicateMeshVertices(double tolerance) return diff; } -void GModel::setSelection(int val) +void GModel::createTopologyFromMesh() { + printf("***** In createTopologyFromMesh: \n"); + std::vector<GEntity*> entities; getEntities(entities); - for(unsigned int i = 0; i < entities.size(); i++){ - entities[i]->setSelection(val); - // reset selection in elements (stored in the visibility flag to - // save space) - if(val == 0){ - for(int j = 0; j < entities[i]->getNumMeshElements(); j++) - if(entities[i]->getMeshElement(j)->getVisibility() == 2) - entities[i]->getMeshElement(j)->setVisibility(1); + std::vector<discreteVertex*> Dvertices; + std::vector<discreteEdge*> Dedges; + std::vector<discreteFace*> Dfaces; + std::vector<discreteRegion*> Dregions; + + for (std::vector<GEntity*>::iterator entity = entities.begin(); + entity != entities.end(); entity++) { + switch ((*entity)->dim()) { + case 0: + Dvertices.push_back((discreteVertex*) *entity); + break; + case 1: + Dedges.push_back((discreteEdge*) *entity); + break; + case 2: + Dfaces.push_back((discreteFace*) *entity); + break; + case 3: + Dregions.push_back((discreteRegion*) *entity); + break; } - } + } + +// printf("vertices size =%d \n", Dvertices.size()); +// printf("edges size =%d \n", Dedges.size()); +// printf("faces size =%d \n", Dfaces.size()); +// printf("regions size =%d \n", Dregions.size()); + + + //For each discreteFace, create Topology and if needed create discreteEdges + //---------------------------------------------------------------------------- + + int initSizeEdges = Dedges.size(); + + //find boundary edges of each face and put them in + //a map_edges that associates + //the MEdges with the tags of the adjacent faces + + std::map<MEdge, std::vector<int>, Less_Edge > map_edges; + + for (std::vector<discreteFace*>::iterator face = Dfaces.begin(); face != Dfaces.end(); face++){ + (*face)->findEdges(map_edges); + } + + //create reverse map, for each face find set of MEdges + //that are candidate for new discrete Edges + + int num = Dedges.size()+1; + std::map<int, std::vector<int> > face2Edges; + + while (!map_edges.empty()){ + + //printf("********** new candidate discrete Edge\n"); + std::vector<MEdge> myEdges; + std::vector<int> tagFaces = map_edges.begin()->second; + myEdges.push_back(map_edges.begin()->first); + map_edges.erase(map_edges.begin()); + + std::map<MEdge, std::vector<int>, Less_Edge >::iterator itmap = map_edges.begin(); + while (itmap != map_edges.end()){ + + std::vector<int> tagFaces2 = itmap->second; + if (tagFaces2 == tagFaces){ + myEdges.push_back(itmap->first); + map_edges.erase(itmap++); + } + else + itmap++; + } + + //if the loaded mesh already contains discrete Edges + //check if the candidate discrete Edge does contain any of those + //if not, create discreteEdges + //create a map face2Edges that associate + //for each face the boundary discrete Edges + + if (initSizeEdges != 0 ){ + //printf(" !!! discrete edges already exist \n"); + std::vector<int> tagEdges; + for(int i = 0; i < myEdges.size(); i++){ + for (int j=0; j<2; j++) { + if (myEdges[i].getVertex(0)->onWhat()->dim() == 1) { + int tagEdge = myEdges[i].getVertex(0)->onWhat()->tag(); + std::vector<int>::iterator itv = std::find(tagEdges.begin(), tagEdges.end(), tagEdge); + if (itv == tagEdges.end()) tagEdges.push_back(tagEdge); + } + } + } + for (std::vector<int>::iterator itFace = tagFaces.begin(); itFace != tagFaces.end(); itFace++) { + std::map<int, std::vector<int> >::iterator it = face2Edges.find(*itFace); + if (it == face2Edges.end()) { + std::vector<int> allEdges; + allEdges.insert(allEdges.begin(), tagEdges.begin(), tagEdges.end()); + face2Edges.insert(std::make_pair(*itFace,allEdges)); + } + else{ + std::vector<int> allEdges = it->second; + allEdges.insert(allEdges.begin(), tagEdges.begin(), tagEdges.end()); + it->second = allEdges; + } + face2Edges.insert(std::make_pair(*itFace, tagEdges)); + } + } + else{ + discreteEdge *e = new discreteEdge(this, num, 0, 0); + add(e); + Dedges.push_back(e); + std::list<MVertex*> all_vertices; + for(int i = 0; i < myEdges.size(); i++) { + MVertex *v0 = myEdges[i].getVertex(0); + MVertex *v1 = myEdges[i].getVertex(1); + e->lines.push_back(new MLine( v0, v1)); + if (std::find(all_vertices.begin(), all_vertices.end(), v0) == all_vertices.end()) all_vertices.push_back(v0); + if (std::find(all_vertices.begin(), all_vertices.end(), v1) == all_vertices.end()) all_vertices.push_back(v1); + } + e->mesh_vertices.insert(e->mesh_vertices.begin(), all_vertices.begin(), all_vertices.end()); + + for (std::vector<int>::iterator itFace = tagFaces.begin(); itFace != tagFaces.end(); itFace++) { + GFace *dFace = getFaceByTag(abs(*itFace)); + for (std::list<MVertex*>::iterator itv = all_vertices.begin(); itv != all_vertices.end(); itv++) { + std::vector<MVertex*>::iterator itve = std::find(dFace->mesh_vertices.begin(), dFace->mesh_vertices.end(), *itv) ; + if (itve != dFace->mesh_vertices.end()) dFace->mesh_vertices.erase(itve); + (*itv)->setEntity(e); + } + + std::map<int, std::vector<int> >::iterator f2e = face2Edges.find(*itFace); + if (f2e == face2Edges.end()){ + std::vector<int> tagEdges; + tagEdges.push_back(num); + face2Edges.insert(std::make_pair(*itFace,tagEdges)); + } + else{ + std::vector<int> tagEdges = f2e->second; + tagEdges.push_back(num); + f2e->second = tagEdges; + } + } + num++; + } + + }; + + //set boundary edges for each face + for (std::vector<discreteFace*>::iterator face = Dfaces.begin(); face != Dfaces.end(); face++){ + std::map<int, std::vector<int> >::iterator ite = face2Edges.find((*face)->tag()); + std::vector<int> myEdges = ite->second; + (*face)->setBoundEdges(myEdges); + } + + + //For each discreteEdge, create Topology + //--------------------------------------- + + for (std::vector<discreteEdge*>::iterator edge = Dedges.begin(); edge != Dedges.end(); edge++){ + + (*edge)->orderMLines(); + (*edge)->setBoundVertices(); + (*edge)->parametrize(); + + } } + diff --git a/Geo/GModel.h b/Geo/GModel.h index f675a006ee1acb8e720373b8934fe58171205bc4..876934e90641d5e88e5a14c26e04b4e2f0678a40 100644 --- a/Geo/GModel.h +++ b/Geo/GModel.h @@ -47,7 +47,7 @@ class GModel // an octree for fast mesh element lookup Octree *_octree; - // geo model internal data + // Geo (Gmsh native) model internal data GEO_Internals *_geo_internals; void _createGEOInternals(); void _deleteGEOInternals(); @@ -61,7 +61,7 @@ class GModel void _createFMInternals(); void _deleteFMInternals(); - // characteristic Lengths fields + // characteristic length (mesh size) fields FieldManager *_fields; // store the elements given in the map (indexed by elementary region @@ -69,12 +69,12 @@ class GModel // the fly if needed void _storeElementsInEntities(std::map<int, std::vector<MElement*> > &map); - // loop over all vertices connected to elements and associate geo - // entity + // loop over all vertices connected to elements and associate + // geometrical entity void _associateEntityWithMeshVertices(); - // store the vertices in the entity they are associated with, and - // delete those that are not associated with any geo entity + // store the vertices in the geometrical entity they are associated + // with, and delete those that are not associated with any entity void _storeVerticesInEntities(std::map<int, MVertex*> &vertices); void _storeVerticesInEntities(std::vector<MVertex*> &vertices); @@ -86,14 +86,21 @@ class GModel static int _current; protected: + // the sets of geometrical regions, faces, edges and vertices in the + // model std::set<GRegion*, GEntityLessThan> regions; std::set<GFace*, GEntityLessThan> faces; std::set<GEdge*, GEntityLessThan> edges; std::set<GVertex*, GEntityLessThan> vertices; + + // map between the pair <dimension, elementary or physical number> + // and an optional associated name + std::map<std::pair<int, int>, std::string> physicalNames, elementaryNames; + + // the set of all used mesh partition numbers std::set<int> meshPartitions; - std::map<int, std::string> physicalNames, elementaryNames; - int partitionSize[2]; + int partitionSize[2]; std::map<int, GEdge*> mesh2Topo; public: @@ -107,7 +114,7 @@ class GModel // index >= 0 static GModel *current(int index=-1); - // find the model by name + // find a model by name static GModel *findByName(std::string name); // delete everything in a GModel @@ -122,7 +129,7 @@ class GModel OCC_Internals *getOCCInternals(){ return _occ_internals; } FM_Internals *getFMInternals() { return _fm_internals; } - // access characteristic length fields + // access characteristic length (mesh size) fields FieldManager *getFields(){ return _fields; } // get/set the model name @@ -146,13 +153,13 @@ class GModel // quickly check if the model is empty (contains no entities) bool empty() const; + // region, face, edge and vertex iterators typedef std::set<GRegion*, GEntityLessThan>::iterator riter; typedef std::set<GFace*, GEntityLessThan>::iterator fiter; typedef std::set<GEdge*, GEntityLessThan>::iterator eiter; typedef std::set<GVertex*, GEntityLessThan>::iterator viter; - typedef std::map<int, std::string>::iterator piter; - // get an iterator initialized to the first/last entity in this model. + // get an iterator initialized to the first/last entity in this model riter firstRegion() { return regions.begin(); } fiter firstFace() { return faces.begin(); } eiter firstEdge() { return edges.begin(); } @@ -197,6 +204,9 @@ class GModel // return the highest number associated with a physical entity int getMaxPhysicalNumber(); + // elementary/physical name iterator + typedef std::map<std::pair<int, int>, std::string>::iterator piter; + // get an iterator on the elementary/physical names piter firstPhysicalName() { return physicalNames.begin(); } piter lastPhysicalName() { return physicalNames.end(); } @@ -206,11 +216,13 @@ class GModel // get the number of physical names int numPhysicalNames(){ return physicalNames.size(); } - // associate a name with a physical number (returns new id if number==0) - int setPhysicalName(std::string name, int number=0); + // associate a name with a physical entity of dimension "dim" and + // number "num" (returns a new number id if "num"==0) + int setPhysicalName(std::string name, int dim, int num=0); - // get the name (if any) of a given physical group - std::string getPhysicalName(int number); + // get the name (if any) of a given physical group of dimension + // "dim" and id number "num" + std::string getPhysicalName(int dim, int num); // set the selection flag on all entities void setSelection(int val); @@ -228,7 +240,7 @@ class GModel // dimension and return the dimension int getNumMeshElements(unsigned c[4]); - // access a mesh element by coordinates + // access a mesh element by coordinates (using an octree search) MElement *getMeshElementByCoord(SPoint3 &p); // return the total number of vertices in the mesh @@ -238,8 +250,8 @@ class GModel MVertex *getMeshVertexByTag(int n); // get all the mesh vertices associated with the physical group - // "number" of dimension "dim" - void getMeshVertices(int number, int dim, std::vector<MVertex*> &); + // of dimension "dim" and id number "num" + void getMeshVerticesForPhysicalGroup(int dim, int num, std::vector<MVertex*> &); // index all the (used) mesh vertices in a continuous sequence, // starting at 1 @@ -274,6 +286,9 @@ class GModel // remove duplicate mesh vertices int removeDuplicateMeshVertices(double tolerance); + // create topology from mesh + void createTopologyFromMesh(); + // a container for smooth normals smooth_normals *normals; @@ -301,13 +316,10 @@ class GModel int writeMSH(const std::string &name, double version=1.0, bool binary=false, bool saveAll=false, bool saveParametric=false, double scalingFactor=1.0); - //Create topology from mesh - void createTopologyFromMSH(); - - // Mesh statistics (as Gmsh post-processing views) + // mesh statistics (saved as a Gmsh post-processing view) int writePOS(const std::string &name, bool printElementary, bool printElementNumber, bool printGamma, bool printEta, bool printRho, - bool printDisto,bool saveAll=false, double scalingFactor=1.0); + bool printDisto, bool saveAll=false, double scalingFactor=1.0); // Stereo lithography format int readSTL(const std::string &name, double tolerance=1.e-3); diff --git a/Geo/GModelIO_Geo.cpp b/Geo/GModelIO_Geo.cpp index 10d603b5d509394745a6b08a82f03c68eba77ebb..1ace780b7fb9d1acdd21b4f3a53466ba6b942526 100644 --- a/Geo/GModelIO_Geo.cpp +++ b/Geo/GModelIO_Geo.cpp @@ -216,11 +216,12 @@ class writePhysicalGroupGEO { FILE *geo; int dim; bool printLabels; - std::map<int, std::string> &oldLabels, &newLabels; + std::map<int, std::string> &oldLabels; + std::map<std::pair<int, int>, std::string> &newLabels; public : writePhysicalGroupGEO(FILE *fp, int i, bool labels, std::map<int, std::string> &o, - std::map<int, std::string> &n) + std::map<std::pair<int, int>, std::string> &n) : dim(i), printLabels(labels), oldLabels(o), newLabels(n) { geo = fp ? fp : stdout; @@ -233,8 +234,8 @@ class writePhysicalGroupGEO { oldName = oldLabels[g.first]; fprintf(geo, "%s = %d;\n", oldName.c_str(), g.first); } - else if(newLabels.count(g.first)) { - newName = newLabels[g.first]; + else if(newLabels.count(std::pair<int, int>(dim, g.first))) { + newName = newLabels[std::pair<int, int>(dim, g.first)]; } } diff --git a/Geo/GModelIO_MED.cpp b/Geo/GModelIO_MED.cpp index abee54e7e45a261a23c424b0d73f1d42842324ef..a1a05e13ae2fcede8e2cdc1f66299c6be5d0b2ca 100644 --- a/Geo/GModelIO_MED.cpp +++ b/Geo/GModelIO_MED.cpp @@ -306,7 +306,7 @@ int GModel::readMED(const std::string &name, int meshIndex) Msg::Error("Could not read info for MED family %d", i + 1); } else{ - elementaryNames[-familyNum] = familyName; + elementaryNames[std::pair<int, int>(-1, -familyNum)] = familyName; if(numGroups > 0){ GEntity *ge; // family tags are unique (for all dimensions) if((ge = getRegionByTag(-familyNum))){} @@ -318,7 +318,7 @@ int GModel::readMED(const std::string &name, int meshIndex) char tmp[MED_TAILLE_LNOM + 1]; strncpy(tmp, &groupNames[j * MED_TAILLE_LNOM], MED_TAILLE_LNOM); tmp[MED_TAILLE_LNOM] = '\0'; - ge->physicals.push_back(setPhysicalName(tmp)); + ge->physicals.push_back(setPhysicalName(tmp, ge->dim())); } } } @@ -413,7 +413,8 @@ int GModel::writeMED(const std::string &name, bool saveAll, double scalingFactor std::string familyName = "F_" + fs.str(); std::string groupName; for(unsigned j = 0; j < entities[i]->physicals.size(); j++){ - std::string tmp = getPhysicalName(entities[i]->physicals[j]); + std::string tmp = getPhysicalName + (entities[i]->dim(), entities[i]->physicals[j]); if(tmp.empty()){ // create unique name std::ostringstream gs; gs << entities[i]->dim() << "D_" << entities[i]->physicals[j]; diff --git a/Geo/GModelIO_Mesh.cpp b/Geo/GModelIO_Mesh.cpp index beef8e7e8f144650abf3141f6695af4fba78fb36..dbd02253abdf3ba8530bae7549ce778517ecdadc 100644 --- a/Geo/GModelIO_Mesh.cpp +++ b/Geo/GModelIO_Mesh.cpp @@ -113,178 +113,6 @@ static void createElementMSH(GModel *m, int num, int type, int physical, if(part) m->getMeshPartitions().insert(part); } -void GModel::createTopologyFromMSH(){ - - printf("***** In createTopologyFromMSH: \n"); - - std::vector<GEntity*> entities; - getEntities(entities); - - std::vector<discreteVertex*> Dvertices; - std::vector<discreteEdge*> Dedges; - std::vector<discreteFace*> Dfaces; - std::vector<discreteRegion*> Dregions; - - for (std::vector<GEntity*>::iterator entity = entities.begin(); - entity != entities.end(); entity++) { - switch ((*entity)->dim()) { - case 0: - Dvertices.push_back((discreteVertex*) *entity); - break; - case 1: - Dedges.push_back((discreteEdge*) *entity); - break; - case 2: - Dfaces.push_back((discreteFace*) *entity); - break; - case 3: - Dregions.push_back((discreteRegion*) *entity); - break; - } - } - -// printf("vertices size =%d \n", Dvertices.size()); -// printf("edges size =%d \n", Dedges.size()); -// printf("faces size =%d \n", Dfaces.size()); -// printf("regions size =%d \n", Dregions.size()); - - - //For each discreteFace, create Topology and if needed create discreteEdges - //---------------------------------------------------------------------------- - - int initSizeEdges = Dedges.size(); - - //find boundary edges of each face and put them in - //a map_edges that associates - //the MEdges with the tags of the adjacent faces - - std::map<MEdge, std::vector<int>, Less_Edge > map_edges; - - for (std::vector<discreteFace*>::iterator face = Dfaces.begin(); face != Dfaces.end(); face++){ - (*face)->findEdges(map_edges); - } - - //create reverse map, for each face find set of MEdges - //that are candidate for new discrete Edges - - int num = Dedges.size()+1; - std::map<int, std::vector<int> > face2Edges; - - while (!map_edges.empty()){ - - //printf("********** new candidate discrete Edge\n"); - std::vector<MEdge> myEdges; - std::vector<int> tagFaces = map_edges.begin()->second; - myEdges.push_back(map_edges.begin()->first); - map_edges.erase(map_edges.begin()); - - std::map<MEdge, std::vector<int>, Less_Edge >::iterator itmap = map_edges.begin(); - while (itmap != map_edges.end()){ - - std::vector<int> tagFaces2 = itmap->second; - if (tagFaces2 == tagFaces){ - myEdges.push_back(itmap->first); - map_edges.erase(itmap++); - } - else - itmap++; - } - - //if the loaded mesh already contains discrete Edges - //check if the candidate discrete Edge does contain any of those - //if not, create discreteEdges - //create a map face2Edges that associate - //for each face the boundary discrete Edges - - if (initSizeEdges != 0 ){ - //printf(" !!! discrete edges already exist \n"); - std::vector<int> tagEdges; - for(int i = 0; i < myEdges.size(); i++){ - for (int j=0; j<2; j++) { - if (myEdges[i].getVertex(0)->onWhat()->dim() == 1) { - int tagEdge = myEdges[i].getVertex(0)->onWhat()->tag(); - std::vector<int>::iterator itv = std::find(tagEdges.begin(), tagEdges.end(), tagEdge); - if (itv == tagEdges.end()) tagEdges.push_back(tagEdge); - } - } - } - for (std::vector<int>::iterator itFace = tagFaces.begin(); itFace != tagFaces.end(); itFace++) { - std::map<int, std::vector<int> >::iterator it = face2Edges.find(*itFace); - if (it == face2Edges.end()) { - std::vector<int> allEdges; - allEdges.insert(allEdges.begin(), tagEdges.begin(), tagEdges.end()); - face2Edges.insert(std::make_pair(*itFace,allEdges)); - } - else{ - std::vector<int> allEdges = it->second; - allEdges.insert(allEdges.begin(), tagEdges.begin(), tagEdges.end()); - it->second = allEdges; - } - face2Edges.insert(std::make_pair(*itFace, tagEdges)); - } - } - else{ - discreteEdge *e = new discreteEdge(this, num, 0, 0); - add(e); - Dedges.push_back(e); - std::list<MVertex*> all_vertices; - for(int i = 0; i < myEdges.size(); i++) { - MVertex *v0 = myEdges[i].getVertex(0); - MVertex *v1 = myEdges[i].getVertex(1); - e->lines.push_back(new MLine( v0, v1)); - if (std::find(all_vertices.begin(), all_vertices.end(), v0) == all_vertices.end()) all_vertices.push_back(v0); - if (std::find(all_vertices.begin(), all_vertices.end(), v1) == all_vertices.end()) all_vertices.push_back(v1); - } - e->mesh_vertices.insert(e->mesh_vertices.begin(), all_vertices.begin(), all_vertices.end()); - - for (std::vector<int>::iterator itFace = tagFaces.begin(); itFace != tagFaces.end(); itFace++) { - GFace *dFace = getFaceByTag(abs(*itFace)); - for (std::list<MVertex*>::iterator itv = all_vertices.begin(); itv != all_vertices.end(); itv++) { - std::vector<MVertex*>::iterator itve = std::find(dFace->mesh_vertices.begin(), dFace->mesh_vertices.end(), *itv) ; - if (itve != dFace->mesh_vertices.end()) dFace->mesh_vertices.erase(itve); - (*itv)->setEntity(e); - } - - std::map<int, std::vector<int> >::iterator f2e = face2Edges.find(*itFace); - if (f2e == face2Edges.end()){ - std::vector<int> tagEdges; - tagEdges.push_back(num); - face2Edges.insert(std::make_pair(*itFace,tagEdges)); - } - else{ - std::vector<int> tagEdges = f2e->second; - tagEdges.push_back(num); - f2e->second = tagEdges; - } - } - num++; - } - - }; - - //set boundary edges for each face - for (std::vector<discreteFace*>::iterator face = Dfaces.begin(); face != Dfaces.end(); face++){ - std::map<int, std::vector<int> >::iterator ite = face2Edges.find((*face)->tag()); - std::vector<int> myEdges = ite->second; - (*face)->setBoundEdges(myEdges); - } - - - //For each discreteEdge, create Topology - //--------------------------------------- - - for (std::vector<discreteEdge*>::iterator edge = Dedges.begin(); edge != Dedges.end(); edge++){ - - (*edge)->orderMLines(); - (*edge)->setBoundVertices(); - (*edge)->parametrize(); - - } - - return; - -} - int GModel::readMSH(const std::string &name) { FILE *fp = fopen(name.c_str(), "rb"); @@ -334,11 +162,14 @@ int GModel::readMSH(const std::string &name) int numNames; if(sscanf(str, "%d", &numNames) != 1) return 0; for(int i = 0; i < numNames; i++) { - int num; + int dim = -1, num; + if(version > 2.0){ + if(fscanf(fp, "%d", &dim) != 1) return 0; + } if(fscanf(fp, "%d", &num) != 1) return 0; if(!fgets(str, sizeof(str), fp)) return 0; std::string name = ExtractDoubleQuotedString(str, 256); - if(name.size()) setPhysicalName(name, num); + if(name.size()) setPhysicalName(name, dim, num); } } @@ -651,7 +482,7 @@ int GModel::writeMSH(const std::string &name, double version, bool binary, int numVertices = indexMeshVertices(saveAll); // binary format exists only in version 2 - if(binary) version = 2.0; + if(binary) version = 2.1; // get the number of elements (we assume that all the elements in a // list have the same type, i.e., they are all of the same @@ -707,7 +538,8 @@ int GModel::writeMSH(const std::string &name, double version, bool binary, fprintf(fp, "$PhysicalNames\n"); fprintf(fp, "%d\n", numPhysicalNames()); for(piter it = firstPhysicalName(); it != lastPhysicalName(); it++) - fprintf(fp, "%d \"%s\"\n", it->first, it->second.c_str()); + fprintf(fp, "%d %d \"%s\"\n", it->first.first, it->first.second, + it->second.c_str()); fprintf(fp, "$EndPhysicalNames\n"); } diff --git a/Numeric/gmshTermOfFormulation.h b/Numeric/gmshTermOfFormulation.h index d42d47817b3588f2eaa578faae3bb61f8b4bff40..fec73887a0bed4d9340ea174353ea13c72c9d0b5 100644 --- a/Numeric/gmshTermOfFormulation.h +++ b/Numeric/gmshTermOfFormulation.h @@ -110,7 +110,7 @@ class gmshNodalFemTerm : public gmshTermOfFormulation<scalar> { { std::vector<MVertex *> v; GModel *m = gmshTermOfFormulation<scalar>::_gm; - m->getMeshVertices(physical, dim, v); + m->getMeshVerticesForPhysicalGroup(dim, physical, v); for (unsigned int i = 0; i < v.size(); i++) lsys.fixVertex(v[i], comp, field, e(v[i]->x(), v[i]->y(), v[i]->z())); } diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 2c567ac3172b726cfecea21138a13bd250fee5fd..8d521ead953d03b3d004a22372804d4674001224 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -376,6 +376,7 @@ static std::vector<double> ViewCoord; static List_T *ViewValueList = 0; static int *ViewNumList = 0; static ExtrudeParams extr; +static int curPhysDim = 0; static gmshSurface *myGmshSurface = 0; #define MAX_RECUR_LOOPS 100 static int ImbricatedLoop = 0; @@ -412,7 +413,7 @@ void FixRelativePath(const char *in, char *out); #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 72 "Gmsh.y" +#line 73 "Gmsh.y" { char *c; int i; @@ -423,7 +424,7 @@ typedef union YYSTYPE List_T *l; } /* Line 193 of yacc.c. */ -#line 427 "Gmsh.tab.cpp" +#line 428 "Gmsh.tab.cpp" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -436,7 +437,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 440 "Gmsh.tab.cpp" +#line 441 "Gmsh.tab.cpp" #ifdef short # undef short @@ -651,16 +652,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 6427 +#define YYLAST 6340 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 142 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 74 +#define YYNNTS 78 /* YYNRULES -- Number of rules. */ -#define YYNRULES 360 +#define YYNRULES 364 /* YYNRULES -- Number of states. */ -#define YYNSTATES 1259 +#define YYNSTATES 1263 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -726,34 +727,34 @@ static const yytype_uint16 yyprhs[] = 227, 229, 234, 242, 252, 259, 266, 270, 277, 282, 289, 299, 306, 316, 322, 331, 340, 352, 359, 369, 375, 383, 393, 403, 415, 425, 435, 437, 439, 440, - 446, 447, 450, 458, 467, 474, 482, 490, 499, 508, - 526, 534, 542, 554, 563, 572, 581, 591, 595, 600, - 611, 619, 627, 636, 645, 658, 667, 676, 684, 693, - 699, 711, 717, 727, 732, 742, 752, 754, 756, 757, - 760, 767, 774, 781, 788, 793, 800, 807, 811, 816, - 822, 826, 830, 835, 840, 844, 852, 860, 864, 872, - 876, 879, 882, 898, 901, 904, 911, 920, 929, 940, - 942, 945, 947, 951, 956, 958, 964, 976, 990, 991, - 999, 1000, 1014, 1015, 1031, 1032, 1039, 1048, 1057, 1066, - 1079, 1092, 1105, 1120, 1135, 1150, 1151, 1164, 1165, 1178, - 1179, 1192, 1193, 1210, 1211, 1228, 1229, 1246, 1247, 1266, - 1267, 1286, 1287, 1306, 1308, 1311, 1317, 1325, 1335, 1338, - 1348, 1349, 1353, 1354, 1356, 1357, 1360, 1361, 1364, 1372, - 1379, 1388, 1394, 1400, 1407, 1418, 1429, 1440, 1451, 1454, - 1458, 1460, 1464, 1467, 1470, 1473, 1477, 1481, 1485, 1489, - 1493, 1497, 1501, 1505, 1509, 1513, 1517, 1521, 1525, 1529, - 1535, 1540, 1545, 1550, 1555, 1560, 1565, 1570, 1575, 1580, - 1585, 1592, 1597, 1602, 1607, 1612, 1617, 1622, 1629, 1636, - 1643, 1648, 1653, 1658, 1663, 1668, 1673, 1678, 1683, 1688, - 1693, 1698, 1705, 1710, 1715, 1720, 1725, 1730, 1735, 1742, - 1749, 1756, 1761, 1763, 1765, 1767, 1769, 1771, 1773, 1775, - 1777, 1783, 1788, 1793, 1796, 1802, 1806, 1813, 1818, 1826, - 1833, 1835, 1838, 1841, 1845, 1849, 1861, 1871, 1879, 1887, - 1889, 1893, 1895, 1897, 1900, 1904, 1909, 1915, 1917, 1919, - 1922, 1926, 1930, 1936, 1941, 1943, 1945, 1949, 1956, 1958, - 1960, 1964, 1968, 1978, 1986, 1988, 1994, 1998, 2005, 2007, - 2011, 2013, 2015, 2019, 2026, 2028, 2030, 2037, 2042, 2047, - 2052 + 446, 447, 450, 458, 459, 469, 476, 484, 492, 501, + 510, 528, 536, 544, 556, 565, 566, 576, 585, 595, + 599, 604, 615, 623, 631, 640, 641, 651, 664, 673, + 682, 690, 691, 701, 707, 719, 725, 735, 740, 750, + 760, 762, 764, 765, 768, 775, 782, 789, 796, 801, + 808, 815, 819, 824, 830, 834, 838, 843, 848, 852, + 860, 868, 872, 880, 884, 887, 890, 906, 909, 912, + 919, 928, 937, 948, 950, 953, 955, 959, 964, 966, + 972, 984, 998, 999, 1007, 1008, 1022, 1023, 1039, 1040, + 1047, 1056, 1065, 1074, 1087, 1100, 1113, 1128, 1143, 1158, + 1159, 1172, 1173, 1186, 1187, 1200, 1201, 1218, 1219, 1236, + 1237, 1254, 1255, 1274, 1275, 1294, 1295, 1314, 1316, 1319, + 1325, 1333, 1343, 1346, 1356, 1357, 1361, 1362, 1364, 1365, + 1368, 1369, 1372, 1380, 1387, 1396, 1402, 1408, 1415, 1426, + 1437, 1448, 1459, 1462, 1466, 1468, 1472, 1475, 1478, 1481, + 1485, 1489, 1493, 1497, 1501, 1505, 1509, 1513, 1517, 1521, + 1525, 1529, 1533, 1537, 1543, 1548, 1553, 1558, 1563, 1568, + 1573, 1578, 1583, 1588, 1593, 1600, 1605, 1610, 1615, 1620, + 1625, 1630, 1637, 1644, 1651, 1656, 1661, 1666, 1671, 1676, + 1681, 1686, 1691, 1696, 1701, 1706, 1713, 1718, 1723, 1728, + 1733, 1738, 1743, 1750, 1757, 1764, 1769, 1771, 1773, 1775, + 1777, 1779, 1781, 1783, 1785, 1791, 1796, 1801, 1804, 1810, + 1814, 1821, 1826, 1834, 1841, 1843, 1846, 1849, 1853, 1857, + 1869, 1879, 1887, 1895, 1897, 1901, 1903, 1905, 1908, 1912, + 1917, 1923, 1925, 1927, 1930, 1934, 1938, 1944, 1949, 1951, + 1953, 1957, 1964, 1966, 1968, 1972, 1976, 1986, 1994, 1996, + 2002, 2006, 2013, 2015, 2019, 2021, 2023, 2027, 2034, 2036, + 2038, 2045, 2050, 2055, 2060 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -761,252 +762,253 @@ static const yytype_int16 yyrhs[] = { 143, 0, -1, 144, -1, 1, 6, -1, -1, 144, 145, -1, 148, -1, 147, -1, 166, -1, 170, -1, - 171, -1, 174, -1, 175, -1, 176, -1, 179, -1, - 199, -1, 200, -1, 201, -1, 178, -1, 177, -1, + 175, -1, 178, -1, 179, -1, 180, -1, 183, -1, + 203, -1, 204, -1, 205, -1, 182, -1, 181, -1, 119, -1, 119, 119, -1, 35, 132, 5, 133, 6, - -1, 35, 132, 5, 133, 146, 214, 6, -1, 35, - 132, 5, 138, 210, 133, 6, -1, 35, 132, 5, - 138, 210, 133, 146, 214, 6, -1, 4, 5, 139, - 149, 140, 6, -1, 79, 4, 134, 202, 135, 6, - -1, 80, 4, 134, 202, 135, 6, -1, -1, 149, + -1, 35, 132, 5, 133, 146, 218, 6, -1, 35, + 132, 5, 138, 214, 133, 6, -1, 35, 132, 5, + 138, 214, 133, 146, 218, 6, -1, 4, 5, 139, + 149, 140, 6, -1, 79, 4, 134, 206, 135, 6, + -1, 80, 4, 134, 206, 135, 6, -1, -1, 149, 152, -1, 149, 156, -1, 149, 159, -1, 149, 161, - -1, 149, 162, -1, 202, -1, 150, 138, 202, -1, - 202, -1, 151, 138, 202, -1, -1, -1, 4, 153, - 132, 150, 133, 154, 139, 151, 140, 6, -1, 214, - -1, 155, 138, 214, -1, -1, 81, 132, 202, 138, - 202, 138, 202, 133, 157, 139, 155, 140, 6, -1, - 214, -1, 158, 138, 214, -1, -1, 82, 132, 202, - 138, 202, 138, 202, 138, 202, 133, 160, 139, 158, - 140, 6, -1, 83, 139, 206, 140, 139, 206, 140, - 6, -1, 83, 139, 206, 140, 139, 206, 140, 139, - 206, 140, 139, 206, 140, 6, -1, -1, 84, 163, + -1, 149, 162, -1, 206, -1, 150, 138, 206, -1, + 206, -1, 151, 138, 206, -1, -1, -1, 4, 153, + 132, 150, 133, 154, 139, 151, 140, 6, -1, 218, + -1, 155, 138, 218, -1, -1, 81, 132, 206, 138, + 206, 138, 206, 133, 157, 139, 155, 140, 6, -1, + 218, -1, 158, 138, 218, -1, -1, 82, 132, 206, + 138, 206, 138, 206, 138, 206, 133, 160, 139, 158, + 140, 6, -1, 83, 139, 210, 140, 139, 210, 140, + 6, -1, 83, 139, 210, 140, 139, 210, 140, 139, + 210, 140, 139, 210, 140, 6, -1, -1, 84, 163, 139, 151, 140, 6, -1, 7, -1, 112, -1, 111, -1, 110, -1, 109, -1, 130, -1, 129, -1, 4, - 164, 202, 6, -1, 4, 134, 202, 135, 164, 202, - 6, -1, 4, 134, 139, 210, 140, 135, 164, 207, - 6, -1, 4, 134, 135, 7, 207, 6, -1, 4, - 134, 135, 112, 207, 6, -1, 4, 165, 6, -1, - 4, 134, 202, 135, 165, 6, -1, 4, 7, 215, - 6, -1, 4, 136, 4, 7, 215, 6, -1, 4, - 134, 202, 135, 136, 4, 7, 215, 6, -1, 4, - 136, 4, 164, 202, 6, -1, 4, 134, 202, 135, - 136, 4, 164, 202, 6, -1, 4, 136, 4, 165, - 6, -1, 4, 134, 202, 135, 136, 4, 165, 6, - -1, 4, 136, 91, 136, 4, 7, 211, 6, -1, - 4, 134, 202, 135, 136, 91, 136, 4, 7, 211, - 6, -1, 4, 136, 92, 7, 212, 6, -1, 4, - 134, 202, 135, 136, 92, 7, 212, 6, -1, 4, - 99, 7, 202, 6, -1, 99, 134, 202, 135, 7, - 4, 6, -1, 99, 134, 202, 135, 136, 4, 7, - 202, 6, -1, 99, 134, 202, 135, 136, 4, 7, - 215, 6, -1, 99, 134, 202, 135, 136, 4, 7, - 139, 210, 140, 6, -1, 64, 132, 4, 133, 136, - 4, 7, 202, 6, -1, 64, 132, 4, 133, 136, - 4, 7, 215, 6, -1, 202, -1, 215, -1, -1, - 94, 48, 139, 202, 140, -1, -1, 57, 204, -1, - 44, 132, 202, 133, 7, 204, 6, -1, 61, 44, - 132, 167, 133, 7, 207, 6, -1, 53, 54, 207, - 7, 202, 6, -1, 47, 132, 202, 133, 7, 207, - 6, -1, 51, 132, 202, 133, 7, 207, 6, -1, - 45, 132, 202, 133, 7, 207, 169, 6, -1, 46, - 132, 202, 133, 7, 207, 169, 6, -1, 55, 132, - 202, 133, 7, 139, 202, 138, 202, 138, 5, 138, - 5, 138, 5, 140, 6, -1, 86, 132, 202, 133, - 7, 207, 6, -1, 87, 132, 202, 133, 7, 207, - 6, -1, 88, 132, 202, 133, 7, 207, 90, 207, - 89, 202, 6, -1, 47, 70, 132, 202, 133, 7, - 207, 6, -1, 61, 47, 132, 167, 133, 7, 207, - 6, -1, 57, 50, 132, 202, 133, 7, 207, 6, - -1, 58, 50, 132, 202, 133, 7, 207, 168, 6, - -1, 12, 13, 6, -1, 13, 50, 202, 6, -1, - 55, 50, 132, 202, 133, 7, 5, 5, 5, 6, - -1, 48, 132, 202, 133, 7, 207, 6, -1, 49, - 132, 202, 133, 7, 207, 6, -1, 50, 70, 132, - 202, 133, 7, 207, 6, -1, 61, 50, 132, 167, - 133, 7, 207, 6, -1, 62, 50, 132, 202, 133, - 7, 207, 4, 139, 206, 140, 6, -1, 62, 47, - 132, 202, 133, 7, 207, 6, -1, 60, 52, 132, - 202, 133, 7, 207, 6, -1, 52, 132, 202, 133, - 7, 207, 6, -1, 61, 52, 132, 167, 133, 7, - 207, 6, -1, 66, 204, 139, 172, 140, -1, 65, - 139, 204, 138, 204, 138, 202, 140, 139, 172, 140, - -1, 67, 204, 139, 172, 140, -1, 68, 139, 204, - 138, 202, 140, 139, 172, 140, -1, 4, 139, 172, - 140, -1, 76, 47, 139, 210, 140, 50, 139, 202, - 140, -1, 73, 47, 132, 202, 133, 139, 210, 140, - 6, -1, 173, -1, 171, -1, -1, 173, 170, -1, - 173, 44, 139, 210, 140, 6, -1, 173, 47, 139, - 210, 140, 6, -1, 173, 50, 139, 210, 140, 6, - -1, 173, 52, 139, 210, 140, 6, -1, 74, 139, - 173, 140, -1, 74, 99, 134, 202, 135, 6, -1, - 74, 4, 134, 202, 135, 6, -1, 74, 4, 6, - -1, 74, 4, 4, 6, -1, 91, 211, 139, 173, - 140, -1, 103, 5, 6, -1, 104, 5, 6, -1, - 103, 139, 173, 140, -1, 104, 139, 173, 140, -1, - 4, 215, 6, -1, 4, 4, 134, 202, 135, 214, - 6, -1, 4, 4, 4, 134, 202, 135, 6, -1, - 4, 202, 6, -1, 64, 132, 4, 133, 136, 4, - 6, -1, 85, 4, 6, -1, 98, 6, -1, 40, - 6, -1, 40, 139, 202, 138, 202, 138, 202, 138, - 202, 138, 202, 138, 202, 140, 6, -1, 41, 6, - -1, 43, 6, -1, 93, 132, 202, 8, 202, 133, - -1, 93, 132, 202, 8, 202, 8, 202, 133, -1, - 93, 4, 94, 139, 202, 8, 202, 140, -1, 93, - 4, 94, 139, 202, 8, 202, 8, 202, 140, -1, - 95, -1, 102, 4, -1, 100, -1, 101, 4, 6, - -1, 96, 132, 202, 133, -1, 97, -1, 69, 204, - 139, 173, 140, -1, 69, 139, 204, 138, 204, 138, - 202, 140, 139, 173, 140, -1, 69, 139, 204, 138, - 204, 138, 204, 138, 202, 140, 139, 173, 140, -1, - -1, 69, 204, 139, 173, 180, 193, 140, -1, -1, - 69, 139, 204, 138, 204, 138, 202, 140, 139, 173, - 181, 193, 140, -1, -1, 69, 139, 204, 138, 204, - 138, 204, 138, 202, 140, 139, 173, 182, 193, 140, - -1, -1, 69, 139, 173, 183, 193, 140, -1, 69, - 44, 139, 202, 138, 204, 140, 6, -1, 69, 47, - 139, 202, 138, 204, 140, 6, -1, 69, 50, 139, - 202, 138, 204, 140, 6, -1, 69, 44, 139, 202, - 138, 204, 138, 204, 138, 202, 140, 6, -1, 69, - 47, 139, 202, 138, 204, 138, 204, 138, 202, 140, - 6, -1, 69, 50, 139, 202, 138, 204, 138, 204, - 138, 202, 140, 6, -1, 69, 44, 139, 202, 138, - 204, 138, 204, 138, 204, 138, 202, 140, 6, -1, - 69, 47, 139, 202, 138, 204, 138, 204, 138, 204, - 138, 202, 140, 6, -1, 69, 50, 139, 202, 138, - 204, 138, 204, 138, 204, 138, 202, 140, 6, -1, - -1, 69, 44, 139, 202, 138, 204, 140, 184, 139, - 193, 140, 6, -1, -1, 69, 47, 139, 202, 138, - 204, 140, 185, 139, 193, 140, 6, -1, -1, 69, - 50, 139, 202, 138, 204, 140, 186, 139, 193, 140, - 6, -1, -1, 69, 44, 139, 202, 138, 204, 138, - 204, 138, 202, 140, 187, 139, 193, 140, 6, -1, - -1, 69, 47, 139, 202, 138, 204, 138, 204, 138, - 202, 140, 188, 139, 193, 140, 6, -1, -1, 69, - 50, 139, 202, 138, 204, 138, 204, 138, 202, 140, - 189, 139, 193, 140, 6, -1, -1, 69, 44, 139, - 202, 138, 204, 138, 204, 138, 204, 138, 202, 140, - 190, 139, 193, 140, 6, -1, -1, 69, 47, 139, - 202, 138, 204, 138, 204, 138, 204, 138, 202, 140, - 191, 139, 193, 140, 6, -1, -1, 69, 50, 139, - 202, 138, 204, 138, 204, 138, 204, 138, 202, 140, - 192, 139, 193, 140, 6, -1, 194, -1, 193, 194, - -1, 77, 139, 202, 140, 6, -1, 77, 139, 207, - 138, 207, 140, 6, -1, 77, 139, 207, 138, 207, - 138, 207, 140, 6, -1, 71, 6, -1, 78, 132, - 202, 133, 7, 207, 63, 202, 6, -1, -1, 63, - 4, 202, -1, -1, 4, -1, -1, 7, 207, -1, - -1, 7, 202, -1, 59, 47, 208, 7, 202, 195, - 6, -1, 59, 50, 208, 197, 196, 6, -1, 56, - 50, 139, 202, 140, 7, 207, 6, -1, 59, 52, - 208, 197, 6, -1, 71, 50, 208, 198, 6, -1, - 72, 50, 207, 7, 202, 6, -1, 44, 139, 210, - 140, 94, 50, 139, 202, 140, 6, -1, 47, 139, - 210, 140, 94, 50, 139, 202, 140, 6, -1, 47, - 139, 210, 140, 94, 52, 139, 202, 140, 6, -1, - 50, 139, 210, 140, 94, 52, 139, 202, 140, 6, - -1, 75, 6, -1, 75, 4, 6, -1, 203, -1, - 132, 202, 133, -1, 123, 202, -1, 122, 202, -1, - 127, 202, -1, 202, 123, 202, -1, 202, 122, 202, - -1, 202, 124, 202, -1, 202, 125, 202, -1, 202, - 126, 202, -1, 202, 131, 202, -1, 202, 118, 202, - -1, 202, 119, 202, -1, 202, 121, 202, -1, 202, - 120, 202, -1, 202, 117, 202, -1, 202, 116, 202, - -1, 202, 115, 202, -1, 202, 114, 202, -1, 202, - 113, 202, 8, 202, -1, 14, 132, 202, 133, -1, - 15, 132, 202, 133, -1, 16, 132, 202, 133, -1, - 17, 132, 202, 133, -1, 18, 132, 202, 133, -1, - 19, 132, 202, 133, -1, 20, 132, 202, 133, -1, - 21, 132, 202, 133, -1, 22, 132, 202, 133, -1, - 24, 132, 202, 133, -1, 25, 132, 202, 138, 202, - 133, -1, 26, 132, 202, 133, -1, 27, 132, 202, - 133, -1, 28, 132, 202, 133, -1, 29, 132, 202, - 133, -1, 30, 132, 202, 133, -1, 31, 132, 202, - 133, -1, 32, 132, 202, 138, 202, 133, -1, 33, - 132, 202, 138, 202, 133, -1, 34, 132, 202, 138, - 202, 133, -1, 23, 132, 202, 133, -1, 14, 134, - 202, 135, -1, 15, 134, 202, 135, -1, 16, 134, - 202, 135, -1, 17, 134, 202, 135, -1, 18, 134, - 202, 135, -1, 19, 134, 202, 135, -1, 20, 134, - 202, 135, -1, 21, 134, 202, 135, -1, 22, 134, - 202, 135, -1, 24, 134, 202, 135, -1, 25, 134, - 202, 138, 202, 135, -1, 26, 134, 202, 135, -1, - 27, 134, 202, 135, -1, 28, 134, 202, 135, -1, - 29, 134, 202, 135, -1, 30, 134, 202, 135, -1, - 31, 134, 202, 135, -1, 32, 134, 202, 138, 202, - 135, -1, 33, 134, 202, 138, 202, 135, -1, 34, - 134, 202, 138, 202, 135, -1, 23, 134, 202, 135, - -1, 3, -1, 9, -1, 10, -1, 11, -1, 106, - -1, 107, -1, 108, -1, 4, -1, 4, 141, 139, - 202, 140, -1, 4, 134, 202, 135, -1, 137, 4, - 134, 135, -1, 4, 165, -1, 4, 134, 202, 135, - 165, -1, 4, 136, 4, -1, 4, 134, 202, 135, - 136, 4, -1, 4, 136, 4, 165, -1, 4, 134, - 202, 135, 136, 4, 165, -1, 105, 132, 5, 138, - 202, 133, -1, 205, -1, 123, 204, -1, 122, 204, - -1, 204, 123, 204, -1, 204, 122, 204, -1, 139, - 202, 138, 202, 138, 202, 138, 202, 138, 202, 140, - -1, 139, 202, 138, 202, 138, 202, 138, 202, 140, - -1, 139, 202, 138, 202, 138, 202, 140, -1, 132, - 202, 138, 202, 138, 202, 133, -1, 207, -1, 206, - 138, 207, -1, 202, -1, 209, -1, 139, 140, -1, - 139, 210, 140, -1, 123, 139, 210, 140, -1, 202, - 124, 139, 210, 140, -1, 207, -1, 5, -1, 123, - 209, -1, 202, 124, 209, -1, 202, 8, 202, -1, - 202, 8, 202, 8, 202, -1, 44, 139, 202, 140, - -1, 171, -1, 179, -1, 4, 134, 135, -1, 4, - 134, 139, 210, 140, 135, -1, 202, -1, 209, -1, - 210, 138, 202, -1, 210, 138, 209, -1, 139, 202, - 138, 202, 138, 202, 138, 202, 140, -1, 139, 202, - 138, 202, 138, 202, 140, -1, 4, -1, 4, 136, - 91, 136, 4, -1, 139, 213, 140, -1, 4, 134, - 202, 135, 136, 92, -1, 211, -1, 213, 138, 211, - -1, 215, -1, 4, -1, 4, 136, 4, -1, 4, - 134, 202, 135, 136, 4, -1, 5, -1, 42, -1, - 37, 132, 214, 138, 214, 133, -1, 38, 132, 214, - 133, -1, 39, 132, 214, 133, -1, 36, 132, 214, - 133, -1, 36, 132, 214, 138, 210, 133, -1 + 164, 206, 6, -1, 4, 134, 206, 135, 164, 206, + 6, -1, 4, 134, 139, 214, 140, 135, 164, 211, + 6, -1, 4, 134, 135, 7, 211, 6, -1, 4, + 134, 135, 112, 211, 6, -1, 4, 165, 6, -1, + 4, 134, 206, 135, 165, 6, -1, 4, 7, 219, + 6, -1, 4, 136, 4, 7, 219, 6, -1, 4, + 134, 206, 135, 136, 4, 7, 219, 6, -1, 4, + 136, 4, 164, 206, 6, -1, 4, 134, 206, 135, + 136, 4, 164, 206, 6, -1, 4, 136, 4, 165, + 6, -1, 4, 134, 206, 135, 136, 4, 165, 6, + -1, 4, 136, 91, 136, 4, 7, 215, 6, -1, + 4, 134, 206, 135, 136, 91, 136, 4, 7, 215, + 6, -1, 4, 136, 92, 7, 216, 6, -1, 4, + 134, 206, 135, 136, 92, 7, 216, 6, -1, 4, + 99, 7, 206, 6, -1, 99, 134, 206, 135, 7, + 4, 6, -1, 99, 134, 206, 135, 136, 4, 7, + 206, 6, -1, 99, 134, 206, 135, 136, 4, 7, + 219, 6, -1, 99, 134, 206, 135, 136, 4, 7, + 139, 214, 140, 6, -1, 64, 132, 4, 133, 136, + 4, 7, 206, 6, -1, 64, 132, 4, 133, 136, + 4, 7, 219, 6, -1, 206, -1, 219, -1, -1, + 94, 48, 139, 206, 140, -1, -1, 57, 208, -1, + 44, 132, 206, 133, 7, 208, 6, -1, -1, 61, + 44, 171, 132, 167, 133, 7, 211, 6, -1, 53, + 54, 211, 7, 206, 6, -1, 47, 132, 206, 133, + 7, 211, 6, -1, 51, 132, 206, 133, 7, 211, + 6, -1, 45, 132, 206, 133, 7, 211, 169, 6, + -1, 46, 132, 206, 133, 7, 211, 169, 6, -1, + 55, 132, 206, 133, 7, 139, 206, 138, 206, 138, + 5, 138, 5, 138, 5, 140, 6, -1, 86, 132, + 206, 133, 7, 211, 6, -1, 87, 132, 206, 133, + 7, 211, 6, -1, 88, 132, 206, 133, 7, 211, + 90, 211, 89, 206, 6, -1, 47, 70, 132, 206, + 133, 7, 211, 6, -1, -1, 61, 47, 172, 132, + 167, 133, 7, 211, 6, -1, 57, 50, 132, 206, + 133, 7, 211, 6, -1, 58, 50, 132, 206, 133, + 7, 211, 168, 6, -1, 12, 13, 6, -1, 13, + 50, 206, 6, -1, 55, 50, 132, 206, 133, 7, + 5, 5, 5, 6, -1, 48, 132, 206, 133, 7, + 211, 6, -1, 49, 132, 206, 133, 7, 211, 6, + -1, 50, 70, 132, 206, 133, 7, 211, 6, -1, + -1, 61, 50, 173, 132, 167, 133, 7, 211, 6, + -1, 62, 50, 132, 206, 133, 7, 211, 4, 139, + 210, 140, 6, -1, 62, 47, 132, 206, 133, 7, + 211, 6, -1, 60, 52, 132, 206, 133, 7, 211, + 6, -1, 52, 132, 206, 133, 7, 211, 6, -1, + -1, 61, 52, 174, 132, 167, 133, 7, 211, 6, + -1, 66, 208, 139, 176, 140, -1, 65, 139, 208, + 138, 208, 138, 206, 140, 139, 176, 140, -1, 67, + 208, 139, 176, 140, -1, 68, 139, 208, 138, 206, + 140, 139, 176, 140, -1, 4, 139, 176, 140, -1, + 76, 47, 139, 214, 140, 50, 139, 206, 140, -1, + 73, 47, 132, 206, 133, 139, 214, 140, 6, -1, + 177, -1, 175, -1, -1, 177, 170, -1, 177, 44, + 139, 214, 140, 6, -1, 177, 47, 139, 214, 140, + 6, -1, 177, 50, 139, 214, 140, 6, -1, 177, + 52, 139, 214, 140, 6, -1, 74, 139, 177, 140, + -1, 74, 99, 134, 206, 135, 6, -1, 74, 4, + 134, 206, 135, 6, -1, 74, 4, 6, -1, 74, + 4, 4, 6, -1, 91, 215, 139, 177, 140, -1, + 103, 5, 6, -1, 104, 5, 6, -1, 103, 139, + 177, 140, -1, 104, 139, 177, 140, -1, 4, 219, + 6, -1, 4, 4, 134, 206, 135, 218, 6, -1, + 4, 4, 4, 134, 206, 135, 6, -1, 4, 206, + 6, -1, 64, 132, 4, 133, 136, 4, 6, -1, + 85, 4, 6, -1, 98, 6, -1, 40, 6, -1, + 40, 139, 206, 138, 206, 138, 206, 138, 206, 138, + 206, 138, 206, 140, 6, -1, 41, 6, -1, 43, + 6, -1, 93, 132, 206, 8, 206, 133, -1, 93, + 132, 206, 8, 206, 8, 206, 133, -1, 93, 4, + 94, 139, 206, 8, 206, 140, -1, 93, 4, 94, + 139, 206, 8, 206, 8, 206, 140, -1, 95, -1, + 102, 4, -1, 100, -1, 101, 4, 6, -1, 96, + 132, 206, 133, -1, 97, -1, 69, 208, 139, 177, + 140, -1, 69, 139, 208, 138, 208, 138, 206, 140, + 139, 177, 140, -1, 69, 139, 208, 138, 208, 138, + 208, 138, 206, 140, 139, 177, 140, -1, -1, 69, + 208, 139, 177, 184, 197, 140, -1, -1, 69, 139, + 208, 138, 208, 138, 206, 140, 139, 177, 185, 197, + 140, -1, -1, 69, 139, 208, 138, 208, 138, 208, + 138, 206, 140, 139, 177, 186, 197, 140, -1, -1, + 69, 139, 177, 187, 197, 140, -1, 69, 44, 139, + 206, 138, 208, 140, 6, -1, 69, 47, 139, 206, + 138, 208, 140, 6, -1, 69, 50, 139, 206, 138, + 208, 140, 6, -1, 69, 44, 139, 206, 138, 208, + 138, 208, 138, 206, 140, 6, -1, 69, 47, 139, + 206, 138, 208, 138, 208, 138, 206, 140, 6, -1, + 69, 50, 139, 206, 138, 208, 138, 208, 138, 206, + 140, 6, -1, 69, 44, 139, 206, 138, 208, 138, + 208, 138, 208, 138, 206, 140, 6, -1, 69, 47, + 139, 206, 138, 208, 138, 208, 138, 208, 138, 206, + 140, 6, -1, 69, 50, 139, 206, 138, 208, 138, + 208, 138, 208, 138, 206, 140, 6, -1, -1, 69, + 44, 139, 206, 138, 208, 140, 188, 139, 197, 140, + 6, -1, -1, 69, 47, 139, 206, 138, 208, 140, + 189, 139, 197, 140, 6, -1, -1, 69, 50, 139, + 206, 138, 208, 140, 190, 139, 197, 140, 6, -1, + -1, 69, 44, 139, 206, 138, 208, 138, 208, 138, + 206, 140, 191, 139, 197, 140, 6, -1, -1, 69, + 47, 139, 206, 138, 208, 138, 208, 138, 206, 140, + 192, 139, 197, 140, 6, -1, -1, 69, 50, 139, + 206, 138, 208, 138, 208, 138, 206, 140, 193, 139, + 197, 140, 6, -1, -1, 69, 44, 139, 206, 138, + 208, 138, 208, 138, 208, 138, 206, 140, 194, 139, + 197, 140, 6, -1, -1, 69, 47, 139, 206, 138, + 208, 138, 208, 138, 208, 138, 206, 140, 195, 139, + 197, 140, 6, -1, -1, 69, 50, 139, 206, 138, + 208, 138, 208, 138, 208, 138, 206, 140, 196, 139, + 197, 140, 6, -1, 198, -1, 197, 198, -1, 77, + 139, 206, 140, 6, -1, 77, 139, 211, 138, 211, + 140, 6, -1, 77, 139, 211, 138, 211, 138, 211, + 140, 6, -1, 71, 6, -1, 78, 132, 206, 133, + 7, 211, 63, 206, 6, -1, -1, 63, 4, 206, + -1, -1, 4, -1, -1, 7, 211, -1, -1, 7, + 206, -1, 59, 47, 212, 7, 206, 199, 6, -1, + 59, 50, 212, 201, 200, 6, -1, 56, 50, 139, + 206, 140, 7, 211, 6, -1, 59, 52, 212, 201, + 6, -1, 71, 50, 212, 202, 6, -1, 72, 50, + 211, 7, 206, 6, -1, 44, 139, 214, 140, 94, + 50, 139, 206, 140, 6, -1, 47, 139, 214, 140, + 94, 50, 139, 206, 140, 6, -1, 47, 139, 214, + 140, 94, 52, 139, 206, 140, 6, -1, 50, 139, + 214, 140, 94, 52, 139, 206, 140, 6, -1, 75, + 6, -1, 75, 4, 6, -1, 207, -1, 132, 206, + 133, -1, 123, 206, -1, 122, 206, -1, 127, 206, + -1, 206, 123, 206, -1, 206, 122, 206, -1, 206, + 124, 206, -1, 206, 125, 206, -1, 206, 126, 206, + -1, 206, 131, 206, -1, 206, 118, 206, -1, 206, + 119, 206, -1, 206, 121, 206, -1, 206, 120, 206, + -1, 206, 117, 206, -1, 206, 116, 206, -1, 206, + 115, 206, -1, 206, 114, 206, -1, 206, 113, 206, + 8, 206, -1, 14, 132, 206, 133, -1, 15, 132, + 206, 133, -1, 16, 132, 206, 133, -1, 17, 132, + 206, 133, -1, 18, 132, 206, 133, -1, 19, 132, + 206, 133, -1, 20, 132, 206, 133, -1, 21, 132, + 206, 133, -1, 22, 132, 206, 133, -1, 24, 132, + 206, 133, -1, 25, 132, 206, 138, 206, 133, -1, + 26, 132, 206, 133, -1, 27, 132, 206, 133, -1, + 28, 132, 206, 133, -1, 29, 132, 206, 133, -1, + 30, 132, 206, 133, -1, 31, 132, 206, 133, -1, + 32, 132, 206, 138, 206, 133, -1, 33, 132, 206, + 138, 206, 133, -1, 34, 132, 206, 138, 206, 133, + -1, 23, 132, 206, 133, -1, 14, 134, 206, 135, + -1, 15, 134, 206, 135, -1, 16, 134, 206, 135, + -1, 17, 134, 206, 135, -1, 18, 134, 206, 135, + -1, 19, 134, 206, 135, -1, 20, 134, 206, 135, + -1, 21, 134, 206, 135, -1, 22, 134, 206, 135, + -1, 24, 134, 206, 135, -1, 25, 134, 206, 138, + 206, 135, -1, 26, 134, 206, 135, -1, 27, 134, + 206, 135, -1, 28, 134, 206, 135, -1, 29, 134, + 206, 135, -1, 30, 134, 206, 135, -1, 31, 134, + 206, 135, -1, 32, 134, 206, 138, 206, 135, -1, + 33, 134, 206, 138, 206, 135, -1, 34, 134, 206, + 138, 206, 135, -1, 23, 134, 206, 135, -1, 3, + -1, 9, -1, 10, -1, 11, -1, 106, -1, 107, + -1, 108, -1, 4, -1, 4, 141, 139, 206, 140, + -1, 4, 134, 206, 135, -1, 137, 4, 134, 135, + -1, 4, 165, -1, 4, 134, 206, 135, 165, -1, + 4, 136, 4, -1, 4, 134, 206, 135, 136, 4, + -1, 4, 136, 4, 165, -1, 4, 134, 206, 135, + 136, 4, 165, -1, 105, 132, 5, 138, 206, 133, + -1, 209, -1, 123, 208, -1, 122, 208, -1, 208, + 123, 208, -1, 208, 122, 208, -1, 139, 206, 138, + 206, 138, 206, 138, 206, 138, 206, 140, -1, 139, + 206, 138, 206, 138, 206, 138, 206, 140, -1, 139, + 206, 138, 206, 138, 206, 140, -1, 132, 206, 138, + 206, 138, 206, 133, -1, 211, -1, 210, 138, 211, + -1, 206, -1, 213, -1, 139, 140, -1, 139, 214, + 140, -1, 123, 139, 214, 140, -1, 206, 124, 139, + 214, 140, -1, 211, -1, 5, -1, 123, 213, -1, + 206, 124, 213, -1, 206, 8, 206, -1, 206, 8, + 206, 8, 206, -1, 44, 139, 206, 140, -1, 175, + -1, 183, -1, 4, 134, 135, -1, 4, 134, 139, + 214, 140, 135, -1, 206, -1, 213, -1, 214, 138, + 206, -1, 214, 138, 213, -1, 139, 206, 138, 206, + 138, 206, 138, 206, 140, -1, 139, 206, 138, 206, + 138, 206, 140, -1, 4, -1, 4, 136, 91, 136, + 4, -1, 139, 217, 140, -1, 4, 134, 206, 135, + 136, 92, -1, 215, -1, 217, 138, 215, -1, 219, + -1, 4, -1, 4, 136, 4, -1, 4, 134, 206, + 135, 136, 4, -1, 5, -1, 42, -1, 37, 132, + 218, 138, 218, 133, -1, 38, 132, 218, 133, -1, + 39, 132, 218, 133, -1, 36, 132, 218, 133, -1, + 36, 132, 218, 138, 214, 133, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 140, 140, 141, 146, 148, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 169, 173, 180, 185, 200, 213, 242, 256, 267, 282, - 287, 288, 289, 290, 291, 295, 297, 302, 304, 310, - 456, 309, 474, 481, 492, 491, 510, 517, 528, 527, - 545, 561, 584, 583, 597, 598, 599, 600, 601, 605, - 606, 613, 635, 662, 702, 712, 720, 728, 740, 749, - 755, 764, 782, 800, 809, 821, 826, 834, 854, 877, - 884, 890, 910, 931, 957, 969, 986, 990, 1000, 1003, - 1016, 1019, 1029, 1052, 1068, 1090, 1108, 1126, 1156, 1186, - 1206, 1224, 1242, 1268, 1285, 1304, 1322, 1361, 1367, 1373, - 1380, 1405, 1430, 1446, 1462, 1490, 1510, 1528, 1545, 1566, - 1571, 1576, 1581, 1586, 1606, 1612, 1623, 1624, 1629, 1632, - 1636, 1659, 1682, 1705, 1733, 1742, 1746, 1761, 1788, 1805, - 1819, 1825, 1831, 1840, 1854, 1902, 1920, 1935, 1954, 1966, - 1990, 1994, 1999, 2004, 2010, 2019, 2036, 2053, 2072, 2091, - 2119, 2127, 2133, 2140, 2144, 2153, 2161, 2169, 2178, 2177, - 2190, 2189, 2202, 2201, 2214, 2213, 2226, 2233, 2240, 2247, - 2254, 2261, 2268, 2275, 2282, 2290, 2289, 2301, 2300, 2312, - 2311, 2323, 2322, 2334, 2333, 2345, 2344, 2356, 2355, 2367, - 2366, 2378, 2377, 2392, 2395, 2401, 2410, 2430, 2453, 2457, - 2481, 2484, 2500, 2503, 2516, 2519, 2525, 2528, 2535, 2591, - 2661, 2666, 2733, 2776, 2802, 2825, 2848, 2851, 2860, 2864, - 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2895, - 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, - 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, - 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, - 2926, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, - 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, - 2947, 2948, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2967, - 2980, 2992, 3007, 3017, 3027, 3045, 3050, 3055, 3065, 3075, - 3083, 3087, 3091, 3095, 3099, 3106, 3110, 3114, 3118, 3125, - 3130, 3137, 3142, 3146, 3151, 3155, 3163, 3174, 3178, 3190, - 3198, 3206, 3213, 3224, 3244, 3254, 3264, 3274, 3294, 3299, - 3303, 3307, 3319, 3323, 3335, 3342, 3352, 3356, 3371, 3376, - 3383, 3387, 3400, 3408, 3419, 3423, 3431, 3439, 3453, 3467, - 3471 + 0, 141, 141, 142, 147, 149, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 170, 174, 181, 186, 201, 214, 243, 257, 268, 283, + 288, 289, 290, 291, 292, 296, 298, 303, 305, 311, + 457, 310, 475, 482, 493, 492, 511, 518, 529, 528, + 546, 562, 585, 584, 598, 599, 600, 601, 602, 606, + 607, 614, 636, 663, 703, 713, 721, 729, 741, 750, + 756, 765, 783, 801, 810, 822, 827, 835, 855, 878, + 885, 891, 911, 932, 958, 970, 987, 991, 1002, 1005, + 1018, 1021, 1031, 1055, 1054, 1074, 1096, 1114, 1132, 1162, + 1192, 1212, 1230, 1248, 1274, 1292, 1291, 1314, 1332, 1371, + 1377, 1383, 1390, 1415, 1440, 1457, 1456, 1476, 1504, 1524, + 1542, 1560, 1559, 1584, 1589, 1594, 1599, 1604, 1624, 1630, + 1641, 1642, 1647, 1650, 1654, 1677, 1700, 1723, 1751, 1760, + 1764, 1779, 1806, 1823, 1837, 1843, 1849, 1858, 1872, 1920, + 1938, 1953, 1972, 1984, 2008, 2012, 2017, 2022, 2028, 2037, + 2054, 2071, 2090, 2109, 2137, 2145, 2151, 2158, 2162, 2171, + 2179, 2187, 2196, 2195, 2208, 2207, 2220, 2219, 2232, 2231, + 2244, 2251, 2258, 2265, 2272, 2279, 2286, 2293, 2300, 2308, + 2307, 2319, 2318, 2330, 2329, 2341, 2340, 2352, 2351, 2363, + 2362, 2374, 2373, 2385, 2384, 2396, 2395, 2410, 2413, 2419, + 2428, 2448, 2471, 2475, 2499, 2502, 2518, 2521, 2534, 2537, + 2543, 2546, 2553, 2609, 2679, 2684, 2751, 2794, 2820, 2843, + 2866, 2869, 2878, 2882, 2898, 2899, 2900, 2901, 2902, 2903, + 2904, 2905, 2906, 2913, 2914, 2915, 2916, 2917, 2918, 2919, + 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, + 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, + 2940, 2941, 2942, 2943, 2944, 2946, 2947, 2948, 2949, 2950, + 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, + 2961, 2962, 2963, 2964, 2965, 2966, 2975, 2976, 2977, 2978, + 2979, 2980, 2981, 2985, 2998, 3010, 3025, 3035, 3045, 3063, + 3068, 3073, 3083, 3093, 3101, 3105, 3109, 3113, 3117, 3124, + 3128, 3132, 3136, 3143, 3148, 3155, 3160, 3164, 3169, 3173, + 3181, 3192, 3196, 3208, 3216, 3224, 3231, 3242, 3262, 3272, + 3282, 3292, 3312, 3317, 3321, 3325, 3337, 3341, 3353, 3360, + 3370, 3374, 3389, 3394, 3401, 3405, 3418, 3426, 3437, 3441, + 3449, 3457, 3471, 3485, 3489 }; #endif @@ -1043,15 +1045,16 @@ static const char *const yytname[] = "Text2DValues", "Text2D", "@3", "Text3DValues", "Text3D", "@4", "InterpolationMatrix", "Time", "@5", "NumericAffectation", "NumericIncrement", "Affectation", "PhysicalId", "InSphereCenter", - "CircleOptions", "Shape", "Transform", "MultipleShape", "ListOfShapes", - "Delete", "Colorify", "Visibility", "Command", "Loop", "Extrude", "@6", - "@7", "@8", "@9", "@10", "@11", "@12", "@13", "@14", "@15", "@16", "@17", - "@18", "ExtrudeParameters", "ExtrudeParameter", "TransfiniteType", - "TransfiniteArrangement", "TransfiniteCorners", "RecombineAngle", - "Transfinite", "Embedding", "Coherence", "FExpr", "FExpr_Single", - "VExpr", "VExpr_Single", "RecursiveListOfListOfDouble", "ListOfDouble", - "ListOfDoubleOrAll", "FExpr_Multi", "RecursiveListOfDouble", "ColorExpr", - "ListOfColor", "RecursiveListOfColor", "StringExprVar", "StringExpr", 0 + "CircleOptions", "Shape", "@6", "@7", "@8", "@9", "Transform", + "MultipleShape", "ListOfShapes", "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", "ListOfDoubleOrAll", + "FExpr_Multi", "RecursiveListOfDouble", "ColorExpr", "ListOfColor", + "RecursiveListOfColor", "StringExprVar", "StringExpr", 0 }; #endif @@ -1090,34 +1093,34 @@ static const yytype_uint8 yyr1[] = 165, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 167, 167, 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, 170, 170, 171, - 171, 171, 171, 171, 171, 171, 172, 172, 173, 173, - 173, 173, 173, 173, 174, 174, 174, 174, 174, 175, - 176, 176, 176, 176, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 179, 179, 179, 180, 179, - 181, 179, 182, 179, 183, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 184, 179, 185, 179, 186, - 179, 187, 179, 188, 179, 189, 179, 190, 179, 191, - 179, 192, 179, 193, 193, 194, 194, 194, 194, 194, - 195, 195, 196, 196, 197, 197, 198, 198, 199, 199, - 199, 199, 199, 199, 200, 200, 200, 200, 201, 201, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 204, 204, 204, 204, 204, 205, 205, 205, 205, 206, - 206, 207, 207, 207, 207, 207, 207, 208, 208, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 210, 210, - 210, 210, 211, 211, 211, 211, 212, 212, 213, 213, - 214, 214, 214, 214, 215, 215, 215, 215, 215, 215, - 215 + 169, 169, 170, 171, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 172, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 173, 170, 170, 170, 170, + 170, 174, 170, 175, 175, 175, 175, 175, 175, 175, + 176, 176, 177, 177, 177, 177, 177, 177, 178, 178, + 178, 178, 178, 179, 180, 180, 180, 180, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 183, + 183, 183, 184, 183, 185, 183, 186, 183, 187, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 188, + 183, 189, 183, 190, 183, 191, 183, 192, 183, 193, + 183, 194, 183, 195, 183, 196, 183, 197, 197, 198, + 198, 198, 198, 198, 199, 199, 200, 200, 201, 201, + 202, 202, 203, 203, 203, 203, 203, 203, 204, 204, + 204, 204, 205, 205, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 207, 207, 207, 207, + 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, + 207, 207, 207, 207, 208, 208, 208, 208, 208, 209, + 209, 209, 209, 210, 210, 211, 211, 211, 211, 211, + 211, 212, 212, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 214, 214, 214, 214, 215, 215, 215, 215, + 216, 216, 217, 217, 218, 218, 218, 218, 219, 219, + 219, 219, 219, 219, 219 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1132,34 +1135,34 @@ static const yytype_uint8 yyr2[] = 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, 8, 6, 7, 7, 8, 8, 17, - 7, 7, 11, 8, 8, 8, 9, 3, 4, 10, - 7, 7, 8, 8, 12, 8, 8, 7, 8, 5, - 11, 5, 9, 4, 9, 9, 1, 1, 0, 2, - 6, 6, 6, 6, 4, 6, 6, 3, 4, 5, - 3, 3, 4, 4, 3, 7, 7, 3, 7, 3, - 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 + 0, 2, 7, 0, 9, 6, 7, 7, 8, 8, + 17, 7, 7, 11, 8, 0, 9, 8, 9, 3, + 4, 10, 7, 7, 8, 0, 9, 12, 8, 8, + 7, 0, 9, 5, 11, 5, 9, 4, 9, 9, + 1, 1, 0, 2, 6, 6, 6, 6, 4, 6, + 6, 3, 4, 5, 3, 3, 4, 4, 3, 7, + 7, 3, 7, 3, 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 @@ -1172,286 +1175,288 @@ 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, 159, 0, 164, 0, 0, 161, 0, 0, 0, + 0, 163, 0, 168, 0, 0, 165, 0, 0, 0, 0, 5, 7, 6, 8, 9, 10, 11, 12, 13, - 19, 18, 14, 15, 16, 17, 292, 299, 354, 54, - 293, 294, 295, 0, 0, 0, 0, 0, 0, 0, + 19, 18, 14, 15, 16, 17, 296, 303, 358, 54, + 297, 298, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 355, 0, - 0, 296, 297, 298, 58, 57, 56, 55, 0, 0, - 0, 60, 59, 0, 0, 0, 0, 128, 0, 0, - 0, 230, 0, 0, 0, 0, 151, 0, 153, 154, + 0, 0, 0, 0, 0, 0, 0, 0, 359, 0, + 0, 300, 301, 302, 58, 57, 56, 55, 0, 0, + 0, 60, 59, 0, 0, 0, 0, 132, 0, 0, + 0, 234, 0, 0, 0, 0, 155, 0, 157, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 105, 115, 121, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, + 0, 0, 132, 0, 0, 0, 0, 0, 0, 132, + 0, 232, 0, 0, 0, 0, 0, 0, 0, 348, + 0, 0, 0, 0, 0, 154, 0, 0, 164, 0, + 132, 0, 132, 0, 0, 0, 0, 307, 29, 358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, - 0, 0, 128, 0, 0, 0, 0, 0, 0, 128, - 0, 228, 0, 0, 0, 0, 0, 0, 0, 344, - 0, 0, 0, 0, 0, 150, 0, 0, 160, 0, - 128, 0, 128, 0, 0, 0, 0, 303, 29, 354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, + 237, 236, 238, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 131, 0, 130, 0, 66, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, - 233, 232, 234, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 127, 0, 126, 0, 66, 147, 0, 0, + 0, 0, 0, 148, 109, 0, 0, 0, 0, 303, + 0, 0, 338, 339, 342, 343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 144, 107, 0, 0, 0, 0, 299, - 0, 0, 334, 335, 338, 339, 0, 0, 0, 0, + 325, 0, 326, 0, 0, 0, 0, 0, 332, 331, + 0, 218, 218, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 316, 315, 0, 0, 0, 0, 132, 132, + 0, 0, 0, 0, 0, 0, 0, 178, 0, 132, + 220, 0, 0, 0, 141, 0, 0, 0, 233, 0, + 0, 0, 153, 0, 0, 0, 0, 0, 132, 0, + 0, 0, 0, 166, 144, 0, 145, 0, 0, 0, + 309, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 321, 0, 322, 0, 0, 0, 0, 0, 328, 327, - 0, 214, 214, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 312, 311, 0, 0, 0, 0, 128, 128, - 0, 0, 0, 0, 0, 0, 0, 174, 0, 128, - 216, 0, 0, 0, 137, 0, 0, 0, 229, 0, - 0, 0, 149, 0, 0, 0, 0, 0, 128, 0, - 0, 0, 0, 162, 140, 0, 141, 0, 0, 0, - 305, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 355, 0, 354, 0, + 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, + 54, 0, 0, 0, 0, 0, 127, 0, 0, 0, + 0, 133, 61, 0, 252, 251, 250, 249, 245, 246, + 248, 247, 240, 239, 241, 242, 243, 244, 110, 0, + 0, 0, 0, 0, 0, 236, 333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 351, 0, 350, 0, - 0, 0, 0, 0, 0, 231, 0, 0, 0, 0, - 54, 0, 0, 0, 0, 0, 123, 0, 0, 0, - 0, 129, 61, 0, 248, 247, 246, 245, 241, 242, - 244, 243, 236, 235, 237, 238, 239, 240, 108, 0, - 0, 0, 0, 0, 0, 232, 329, 0, 0, 0, + 0, 0, 0, 327, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 318, 317, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 0, + 0, 0, 0, 142, 0, 0, 138, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, + 146, 147, 0, 305, 311, 0, 39, 0, 0, 0, + 52, 0, 30, 31, 32, 33, 34, 254, 275, 255, + 276, 256, 277, 257, 278, 258, 279, 259, 280, 260, + 281, 261, 282, 262, 283, 274, 295, 263, 284, 0, + 0, 265, 286, 266, 287, 267, 288, 268, 289, 269, + 290, 270, 291, 0, 0, 0, 0, 0, 0, 0, + 0, 363, 0, 0, 361, 362, 79, 0, 0, 0, + 0, 0, 54, 0, 0, 0, 0, 0, 73, 0, + 0, 0, 0, 306, 0, 0, 0, 0, 0, 22, + 20, 0, 0, 0, 0, 340, 0, 0, 335, 241, + 334, 344, 345, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 328, 0, 0, 0, + 0, 0, 0, 0, 214, 219, 217, 0, 225, 0, + 0, 86, 87, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 123, 125, 0, 0, 0, 0, 0, 0, + 0, 0, 207, 0, 169, 0, 221, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 323, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 212, 0, 0, 0, 86, 87, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, - 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 168, 0, 0, 0, 0, 138, 0, 0, 134, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 163, 0, 142, 143, 0, 301, 307, 0, 39, 0, - 0, 0, 52, 0, 30, 31, 32, 33, 34, 250, - 271, 251, 272, 252, 273, 253, 274, 254, 275, 255, - 276, 256, 277, 257, 278, 258, 279, 270, 291, 259, - 280, 0, 0, 261, 282, 262, 283, 263, 284, 264, - 285, 265, 286, 266, 287, 0, 0, 0, 0, 0, - 0, 0, 0, 359, 0, 0, 357, 358, 79, 0, - 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, - 73, 0, 0, 0, 0, 302, 0, 0, 0, 0, - 0, 22, 20, 0, 0, 0, 0, 336, 0, 0, - 331, 237, 330, 340, 341, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 324, 0, - 0, 0, 0, 0, 0, 0, 210, 215, 213, 0, - 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 119, 121, 0, 0, 0, 0, 0, 0, - 0, 0, 203, 0, 165, 0, 217, 222, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 139, 0, 0, 0, 0, 0, 0, 304, 0, 300, + 143, 0, 0, 0, 0, 0, 0, 308, 0, 304, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 352, 0, 0, 0, 301, + 0, 0, 0, 0, 0, 356, 0, 0, 0, 305, 64, 65, 0, 0, 0, 0, 0, 67, 69, 71, - 0, 0, 348, 0, 77, 0, 0, 0, 0, 249, - 21, 0, 0, 0, 0, 0, 333, 0, 0, 90, + 0, 0, 352, 0, 77, 0, 0, 0, 0, 253, + 21, 0, 0, 0, 0, 0, 337, 0, 0, 90, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 325, 0, 94, 0, 0, 0, 0, 0, 0, - 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 208, 0, 0, - 175, 204, 0, 0, 223, 0, 136, 135, 0, 27, - 28, 0, 0, 0, 345, 0, 0, 0, 155, 0, - 0, 146, 306, 145, 0, 0, 0, 0, 319, 0, - 260, 281, 267, 288, 268, 289, 269, 290, 0, 360, - 356, 309, 0, 54, 0, 0, 0, 0, 62, 0, - 0, 0, 346, 0, 0, 0, 0, 23, 24, 0, - 0, 92, 0, 332, 0, 0, 0, 0, 0, 95, - 0, 0, 110, 111, 0, 0, 96, 117, 326, 0, - 0, 0, 0, 88, 0, 218, 0, 0, 0, 0, - 0, 0, 0, 148, 0, 0, 0, 0, 128, 0, - 185, 0, 187, 0, 189, 321, 0, 0, 0, 0, - 169, 0, 0, 100, 101, 0, 0, 0, 0, 80, - 0, 308, 0, 35, 0, 0, 0, 0, 0, 37, - 0, 0, 0, 0, 74, 0, 0, 75, 0, 349, - 130, 131, 132, 133, 0, 0, 337, 0, 91, 97, - 98, 103, 0, 0, 112, 0, 0, 0, 220, 105, - 0, 0, 211, 116, 93, 104, 113, 118, 115, 0, - 0, 0, 0, 318, 0, 317, 0, 0, 176, 0, - 0, 177, 0, 0, 178, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 343, 0, 157, 156, 0, - 0, 0, 40, 0, 0, 0, 320, 0, 0, 0, - 353, 63, 70, 72, 0, 78, 0, 25, 0, 0, - 0, 0, 0, 0, 0, 0, 106, 0, 84, 85, - 128, 0, 122, 0, 0, 0, 0, 0, 0, 205, - 0, 0, 128, 0, 125, 124, 0, 0, 0, 0, - 81, 82, 0, 36, 0, 0, 0, 38, 53, 0, - 347, 0, 224, 225, 226, 227, 109, 0, 0, 0, - 0, 0, 316, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 0, 0, 342, 158, - 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, - 120, 0, 191, 0, 0, 193, 0, 0, 195, 0, - 0, 0, 206, 0, 166, 0, 128, 102, 83, 0, - 44, 0, 50, 0, 0, 0, 89, 114, 315, 179, - 0, 0, 186, 180, 0, 0, 188, 181, 0, 0, - 190, 0, 0, 0, 172, 0, 0, 0, 0, 0, - 0, 0, 197, 0, 199, 0, 201, 207, 209, 171, - 167, 0, 41, 0, 48, 0, 0, 0, 0, 182, - 0, 0, 183, 0, 0, 184, 0, 0, 0, 42, - 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, - 173, 0, 0, 0, 0, 0, 192, 0, 194, 0, - 196, 0, 43, 45, 0, 46, 0, 99, 0, 0, - 0, 0, 0, 51, 198, 200, 202, 47, 49 + 0, 329, 0, 95, 0, 0, 0, 0, 0, 0, + 0, 223, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 212, 0, 0, + 179, 208, 0, 0, 227, 0, 140, 139, 0, 27, + 28, 0, 0, 0, 349, 0, 0, 0, 159, 0, + 0, 150, 310, 149, 0, 0, 0, 0, 323, 0, + 264, 285, 271, 292, 272, 293, 273, 294, 0, 364, + 360, 313, 0, 54, 0, 0, 0, 0, 62, 0, + 0, 0, 350, 0, 0, 0, 0, 23, 24, 0, + 0, 92, 0, 336, 0, 0, 0, 0, 0, 96, + 0, 0, 112, 113, 0, 0, 97, 120, 330, 0, + 0, 0, 0, 88, 0, 222, 0, 0, 0, 0, + 0, 0, 0, 152, 0, 0, 0, 0, 132, 0, + 189, 0, 191, 0, 193, 325, 0, 0, 0, 0, + 173, 0, 0, 101, 102, 0, 0, 0, 0, 80, + 0, 312, 0, 35, 0, 0, 0, 0, 0, 37, + 0, 0, 0, 0, 74, 0, 0, 75, 0, 353, + 134, 135, 136, 137, 0, 0, 341, 0, 91, 98, + 99, 104, 0, 0, 114, 0, 0, 0, 224, 107, + 0, 0, 215, 119, 0, 0, 0, 0, 118, 0, + 0, 0, 0, 322, 0, 321, 0, 0, 180, 0, + 0, 181, 0, 0, 182, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 347, 0, 161, 160, 0, + 0, 0, 40, 0, 0, 0, 324, 0, 0, 0, + 357, 63, 70, 72, 0, 78, 0, 25, 0, 0, + 0, 0, 0, 0, 0, 0, 108, 94, 106, 116, + 122, 0, 84, 85, 132, 0, 126, 0, 0, 0, + 0, 0, 0, 209, 0, 0, 132, 0, 129, 128, + 0, 0, 0, 0, 81, 82, 0, 36, 0, 0, + 0, 38, 53, 0, 351, 0, 228, 229, 230, 231, + 111, 0, 0, 0, 0, 0, 320, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, + 0, 0, 346, 162, 0, 0, 0, 0, 0, 76, + 0, 0, 0, 0, 124, 0, 195, 0, 0, 197, + 0, 0, 199, 0, 0, 0, 210, 0, 170, 0, + 132, 103, 83, 0, 44, 0, 50, 0, 0, 0, + 89, 117, 319, 183, 0, 0, 190, 184, 0, 0, + 192, 185, 0, 0, 194, 0, 0, 0, 176, 0, + 0, 0, 0, 0, 0, 0, 201, 0, 203, 0, + 205, 211, 213, 175, 171, 0, 41, 0, 48, 0, + 0, 0, 0, 186, 0, 0, 187, 0, 0, 188, + 0, 0, 0, 42, 0, 0, 156, 0, 0, 0, + 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, + 196, 0, 198, 0, 200, 0, 43, 45, 0, 46, + 0, 100, 0, 0, 0, 0, 0, 51, 202, 204, + 206, 47, 49 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 2, 3, 61, 663, 62, 63, 402, 962, 968, - 584, 750, 1092, 1218, 585, 1186, 1244, 586, 1220, 587, - 588, 754, 128, 217, 64, 527, 1001, 906, 471, 312, - 283, 284, 67, 68, 69, 70, 71, 313, 725, 1155, - 1201, 548, 1019, 1022, 1025, 1170, 1174, 1178, 1210, 1213, - 1216, 721, 722, 820, 699, 524, 552, 73, 74, 75, - 330, 131, 352, 176, 867, 868, 340, 332, 316, 201, - 654, 783, 447, 448 + -1, 2, 3, 61, 661, 62, 63, 402, 962, 968, + 582, 750, 1096, 1222, 583, 1190, 1248, 584, 1224, 585, + 586, 754, 128, 217, 64, 700, 1001, 906, 471, 344, + 345, 346, 347, 312, 283, 284, 67, 68, 69, 70, + 71, 313, 725, 1159, 1205, 546, 1019, 1022, 1025, 1174, + 1178, 1182, 1214, 1217, 1220, 721, 722, 820, 697, 524, + 550, 73, 74, 75, 330, 131, 352, 176, 867, 868, + 340, 332, 316, 201, 652, 783, 447, 448 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -1039 +#define YYPACT_NINF -1043 static const yytype_int16 yypact[] = { - 2937, 45, 73, 3014, -1039, -1039, 1354, 12, 52, -12, - 24, 127, 137, -73, 38, 61, -58, 75, 81, -38, - 135, 143, 103, -22, 139, 251, 257, 259, 262, 53, - 82, 196, 193, -77, -77, 197, 321, 303, 313, 317, - 16, 270, 320, 386, 389, 392, 269, 301, 308, 14, - 37, -1039, 322, -1039, 396, 363, -1039, 454, 475, 21, - 22, -1039, -1039, -1039, -1039, -1039, -1039, -1039, -1039, -1039, - -1039, -1039, -1039, -1039, -1039, -1039, -1039, 18, 369, 444, - -1039, -1039, -1039, -36, 220, 282, 286, 341, 368, 419, - 427, 433, 437, 451, 498, 515, 527, 556, 574, 579, - 580, 599, 600, 605, 390, 391, 397, 414, -1039, 504, - 424, -1039, -1039, -1039, -1039, -1039, -1039, -1039, 2334, 2334, - 2334, -1039, -1039, 2334, 1963, 15, 531, 192, 2334, 560, - 1185, -1039, 572, 576, 2334, 582, -1039, 2334, -1039, -1039, - 2334, 2266, 2334, 2334, 477, 2334, 2266, 2334, 2334, 485, - 2266, 2334, 2334, 1533, 486, 2334, 469, 495, 506, 1402, - 1402, 1402, 516, 523, 524, 549, 553, 561, 573, 633, - -77, -77, -77, 2334, 2334, -51, -1039, -44, -77, 571, - 628, 650, 2135, 180, 1402, 1533, 639, 31, 558, -1039, - 796, -1039, 674, 677, 680, 809, 2334, 2334, 2334, 681, - 2334, 682, 722, 2334, 2334, -1039, 2334, 814, -1039, 816, - -1039, 817, -1039, 693, 2334, 824, 690, -1039, -1039, -1039, - 825, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - 2334, 2334, 2334, 538, 538, 538, 538, 2334, 829, 505, - 699, 699, 699, 5246, 9, 2266, 4510, 168, 701, 828, - 704, 702, -1039, 703, 3079, 1728, -1039, -1039, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - 2334, 2334, 2334, -1039, -1039, 1759, 188, 3756, 5267, 550, - 705, 2266, -1039, -1039, 2690, -1039, 598, 5288, 5309, 2334, - 5330, 602, 5351, 5372, 2334, 603, 5393, 5414, 1664, 1215, - 2711, 835, -1039, 2334, 5435, 2334, 2334, 2334, -1039, -1039, - 838, 839, 839, 2334, 2391, 2391, 2391, 2391, 2334, 2334, - 714, 211, -1039, -1039, 3782, 3808, -77, -77, 192, 192, - 395, 2334, 2334, 2334, 2135, 2135, 2334, 3079, 403, -1039, - 841, 845, 2334, 850, -1039, 2334, 2334, 1566, -1039, 2266, - 2334, 2334, -1039, 5456, 5477, 5498, 766, 3834, -1039, 720, - 2743, 5519, 4533, -1039, -1039, 1697, -1039, 1957, 2334, 4556, - -90, 2334, 10, -1039, 5540, 4579, 5561, 4602, 5582, 4625, - 5603, 4648, 5624, 4671, 5645, 4694, 5666, 4717, 5687, 4740, - 5708, 4763, 5729, 4786, 5750, 4809, 3860, 3886, 5771, 4832, - 5792, 4855, 5813, 4878, 5834, 4901, 5855, 4924, 5876, 4947, - 3912, 3938, 3964, 3990, 4016, 4042, 613, 277, -1039, 723, - 727, 729, 2078, 726, 2334, -1039, 1533, 1533, 610, 76, - 444, 2334, 859, 863, 19, 733, -1039, -62, 34, -23, - -50, -1039, -1039, 2763, 476, 547, 578, 578, 345, 345, - 345, 345, 551, 551, 699, 699, 699, 699, -1039, 5, - 2266, 2334, 862, 2100, 2334, 699, -1039, 2334, 2266, 2266, - 776, 864, 865, 5897, 866, 780, 868, 869, 5918, 783, - 872, 873, 2266, -1039, 614, 1795, 2334, 5939, 874, 2839, - 5960, 5981, 2334, 1533, 878, 877, 6002, 752, 6296, -1039, - 753, 754, 755, 6023, 6044, 756, -77, 2334, 2334, -1039, - -1039, 749, 750, 2334, 4068, 4094, 4120, 3730, 334, -77, - 2128, 2334, 885, 2334, 6065, -1039, 4970, 4993, -1039, 615, - 5016, 5039, 886, 887, 888, 760, 2334, 2433, 2334, 2334, - -1039, 26, -1039, -1039, 5062, 48, -1039, 3114, -1039, 765, - 767, 761, -1039, 895, -1039, -1039, -1039, -1039, -1039, -1039, - -1039, -1039, -1039, -1039, -1039, -1039, -1039, -1039, -1039, -1039, - -1039, -1039, -1039, -1039, -1039, -1039, -1039, -1039, -1039, -1039, - -1039, 2334, 2334, -1039, -1039, -1039, -1039, -1039, -1039, -1039, - -1039, -1039, -1039, -1039, -1039, 2334, 2334, 2334, 2334, 2334, - 2334, 2334, 898, -1039, 2266, 538, -1039, -1039, -1039, 2334, - 5085, 897, 900, 772, -1039, 17, 2334, 904, 905, 2441, - -1039, 906, 778, 14, 910, -1039, 2266, 2266, 2266, 2266, - 2334, -1039, 802, 538, 291, 4146, -77, -1039, 2266, 3142, - 2783, 699, -1039, 2690, -1039, 875, 1533, 1533, 915, 1533, - 706, 1533, 1533, 919, 879, 1533, 1533, 619, -1039, 2266, - 2498, 920, 790, 925, 926, 927, 2198, -1039, -1039, 930, - -1039, 935, 936, 937, 938, 940, 941, 942, 933, 417, - 4172, 4198, -1039, -1039, 3170, -77, -77, -77, 944, 812, - 821, -29, -1039, 426, -1039, 334, 6296, -1039, 2518, 818, - 950, 954, 913, 958, 959, 1533, 1533, 1533, 962, 4224, - -1039, 2809, 1064, 963, 965, 966, 967, -1039, 970, -1039, - 846, 2334, 2334, 1533, 842, -1039, 6086, 5108, 6107, 5131, - 6128, 5154, 6149, 5177, 5200, -1039, 339, 844, 6170, 134, - -1039, -1039, 92, 297, 847, 982, 2538, -1039, -1039, -1039, - 14, 2334, -1039, 622, -1039, 625, 626, 632, 636, 6296, - -1039, 984, 7, 2334, 57, 640, -1039, 2334, 853, 943, - 943, 1533, 987, 855, 856, 991, 992, 1533, 860, 995, - 996, -1039, 641, -1039, 998, 2334, 1533, 1533, 1533, 1000, - 999, -1039, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 175, - 2334, 2334, 2334, 867, 177, 324, 367, -1039, 1533, 2334, - -1039, -1039, 2135, -21, -1039, 2266, -1039, -1039, 870, -1039, - -1039, 1001, 1004, 921, -1039, 2334, 2334, 2334, -1039, 1006, - 1007, -1039, -90, -1039, 2334, 4250, 4276, 644, -1039, 2334, - -1039, -1039, -1039, -1039, -1039, -1039, -1039, -1039, 880, -1039, - -1039, -1039, 1533, 444, 2334, 1009, 1014, 19, -1039, 1013, - 5223, 14, -1039, 1015, 1016, 1017, 1019, -1039, -1039, 538, - 4302, -1039, 891, 6296, 2334, -77, 1021, 1023, 1025, -1039, - 2334, 2334, -1039, -1039, 1026, 2334, -1039, -1039, -1039, 1008, - 4328, 1028, 1029, 946, 2334, -1039, 1030, 1032, 1035, 1038, - 1040, 1041, 1044, -1039, 2391, 3198, 6191, 3030, 192, -77, - 1043, -77, 1045, -77, 1046, 263, 882, 6212, 3226, 435, - -1039, 645, 2334, -1039, -1039, 1533, 3058, 604, 6233, -1039, - 1926, -1039, 382, 6296, 2334, 2334, 1533, 911, 648, 6296, - 1049, 1051, 1052, 2571, -1039, 1061, 1053, -1039, 934, -1039, - -1039, -1039, -1039, -1039, 1069, 2334, -1039, 3254, 202, -1039, - -1039, -1039, 3282, 3310, -1039, 3338, 1073, 2334, -1039, -1039, - 1034, 1077, 6296, -1039, -1039, -1039, -1039, -1039, -1039, 945, - 2592, 1079, 947, -1039, 2334, -1039, 951, 466, -1039, 948, - 488, -1039, 953, 491, -1039, 955, 1084, 1533, 1086, 961, - 2334, 1095, 3366, 1018, 2334, -1039, 2334, -1039, -1039, 2266, - 2624, 1097, -1039, 2334, 4354, 4380, -1039, 1533, 2334, 1098, - -1039, -1039, -1039, -1039, 14, -1039, 1020, -1039, 4406, 1100, - 1103, 1104, 1105, 1107, 4432, 975, -1039, 1533, -1039, -1039, - 192, 3086, -1039, 2135, 334, 2135, 334, 2135, 334, -1039, - 652, 1533, -1039, 3394, -1039, -1039, 2334, 3422, 3450, 655, - -1039, -1039, 976, 6296, 2334, 2334, 656, 6296, -1039, 1110, - -1039, 2334, -1039, -1039, -1039, -1039, -1039, 1112, 2334, 659, - 978, 2334, -1039, 3478, 493, -17, 3506, 520, -13, 3534, - 522, -2, 1533, 1113, 1058, 2488, 983, 2644, -1039, -1039, - 1117, 2334, 6254, 4458, 25, -1039, 4484, 986, 3562, 1120, - -1039, 3590, 1121, 2334, 1122, 1124, 2334, 1125, 1126, 2334, - 1127, 994, -1039, 2334, -1039, 334, -1039, -1039, -1039, 660, - -1039, 2334, -1039, 1533, 2334, 1130, -1039, -1039, -1039, -1039, - 997, 3618, -1039, -1039, 1002, 3646, -1039, -1039, 1003, 3674, - -1039, 1132, 2664, 195, 2539, 1133, 1005, 6275, 663, 3702, - 1010, 334, 1139, 334, 1140, 334, 1143, -1039, -1039, -1039, - -1039, 334, -1039, 538, -1039, 1011, 1145, 1147, 273, -1039, - 1022, 359, -1039, 1024, 361, -1039, 1027, 364, 667, -1039, - 1031, 1533, -1039, 1036, 1148, 334, 1150, 334, 1151, 334, - -1039, 538, 1153, 538, 668, 1154, -1039, 374, -1039, 379, - -1039, 388, -1039, -1039, 672, -1039, 1156, -1039, 1158, 1159, - 1161, 538, 1162, -1039, -1039, -1039, -1039, -1039, -1039 + 2822, 50, 73, 2899, -1043, -1043, 1305, 84, 71, 52, + 20, 123, 182, -89, 79, 188, -47, 204, 213, -43, + 222, 235, 148, -38, 210, 257, 344, 407, 346, 157, + 163, 283, 308, 180, 180, 355, 555, 417, 440, 454, + 17, 70, 461, 501, 514, 522, 385, 395, 427, 13, + 31, -1043, 431, -1043, 533, 415, -1043, 569, 576, 15, + 19, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, + -1043, -1043, -1043, -1043, -1043, -1043, -1043, 21, 447, 42, + -1043, -1043, -1043, -39, 80, 147, 231, 331, 412, 420, + 432, 435, 443, 458, 464, 493, 503, 513, 530, 540, + 551, 565, 572, 577, 455, 465, 468, 469, -1043, 601, + 496, -1043, -1043, -1043, -1043, -1043, -1043, -1043, 2285, 2285, + 2285, -1043, -1043, 2285, 1914, 18, 628, 199, 2285, 635, + 697, -1043, 650, 655, 2285, 661, -1043, 2285, -1043, -1043, + 2285, 2217, 2285, 2285, 539, 2285, 2217, 2285, 2285, 547, + 2217, 2285, 2285, 1484, 548, 2285, 545, 556, 561, 1353, + 1353, 1353, 573, -1043, -1043, -1043, -1043, 588, 591, 694, + 180, 180, 180, 2285, 2285, 43, -1043, 48, 180, 589, + 604, 605, 2086, 202, 1353, 1484, 657, 9, 658, -1043, + 702, -1043, 669, 671, 696, 825, 2285, 2285, 2285, 698, + 2285, 713, 741, 2285, 2285, -1043, 2285, 831, -1043, 847, + -1043, 851, -1043, 726, 2285, 861, 729, -1043, -1043, -1043, + 863, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, + 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, + 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, + 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, + 2285, 2285, 2285, 441, 441, 441, 441, 2285, 871, 566, + 754, 754, 754, 5159, 26, 2217, 4423, 297, 753, 883, + 757, 755, -1043, 752, 2964, 936, -1043, -1043, 2285, 2285, + 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, + 2285, 2285, 2285, -1043, -1043, 1121, 36, 3669, 5180, 529, + 756, 2217, -1043, -1043, 638, -1043, 574, 5201, 5222, 2285, + 5243, 575, 5264, 5285, 2285, 578, 5306, 5327, 1615, 1157, + 2608, 886, -1043, 2285, 5348, 2285, 2285, 2285, -1043, -1043, + 889, 890, 890, 2285, 767, 768, 769, 770, 2285, 2285, + 773, 211, -1043, -1043, 3695, 3721, 180, 180, 199, 199, + 230, 2285, 2285, 2285, 2086, 2086, 2285, 2964, 328, -1043, + 896, 900, 2285, 902, -1043, 2285, 2285, 1517, -1043, 2217, + 2285, 2285, -1043, 5369, 5390, 5411, 820, 3747, -1043, 774, + 2641, 5432, 4446, -1043, -1043, 1648, -1043, 1908, 2285, 4469, + -24, 2285, 7, -1043, 5453, 4492, 5474, 4515, 5495, 4538, + 5516, 4561, 5537, 4584, 5558, 4607, 5579, 4630, 5600, 4653, + 5621, 4676, 5642, 4699, 5663, 4722, 3773, 3799, 5684, 4745, + 5705, 4768, 5726, 4791, 5747, 4814, 5768, 4837, 5789, 4860, + 3825, 3851, 3877, 3903, 3929, 3955, 585, 365, -1043, 776, + 779, 782, 1679, 778, 2285, -1043, 1484, 1484, 586, 500, + 42, 2285, 911, 915, 14, 785, -1043, -70, -31, -15, + 196, -1043, -1043, 2662, 1331, 1014, 676, 676, 175, 175, + 175, 175, -59, -59, 754, 754, 754, 754, -1043, 8, + 2217, 2285, 914, 2051, 2285, 754, -1043, 2285, 2217, 2217, + 832, 918, 920, 5810, 922, 836, 924, 929, 5831, 843, + 932, 933, 2217, -1043, 587, 1746, 2285, 5852, 938, 2999, + 5873, 5894, 2285, 1484, 939, 941, 5915, 2342, 2342, 2342, + 2342, 5936, 5957, 812, 180, 2285, 2285, -1043, -1043, 809, + 811, 2285, 3981, 4007, 4033, 3643, 339, 180, 2079, 2285, + 946, 2285, 5978, -1043, 4883, 4906, -1043, 610, 4929, 4952, + 948, 949, 950, 817, 2285, 2384, 2285, 2285, -1043, 24, + -1043, -1043, 4975, 546, -1043, 3027, -1043, 828, 829, 823, + -1043, 957, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, + -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, + -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, 2285, + 2285, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, + -1043, -1043, -1043, 2285, 2285, 2285, 2285, 2285, 2285, 2285, + 962, -1043, 2217, 441, -1043, -1043, -1043, 2285, 4998, 961, + 963, 833, -1043, 28, 2285, 964, 965, 1710, -1043, 966, + 838, 13, 969, -1043, 2217, 2217, 2217, 2217, 2285, -1043, + 857, 441, 381, 4059, 180, -1043, 2217, 3055, 2694, 754, + -1043, 638, -1043, 927, 1484, 1484, 975, 1484, 715, 1484, + 1484, 976, 934, 1484, 1484, 633, -1043, 2217, 2029, 977, + 846, 980, 982, 983, 2149, -1043, -1043, 986, -1043, 988, + 860, 6209, -1043, 864, 866, 867, 989, 994, 998, 330, + 4085, 4111, -1043, -1043, 3083, 180, 180, 180, 1000, 868, + 878, -41, -1043, 338, -1043, 339, 6209, -1043, 2392, 872, + 1006, 1007, 967, 1010, 1012, 1484, 1484, 1484, 1015, 4137, + -1043, 2727, 616, 1016, 1017, 1020, 1018, -1043, 1021, -1043, + 891, 2285, 2285, 1484, 892, -1043, 5999, 5021, 6020, 5044, + 6041, 5067, 6062, 5090, 5113, -1043, 382, 899, 6083, 141, + -1043, -1043, 68, 504, 893, 1027, 2449, -1043, -1043, -1043, + 13, 2285, -1043, 634, -1043, 640, 641, 644, 645, 6209, + -1043, 1029, 45, 2285, 10, 648, -1043, 2285, 897, 981, + 981, 1484, 1033, 901, 904, 1035, 1039, 1484, 907, 1041, + 1057, -1043, 666, -1043, 1059, 2285, 1484, 1484, 1484, 1061, + 1060, -1043, 1484, 1063, 1065, 1069, 1072, 1484, 1484, 405, + 2285, 2285, 2285, 942, -36, 140, 280, -1043, 1484, 2285, + -1043, -1043, 2086, -37, -1043, 2217, -1043, -1043, 944, -1043, + -1043, 1062, 1079, 996, -1043, 2285, 2285, 2285, -1043, 1081, + 1082, -1043, -24, -1043, 2285, 4163, 4189, 689, -1043, 2285, + -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, 952, -1043, + -1043, -1043, 1484, 42, 2285, 1084, 1087, 14, -1043, 1088, + 5136, 13, -1043, 1089, 1090, 1091, 1092, -1043, -1043, 441, + 4215, -1043, 968, 6209, 2285, 180, 1094, 1095, 1096, -1043, + 2285, 2285, -1043, -1043, 1098, 2285, -1043, -1043, -1043, 1100, + 4241, 1101, 1102, 1019, 2285, -1043, 1104, 1484, 1484, 1484, + 1484, 1105, 1108, -1043, 2342, 3111, 6104, 2915, 199, 180, + 1112, 180, 1113, 180, 1114, 265, 984, 6125, 3139, 348, + -1043, 700, 2285, -1043, -1043, 1484, 2943, 318, 6146, -1043, + 1877, -1043, 403, 6209, 2285, 2285, 1484, 985, 703, 6209, + 1117, 1119, 1120, 2469, -1043, 1136, 1122, -1043, 1013, -1043, + -1043, -1043, -1043, -1043, 1140, 2285, -1043, 3167, 307, -1043, + -1043, -1043, 3195, 3223, -1043, 3251, 1143, 2285, -1043, -1043, + 1106, 1144, 6209, -1043, 1146, 1149, 1150, 1151, -1043, 1024, + 2489, 1152, 1025, -1043, 2285, -1043, 1030, 351, -1043, 1026, + 359, -1043, 1053, 390, -1043, 1054, 1163, 1484, 1187, 1056, + 2285, 1190, 3279, 1109, 2285, -1043, 2285, -1043, -1043, 2217, + 2522, 1191, -1043, 2285, 4267, 4293, -1043, 1484, 2285, 1193, + -1043, -1043, -1043, -1043, 13, -1043, 1110, -1043, 4319, 1194, + 1197, 1198, 1199, 1200, 4345, 1068, -1043, -1043, -1043, -1043, + -1043, 1484, -1043, -1043, 199, 2971, -1043, 2086, 339, 2086, + 339, 2086, 339, -1043, 704, 1484, -1043, 3307, -1043, -1043, + 2285, 3335, 3363, 707, -1043, -1043, 1070, 6209, 2285, 2285, + 708, 6209, -1043, 1202, -1043, 2285, -1043, -1043, -1043, -1043, + -1043, 1205, 2285, 734, 1071, 2285, -1043, 3391, 456, -33, + 3419, 517, -29, 3447, 531, -25, 1484, 1206, 1154, 2439, + 1074, 2543, -1043, -1043, 1209, 2285, 6167, 4371, 22, -1043, + 4397, 1083, 3475, 1213, -1043, 3503, 1221, 2285, 1222, 1223, + 2285, 1225, 1226, 2285, 1242, 1111, -1043, 2285, -1043, 339, + -1043, -1043, -1043, 735, -1043, 2285, -1043, 1484, 2285, 1244, + -1043, -1043, -1043, -1043, 1115, 3531, -1043, -1043, 1116, 3559, + -1043, -1043, 1118, 3587, -1043, 1247, 2575, -17, 2490, 1250, + 1127, 6188, 739, 3615, 1123, 339, 1252, 339, 1253, 339, + 1254, -1043, -1043, -1043, -1043, 339, -1043, 441, -1043, 1128, + 1262, 1245, -14, -1043, 1130, 118, -1043, 1131, 128, -1043, + 1132, 237, 743, -1043, 1134, 1484, -1043, 1135, 1268, 339, + 1270, 339, 1271, 339, -1043, 441, 1272, 441, 744, 1275, + -1043, 261, -1043, 273, -1043, 322, -1043, -1043, 748, -1043, + 1276, -1043, 1277, 1279, 1280, 441, 1281, -1043, -1043, -1043, + -1043, -1043, -1043 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -1039, -1039, -1039, -1039, 377, -1039, -1039, -1039, -1039, 40, - -1039, -1039, -1039, -1039, -1039, -1039, -1039, -1039, -1039, -1039, - -1039, -1039, -260, 4, -1039, -136, -1039, 353, 1169, 3, - -354, -174, -1039, -1039, -1039, -1039, -1039, 1171, -1039, -1039, - -1039, -1039, -1039, -1039, -1039, -1039, -1039, -1039, -1039, -1039, - -1039, -657, -687, -1039, -1039, 833, -1039, -1039, -1039, -1039, - -6, -1039, 138, -1039, -1038, 238, -117, 440, 328, -629, - 305, -1039, -263, 1 + -1043, -1043, -1043, -1043, 498, -1043, -1043, -1043, -1043, 153, + -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, + -1043, -1043, -273, -3, -1043, 27, -1043, 491, 1289, -1043, + -1043, -1043, -1043, 3, -357, -112, -1043, -1043, -1043, -1043, + -1043, 1290, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, + -1043, -1043, -1043, -1043, -1043, -657, -650, -1043, -1043, 953, + -1043, -1043, -1043, -1043, -6, -1043, 139, -1043, -1042, 187, + -102, 278, 35, -632, 409, -1043, -257, 4 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1461,830 +1466,804 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -5 static const yytype_int16 yytable[] = { - 130, 449, 450, 451, 541, 542, 66, 132, 367, 1096, - 129, 661, 144, 898, 578, 377, 456, 461, 199, 277, - 187, 773, 213, 652, 782, 133, 209, 211, 154, 1109, - 136, 1162, 149, 743, 841, 373, 395, 374, 397, 121, - 122, 202, 718, 341, 342, 171, 172, 149, 719, 720, - 718, 4, 446, 219, 718, 173, 719, 720, 718, 140, - 719, 720, 174, 901, 719, 720, 141, 370, 843, 718, - 140, 356, 357, 5, 145, 719, 720, 656, 356, 357, - 220, 146, 152, 644, 104, 105, 106, 107, 358, 659, - 108, 579, 580, 581, 582, 359, 221, 163, 222, 644, - 164, 150, 134, 165, 144, 166, 278, 279, 774, 775, - 155, 840, 270, 271, 272, 188, 658, 273, 276, 950, - 135, 457, 285, 1144, 662, 1188, 662, 1147, 305, 167, - 282, 307, 168, 138, 308, 314, 317, 318, 1150, 320, - 314, 322, 323, 139, 314, 326, 327, 121, 122, 334, - 583, 889, 214, 200, 215, 189, 841, 153, 653, 216, - 210, 212, 744, 137, 1163, 375, 145, 354, 355, 203, - 142, 175, 177, 657, 183, 460, 355, 121, 122, 356, - 357, 933, 934, 1234, 746, 114, 115, 116, 117, 156, - 383, 384, 385, 143, 387, 550, 281, 390, 391, 646, - 392, 114, 115, 116, 117, 121, 122, 147, 399, 530, - 531, 532, 645, 148, 567, 404, 405, 406, 407, 408, + 130, 539, 540, 129, 461, 1100, 66, 449, 450, 451, + 132, 576, 154, 373, 659, 374, 901, 199, 650, 782, + 209, 187, 277, 144, 211, 213, 136, 149, 1166, 1113, + 718, 743, 773, 456, 718, 202, 719, 720, 718, 144, + 719, 720, 718, 140, 719, 720, 718, 219, 719, 720, + 141, 898, 719, 720, 718, 149, 4, 718, 341, 342, + 719, 720, 140, 719, 720, 299, 300, 301, 843, 654, + 367, 841, 302, 5, 190, 642, 191, 377, 104, 105, + 106, 107, 370, 220, 108, 145, 356, 357, 577, 578, + 579, 580, 146, 221, 155, 222, 150, 133, 395, 840, + 397, 145, 939, 950, 940, 121, 122, 1148, 655, 278, + 279, 1151, 270, 271, 272, 1154, 188, 273, 276, 774, + 775, 134, 285, 1203, 656, 1192, 1228, 660, 305, 138, + 282, 307, 356, 357, 308, 314, 317, 318, 457, 320, + 314, 322, 323, 375, 314, 326, 327, 581, 889, 334, + 121, 122, 200, 651, 210, 214, 189, 215, 212, 137, + 744, 1167, 216, 203, 660, 356, 357, 354, 355, 489, + 356, 357, 175, 177, 490, 183, 355, 114, 115, 116, + 117, 321, 358, 1238, 135, 325, 644, 359, 139, 718, + 383, 384, 385, 841, 387, 719, 720, 390, 391, 718, + 392, 163, 153, 281, 164, 719, 720, 165, 399, 166, + 167, 142, 223, 168, 224, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 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, 32, 33, 34, - 35, 452, 979, 121, 122, 39, 718, 151, 42, 314, - 746, 497, 719, 720, 190, 152, 191, 114, 115, 116, - 117, 462, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 121, 122, 356, - 357, 157, 356, 357, 883, 495, 159, 158, 351, 160, - 353, 161, 748, 503, 162, 939, 360, 940, 508, 369, - 368, 489, 495, 314, 356, 357, 490, 517, 169, 519, - 520, 521, 170, 356, 357, 1199, 178, 526, 528, 528, - 528, 528, 533, 534, 718, 529, 529, 529, 529, 536, - 719, 720, 223, 184, 224, 544, 545, 546, 270, 271, - 547, 282, 282, 185, 186, 179, 554, 192, 180, 556, - 557, 181, 767, 314, 560, 561, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 515, 300, 301, - 193, 331, 574, 194, 302, 577, 195, 339, 339, 339, - 791, 196, 205, 1026, 576, 718, 114, 115, 116, 117, - 633, 719, 720, 1224, 225, 634, 226, 1115, 227, 1118, - 228, 1121, 339, 371, 792, 1099, 121, 122, 841, 499, - 718, 841, 718, 197, 841, 718, 719, 720, 719, 720, - 198, 719, 720, 171, 172, 718, 356, 357, 640, 219, - 718, 719, 720, 173, 204, 649, 719, 720, 207, 718, - 182, 648, 941, 647, 942, 719, 720, 297, 298, 299, - 300, 301, 879, 229, 321, 230, 302, 499, 325, 208, - 104, 105, 106, 107, 314, 665, 108, 640, 669, 356, - 357, 670, 671, 673, 539, 540, 841, 206, 1183, 1226, - 231, 1228, 232, 353, 1230, 943, 314, 944, 218, 671, - 690, 267, 882, 884, 1248, 1042, 696, 356, 357, 1249, - 1043, 841, 263, 264, 841, 356, 357, 841, 1250, 265, - 841, 710, 711, 543, 1208, 280, 1211, 714, 1214, 356, - 357, 549, 446, 219, 1217, 726, 266, 728, 356, 357, - 841, 233, 841, 234, 841, 830, 268, 356, 357, 235, - 739, 236, 741, 742, 842, 237, 286, 238, 1237, 239, - 1239, 240, 1241, 1030, 104, 105, 106, 107, 303, 747, - 108, 315, 304, 241, 1016, 242, 315, 306, 356, 357, - 315, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 458, 1073, 756, 757, 302, 335, 319, - 356, 357, 1036, 356, 357, 356, 357, 324, 333, 758, - 759, 760, 761, 762, 763, 764, 1075, 336, 314, 1077, - 243, 1143, 244, 768, 121, 122, 984, 350, 337, 454, - 776, 215, 356, 357, 356, 357, 216, 245, 343, 246, - 314, 314, 314, 314, 789, 344, 345, 514, 1146, 247, - 1149, 248, 314, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 709, 299, 300, 301, 302, 121, - 122, 346, 302, 314, 493, 347, 215, 723, 249, 127, - 250, 216, 376, 348, 641, 642, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 349, 251, 559, 252, 302, - 361, 253, 255, 254, 256, 315, 1110, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 257, 259, 258, 260, 302, 499, 261, 500, 262, - 499, 499, 505, 509, 1037, 865, 866, 631, 499, 632, - 643, 496, 499, 499, 688, 732, 803, 499, 804, 811, - 891, 697, 892, 499, 499, 893, 894, 362, 496, 315, - 499, 372, 895, 747, 499, 890, 896, 885, 499, 499, - 902, 918, 966, 499, 967, 1031, 1048, 900, 1049, 363, - 1122, 903, 1123, 499, 966, 1130, 1134, 966, 1048, 1139, - 1185, 966, 378, 1205, 794, 1231, 966, 1232, 1246, 920, - 1251, 380, 1252, 379, 381, 382, 389, 386, 664, 315, - 393, 388, 394, 396, 935, 936, 937, 398, 400, 401, - 302, 403, 945, 947, 453, 464, 948, 463, 465, 314, - 687, 127, 516, 466, 494, 522, 523, 535, 551, 956, - 957, 958, 553, 834, 835, 836, 555, 565, 963, 568, - 636, 635, 637, 969, 639, 650, 961, 651, 655, 666, - 675, 676, 677, 679, 680, 681, 682, 684, 973, 685, - 686, 692, 698, 700, 972, 702, 703, 704, 705, 712, - 713, 727, 708, 735, 736, 737, 738, 751, 987, 752, - 753, 755, 765, 770, 992, 993, 771, 772, 1125, 995, - 777, 778, 781, 780, 799, 800, 784, 802, 1002, 805, - 806, 790, 801, 809, 810, 798, 807, 814, 1010, 815, - 315, 808, 816, 817, 818, 1011, 821, 829, 672, 674, - 1219, 282, 822, 823, 824, 825, 1032, 826, 827, 828, - 837, 838, 315, 839, 1040, 672, 846, 845, 1044, 1045, - 847, 1041, 766, 848, 849, 850, 854, 859, 1242, 860, - 1245, 862, 861, 851, 852, 853, 863, 880, 864, 1058, - 949, 869, 1184, 886, 785, 786, 787, 788, 1257, 887, - 897, 1064, 904, 909, 910, 911, 795, 912, 913, 915, - 905, 916, 917, 919, 924, 925, 938, 953, 1071, 952, - 954, 955, 959, 996, 960, 974, 970, 812, 975, 977, - 1027, 980, 981, 982, 1083, 983, 986, 989, 1087, 990, - 1088, 991, 994, 314, 998, 999, 1003, 1093, 1004, 908, - 1000, 1005, 1097, 988, 1006, 914, 1007, 1008, 1009, 1018, - 1047, 1021, 1024, 1050, 921, 922, 923, 1051, 1052, 1055, - 926, 927, 928, 929, 930, 931, 932, 1113, 1054, 1116, - 1056, 1119, 857, 282, 315, 1057, 946, 1017, 1063, 1020, - 1127, 1023, 1065, 1066, 1067, 1069, 1070, 1074, 1132, 1133, - 1079, 1072, 1076, 1081, 1078, 1136, 315, 315, 315, 315, - 1082, 1084, 1138, 1091, 1098, 1141, 1102, 1086, 315, 1103, - 1104, 1105, 1100, 1106, 1108, 1131, 1135, 1137, 1140, 1152, - 971, 1153, 1156, 1158, 1165, 969, 1167, 1169, 1172, 315, - 1173, 1176, 1177, 1180, 1181, 1190, 1191, 1171, 1197, 1202, - 1175, 1193, 1195, 1179, 1203, 1209, 1212, 1182, 1207, 1215, - 1221, 1222, 1223, 907, 1236, 1187, 1238, 1240, 1189, 1243, - 1247, 1225, 1253, 1227, 1254, 1255, 1229, 1256, 1258, 899, - 1233, 1159, 65, 951, 72, 525, 1235, 288, 289, 290, + 439, 440, 441, 442, 443, 444, 445, 548, 1230, 979, + 156, 452, 356, 357, 32, 33, 34, 35, 1232, 314, + 121, 122, 39, 497, 462, 42, 565, 746, 941, 225, + 942, 226, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 297, 298, 299, + 300, 301, 171, 172, 460, 495, 302, 157, 718, 351, + 458, 353, 173, 503, 719, 720, 748, 360, 508, 174, + 143, 368, 495, 314, 356, 357, 1036, 517, 152, 519, + 520, 521, 718, 356, 357, 657, 147, 526, 719, 720, + 331, 369, 531, 532, 718, 148, 339, 339, 339, 534, + 719, 720, 356, 357, 151, 542, 543, 544, 270, 271, + 545, 282, 282, 227, 514, 228, 552, 152, 541, 554, + 555, 339, 371, 314, 558, 559, 767, 1234, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 515, + 300, 301, 572, 718, 158, 575, 302, 574, 162, 719, + 720, 1252, 356, 357, 791, 1026, 114, 115, 116, 117, + 718, 933, 934, 1253, 557, 169, 719, 720, 943, 315, + 944, 1119, 1103, 1122, 315, 1125, 121, 122, 315, 356, + 357, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 446, 219, 170, 638, 302, + 356, 357, 356, 357, 159, 647, 645, 160, 1037, 161, + 356, 357, 1254, 229, 646, 230, 547, 184, 830, 841, + 356, 357, 841, 356, 357, 841, 842, 104, 105, 106, + 107, 356, 357, 108, 314, 663, 1030, 638, 667, 1077, + 185, 668, 669, 671, 178, 537, 538, 1079, 631, 882, + 884, 186, 1187, 632, 353, 193, 314, 642, 192, 669, + 688, 883, 356, 357, 792, 879, 694, 196, 194, 499, + 499, 701, 701, 701, 701, 662, 195, 197, 1081, 710, + 711, 702, 702, 702, 702, 714, 1042, 841, 1212, 205, + 1215, 1043, 1218, 726, 231, 728, 232, 685, 1221, 206, + 446, 219, 233, 315, 234, 703, 704, 705, 739, 198, + 741, 742, 841, 204, 235, 841, 236, 237, 841, 238, + 747, 841, 1241, 207, 1243, 239, 1245, 240, 356, 357, + 208, 1016, 104, 105, 106, 107, 218, 263, 108, 496, + 241, 841, 242, 841, 1147, 841, 243, 264, 244, 179, + 265, 266, 180, 756, 757, 181, 496, 315, 267, 114, + 115, 116, 117, 114, 115, 116, 117, 758, 759, 760, + 761, 762, 763, 764, 857, 245, 314, 246, 268, 121, + 122, 768, 280, 121, 122, 247, 643, 248, 776, 356, + 357, 286, 984, 639, 640, 249, 497, 250, 314, 314, + 314, 314, 789, 356, 357, 1150, 303, 315, 121, 122, + 314, 304, 251, 493, 252, 215, 306, 766, 127, 1153, + 216, 319, 253, 709, 254, 121, 122, 171, 172, 324, + 333, 314, 746, 255, 335, 256, 723, 173, 336, 785, + 786, 787, 788, 337, 182, 121, 122, 257, 350, 258, + 454, 795, 215, 287, 259, 343, 260, 216, 378, 261, + 695, 262, 499, 499, 500, 505, 499, 1114, 509, 629, + 348, 630, 812, 349, 499, 499, 641, 686, 361, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 362, 363, 865, 866, 302, 499, 858, + 732, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 498, 300, 301, 803, 747, 804, 315, 302, + 885, 499, 891, 811, 892, 890, 670, 672, 499, 499, + 893, 894, 499, 499, 895, 896, 499, 900, 902, 372, + 315, 903, 376, 670, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 794, 499, 380, 918, 302, 379, 920, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 935, 936, 937, 966, 302, 967, + 381, 382, 945, 947, 386, 389, 948, 393, 499, 314, + 1031, 1048, 1126, 1049, 1127, 499, 966, 1134, 1138, 956, + 957, 958, 388, 394, 834, 835, 836, 396, 963, 961, + 398, 799, 800, 969, 802, 400, 805, 806, 401, 403, + 809, 810, 966, 1048, 1143, 1189, 453, 966, 973, 1209, + 951, 1235, 966, 1236, 1250, 302, 1255, 972, 1256, 463, + 464, 465, 466, 516, 127, 494, 522, 523, 987, 527, + 528, 529, 530, 549, 992, 993, 533, 551, 553, 995, + 315, 563, 634, 566, 633, 635, 637, 648, 1002, 649, + 653, 664, 851, 852, 853, 674, 673, 675, 1010, 677, + 678, 679, 315, 315, 315, 315, 680, 682, 1011, 683, + 684, 282, 472, 696, 315, 690, 1032, 698, 708, 712, + 1223, 713, 727, 738, 1040, 735, 736, 737, 1044, 1045, + 751, 752, 753, 755, 1041, 315, 765, 770, 772, 771, + 777, 778, 781, 780, 1129, 784, 790, 798, 1246, 1058, + 1249, 949, 801, 807, 814, 815, 808, 816, 908, 817, + 818, 1064, 821, 823, 914, 822, 827, 824, 1261, 825, + 826, 828, 829, 921, 922, 923, 837, 838, 1075, 926, + 839, 845, 846, 847, 931, 932, 849, 848, 850, 854, + 859, 860, 862, 864, 1087, 946, 861, 863, 1091, 886, + 1092, 869, 880, 314, 887, 897, 904, 1097, 905, 909, + 910, 912, 1101, 911, 988, 913, 915, 916, 1188, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 917, 919, 924, 925, 302, 953, 971, + 927, 1117, 928, 1120, 1093, 1123, 929, 282, 1017, 930, + 1020, 938, 1023, 952, 1131, 954, 955, 959, 970, 960, + 974, 975, 1136, 1137, 977, 980, 981, 982, 983, 1140, + 989, 990, 991, 986, 994, 996, 1142, 998, 999, 1145, + 1003, 1008, 1009, 1000, 1004, 1005, 1006, 1007, 1018, 1021, + 1024, 1050, 1027, 315, 1047, 1051, 1052, 488, 1055, 969, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 287, 976, 1033, 0, 302, 0, 858, 0, 0, - 0, 0, 0, 0, 1046, 0, 0, 0, 0, 0, - 0, 1114, 0, 1117, 0, 1120, 0, 0, 76, 309, - 0, 0, 0, 0, 80, 81, 82, 0, 0, 83, + 301, 1175, 1033, 1054, 1179, 302, 1057, 1183, 1063, 1056, + 1066, 1186, 1067, 1046, 1065, 1068, 1069, 1070, 1073, 1191, + 76, 309, 1193, 1071, 1074, 1078, 80, 81, 82, 1083, + 1076, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 1080, 1082, 1085, 1086, 1088, 1095, 1090, 1102, + 1106, 310, 1104, 1107, 1108, 1109, 1110, 1112, 1139, 1135, + 1141, 1144, 1156, 1160, 1084, 1162, 1118, 1157, 1121, 1171, + 1124, 1169, 32, 33, 34, 35, 36, 1173, 1176, 1177, + 39, 1180, 1181, 42, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 1184, 1194, + 1227, 1185, 302, 1201, 1195, 1197, 1206, 1199, 1213, 1216, + 1219, 1211, 110, 111, 112, 113, 1207, 1225, 1226, 1229, + 1231, 1233, 1128, 1237, 1240, 1239, 1242, 1244, 1247, 118, + 311, 1251, 1257, 1258, 120, 1259, 1260, 1262, 1163, 123, + 899, 907, 65, 72, 126, 525, 976, 513, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 77, + 78, 0, 79, 1155, 80, 81, 82, 315, 0, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, - 0, 0, 0, 0, 0, 1080, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32, 33, 34, 35, 36, 315, 0, 0, 39, 0, - 0, 42, 0, 0, 0, 0, 0, 0, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 0, 1124, - 110, 111, 112, 113, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 118, 311, 0, - 0, 0, 120, 0, 0, 0, 0, 123, 0, 0, - 0, 0, 126, 0, 0, 513, 0, 76, 77, 78, - 1151, 79, 0, 80, 81, 82, 0, 1089, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 0, - 104, 105, 106, 107, 0, 0, 108, 0, 0, 0, - 0, 0, 0, 0, 0, 76, 309, 338, 0, 0, - 0, 80, 81, 82, 0, 0, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, - 0, 0, 0, 109, 0, 0, 0, 0, 0, 110, - 111, 112, 113, 114, 115, 116, 117, 32, 33, 34, - 35, 36, 0, 0, 0, 39, 118, 119, 42, 315, - 0, 120, 0, 121, 122, 0, 123, 0, 124, 0, - 125, 126, 0, 127, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 110, 111, 112, - 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 328, 0, 0, 0, 120, - 0, 0, 0, 0, 123, 0, 76, 309, 0, 126, - 0, 329, 80, 81, 82, 0, 0, 83, 84, 85, + 0, 104, 105, 106, 107, 0, 0, 108, 0, 0, + 0, 0, 0, 0, 0, 0, 76, 309, 338, 0, + 0, 0, 80, 81, 82, 0, 0, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 310, 7, 8, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32, 33, - 34, 35, 36, 0, 0, 0, 39, 0, 0, 42, - 467, 14, 15, 468, 17, 18, 469, 20, 470, 22, - 0, 23, 0, 25, 26, 0, 28, 29, 30, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 110, 111, - 112, 113, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 46, 47, 48, 118, 328, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 310, 0, 0, + 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, + 110, 111, 112, 113, 114, 115, 116, 117, 32, 33, + 34, 35, 36, 0, 0, 0, 39, 118, 119, 42, + 0, 0, 120, 0, 121, 122, 0, 123, 0, 124, + 0, 125, 126, 0, 127, 0, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 110, 111, + 112, 113, 302, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 118, 328, 0, 0, 0, 120, 0, 0, 0, 0, 123, 0, 76, 309, 0, 126, 0, 329, 80, 81, 82, 0, 0, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 0, - 0, 0, 0, 0, 0, 0, 558, 0, 310, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 310, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, - 33, 34, 35, 36, 472, 0, 0, 39, 0, 0, + 33, 34, 35, 36, 0, 0, 0, 39, 0, 0, 42, 467, 14, 15, 468, 17, 18, 469, 20, 470, 22, 0, 23, 0, 25, 26, 0, 28, 29, 30, - 0, 0, 0, 0, 0, 488, 0, 0, 0, 110, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 46, 47, 48, 118, 311, 0, 0, + 0, 0, 0, 46, 47, 48, 118, 328, 0, 0, 0, 120, 0, 0, 0, 0, 123, 0, 76, 309, - 0, 126, 0, 512, 80, 81, 82, 0, 0, 83, + 0, 126, 0, 329, 80, 81, 82, 0, 0, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 0, 0, 0, 0, 0, 0, 0, 572, 0, 310, - 0, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 32, 33, 34, 35, 36, 0, 0, 0, 39, 0, - 0, 42, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 556, 0, 310, + 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 33, 34, 35, 36, 636, 0, 0, 39, 0, + 0, 42, 467, 14, 15, 468, 17, 18, 469, 20, + 470, 22, 0, 23, 0, 25, 26, 0, 28, 29, + 30, 0, 0, 0, 0, 0, 779, 0, 0, 0, 110, 111, 112, 113, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 118, 311, 0, + 0, 0, 0, 0, 46, 47, 48, 118, 311, 0, 0, 0, 120, 0, 0, 0, 0, 123, 0, 76, - 269, 219, 126, 0, 689, 80, 81, 82, 0, 0, + 309, 0, 126, 0, 512, 80, 81, 82, 0, 0, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 0, 104, 105, 106, 107, 76, 269, 108, 7, - 8, 0, 80, 81, 82, 0, 0, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 0, 0, - 0, 467, 14, 15, 468, 17, 18, 469, 20, 470, - 22, 0, 23, 0, 25, 26, 0, 28, 29, 30, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 103, 0, 0, 0, 0, 0, 0, 0, 570, 0, + 310, 0, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, + 302, 32, 33, 34, 35, 36, 0, 0, 0, 39, + 0, 0, 42, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, + 0, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, 0, 0, 0, 0, - 0, 0, 0, 46, 47, 48, 0, 0, 118, 119, + 0, 0, 0, 0, 0, 0, 0, 0, 118, 311, 0, 0, 0, 120, 0, 0, 0, 0, 123, 0, - 0, 0, 0, 126, 0, 1039, 0, 0, 110, 111, - 112, 113, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 638, 118, 119, 0, 0, 0, - 120, 0, 0, 0, 0, 123, 0, 573, 274, 0, - 126, 0, 275, 76, 269, 0, 0, 0, 0, 80, - 81, 82, 0, 0, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 0, 0, 0, 76, 269, - 7, 8, 0, 0, 80, 81, 82, 0, 0, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 76, 269, 219, 126, 0, 687, 80, 81, 82, 0, + 0, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 0, 104, 105, 106, 107, 76, 269, 108, + 7, 8, 0, 80, 81, 82, 0, 0, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 0, 0, 0, 467, 14, 15, 468, 17, 18, 469, 20, 470, 22, 0, 23, 0, 25, 26, 0, 28, 29, - 30, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 110, 111, 112, 113, 302, - 0, 0, 0, 0, 46, 47, 48, 0, 0, 0, - 0, 0, 118, 119, 0, 0, 0, 120, 0, 0, - 0, 0, 123, 0, 0, 667, 0, 126, 0, 668, - 110, 111, 112, 113, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 364, 365, 0, - 0, 819, 120, 0, 0, 0, 0, 366, 724, 76, - 309, 0, 126, 0, 174, 80, 81, 82, 0, 0, + 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 110, 111, 112, 113, 0, 0, 0, 0, + 0, 0, 0, 0, 46, 47, 48, 0, 0, 118, + 119, 0, 0, 0, 120, 0, 0, 0, 0, 123, + 0, 0, 0, 0, 126, 0, 1039, 0, 0, 110, + 111, 112, 113, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 813, 118, 119, 0, 0, + 0, 120, 0, 0, 0, 0, 123, 0, 571, 274, + 0, 126, 0, 275, 76, 269, 0, 0, 0, 0, + 80, 81, 82, 0, 0, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 0, 0, 0, 76, + 269, 7, 8, 0, 0, 80, 81, 82, 0, 0, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 310, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 32, 33, 34, 35, 36, 0, 76, 269, 39, - 0, 0, 42, 80, 81, 82, 0, 0, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 0, - 0, 110, 111, 112, 113, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 118, 311, - 0, 0, 0, 120, 76, 269, 219, 0, 123, 0, - 80, 81, 82, 126, 0, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 0, 104, 105, 106, - 107, 0, 0, 108, 0, 0, 0, 0, 0, 110, - 111, 112, 113, 0, 0, 7, 8, 779, 0, 0, - 0, 0, 0, 0, 0, 0, 118, 119, 0, 0, - 0, 120, 0, 0, 0, 0, 123, 0, 0, 0, - 0, 126, 0, 0, 0, 0, 0, 467, 14, 15, - 468, 17, 18, 469, 20, 470, 22, 0, 23, 0, - 25, 26, 0, 28, 29, 30, 110, 111, 112, 113, - 7, 8, 0, 0, 813, 0, 0, 0, 0, 0, - 0, 0, 0, 118, 119, 0, 0, 0, 120, 46, - 47, 48, 0, 123, 844, 0, 0, 0, 126, 0, - 0, 0, 467, 14, 15, 468, 17, 18, 469, 20, - 470, 22, 0, 23, 888, 25, 26, 0, 28, 29, - 30, 7, 8, 0, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 740, 46, 47, 48, 1053, 0, 0, + 103, 0, 0, 467, 14, 15, 468, 17, 18, 469, + 20, 470, 22, 0, 23, 0, 25, 26, 0, 28, + 29, 30, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 110, 111, 112, 113, + 302, 0, 0, 0, 0, 46, 47, 48, 0, 0, + 0, 0, 0, 118, 119, 0, 0, 0, 120, 0, + 0, 0, 0, 123, 0, 0, 665, 0, 126, 0, + 666, 110, 111, 112, 113, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 364, 365, + 0, 0, 819, 120, 0, 0, 0, 0, 366, 724, + 76, 309, 0, 126, 0, 174, 80, 81, 82, 0, + 0, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 310, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, + 302, 0, 32, 33, 34, 35, 36, 0, 76, 269, + 39, 0, 0, 42, 80, 81, 82, 0, 0, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 0, 0, 110, 111, 112, 113, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, + 311, 0, 0, 0, 120, 76, 269, 219, 0, 123, + 0, 80, 81, 82, 126, 0, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 0, 104, 105, + 106, 107, 0, 0, 108, 0, 0, 0, 0, 0, + 110, 111, 112, 113, 0, 0, 7, 8, 844, 0, + 0, 0, 0, 0, 0, 0, 0, 118, 119, 0, + 0, 0, 120, 0, 0, 0, 0, 123, 0, 0, + 0, 0, 126, 0, 0, 0, 0, 0, 467, 14, + 15, 468, 17, 18, 469, 20, 470, 22, 0, 23, + 0, 25, 26, 0, 28, 29, 30, 110, 111, 112, + 113, 7, 8, 0, 0, 888, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 119, 0, 0, 0, 120, + 46, 47, 48, 0, 123, 1053, 0, 0, 0, 126, 0, 0, 0, 467, 14, 15, 468, 17, 18, 469, - 20, 470, 22, 0, 23, 0, 25, 26, 1068, 28, - 29, 30, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 470, 22, 0, 23, 1072, 25, 26, 0, 28, + 29, 30, 7, 8, 0, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, + 0, 0, 0, 302, 740, 46, 47, 48, 1094, 0, + 0, 0, 0, 0, 467, 14, 15, 468, 17, 18, + 469, 20, 470, 22, 0, 23, 0, 25, 26, 1161, + 28, 29, 30, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 46, 47, 48, 1158, + 302, 1202, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, + 302, 0, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 497, 0, 0, 0, + 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1204, 0, 0, 0, 0, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 567, + 0, 0, 0, 302, 0, 0, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 658, 0, 0, 0, 302, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 797, 0, 0, 0, 302, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 46, 47, 48, 1154, 302, - 1090, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 1157, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 1198, 0, 0, 0, 0, 0, 0, 0, 0, 1200, + 297, 298, 515, 300, 301, 856, 0, 0, 0, 302, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 497, 0, + 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 497, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 569, 0, 0, 0, 302, 0, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 660, 0, 0, 0, 302, 0, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 797, 0, 0, 0, 302, 0, 0, 0, 0, - 0, 0, 0, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 498, 300, 301, 856, 0, 0, - 0, 302, 0, 0, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 515, 300, 301, 0, 0, + 301, 0, -4, 1, 0, 302, -4, 0, 0, 0, + 0, 0, 0, 0, -4, -4, 0, 0, 0, 0, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 0, 0, 0, -4, 302, 0, + 0, 0, -4, -4, 0, -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, 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, 0, 23, 24, 25, 26, 27, 28, + 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, + 37, 38, 39, 40, 41, 42, 7, 8, 43, 44, + 0, 0, 0, 0, 45, 46, 47, 48, 0, 0, + 49, 0, 50, 0, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 0, 0, 0, 0, 467, 14, + 15, 468, 17, 18, 469, 20, 470, 22, 0, 23, + 0, 25, 26, 0, 28, 29, 30, 0, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, + 46, 47, 48, 1014, 0, 1015, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, + 0, 1034, 0, 1035, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, + 0, 0, 302, 0, 0, 0, 0, 0, 0, 1115, + 0, 1116, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, + 302, 0, 0, 0, 0, 0, 0, 0, 0, 691, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, + 0, 0, 0, 0, 0, 0, 0, 749, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, + 0, 0, 0, 0, 0, 796, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, + 0, 0, 0, 833, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 288, 289, 290, 291, + 0, 1012, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, + 302, 0, 0, 0, 0, 0, 0, 0, 0, 1029, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, + 0, 0, 0, 0, 0, 0, 0, 1059, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, + 0, 0, 0, 0, 0, 1060, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 288, 289, 290, 291, + 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, + 0, 0, 0, 1061, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, + 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, + 0, 1062, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, + 302, 0, 0, 0, 0, 0, 0, 0, 0, 1089, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, + 0, 0, 0, 0, 0, 0, 0, 1130, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, + 0, 0, 0, 0, 0, 1132, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 288, 289, 290, 291, + 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, + 0, 0, 0, 1133, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, + 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, + 0, 1146, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, + 302, 0, 0, 0, 0, 0, 0, 0, 0, 1149, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, + 0, 0, 0, 0, 0, 0, 0, 1152, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, + 0, 0, 0, 0, 0, 1170, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, - 0, 0, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, -4, 1, 0, - 302, -4, 0, 0, 0, 0, 0, 0, 0, -4, - -4, 0, 288, 289, 290, 291, 292, 293, 294, 295, + 0, 0, 0, 1172, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, + 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, + 0, 1196, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, -4, 0, 0, 0, 0, -4, -4, 693, - -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, 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, 0, 23, - 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, - 33, 34, 35, 36, 0, 37, 38, 39, 40, 41, - 42, 7, 8, 43, 44, 0, 0, 0, 0, 45, - 46, 47, 48, 0, 0, 49, 0, 50, 0, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, - 0, 0, 0, 467, 14, 15, 468, 17, 18, 469, - 20, 470, 22, 0, 23, 0, 25, 26, 0, 28, - 29, 30, 0, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 0, 0, 46, 47, 48, 1014, 0, - 1015, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 0, 0, 0, 0, 0, 1034, 0, 1035, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, - 0, 0, 0, 0, 1111, 0, 1112, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 0, 0, 0, - 0, 0, 0, 0, 749, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, - 0, 0, 796, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 0, 0, 0, 0, 0, 0, 0, - 833, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 0, 0, 0, 0, 0, 0, 0, 1012, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, - 0, 0, 0, 0, 0, 0, 1029, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 0, 0, 0, - 0, 0, 0, 0, 1059, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, - 0, 0, 1060, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 0, 0, 0, 0, 0, 0, 0, - 1061, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 0, 0, 0, 0, 0, 0, 0, 1062, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, - 0, 0, 0, 0, 0, 0, 1085, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 0, 0, 0, - 0, 0, 0, 0, 1126, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, - 0, 0, 1128, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 0, 0, 0, 0, 0, 0, 0, - 1129, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 0, 0, 0, 0, 0, 0, 0, 1142, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, - 0, 0, 0, 0, 0, 0, 1145, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 0, 0, 0, - 0, 0, 0, 0, 1148, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, - 0, 0, 1166, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 0, 0, 0, 0, 0, 0, 0, - 1168, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 0, 0, 0, 0, 0, 0, 0, 1192, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, - 0, 0, 0, 0, 0, 0, 1194, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 0, 0, 0, - 0, 0, 0, 0, 1196, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, - 0, 0, 1206, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 455, 0, 0, 0, 0, 537, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, - 0, 0, 0, 0, 491, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, - 537, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 0, 0, 0, 0, 0, 538, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 0, 0, 0, - 0, 0, 566, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 0, 0, 0, 0, 0, 611, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, - 0, 0, 0, 0, 612, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, - 625, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 0, 0, 0, 0, 0, 626, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 0, 0, 0, - 0, 0, 627, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 0, 0, 0, 0, 0, 628, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, - 0, 0, 0, 0, 629, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, - 630, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 0, 0, 0, 0, 0, 715, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 0, 0, 0, - 0, 0, 716, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 0, 0, 0, 0, 0, 717, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, - 0, 0, 0, 0, 793, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, - 831, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 0, 0, 0, 0, 0, 832, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 0, 0, 0, - 0, 0, 855, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 0, 0, 0, 0, 0, 964, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, - 0, 0, 0, 0, 965, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, - 985, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 0, 0, 0, 0, 0, 997, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 0, 0, 0, - 0, 0, 1094, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 0, 0, 0, 0, 0, 1095, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, - 0, 0, 0, 0, 1101, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, - 1107, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 0, 0, 0, 0, 0, 1161, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 0, 0, 0, - 0, 0, 1164, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 0, 0, 459, 288, 289, 290, 291, + 302, 0, 0, 0, 0, 0, 0, 0, 0, 1198, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, + 0, 0, 0, 0, 0, 0, 0, 1200, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, + 0, 0, 0, 0, 0, 1210, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 0, 0, 0, 0, 302, 0, 455, 0, 0, 0, + 0, 535, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, + 302, 0, 0, 0, 0, 0, 0, 491, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, + 0, 0, 0, 535, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, + 0, 0, 302, 0, 0, 0, 0, 0, 0, 536, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, + 0, 0, 0, 0, 0, 564, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, + 0, 609, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, + 302, 0, 0, 0, 0, 0, 0, 610, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, + 0, 0, 0, 623, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, + 0, 0, 302, 0, 0, 0, 0, 0, 0, 624, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, + 0, 0, 0, 0, 0, 625, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, + 0, 626, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, + 302, 0, 0, 0, 0, 0, 0, 627, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, + 0, 0, 0, 628, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, + 0, 0, 302, 0, 0, 0, 0, 0, 0, 715, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, + 0, 0, 0, 0, 0, 716, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 0, 0, 571, 288, + 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, + 0, 717, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, + 302, 0, 0, 0, 0, 0, 0, 793, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, + 0, 0, 0, 831, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, + 0, 0, 302, 0, 0, 0, 0, 0, 0, 832, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, + 0, 0, 0, 0, 0, 855, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, + 0, 964, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, + 302, 0, 0, 0, 0, 0, 0, 965, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, + 0, 0, 0, 985, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, + 0, 0, 302, 0, 0, 0, 0, 0, 0, 997, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, + 0, 0, 0, 0, 0, 1098, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, + 0, 1099, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, + 302, 0, 0, 0, 0, 0, 0, 1105, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, + 0, 0, 0, 1111, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, + 0, 0, 302, 0, 0, 0, 0, 0, 0, 1165, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, + 0, 0, 0, 0, 0, 1168, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 0, 0, 0, 0, 302, 0, 0, 0, 459, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, - 0, 575, 288, 289, 290, 291, 292, 293, 294, 295, + 0, 569, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 0, 0, 590, 288, 289, 290, 291, 292, + 302, 0, 0, 0, 573, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 0, 0, 592, 288, 289, + 0, 0, 0, 302, 0, 0, 0, 588, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, - 594, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 590, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 0, 0, 596, 288, 289, 290, 291, 292, 293, + 0, 0, 0, 592, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 0, 0, 598, 288, 289, 290, + 0, 0, 302, 0, 0, 0, 594, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 0, 0, 600, + 301, 0, 0, 0, 0, 302, 0, 0, 0, 596, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 0, 0, 602, 288, 289, 290, 291, 292, 293, 294, + 0, 0, 598, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 0, 0, 604, 288, 289, 290, 291, + 0, 302, 0, 0, 0, 600, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 0, 0, 606, 288, + 0, 0, 0, 0, 302, 0, 0, 0, 602, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, - 0, 608, 288, 289, 290, 291, 292, 293, 294, 295, + 0, 604, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 0, 0, 610, 288, 289, 290, 291, 292, + 302, 0, 0, 0, 606, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 0, 0, 614, 288, 289, + 0, 0, 0, 302, 0, 0, 0, 608, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, - 616, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 612, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 0, 0, 618, 288, 289, 290, 291, 292, 293, + 0, 0, 0, 614, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 0, 0, 620, 288, 289, 290, + 0, 0, 302, 0, 0, 0, 616, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 0, 0, 622, + 301, 0, 0, 0, 0, 302, 0, 0, 0, 618, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 0, 0, 624, 288, 289, 290, 291, 292, 293, 294, + 0, 0, 620, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 0, 0, 730, 288, 289, 290, 291, + 0, 302, 0, 0, 0, 622, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 0, 0, 731, 288, + 0, 0, 0, 0, 302, 0, 0, 0, 730, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, - 0, 733, 288, 289, 290, 291, 292, 293, 294, 295, + 0, 731, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 0, 0, 734, 288, 289, 290, 291, 292, + 302, 0, 0, 0, 733, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 0, 0, 745, 288, 289, + 0, 0, 0, 302, 0, 0, 0, 734, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, - 769, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 745, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 0, 0, 871, 288, 289, 290, 291, 292, 293, + 0, 0, 0, 769, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 0, 0, 873, 288, 289, 290, + 0, 0, 302, 0, 0, 0, 871, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 0, 0, 875, + 301, 0, 0, 0, 0, 302, 0, 0, 0, 873, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 0, 0, 877, 288, 289, 290, 291, 292, 293, 294, + 0, 0, 875, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 0, 0, 878, 288, 289, 290, 291, + 0, 302, 0, 0, 0, 877, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 0, 0, 978, 288, + 0, 0, 0, 0, 302, 0, 0, 0, 878, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 455, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 492, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 501, 288, 289, 290, 291, 292, 293, 294, 295, + 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, + 0, 978, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 502, 288, 289, 290, 291, 292, 293, 294, + 302, 0, 455, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 504, 288, 289, 290, 291, 292, 293, + 0, 302, 0, 492, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 506, 288, 289, 290, 291, 292, + 0, 0, 302, 0, 501, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 507, 288, 289, 290, 291, + 0, 0, 0, 302, 0, 502, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 510, 288, 289, 290, + 0, 0, 0, 0, 302, 0, 504, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 511, 288, 289, + 301, 0, 0, 0, 0, 302, 0, 506, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 518, 288, + 300, 301, 0, 0, 0, 0, 302, 0, 507, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 562, + 299, 300, 301, 0, 0, 0, 0, 302, 0, 510, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 563, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 511, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 564, 288, 289, 290, 291, 292, 293, 294, 295, + 0, 518, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 570, 288, 289, 290, 291, 292, 293, 294, + 302, 0, 560, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 589, 288, 289, 290, 291, 292, 293, + 0, 302, 0, 561, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 591, 288, 289, 290, 291, 292, + 0, 0, 302, 0, 562, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 593, 288, 289, 290, 291, + 0, 0, 0, 302, 0, 568, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 595, 288, 289, 290, + 0, 0, 0, 0, 302, 0, 587, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 597, 288, 289, + 301, 0, 0, 0, 0, 302, 0, 589, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 599, 288, + 300, 301, 0, 0, 0, 0, 302, 0, 591, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 601, + 299, 300, 301, 0, 0, 0, 0, 302, 0, 593, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 603, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 595, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 605, 288, 289, 290, 291, 292, 293, 294, 295, + 0, 597, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 607, 288, 289, 290, 291, 292, 293, 294, + 302, 0, 599, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 609, 288, 289, 290, 291, 292, 293, + 0, 302, 0, 601, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 613, 288, 289, 290, 291, 292, + 0, 0, 302, 0, 603, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 615, 288, 289, 290, 291, + 0, 0, 0, 302, 0, 605, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 617, 288, 289, 290, + 0, 0, 0, 0, 302, 0, 607, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 619, 288, 289, + 301, 0, 0, 0, 0, 302, 0, 611, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 621, 288, + 300, 301, 0, 0, 0, 0, 302, 0, 613, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 623, + 299, 300, 301, 0, 0, 0, 0, 302, 0, 615, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 678, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 617, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 683, 288, 289, 290, 291, 292, 293, 294, 295, + 0, 619, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 691, 288, 289, 290, 291, 292, 293, 294, + 302, 0, 621, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 694, 288, 289, 290, 291, 292, 293, + 0, 302, 0, 676, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 695, 288, 289, 290, 291, 292, + 0, 0, 302, 0, 681, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 701, 288, 289, 290, 291, + 0, 0, 0, 302, 0, 689, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 706, 288, 289, 290, + 0, 0, 0, 0, 302, 0, 692, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 707, 288, 289, + 301, 0, 0, 0, 0, 302, 0, 693, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 729, 288, + 300, 301, 0, 0, 0, 0, 302, 0, 699, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 870, + 299, 300, 301, 0, 0, 0, 0, 302, 0, 706, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 872, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 707, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 874, 288, 289, 290, 291, 292, 293, 294, 295, + 0, 729, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 876, 288, 289, 290, 291, 292, 293, 294, + 302, 0, 870, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 881, 288, 289, 290, 291, 292, 293, + 0, 302, 0, 872, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 1013, 288, 289, 290, 291, 292, + 0, 0, 302, 0, 874, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 1028, 288, 289, 290, 291, + 0, 0, 0, 302, 0, 876, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 1038, 288, 289, 290, + 0, 0, 0, 0, 302, 0, 881, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 1160, 288, 289, + 301, 0, 0, 0, 0, 302, 0, 1013, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 1204, 288, + 300, 301, 0, 0, 0, 0, 302, 0, 1028, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302 + 299, 300, 301, 0, 0, 0, 0, 302, 0, 1038, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, + 1164, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, + 0, 1208, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, + 302 }; static const yytype_int16 yycheck[] = { - 6, 264, 265, 266, 358, 359, 3, 6, 182, 1047, - 6, 6, 70, 6, 4, 189, 7, 277, 4, 4, - 4, 4, 4, 4, 653, 13, 5, 5, 50, 1067, - 6, 6, 70, 7, 721, 4, 210, 6, 212, 129, - 130, 4, 71, 160, 161, 122, 123, 70, 77, 78, - 71, 6, 4, 5, 71, 132, 77, 78, 71, 132, - 77, 78, 139, 6, 77, 78, 139, 184, 725, 71, - 132, 122, 123, 0, 132, 77, 78, 139, 122, 123, - 79, 139, 132, 7, 36, 37, 38, 39, 139, 139, - 42, 81, 82, 83, 84, 139, 132, 44, 134, 7, - 47, 139, 50, 50, 70, 52, 91, 92, 91, 92, - 132, 140, 118, 119, 120, 99, 139, 123, 124, 140, - 132, 112, 128, 140, 119, 1163, 119, 140, 134, 47, - 127, 137, 50, 6, 140, 141, 142, 143, 140, 145, - 146, 147, 148, 6, 150, 151, 152, 129, 130, 155, - 140, 780, 134, 139, 136, 139, 843, 54, 139, 141, - 139, 139, 136, 139, 139, 134, 132, 173, 174, 132, - 132, 33, 34, 139, 36, 7, 182, 129, 130, 122, - 123, 6, 7, 1221, 136, 109, 110, 111, 112, 50, - 196, 197, 198, 132, 200, 369, 4, 203, 204, 459, - 206, 109, 110, 111, 112, 129, 130, 132, 214, 345, - 346, 347, 136, 132, 388, 221, 222, 223, 224, 225, + 6, 358, 359, 6, 277, 1047, 3, 264, 265, 266, + 6, 4, 50, 4, 6, 6, 6, 4, 4, 651, + 5, 4, 4, 70, 5, 4, 6, 70, 6, 1071, + 71, 7, 4, 7, 71, 4, 77, 78, 71, 70, + 77, 78, 71, 132, 77, 78, 71, 5, 77, 78, + 139, 6, 77, 78, 71, 70, 6, 71, 160, 161, + 77, 78, 132, 77, 78, 124, 125, 126, 725, 139, + 182, 721, 131, 0, 4, 7, 6, 189, 36, 37, + 38, 39, 184, 79, 42, 132, 122, 123, 81, 82, + 83, 84, 139, 132, 132, 134, 139, 13, 210, 140, + 212, 132, 138, 140, 140, 129, 130, 140, 139, 91, + 92, 140, 118, 119, 120, 140, 99, 123, 124, 91, + 92, 50, 128, 140, 139, 1167, 140, 119, 134, 6, + 127, 137, 122, 123, 140, 141, 142, 143, 112, 145, + 146, 147, 148, 134, 150, 151, 152, 140, 780, 155, + 129, 130, 139, 139, 139, 134, 139, 136, 139, 139, + 136, 139, 141, 132, 119, 122, 123, 173, 174, 133, + 122, 123, 33, 34, 138, 36, 182, 109, 110, 111, + 112, 146, 139, 1225, 132, 150, 459, 139, 6, 71, + 196, 197, 198, 843, 200, 77, 78, 203, 204, 71, + 206, 44, 54, 4, 47, 77, 78, 50, 214, 52, + 47, 132, 132, 50, 134, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 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, 65, 66, 67, - 68, 267, 891, 129, 130, 73, 71, 132, 76, 275, - 136, 8, 77, 78, 4, 132, 6, 109, 110, 111, - 112, 277, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 129, 130, 122, - 123, 50, 122, 123, 7, 311, 47, 50, 170, 50, - 172, 52, 575, 319, 52, 138, 178, 140, 324, 139, - 182, 133, 328, 329, 122, 123, 138, 333, 132, 335, - 336, 337, 139, 122, 123, 140, 139, 343, 344, 345, - 346, 347, 348, 349, 71, 344, 345, 346, 347, 138, - 77, 78, 132, 50, 134, 361, 362, 363, 364, 365, - 366, 358, 359, 50, 47, 44, 372, 47, 47, 375, - 376, 50, 635, 379, 380, 381, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 4, 153, 398, 4, 131, 401, 4, 159, 160, 161, - 663, 132, 6, 140, 400, 71, 109, 110, 111, 112, - 133, 77, 78, 140, 132, 138, 134, 1074, 132, 1076, - 134, 1078, 184, 185, 133, 1054, 129, 130, 1115, 138, - 71, 1118, 71, 132, 1121, 71, 77, 78, 77, 78, - 132, 77, 78, 122, 123, 71, 122, 123, 454, 5, - 71, 77, 78, 132, 132, 461, 77, 78, 4, 71, - 139, 460, 138, 459, 140, 77, 78, 122, 123, 124, - 125, 126, 133, 132, 146, 134, 131, 138, 150, 4, - 36, 37, 38, 39, 490, 491, 42, 493, 494, 122, - 123, 497, 498, 499, 356, 357, 1183, 134, 1155, 140, - 132, 140, 134, 365, 140, 138, 512, 140, 139, 515, - 516, 7, 772, 773, 140, 133, 522, 122, 123, 140, - 138, 1208, 132, 132, 1211, 122, 123, 1214, 140, 132, - 1217, 537, 538, 138, 1191, 4, 1193, 543, 1195, 122, - 123, 138, 4, 5, 1201, 551, 132, 553, 122, 123, - 1237, 132, 1239, 134, 1241, 138, 132, 122, 123, 132, - 566, 134, 568, 569, 138, 132, 6, 134, 1225, 132, - 1227, 134, 1229, 138, 36, 37, 38, 39, 6, 575, - 42, 141, 6, 132, 938, 134, 146, 5, 122, 123, - 150, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 275, 138, 611, 612, 131, 139, 132, - 122, 123, 8, 122, 123, 122, 123, 132, 132, 625, - 626, 627, 628, 629, 630, 631, 138, 132, 634, 138, - 132, 138, 134, 639, 129, 130, 899, 4, 132, 134, - 646, 136, 122, 123, 122, 123, 141, 132, 132, 134, - 656, 657, 658, 659, 660, 132, 132, 329, 138, 132, - 138, 134, 668, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 536, 124, 125, 126, 131, 129, - 130, 132, 131, 689, 134, 132, 136, 549, 132, 139, - 134, 141, 134, 132, 456, 457, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 132, 132, 379, 134, 131, - 139, 132, 132, 134, 134, 275, 1070, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 132, 132, 134, 134, 131, 138, 132, 140, 134, - 138, 138, 140, 140, 140, 751, 752, 134, 138, 136, - 140, 311, 138, 138, 140, 140, 50, 138, 52, 140, - 138, 523, 140, 138, 138, 140, 140, 139, 328, 329, - 138, 132, 140, 769, 138, 781, 140, 773, 138, 138, - 140, 140, 138, 138, 140, 140, 138, 793, 140, 139, - 138, 797, 140, 138, 138, 140, 140, 138, 138, 140, - 140, 138, 6, 140, 666, 138, 138, 140, 140, 815, - 138, 134, 140, 139, 134, 6, 94, 136, 490, 379, - 6, 139, 6, 6, 830, 831, 832, 134, 4, 139, - 131, 6, 838, 839, 5, 7, 842, 136, 134, 845, - 512, 139, 7, 140, 139, 7, 7, 133, 7, 855, - 856, 857, 7, 715, 716, 717, 6, 91, 864, 139, - 133, 138, 133, 869, 138, 6, 862, 4, 135, 7, - 94, 7, 7, 7, 94, 7, 7, 94, 884, 7, - 7, 7, 4, 6, 883, 133, 133, 133, 133, 140, - 140, 6, 136, 7, 7, 7, 136, 132, 904, 132, - 139, 6, 4, 6, 910, 911, 6, 135, 1082, 915, - 6, 6, 134, 7, 676, 677, 6, 679, 924, 681, - 682, 119, 7, 685, 686, 50, 7, 7, 934, 139, - 490, 52, 7, 7, 7, 934, 6, 4, 498, 499, - 1203, 938, 7, 7, 7, 7, 952, 7, 7, 7, - 6, 139, 512, 132, 960, 515, 6, 139, 964, 965, - 6, 960, 634, 50, 6, 6, 4, 4, 1231, 4, - 1233, 4, 6, 735, 736, 737, 6, 133, 132, 985, - 842, 139, 1156, 136, 656, 657, 658, 659, 1251, 7, - 6, 997, 139, 6, 139, 139, 668, 6, 6, 139, - 57, 6, 6, 5, 4, 6, 139, 6, 1014, 139, - 6, 90, 6, 5, 7, 6, 136, 689, 4, 6, - 138, 6, 6, 6, 1030, 6, 135, 6, 1034, 6, - 1036, 6, 6, 1039, 6, 6, 6, 1043, 6, 801, - 94, 6, 1048, 905, 6, 807, 6, 6, 4, 6, - 139, 6, 6, 4, 816, 817, 818, 6, 6, 6, - 822, 823, 824, 825, 826, 827, 828, 1073, 7, 1075, - 136, 1077, 8, 1070, 634, 6, 838, 939, 5, 941, - 1086, 943, 48, 6, 139, 6, 139, 139, 1094, 1095, - 6, 140, 139, 7, 139, 1101, 656, 657, 658, 659, - 139, 6, 1108, 6, 6, 1111, 6, 89, 668, 6, - 6, 6, 92, 6, 139, 139, 6, 5, 140, 6, - 882, 63, 139, 6, 138, 1131, 6, 6, 6, 689, - 6, 6, 6, 6, 140, 5, 139, 1143, 6, 6, - 1146, 139, 139, 1149, 139, 6, 6, 1153, 138, 6, - 139, 6, 5, 800, 6, 1161, 6, 6, 1164, 6, - 6, 139, 6, 139, 6, 6, 139, 6, 6, 792, - 139, 1131, 3, 845, 3, 342, 140, 113, 114, 115, + 256, 257, 258, 259, 260, 261, 262, 369, 140, 891, + 50, 267, 122, 123, 65, 66, 67, 68, 140, 275, + 129, 130, 73, 8, 277, 76, 388, 136, 138, 132, + 140, 134, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 122, 123, 124, + 125, 126, 122, 123, 7, 311, 131, 50, 71, 170, + 275, 172, 132, 319, 77, 78, 573, 178, 324, 139, + 132, 182, 328, 329, 122, 123, 8, 333, 132, 335, + 336, 337, 71, 122, 123, 139, 132, 343, 77, 78, + 153, 139, 348, 349, 71, 132, 159, 160, 161, 138, + 77, 78, 122, 123, 132, 361, 362, 363, 364, 365, + 366, 358, 359, 132, 329, 134, 372, 132, 138, 375, + 376, 184, 185, 379, 380, 381, 633, 140, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 398, 71, 50, 401, 131, 400, 52, 77, + 78, 140, 122, 123, 661, 140, 109, 110, 111, 112, + 71, 6, 7, 140, 379, 132, 77, 78, 138, 141, + 140, 1078, 1054, 1080, 146, 1082, 129, 130, 150, 122, + 123, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 4, 5, 139, 454, 131, + 122, 123, 122, 123, 47, 461, 459, 50, 140, 52, + 122, 123, 140, 132, 460, 134, 138, 50, 138, 1119, + 122, 123, 1122, 122, 123, 1125, 138, 36, 37, 38, + 39, 122, 123, 42, 490, 491, 138, 493, 494, 138, + 50, 497, 498, 499, 139, 356, 357, 138, 133, 772, + 773, 47, 1159, 138, 365, 4, 512, 7, 47, 515, + 516, 7, 122, 123, 133, 133, 522, 132, 4, 138, + 138, 527, 528, 529, 530, 490, 4, 132, 138, 535, + 536, 527, 528, 529, 530, 541, 133, 1187, 1195, 6, + 1197, 138, 1199, 549, 132, 551, 134, 512, 1205, 134, + 4, 5, 132, 275, 134, 528, 529, 530, 564, 132, + 566, 567, 1212, 132, 132, 1215, 134, 132, 1218, 134, + 573, 1221, 1229, 4, 1231, 132, 1233, 134, 122, 123, + 4, 938, 36, 37, 38, 39, 139, 132, 42, 311, + 132, 1241, 134, 1243, 138, 1245, 132, 132, 134, 44, + 132, 132, 47, 609, 610, 50, 328, 329, 7, 109, + 110, 111, 112, 109, 110, 111, 112, 623, 624, 625, + 626, 627, 628, 629, 8, 132, 632, 134, 132, 129, + 130, 637, 4, 129, 130, 132, 136, 134, 644, 122, + 123, 6, 899, 456, 457, 132, 8, 134, 654, 655, + 656, 657, 658, 122, 123, 138, 6, 379, 129, 130, + 666, 6, 132, 134, 134, 136, 5, 632, 139, 138, + 141, 132, 132, 534, 134, 129, 130, 122, 123, 132, + 132, 687, 136, 132, 139, 134, 547, 132, 132, 654, + 655, 656, 657, 132, 139, 129, 130, 132, 4, 134, + 134, 666, 136, 6, 132, 132, 134, 141, 6, 132, + 523, 134, 138, 138, 140, 140, 138, 1074, 140, 134, + 132, 136, 687, 132, 138, 138, 140, 140, 139, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 139, 139, 751, 752, 131, 138, 133, + 140, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 50, 769, 52, 490, 131, + 773, 138, 138, 140, 140, 781, 498, 499, 138, 138, + 140, 140, 138, 138, 140, 140, 138, 793, 140, 132, + 512, 797, 134, 515, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 664, 138, 134, 140, 131, 139, 815, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 830, 831, 832, 138, 131, 140, + 134, 6, 838, 839, 136, 94, 842, 6, 138, 845, + 140, 138, 138, 140, 140, 138, 138, 140, 140, 855, + 856, 857, 139, 6, 715, 716, 717, 6, 864, 862, + 134, 674, 675, 869, 677, 4, 679, 680, 139, 6, + 683, 684, 138, 138, 140, 140, 5, 138, 884, 140, + 845, 138, 138, 140, 140, 131, 138, 883, 140, 136, + 7, 134, 140, 7, 139, 139, 7, 7, 904, 132, + 132, 132, 132, 7, 910, 911, 133, 7, 6, 915, + 632, 91, 133, 139, 138, 133, 138, 6, 924, 4, + 135, 7, 735, 736, 737, 7, 94, 7, 934, 7, + 94, 7, 654, 655, 656, 657, 7, 94, 934, 7, + 7, 938, 6, 4, 666, 7, 952, 6, 136, 140, + 1207, 140, 6, 136, 960, 7, 7, 7, 964, 965, + 132, 132, 139, 6, 960, 687, 4, 6, 135, 6, + 6, 6, 134, 7, 1086, 6, 119, 50, 1235, 985, + 1237, 842, 7, 7, 7, 139, 52, 7, 801, 7, + 7, 997, 6, 133, 807, 7, 7, 133, 1255, 133, + 133, 7, 4, 816, 817, 818, 6, 139, 1014, 822, + 132, 139, 6, 6, 827, 828, 6, 50, 6, 4, + 4, 4, 4, 132, 1030, 838, 6, 6, 1034, 136, + 1036, 139, 133, 1039, 7, 6, 139, 1043, 57, 6, + 139, 6, 1048, 139, 905, 6, 139, 6, 1160, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 6, 5, 4, 6, 131, 6, 882, + 7, 1077, 7, 1079, 1039, 1081, 7, 1074, 939, 7, + 941, 139, 943, 139, 1090, 6, 90, 6, 136, 7, + 6, 4, 1098, 1099, 6, 6, 6, 6, 6, 1105, + 6, 6, 6, 135, 6, 5, 1112, 6, 6, 1115, + 6, 6, 4, 94, 927, 928, 929, 930, 6, 6, + 6, 4, 138, 845, 139, 6, 6, 6, 6, 1135, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 6, 887, 955, -1, 131, -1, 133, -1, -1, - -1, -1, -1, -1, 966, -1, -1, -1, -1, -1, - -1, 1073, -1, 1075, -1, 1077, -1, -1, 3, 4, - -1, -1, -1, -1, 9, 10, 11, -1, -1, 14, + 126, 1147, 955, 7, 1150, 131, 6, 1153, 5, 136, + 6, 1157, 6, 966, 48, 6, 6, 6, 6, 1165, + 3, 4, 1168, 139, 139, 139, 9, 10, 11, 6, + 140, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 139, 139, 7, 139, 6, 6, 89, 6, + 6, 44, 92, 6, 6, 6, 6, 139, 6, 139, + 5, 140, 6, 139, 1027, 6, 1077, 63, 1079, 6, + 1081, 138, 65, 66, 67, 68, 69, 6, 6, 6, + 73, 6, 6, 76, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 6, 5, + 5, 140, 131, 6, 139, 139, 6, 139, 6, 6, + 6, 138, 105, 106, 107, 108, 139, 139, 6, 139, + 139, 139, 1085, 139, 6, 140, 6, 6, 6, 122, + 123, 6, 6, 6, 127, 6, 6, 6, 1135, 132, + 792, 800, 3, 3, 137, 342, 887, 140, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, + 5, -1, 7, 1126, 9, 10, 11, 1039, -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, 44, - -1, -1, -1, -1, -1, 1027, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 65, 66, 67, 68, 69, 845, -1, -1, 73, -1, - -1, 76, -1, -1, -1, -1, -1, -1, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, -1, -1, -1, -1, 131, -1, -1, 1081, - 105, 106, 107, 108, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, - -1, -1, 127, -1, -1, -1, -1, 132, -1, -1, - -1, -1, 137, -1, -1, 140, -1, 3, 4, 5, - 1122, 7, -1, 9, 10, 11, -1, 1039, 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, -1, -1, - -1, -1, -1, -1, -1, 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, 44, -1, -1, -1, - -1, -1, -1, 99, -1, -1, -1, -1, -1, 105, - 106, 107, 108, 109, 110, 111, 112, 65, 66, 67, - 68, 69, -1, -1, -1, 73, 122, 123, 76, 1039, - -1, 127, -1, 129, 130, -1, 132, -1, 134, -1, - 136, 137, -1, 139, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, - 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 122, 123, -1, -1, -1, 127, - -1, -1, -1, -1, 132, -1, 3, 4, -1, 137, - -1, 139, 9, 10, 11, -1, -1, 14, 15, 16, + -1, 36, 37, 38, 39, -1, -1, 42, -1, -1, + -1, -1, -1, -1, -1, -1, 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, 44, 12, 13, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, - 67, 68, 69, -1, -1, -1, 73, -1, -1, 76, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - -1, 55, -1, 57, 58, -1, 60, 61, 62, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 105, 106, - 107, 108, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 86, 87, 88, 122, 123, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, + -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, + 105, 106, 107, 108, 109, 110, 111, 112, 65, 66, + 67, 68, 69, -1, -1, -1, 73, 122, 123, 76, + -1, -1, 127, -1, 129, 130, -1, 132, -1, 134, + -1, 136, 137, -1, 139, -1, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 105, 106, + 107, 108, 131, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 122, 123, -1, -1, -1, 127, -1, -1, -1, -1, 132, -1, 3, 4, -1, 137, -1, 139, 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, 140, -1, 44, 12, + -1, -1, -1, -1, -1, -1, -1, -1, 44, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, - 66, 67, 68, 69, 6, -1, -1, 73, -1, -1, + 66, 67, 68, 69, -1, -1, -1, 73, -1, -1, 76, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, -1, 57, 58, -1, 60, 61, 62, - -1, -1, -1, -1, -1, 6, -1, -1, -1, 105, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 86, 87, 88, 122, 123, -1, -1, -1, 127, -1, -1, -1, -1, 132, -1, 3, 4, @@ -2292,287 +2271,294 @@ static const yytype_int16 yycheck[] = 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, 140, -1, 44, - -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, - 65, 66, 67, 68, 69, -1, -1, -1, 73, -1, - -1, 76, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, - 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 65, 66, 67, 68, 69, 6, -1, -1, 73, -1, + -1, 76, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, -1, 55, -1, 57, 58, -1, 60, 61, + 62, -1, -1, -1, -1, -1, 6, -1, -1, -1, 105, 106, 107, 108, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, + -1, -1, -1, -1, 86, 87, 88, 122, 123, -1, -1, -1, 127, -1, -1, -1, -1, 132, -1, 3, - 4, 5, 137, -1, 139, 9, 10, 11, -1, -1, + 4, -1, 137, -1, 139, 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, 3, 4, 42, 12, - 13, -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, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, -1, 55, -1, 57, 58, -1, 60, 61, 62, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 34, -1, -1, -1, -1, -1, -1, -1, 140, -1, + 44, -1, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, + 131, 65, 66, 67, 68, 69, -1, -1, -1, 73, + -1, -1, 76, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, + -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, -1, -1, -1, -1, -1, - -1, -1, -1, 86, 87, 88, -1, -1, 122, 123, + -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, -1, -1, 127, -1, -1, -1, -1, 132, -1, - -1, -1, -1, 137, -1, 139, -1, -1, 105, 106, - 107, 108, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 6, 122, 123, -1, -1, -1, - 127, -1, -1, -1, -1, 132, -1, 140, 135, -1, - 137, -1, 139, 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, 3, 4, - 12, 13, -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, + 3, 4, 5, 137, -1, 139, 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, 3, 4, 42, + 12, 13, -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, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, -1, 57, 58, -1, 60, 61, - 62, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 105, 106, 107, 108, 131, - -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, - -1, -1, 122, 123, -1, -1, -1, 127, -1, -1, - -1, -1, 132, -1, -1, 135, -1, 137, -1, 139, - 105, 106, 107, 108, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, - -1, 63, 127, -1, -1, -1, -1, 132, 140, 3, - 4, -1, 137, -1, 139, 9, 10, 11, -1, -1, + 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 105, 106, 107, 108, -1, -1, -1, -1, + -1, -1, -1, -1, 86, 87, 88, -1, -1, 122, + 123, -1, -1, -1, 127, -1, -1, -1, -1, 132, + -1, -1, -1, -1, 137, -1, 139, -1, -1, 105, + 106, 107, 108, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 6, 122, 123, -1, -1, + -1, 127, -1, -1, -1, -1, 132, -1, 140, 135, + -1, 137, -1, 139, 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, 3, + 4, 12, 13, -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, - 44, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, - -1, 65, 66, 67, 68, 69, -1, 3, 4, 73, - -1, -1, 76, 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, 105, 106, 107, 108, -1, -1, -1, -1, -1, + 34, -1, -1, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, -1, 55, -1, 57, 58, -1, 60, + 61, 62, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 105, 106, 107, 108, + 131, -1, -1, -1, -1, 86, 87, 88, -1, -1, + -1, -1, -1, 122, 123, -1, -1, -1, 127, -1, + -1, -1, -1, 132, -1, -1, 135, -1, 137, -1, + 139, 105, 106, 107, 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, - -1, -1, -1, 127, 3, 4, 5, -1, 132, -1, - 9, 10, 11, 137, -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, -1, -1, -1, -1, 105, - 106, 107, 108, -1, -1, 12, 13, 6, -1, -1, - -1, -1, -1, -1, -1, -1, 122, 123, -1, -1, - -1, 127, -1, -1, -1, -1, 132, -1, -1, -1, - -1, 137, -1, -1, -1, -1, -1, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, -1, 55, -1, - 57, 58, -1, 60, 61, 62, 105, 106, 107, 108, - 12, 13, -1, -1, 6, -1, -1, -1, -1, -1, - -1, -1, -1, 122, 123, -1, -1, -1, 127, 86, - 87, 88, -1, 132, 6, -1, -1, -1, 137, -1, - -1, -1, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, -1, 55, 6, 57, 58, -1, 60, 61, - 62, 12, 13, -1, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, - -1, -1, 131, 140, 86, 87, 88, 6, -1, -1, + -1, -1, 63, 127, -1, -1, -1, -1, 132, 140, + 3, 4, -1, 137, -1, 139, 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, 44, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, + 131, -1, 65, 66, 67, 68, 69, -1, 3, 4, + 73, -1, -1, 76, 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, 105, 106, 107, 108, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, + 123, -1, -1, -1, 127, 3, 4, 5, -1, 132, + -1, 9, 10, 11, 137, -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, -1, -1, -1, -1, + 105, 106, 107, 108, -1, -1, 12, 13, 6, -1, + -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, + -1, -1, 127, -1, -1, -1, -1, 132, -1, -1, + -1, -1, 137, -1, -1, -1, -1, -1, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, + -1, 57, 58, -1, 60, 61, 62, 105, 106, 107, + 108, 12, 13, -1, -1, 6, -1, -1, -1, -1, + -1, -1, -1, -1, 122, 123, -1, -1, -1, 127, + 86, 87, 88, -1, 132, 6, -1, -1, -1, 137, -1, -1, -1, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, -1, 55, -1, 57, 58, 6, 60, - 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, + 51, 52, 53, -1, 55, 6, 57, 58, -1, 60, + 61, 62, 12, 13, -1, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, + -1, -1, -1, 131, 140, 86, 87, 88, 6, -1, + -1, -1, -1, -1, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, -1, 55, -1, 57, 58, 6, + 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 86, 87, 88, 140, + 131, 6, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, + 131, -1, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 8, -1, -1, -1, + 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 140, -1, -1, -1, -1, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 8, + -1, -1, -1, 131, -1, -1, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 8, -1, -1, -1, 131, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 8, -1, -1, -1, 131, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 86, 87, 88, 140, 131, - 6, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, - 6, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, - 6, -1, -1, -1, -1, -1, -1, -1, -1, 140, + 122, 123, 124, 125, 126, 8, -1, -1, -1, 131, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 8, -1, + 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 8, + 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 8, -1, -1, -1, 131, -1, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 8, -1, -1, -1, 131, -1, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 8, -1, -1, -1, 131, -1, -1, -1, -1, - -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 8, -1, -1, - -1, 131, -1, -1, 113, 114, 115, 116, 117, 118, + 126, -1, 0, 1, -1, 131, 4, -1, -1, -1, + -1, -1, -1, -1, 12, 13, -1, -1, -1, -1, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, -1, -1, -1, 35, 131, -1, + -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, + 58, 59, 60, 61, 62, -1, 64, 65, 66, 67, + 68, 69, -1, 71, 72, 73, 74, 75, 76, -1, + -1, 79, 80, 4, -1, -1, -1, 85, 86, 87, + 88, 12, 13, 91, -1, 93, -1, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, -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, -1, 55, 56, 57, 58, 59, 60, + 61, 62, -1, 64, 65, 66, 67, 68, 69, -1, + 71, 72, 73, 74, 75, 76, 12, 13, 79, 80, + -1, -1, -1, -1, 85, 86, 87, 88, -1, -1, + 91, -1, 93, -1, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, -1, -1, -1, -1, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, + -1, 57, 58, -1, 60, 61, 62, -1, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, + 86, 87, 88, 138, -1, 140, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, + -1, 138, -1, 140, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, + -1, -1, 131, -1, -1, -1, -1, -1, -1, 138, + -1, 140, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, + 131, -1, -1, -1, -1, -1, -1, -1, -1, 140, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, + -1, -1, -1, -1, -1, -1, -1, 140, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, + -1, -1, -1, -1, -1, 140, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, + -1, -1, -1, 140, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, + -1, 140, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, + 131, -1, -1, -1, -1, -1, -1, -1, -1, 140, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, + -1, -1, -1, -1, -1, -1, -1, 140, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, + -1, -1, -1, -1, -1, 140, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - -1, -1, -1, -1, 131, -1, 113, 114, 115, 116, + -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, + -1, -1, -1, 140, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, + -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, + -1, 140, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, + 131, -1, -1, -1, -1, -1, -1, -1, -1, 140, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, + -1, -1, -1, -1, -1, -1, -1, 140, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, + -1, -1, -1, -1, -1, 140, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - -1, -1, -1, -1, 131, -1, 113, 114, 115, 116, + -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, + -1, -1, -1, 140, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, + -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, + -1, 140, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, + 131, -1, -1, -1, -1, -1, -1, -1, -1, 140, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, + -1, -1, -1, -1, -1, -1, -1, 140, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, + -1, -1, -1, -1, -1, 140, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, - -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, -1, 0, 1, -1, - 131, 4, -1, -1, -1, -1, -1, -1, -1, 12, - 13, -1, 113, 114, 115, 116, 117, 118, 119, 120, + -1, -1, -1, 140, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, + -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, + -1, 140, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, - 131, -1, 35, -1, -1, -1, -1, 40, 41, 140, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, -1, 55, 56, 57, 58, 59, 60, 61, 62, - -1, 64, 65, 66, 67, 68, 69, -1, 71, 72, - 73, 74, 75, 76, -1, -1, 79, 80, 4, -1, - -1, -1, 85, 86, 87, 88, 12, 13, 91, -1, - 93, -1, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, -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, -1, 55, - 56, 57, 58, 59, 60, 61, 62, -1, 64, 65, - 66, 67, 68, 69, -1, 71, 72, 73, 74, 75, - 76, 12, 13, 79, 80, -1, -1, -1, -1, 85, - 86, 87, 88, -1, -1, 91, -1, 93, -1, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, - -1, -1, -1, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, -1, 55, -1, 57, 58, -1, 60, - 61, 62, -1, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, - -1, 131, -1, -1, -1, 86, 87, 88, 138, -1, - 140, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, - -1, -1, -1, -1, -1, -1, 138, -1, 140, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, - -1, -1, -1, -1, 138, -1, 140, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, - -1, -1, -1, -1, 140, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, - -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, - -1, -1, 140, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, - -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, - 140, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, - -1, -1, -1, -1, -1, -1, -1, -1, 140, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, - -1, -1, -1, -1, -1, -1, 140, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, - -1, -1, -1, -1, 140, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, - -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, - -1, -1, 140, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, - -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, - 140, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, - -1, -1, -1, -1, -1, -1, -1, -1, 140, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, - -1, -1, -1, -1, -1, -1, 140, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, - -1, -1, -1, -1, 140, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, - -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, - -1, -1, 140, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, - -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, - 140, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, - -1, -1, -1, -1, -1, -1, -1, -1, 140, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, - -1, -1, -1, -1, -1, -1, 140, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, - -1, -1, -1, -1, 140, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, - -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, - -1, -1, 140, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, - -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, - 140, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, - -1, -1, -1, -1, -1, -1, -1, -1, 140, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, - -1, -1, -1, -1, -1, -1, 140, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, - -1, -1, -1, -1, 140, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, - -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, - -1, -1, 140, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, - -1, 131, -1, 133, -1, -1, -1, -1, 138, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, - -1, -1, -1, -1, 138, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, - -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, - 138, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, - -1, -1, -1, -1, -1, -1, 138, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, - -1, -1, 138, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, - -1, 131, -1, -1, -1, -1, -1, -1, 138, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, - -1, -1, -1, -1, 138, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, - -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, - 138, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, - -1, -1, -1, -1, -1, -1, 138, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, - -1, -1, 138, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, - -1, 131, -1, -1, -1, -1, -1, -1, 138, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, - -1, -1, -1, -1, 138, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, - -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, - 138, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, - -1, -1, -1, -1, -1, -1, 138, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, - -1, -1, 138, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, - -1, 131, -1, -1, -1, -1, -1, -1, 138, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, - -1, -1, -1, -1, 138, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, - -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, - 138, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, - -1, -1, -1, -1, -1, -1, 138, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, - -1, -1, 138, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, - -1, 131, -1, -1, -1, -1, -1, -1, 138, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, - -1, -1, -1, -1, 138, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, - -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, - 138, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, - -1, -1, -1, -1, -1, -1, 138, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, - -1, -1, 138, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, - -1, 131, -1, -1, -1, -1, -1, -1, 138, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, - -1, -1, -1, -1, 138, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, - -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, - 138, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, - -1, -1, -1, -1, -1, -1, 138, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, - -1, -1, 138, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, - -1, 131, -1, -1, -1, 135, 113, 114, 115, 116, + 131, -1, -1, -1, -1, -1, -1, -1, -1, 140, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, + -1, -1, -1, -1, -1, -1, -1, 140, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, + -1, -1, -1, -1, -1, 140, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + -1, -1, -1, -1, 131, -1, 133, -1, -1, -1, + -1, 138, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, + 131, -1, -1, -1, -1, -1, -1, 138, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, + -1, -1, -1, 138, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, + -1, -1, 131, -1, -1, -1, -1, -1, -1, 138, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, + -1, -1, -1, -1, -1, 138, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, + -1, 138, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, + 131, -1, -1, -1, -1, -1, -1, 138, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, + -1, -1, -1, 138, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, + -1, -1, 131, -1, -1, -1, -1, -1, -1, 138, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, + -1, -1, -1, -1, -1, 138, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, + -1, 138, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, + 131, -1, -1, -1, -1, -1, -1, 138, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, + -1, -1, -1, 138, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, + -1, -1, 131, -1, -1, -1, -1, -1, -1, 138, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, + -1, -1, -1, -1, -1, 138, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, + -1, 138, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, + 131, -1, -1, -1, -1, -1, -1, 138, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, + -1, -1, -1, 138, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, + -1, -1, 131, -1, -1, -1, -1, -1, -1, 138, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, + -1, -1, -1, -1, -1, 138, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, + -1, 138, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, + 131, -1, -1, -1, -1, -1, -1, 138, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, + -1, -1, -1, 138, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, + -1, -1, 131, -1, -1, -1, -1, -1, -1, 138, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, + -1, -1, -1, -1, -1, 138, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, + -1, 138, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, + 131, -1, -1, -1, -1, -1, -1, 138, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, + -1, -1, -1, 138, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, + -1, -1, 131, -1, -1, -1, -1, -1, -1, 138, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, + -1, -1, -1, -1, -1, 138, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, 135, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, @@ -2645,12 +2631,8 @@ static const yytype_int16 yycheck[] = 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, 135, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, -1, -1, -1, -1, 131, -1, 133, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, - 133, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, - -1, 133, 113, 114, 115, 116, 117, 118, 119, 120, + 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, + -1, 135, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, 133, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, @@ -2750,7 +2732,14 @@ static const yytype_int16 yycheck[] = 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, 133, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, -1, -1, -1, -1, 131 + 124, 125, 126, -1, -1, -1, -1, 131, -1, 133, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, + 133, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, + -1, 133, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, + 131 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -2763,126 +2752,127 @@ static const yytype_uint8 yystos[] = 62, 64, 65, 66, 67, 68, 69, 71, 72, 73, 74, 75, 76, 79, 80, 85, 86, 87, 88, 91, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 145, 147, 148, 166, 170, 171, 174, 175, 176, - 177, 178, 179, 199, 200, 201, 3, 4, 5, 7, + 104, 145, 147, 148, 166, 170, 175, 178, 179, 180, + 181, 182, 183, 203, 204, 205, 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, 99, 105, 106, 107, 108, 109, 110, 111, 112, 122, 123, 127, 129, 130, 132, 134, 136, 137, 139, 164, 165, - 202, 203, 215, 13, 50, 132, 6, 139, 6, 6, + 206, 207, 219, 13, 50, 132, 6, 139, 6, 6, 132, 139, 132, 132, 70, 132, 139, 132, 132, 70, 139, 132, 132, 54, 50, 132, 50, 50, 50, 47, 50, 52, 52, 44, 47, 50, 52, 47, 50, 132, - 139, 122, 123, 132, 139, 204, 205, 204, 139, 44, - 47, 50, 139, 204, 50, 50, 47, 4, 99, 139, + 139, 122, 123, 132, 139, 208, 209, 208, 139, 44, + 47, 50, 139, 208, 50, 50, 47, 4, 99, 139, 4, 6, 47, 4, 4, 4, 132, 132, 132, 4, - 139, 211, 4, 132, 132, 6, 134, 4, 4, 5, + 139, 215, 4, 132, 132, 6, 134, 4, 4, 5, 139, 5, 139, 4, 134, 136, 141, 165, 139, 5, - 215, 132, 134, 132, 134, 132, 134, 132, 134, 132, + 219, 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, 132, 132, 132, 7, 132, 4, - 202, 202, 202, 202, 135, 139, 202, 4, 91, 92, - 4, 4, 171, 172, 173, 202, 6, 6, 113, 114, + 206, 206, 206, 206, 135, 139, 206, 4, 91, 92, + 4, 4, 175, 176, 177, 206, 6, 6, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 131, 6, 6, 202, 5, 202, 202, 4, - 44, 123, 171, 179, 202, 209, 210, 202, 202, 132, - 202, 210, 202, 202, 132, 210, 202, 202, 123, 139, - 202, 207, 209, 132, 202, 139, 132, 132, 5, 207, - 208, 208, 208, 132, 132, 132, 132, 132, 132, 132, - 4, 204, 204, 204, 202, 202, 122, 123, 139, 139, - 204, 139, 139, 139, 122, 123, 132, 173, 204, 139, - 208, 207, 132, 4, 6, 134, 134, 173, 6, 139, - 134, 134, 6, 202, 202, 202, 136, 202, 139, 94, - 202, 202, 202, 6, 6, 173, 6, 173, 134, 202, - 4, 139, 149, 6, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 4, 214, 215, 214, - 214, 214, 202, 5, 134, 133, 7, 112, 210, 135, + 125, 126, 131, 6, 6, 206, 5, 206, 206, 4, + 44, 123, 175, 183, 206, 213, 214, 206, 206, 132, + 206, 214, 206, 206, 132, 214, 206, 206, 123, 139, + 206, 211, 213, 132, 206, 139, 132, 132, 5, 211, + 212, 212, 212, 132, 171, 172, 173, 174, 132, 132, + 4, 208, 208, 208, 206, 206, 122, 123, 139, 139, + 208, 139, 139, 139, 122, 123, 132, 177, 208, 139, + 212, 211, 132, 4, 6, 134, 134, 177, 6, 139, + 134, 134, 6, 206, 206, 206, 136, 206, 139, 94, + 206, 206, 206, 6, 6, 177, 6, 177, 134, 206, + 4, 139, 149, 6, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 4, 218, 219, 218, + 218, 218, 206, 5, 134, 133, 7, 112, 214, 135, 7, 164, 165, 136, 7, 134, 140, 44, 47, 50, - 52, 170, 6, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 6, 133, - 138, 138, 133, 134, 139, 202, 209, 8, 124, 138, - 140, 133, 133, 202, 133, 140, 133, 133, 202, 140, - 133, 133, 139, 140, 210, 124, 7, 202, 133, 202, - 202, 202, 7, 7, 197, 197, 202, 167, 202, 215, - 167, 167, 167, 202, 202, 133, 138, 138, 138, 204, - 204, 172, 172, 138, 202, 202, 202, 202, 183, 138, - 173, 7, 198, 7, 202, 6, 202, 202, 140, 210, - 202, 202, 133, 133, 133, 91, 138, 173, 139, 8, - 133, 135, 140, 140, 202, 135, 165, 202, 4, 81, - 82, 83, 84, 140, 152, 156, 159, 161, 162, 133, - 135, 133, 135, 133, 135, 133, 135, 133, 135, 133, + 52, 170, 6, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 6, 133, + 138, 138, 133, 134, 139, 206, 213, 8, 124, 138, + 140, 133, 133, 206, 133, 140, 133, 133, 206, 140, + 133, 133, 139, 140, 214, 124, 7, 206, 133, 206, + 206, 206, 7, 7, 201, 201, 206, 132, 132, 132, + 132, 206, 206, 133, 138, 138, 138, 208, 208, 176, + 176, 138, 206, 206, 206, 206, 187, 138, 177, 7, + 202, 7, 206, 6, 206, 206, 140, 214, 206, 206, + 133, 133, 133, 91, 138, 177, 139, 8, 133, 135, + 140, 140, 206, 135, 165, 206, 4, 81, 82, 83, + 84, 140, 152, 156, 159, 161, 162, 133, 135, 133, 135, 133, 135, 133, 135, 133, 135, 133, 135, 133, - 135, 138, 138, 133, 135, 133, 135, 133, 135, 133, - 135, 133, 135, 133, 135, 138, 138, 138, 138, 138, - 138, 134, 136, 133, 138, 138, 133, 133, 6, 138, - 202, 207, 207, 140, 7, 136, 164, 165, 215, 202, - 6, 4, 4, 139, 212, 135, 139, 139, 139, 139, - 8, 6, 119, 146, 210, 202, 7, 135, 139, 202, - 202, 202, 209, 202, 209, 94, 7, 7, 133, 7, - 94, 7, 7, 133, 94, 7, 7, 210, 140, 139, - 202, 133, 7, 140, 133, 133, 202, 207, 4, 196, - 6, 133, 133, 133, 133, 133, 133, 133, 136, 204, - 202, 202, 140, 140, 202, 138, 138, 138, 71, 77, - 78, 193, 194, 204, 140, 180, 202, 6, 202, 133, - 135, 135, 140, 135, 135, 7, 7, 7, 136, 202, - 140, 202, 202, 7, 136, 135, 136, 165, 214, 140, - 153, 132, 132, 139, 163, 6, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 4, 210, 214, 202, 135, - 6, 6, 135, 4, 91, 92, 202, 6, 6, 6, - 7, 134, 211, 213, 6, 210, 210, 210, 210, 202, - 119, 214, 133, 138, 204, 210, 140, 8, 50, 207, - 207, 7, 207, 50, 52, 207, 207, 7, 52, 207, - 207, 140, 210, 6, 7, 139, 7, 7, 7, 63, - 195, 6, 7, 7, 7, 7, 7, 7, 7, 4, - 138, 138, 138, 140, 204, 204, 204, 6, 139, 132, - 140, 194, 138, 193, 6, 139, 6, 6, 50, 6, - 6, 207, 207, 207, 4, 138, 8, 8, 133, 4, - 4, 6, 4, 6, 132, 202, 202, 206, 207, 139, + 135, 133, 135, 133, 135, 133, 135, 133, 135, 138, + 138, 133, 135, 133, 135, 133, 135, 133, 135, 133, + 135, 133, 135, 138, 138, 138, 138, 138, 138, 134, + 136, 133, 138, 138, 133, 133, 6, 138, 206, 211, + 211, 140, 7, 136, 164, 165, 219, 206, 6, 4, + 4, 139, 216, 135, 139, 139, 139, 139, 8, 6, + 119, 146, 214, 206, 7, 135, 139, 206, 206, 206, + 213, 206, 213, 94, 7, 7, 133, 7, 94, 7, + 7, 133, 94, 7, 7, 214, 140, 139, 206, 133, + 7, 140, 133, 133, 206, 211, 4, 200, 6, 133, + 167, 206, 219, 167, 167, 167, 133, 133, 136, 208, + 206, 206, 140, 140, 206, 138, 138, 138, 71, 77, + 78, 197, 198, 208, 140, 184, 206, 6, 206, 133, + 135, 135, 140, 135, 135, 7, 7, 7, 136, 206, + 140, 206, 206, 7, 136, 135, 136, 165, 218, 140, + 153, 132, 132, 139, 163, 6, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 4, 214, 218, 206, 135, + 6, 6, 135, 4, 91, 92, 206, 6, 6, 6, + 7, 134, 215, 217, 6, 214, 214, 214, 214, 206, + 119, 218, 133, 138, 208, 214, 140, 8, 50, 211, + 211, 7, 211, 50, 52, 211, 211, 7, 52, 211, + 211, 140, 214, 6, 7, 139, 7, 7, 7, 63, + 199, 6, 7, 133, 133, 133, 133, 7, 7, 4, + 138, 138, 138, 140, 208, 208, 208, 6, 139, 132, + 140, 198, 138, 197, 6, 139, 6, 6, 50, 6, + 6, 211, 211, 211, 4, 138, 8, 8, 133, 4, + 4, 6, 4, 6, 132, 206, 206, 210, 211, 139, 133, 135, 133, 135, 133, 135, 133, 135, 135, 133, - 133, 133, 164, 7, 164, 165, 136, 7, 6, 211, - 202, 138, 140, 140, 140, 140, 140, 6, 6, 146, - 202, 6, 140, 202, 139, 57, 169, 169, 207, 6, - 139, 139, 6, 6, 207, 139, 6, 6, 140, 5, - 202, 207, 207, 207, 4, 6, 207, 207, 207, 207, - 207, 207, 207, 6, 7, 202, 202, 202, 139, 138, - 140, 138, 140, 138, 140, 202, 207, 202, 202, 204, - 140, 210, 139, 6, 6, 90, 202, 202, 202, 6, - 7, 165, 150, 202, 138, 138, 138, 140, 151, 202, - 136, 207, 215, 202, 6, 4, 212, 6, 135, 211, - 6, 6, 6, 6, 214, 138, 135, 202, 204, 6, - 6, 6, 202, 202, 6, 202, 5, 138, 6, 6, - 94, 168, 202, 6, 6, 6, 6, 6, 6, 4, - 202, 215, 140, 133, 138, 140, 172, 204, 6, 184, - 204, 6, 185, 204, 6, 186, 140, 138, 133, 140, - 138, 140, 202, 207, 138, 140, 8, 140, 133, 139, - 202, 215, 133, 138, 202, 202, 207, 139, 138, 140, - 4, 6, 6, 6, 7, 6, 136, 6, 202, 140, - 140, 140, 140, 5, 202, 48, 6, 139, 6, 6, - 139, 202, 140, 138, 139, 138, 139, 138, 139, 6, - 207, 7, 139, 202, 6, 140, 89, 202, 202, 210, - 6, 6, 154, 202, 138, 138, 206, 202, 6, 211, - 92, 138, 6, 6, 6, 6, 6, 138, 139, 206, - 172, 138, 140, 202, 204, 193, 202, 204, 193, 202, - 204, 193, 138, 140, 207, 173, 140, 202, 140, 140, - 140, 139, 202, 202, 140, 6, 202, 5, 202, 140, - 140, 202, 140, 138, 140, 140, 138, 140, 140, 138, - 140, 207, 6, 63, 140, 181, 139, 6, 6, 151, - 133, 138, 6, 139, 138, 138, 140, 6, 140, 6, - 187, 202, 6, 6, 188, 202, 6, 6, 189, 202, - 6, 140, 202, 193, 173, 140, 157, 202, 206, 202, - 5, 139, 140, 139, 140, 139, 140, 6, 6, 140, - 140, 182, 6, 139, 133, 140, 140, 138, 193, 6, - 190, 193, 6, 191, 193, 6, 192, 193, 155, 214, - 160, 139, 6, 5, 140, 139, 140, 139, 140, 139, - 140, 138, 140, 139, 206, 140, 6, 193, 6, 193, - 6, 193, 214, 6, 158, 214, 140, 6, 140, 140, - 140, 138, 140, 6, 6, 6, 6, 214, 6 + 133, 133, 164, 7, 164, 165, 136, 7, 6, 215, + 206, 138, 140, 140, 140, 140, 140, 6, 6, 146, + 206, 6, 140, 206, 139, 57, 169, 169, 211, 6, + 139, 139, 6, 6, 211, 139, 6, 6, 140, 5, + 206, 211, 211, 211, 4, 6, 211, 7, 7, 7, + 7, 211, 211, 6, 7, 206, 206, 206, 139, 138, + 140, 138, 140, 138, 140, 206, 211, 206, 206, 208, + 140, 214, 139, 6, 6, 90, 206, 206, 206, 6, + 7, 165, 150, 206, 138, 138, 138, 140, 151, 206, + 136, 211, 219, 206, 6, 4, 216, 6, 135, 215, + 6, 6, 6, 6, 218, 138, 135, 206, 208, 6, + 6, 6, 206, 206, 6, 206, 5, 138, 6, 6, + 94, 168, 206, 6, 211, 211, 211, 211, 6, 4, + 206, 219, 140, 133, 138, 140, 176, 208, 6, 188, + 208, 6, 189, 208, 6, 190, 140, 138, 133, 140, + 138, 140, 206, 211, 138, 140, 8, 140, 133, 139, + 206, 219, 133, 138, 206, 206, 211, 139, 138, 140, + 4, 6, 6, 6, 7, 6, 136, 6, 206, 140, + 140, 140, 140, 5, 206, 48, 6, 6, 6, 6, + 6, 139, 6, 6, 139, 206, 140, 138, 139, 138, + 139, 138, 139, 6, 211, 7, 139, 206, 6, 140, + 89, 206, 206, 214, 6, 6, 154, 206, 138, 138, + 210, 206, 6, 215, 92, 138, 6, 6, 6, 6, + 6, 138, 139, 210, 176, 138, 140, 206, 208, 197, + 206, 208, 197, 206, 208, 197, 138, 140, 211, 177, + 140, 206, 140, 140, 140, 139, 206, 206, 140, 6, + 206, 5, 206, 140, 140, 206, 140, 138, 140, 140, + 138, 140, 140, 138, 140, 211, 6, 63, 140, 185, + 139, 6, 6, 151, 133, 138, 6, 139, 138, 138, + 140, 6, 140, 6, 191, 206, 6, 6, 192, 206, + 6, 6, 193, 206, 6, 140, 206, 197, 177, 140, + 157, 206, 210, 206, 5, 139, 140, 139, 140, 139, + 140, 6, 6, 140, 140, 186, 6, 139, 133, 140, + 140, 138, 197, 6, 194, 197, 6, 195, 197, 6, + 196, 197, 155, 218, 160, 139, 6, 5, 140, 139, + 140, 139, 140, 139, 140, 138, 140, 139, 210, 140, + 6, 197, 6, 197, 6, 197, 218, 6, 158, 218, + 140, 6, 140, 140, 140, 138, 140, 6, 6, 6, + 6, 218, 6 }; #define yyerrok (yyerrstatus = 0) @@ -3697,96 +3687,96 @@ yyreduce: switch (yyn) { case 3: -#line 141 "Gmsh.y" +#line 142 "Gmsh.y" { yyerrok; return 1; ;} break; case 6: -#line 152 "Gmsh.y" +#line 153 "Gmsh.y" { return 1; ;} break; case 7: -#line 153 "Gmsh.y" +#line 154 "Gmsh.y" { return 1; ;} break; case 8: -#line 154 "Gmsh.y" +#line 155 "Gmsh.y" { return 1; ;} break; case 9: -#line 155 "Gmsh.y" +#line 156 "Gmsh.y" { return 1; ;} break; case 10: -#line 156 "Gmsh.y" +#line 157 "Gmsh.y" { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 11: -#line 157 "Gmsh.y" +#line 158 "Gmsh.y" { return 1; ;} break; case 12: -#line 158 "Gmsh.y" +#line 159 "Gmsh.y" { return 1; ;} break; case 13: -#line 159 "Gmsh.y" +#line 160 "Gmsh.y" { return 1; ;} break; case 14: -#line 160 "Gmsh.y" +#line 161 "Gmsh.y" { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 15: -#line 161 "Gmsh.y" +#line 162 "Gmsh.y" { return 1; ;} break; case 16: -#line 162 "Gmsh.y" +#line 163 "Gmsh.y" { return 1; ;} break; case 17: -#line 163 "Gmsh.y" +#line 164 "Gmsh.y" { return 1; ;} break; case 18: -#line 164 "Gmsh.y" +#line 165 "Gmsh.y" { return 1; ;} break; case 19: -#line 165 "Gmsh.y" +#line 166 "Gmsh.y" { return 1; ;} break; case 20: -#line 170 "Gmsh.y" +#line 171 "Gmsh.y" { (yyval.c) = (char*)"w"; ;} break; case 21: -#line 174 "Gmsh.y" +#line 175 "Gmsh.y" { (yyval.c) = (char*)"a"; ;} break; case 22: -#line 181 "Gmsh.y" +#line 182 "Gmsh.y" { Msg::Direct((yyvsp[(3) - (5)].c)); Free((yyvsp[(3) - (5)].c)); @@ -3794,7 +3784,7 @@ yyreduce: break; case 23: -#line 186 "Gmsh.y" +#line 187 "Gmsh.y" { char tmpstring[1024]; FixRelativePath((yyvsp[(6) - (7)].c), tmpstring); @@ -3812,7 +3802,7 @@ yyreduce: break; case 24: -#line 201 "Gmsh.y" +#line 202 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].l), tmpstring); @@ -3828,7 +3818,7 @@ yyreduce: break; case 25: -#line 214 "Gmsh.y" +#line 215 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble((yyvsp[(3) - (9)].c), (yyvsp[(5) - (9)].l), tmpstring); @@ -3855,7 +3845,7 @@ yyreduce: break; case 26: -#line 243 "Gmsh.y" +#line 244 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(1) - (6)].c), "View") && ViewData->finalize()){ @@ -3872,7 +3862,7 @@ yyreduce: break; case 27: -#line 257 "Gmsh.y" +#line 258 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -3886,7 +3876,7 @@ yyreduce: break; case 28: -#line 268 "Gmsh.y" +#line 269 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -3900,7 +3890,7 @@ yyreduce: break; case 29: -#line 282 "Gmsh.y" +#line 283 "Gmsh.y" { #if !defined(HAVE_NO_POST) ViewData = new PViewDataList(true); @@ -3909,27 +3899,27 @@ yyreduce: break; case 35: -#line 296 "Gmsh.y" +#line 297 "Gmsh.y" { ViewCoord.push_back((yyvsp[(1) - (1)].d)); ;} break; case 36: -#line 298 "Gmsh.y" +#line 299 "Gmsh.y" { ViewCoord.push_back((yyvsp[(3) - (3)].d)); ;} break; case 37: -#line 303 "Gmsh.y" +#line 304 "Gmsh.y" { if(ViewValueList) List_Add(ViewValueList, &(yyvsp[(1) - (1)].d)); ;} break; case 38: -#line 305 "Gmsh.y" +#line 306 "Gmsh.y" { if(ViewValueList) List_Add(ViewValueList, &(yyvsp[(3) - (3)].d)); ;} break; case 39: -#line 310 "Gmsh.y" +#line 311 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(1) - (1)].c), "SP")){ @@ -4078,7 +4068,7 @@ yyreduce: break; case 40: -#line 456 "Gmsh.y" +#line 457 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(ViewValueList){ @@ -4091,7 +4081,7 @@ yyreduce: break; case 41: -#line 466 "Gmsh.y" +#line 467 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(ViewValueList) (*ViewNumList)++; @@ -4100,7 +4090,7 @@ yyreduce: break; case 42: -#line 475 "Gmsh.y" +#line 476 "Gmsh.y" { #if !defined(HAVE_NO_POST) for(int i = 0; i < (int)strlen((yyvsp[(1) - (1)].c))+1; i++) List_Add(ViewData->T2C, &(yyvsp[(1) - (1)].c)[i]); @@ -4110,7 +4100,7 @@ yyreduce: break; case 43: -#line 482 "Gmsh.y" +#line 483 "Gmsh.y" { #if !defined(HAVE_NO_POST) for(int i = 0; i < (int)strlen((yyvsp[(3) - (3)].c))+1; i++) List_Add(ViewData->T2C, &(yyvsp[(3) - (3)].c)[i]); @@ -4120,7 +4110,7 @@ yyreduce: break; case 44: -#line 492 "Gmsh.y" +#line 493 "Gmsh.y" { #if !defined(HAVE_NO_POST) List_Add(ViewData->T2D, &(yyvsp[(3) - (8)].d)); @@ -4133,7 +4123,7 @@ yyreduce: break; case 45: -#line 502 "Gmsh.y" +#line 503 "Gmsh.y" { #if !defined(HAVE_NO_POST) ViewData->NbT2++; @@ -4142,7 +4132,7 @@ yyreduce: break; case 46: -#line 511 "Gmsh.y" +#line 512 "Gmsh.y" { #if !defined(HAVE_NO_POST) for(int i = 0; i < (int)strlen((yyvsp[(1) - (1)].c))+1; i++) List_Add(ViewData->T3C, &(yyvsp[(1) - (1)].c)[i]); @@ -4152,7 +4142,7 @@ yyreduce: break; case 47: -#line 518 "Gmsh.y" +#line 519 "Gmsh.y" { #if !defined(HAVE_NO_POST) for(int i = 0; i < (int)strlen((yyvsp[(3) - (3)].c))+1; i++) List_Add(ViewData->T3C, &(yyvsp[(3) - (3)].c)[i]); @@ -4162,7 +4152,7 @@ yyreduce: break; case 48: -#line 528 "Gmsh.y" +#line 529 "Gmsh.y" { #if !defined(HAVE_NO_POST) List_Add(ViewData->T3D, &(yyvsp[(3) - (10)].d)); List_Add(ViewData->T3D, &(yyvsp[(5) - (10)].d)); @@ -4174,7 +4164,7 @@ yyreduce: break; case 49: -#line 537 "Gmsh.y" +#line 538 "Gmsh.y" { #if !defined(HAVE_NO_POST) ViewData->NbT3++; @@ -4183,7 +4173,7 @@ yyreduce: break; case 50: -#line 547 "Gmsh.y" +#line 548 "Gmsh.y" { #if !defined(HAVE_NO_POST) int type = @@ -4201,7 +4191,7 @@ yyreduce: break; case 51: -#line 565 "Gmsh.y" +#line 566 "Gmsh.y" { #if !defined(HAVE_NO_POST) int type = @@ -4220,7 +4210,7 @@ yyreduce: break; case 52: -#line 584 "Gmsh.y" +#line 585 "Gmsh.y" { #if !defined(HAVE_NO_POST) ViewValueList = ViewData->Time; @@ -4229,48 +4219,48 @@ yyreduce: break; case 53: -#line 590 "Gmsh.y" +#line 591 "Gmsh.y" { ;} break; case 54: -#line 597 "Gmsh.y" +#line 598 "Gmsh.y" { (yyval.i) = 0; ;} break; case 55: -#line 598 "Gmsh.y" +#line 599 "Gmsh.y" { (yyval.i) = 1; ;} break; case 56: -#line 599 "Gmsh.y" +#line 600 "Gmsh.y" { (yyval.i) = 2; ;} break; case 57: -#line 600 "Gmsh.y" +#line 601 "Gmsh.y" { (yyval.i) = 3; ;} break; case 58: -#line 601 "Gmsh.y" +#line 602 "Gmsh.y" { (yyval.i) = 4; ;} break; case 59: -#line 605 "Gmsh.y" +#line 606 "Gmsh.y" { (yyval.i) = 1; ;} break; case 60: -#line 606 "Gmsh.y" +#line 607 "Gmsh.y" { (yyval.i) = -1; ;} break; case 61: -#line 614 "Gmsh.y" +#line 615 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ if(!(yyvsp[(2) - (4)].i)) @@ -4295,7 +4285,7 @@ yyreduce: break; case 62: -#line 636 "Gmsh.y" +#line 637 "Gmsh.y" { int index = (int)(yyvsp[(3) - (7)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (7)].c))){ @@ -4325,7 +4315,7 @@ yyreduce: break; case 63: -#line 663 "Gmsh.y" +#line 664 "Gmsh.y" { if(List_Nbr((yyvsp[(4) - (9)].l)) != List_Nbr((yyvsp[(8) - (9)].l))){ yymsg(0, "Incompatible array dimensions in affectation"); @@ -4368,7 +4358,7 @@ yyreduce: break; case 64: -#line 703 "Gmsh.y" +#line 704 "Gmsh.y" { if(gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) gmsh_yysymbols[(yyvsp[(1) - (6)].c)].clear(); @@ -4381,7 +4371,7 @@ yyreduce: break; case 65: -#line 713 "Gmsh.y" +#line 714 "Gmsh.y" { // appends to the list for(int i = 0; i < List_Nbr((yyvsp[(5) - (6)].l)); i++) @@ -4392,7 +4382,7 @@ yyreduce: break; case 66: -#line 721 "Gmsh.y" +#line 722 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (3)].c)); @@ -4403,7 +4393,7 @@ yyreduce: break; case 67: -#line 729 "Gmsh.y" +#line 730 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (6)].c)); @@ -4418,7 +4408,7 @@ yyreduce: break; case 68: -#line 741 "Gmsh.y" +#line 742 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (4)].c)] = std::string((yyvsp[(3) - (4)].c)); Free((yyvsp[(1) - (4)].c)); @@ -4427,7 +4417,7 @@ yyreduce: break; case 69: -#line 750 "Gmsh.y" +#line 751 "Gmsh.y" { std::string tmp((yyvsp[(5) - (6)].c)); StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), tmp); @@ -4436,7 +4426,7 @@ yyreduce: break; case 70: -#line 756 "Gmsh.y" +#line 757 "Gmsh.y" { std::string tmp((yyvsp[(8) - (9)].c)); StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), tmp); @@ -4445,7 +4435,7 @@ yyreduce: break; case 71: -#line 765 "Gmsh.y" +#line 766 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), d)){ @@ -4466,7 +4456,7 @@ yyreduce: break; case 72: -#line 783 "Gmsh.y" +#line 784 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), d)){ @@ -4487,7 +4477,7 @@ yyreduce: break; case 73: -#line 801 "Gmsh.y" +#line 802 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(3) - (5)].c), d)){ @@ -4499,7 +4489,7 @@ yyreduce: break; case 74: -#line 810 "Gmsh.y" +#line 811 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (8)].c), (int)(yyvsp[(3) - (8)].d), (yyvsp[(6) - (8)].c), d)){ @@ -4511,7 +4501,7 @@ yyreduce: break; case 75: -#line 822 "Gmsh.y" +#line 823 "Gmsh.y" { ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (8)].c), 0, (yyvsp[(5) - (8)].c), (yyvsp[(7) - (8)].u)); Free((yyvsp[(1) - (8)].c)); Free((yyvsp[(5) - (8)].c)); @@ -4519,7 +4509,7 @@ yyreduce: break; case 76: -#line 827 "Gmsh.y" +#line 828 "Gmsh.y" { ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (11)].c), (int)(yyvsp[(3) - (11)].d), (yyvsp[(8) - (11)].c), (yyvsp[(10) - (11)].u)); Free((yyvsp[(1) - (11)].c)); Free((yyvsp[(8) - (11)].c)); @@ -4527,7 +4517,7 @@ yyreduce: break; case 77: -#line 835 "Gmsh.y" +#line 836 "Gmsh.y" { GmshColorTable *ct = GetColorTable(0); if(!ct) @@ -4550,7 +4540,7 @@ yyreduce: break; case 78: -#line 855 "Gmsh.y" +#line 856 "Gmsh.y" { GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (9)].d)); if(!ct) @@ -4573,7 +4563,7 @@ yyreduce: break; case 79: -#line 878 "Gmsh.y" +#line 879 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (5)].c),"Background")) GModel::current()->getFields()->background_field = (int)(yyvsp[(4) - (5)].d); @@ -4583,7 +4573,7 @@ yyreduce: break; case 80: -#line 885 "Gmsh.y" +#line 886 "Gmsh.y" { if(!GModel::current()->getFields()->newField((int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c))) yymsg(0, "Cannot create field %i of type '%s'", (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c)); @@ -4592,7 +4582,7 @@ yyreduce: break; case 81: -#line 891 "Gmsh.y" +#line 892 "Gmsh.y" { Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (9)].d)); if(field){ @@ -4615,7 +4605,7 @@ yyreduce: break; case 82: -#line 911 "Gmsh.y" +#line 912 "Gmsh.y" { Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (9)].d)); if(field){ @@ -4639,7 +4629,7 @@ yyreduce: break; case 83: -#line 932 "Gmsh.y" +#line 933 "Gmsh.y" { Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (11)].d)); if(field){ @@ -4665,7 +4655,7 @@ yyreduce: break; case 84: -#line 958 "Gmsh.y" +#line 959 "Gmsh.y" { #if !defined(HAVE_NO_POST) try { @@ -4680,7 +4670,7 @@ yyreduce: break; case 85: -#line 970 "Gmsh.y" +#line 971 "Gmsh.y" { #if !defined(HAVE_NO_POST) try { @@ -4695,30 +4685,31 @@ yyreduce: break; case 86: -#line 987 "Gmsh.y" +#line 988 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; case 87: -#line 991 "Gmsh.y" +#line 992 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName - (std::string((yyvsp[(1) - (1)].c)), ++GModel::current()->getGEOInternals()->MaxPhysicalNum); + (std::string((yyvsp[(1) - (1)].c)), curPhysDim, + ++GModel::current()->getGEOInternals()->MaxPhysicalNum); Free((yyvsp[(1) - (1)].c)); ;} break; case 88: -#line 1000 "Gmsh.y" +#line 1002 "Gmsh.y" { (yyval.l) = 0; ;} break; case 89: -#line 1004 "Gmsh.y" +#line 1006 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(Vertex*)); Vertex *v = FindPoint((int)(yyvsp[(4) - (5)].d)); @@ -4731,21 +4722,21 @@ yyreduce: break; case 90: -#line 1016 "Gmsh.y" +#line 1018 "Gmsh.y" { for(int i = 0; i < 4; i++) (yyval.v)[i] = 0.; ;} break; case 91: -#line 1020 "Gmsh.y" +#line 1022 "Gmsh.y" { for(int i = 0; i < 4; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; case 92: -#line 1030 "Gmsh.y" +#line 1032 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindPoint(num)){ @@ -4771,26 +4762,33 @@ yyreduce: break; case 93: -#line 1053 "Gmsh.y" +#line 1055 "Gmsh.y" + { + curPhysDim = 0; + ;} + break; + + case 94: +#line 1059 "Gmsh.y" { - int num = (int)(yyvsp[(4) - (8)].i); + int num = (int)(yyvsp[(5) - (9)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_POINT)){ yymsg(0, "Physical point %d already exists", num); } else{ - List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (8)].l)); + List_T *temp = ListOfDouble2ListOfInt((yyvsp[(8) - (9)].l)); PhysicalGroup *p = Create_PhysicalGroup(num, MSH_PHYSICAL_POINT, temp); List_Delete(temp); List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); } - List_Delete((yyvsp[(7) - (8)].l)); + List_Delete((yyvsp[(8) - (9)].l)); (yyval.s).Type = MSH_PHYSICAL_POINT; (yyval.s).Num = num; ;} break; - case 94: -#line 1069 "Gmsh.y" + case 95: +#line 1075 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -4811,8 +4809,8 @@ yyreduce: ;} break; - case 95: -#line 1091 "Gmsh.y" + case 96: +#line 1097 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -4832,8 +4830,8 @@ yyreduce: ;} break; - case 96: -#line 1109 "Gmsh.y" + case 97: +#line 1115 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -4853,8 +4851,8 @@ yyreduce: ;} break; - case 97: -#line 1127 "Gmsh.y" + case 98: +#line 1133 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); if(FindCurve(num)){ @@ -4886,8 +4884,8 @@ yyreduce: ;} break; - case 98: -#line 1157 "Gmsh.y" + case 99: +#line 1163 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); if(FindCurve(num)){ @@ -4919,8 +4917,8 @@ yyreduce: ;} break; - case 99: -#line 1188 "Gmsh.y" + case 100: +#line 1194 "Gmsh.y" { int num = (int)(yyvsp[(3) - (17)].d); if(FindCurve(num)){ @@ -4941,8 +4939,8 @@ yyreduce: ;} break; - case 100: -#line 1207 "Gmsh.y" + case 101: +#line 1213 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -4962,8 +4960,8 @@ yyreduce: ;} break; - case 101: -#line 1225 "Gmsh.y" + case 102: +#line 1231 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -4983,8 +4981,8 @@ yyreduce: ;} break; - case 102: -#line 1243 "Gmsh.y" + case 103: +#line 1249 "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))){ @@ -5012,8 +5010,8 @@ yyreduce: ;} break; - case 103: -#line 1269 "Gmsh.y" + case 104: +#line 1275 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindEdgeLoop(num)){ @@ -5032,27 +5030,34 @@ yyreduce: ;} break; - case 104: -#line 1286 "Gmsh.y" + case 105: +#line 1292 "Gmsh.y" { - int num = (int)(yyvsp[(4) - (8)].i); + curPhysDim = 1; + ;} + break; + + case 106: +#line 1296 "Gmsh.y" + { + int num = (int)(yyvsp[(5) - (9)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_LINE)){ yymsg(0, "Physical line %d already exists", num); } else{ - List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (8)].l)); + List_T *temp = ListOfDouble2ListOfInt((yyvsp[(8) - (9)].l)); PhysicalGroup *p = Create_PhysicalGroup(num, MSH_PHYSICAL_LINE, temp); List_Delete(temp); List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); } - List_Delete((yyvsp[(7) - (8)].l)); + List_Delete((yyvsp[(8) - (9)].l)); (yyval.s).Type = MSH_PHYSICAL_LINE; (yyval.s).Num = num; ;} break; - case 105: -#line 1305 "Gmsh.y" + case 107: +#line 1315 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindSurface(num)){ @@ -5072,8 +5077,8 @@ yyreduce: ;} break; - case 106: -#line 1323 "Gmsh.y" + case 108: +#line 1333 "Gmsh.y" { int num = (int)(yyvsp[(4) - (9)].d), type = 0; if(FindSurface(num)){ @@ -5114,8 +5119,8 @@ yyreduce: ;} break; - case 107: -#line 1362 "Gmsh.y" + case 109: +#line 1372 "Gmsh.y" { myGmshSurface = 0; (yyval.s).Type = 0; @@ -5123,8 +5128,8 @@ yyreduce: ;} break; - case 108: -#line 1368 "Gmsh.y" + case 110: +#line 1378 "Gmsh.y" { myGmshSurface = gmshSurface::getSurface((int)(yyvsp[(3) - (4)].d)); (yyval.s).Type = 0; @@ -5132,8 +5137,8 @@ yyreduce: ;} break; - case 109: -#line 1374 "Gmsh.y" + case 111: +#line 1384 "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)); @@ -5142,8 +5147,8 @@ yyreduce: ;} break; - case 110: -#line 1381 "Gmsh.y" + case 112: +#line 1391 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if (List_Nbr((yyvsp[(6) - (7)].l)) != 2){ @@ -5170,8 +5175,8 @@ yyreduce: ;} break; - case 111: -#line 1406 "Gmsh.y" + case 113: +#line 1416 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if (List_Nbr((yyvsp[(6) - (7)].l)) != 2){ @@ -5198,8 +5203,8 @@ yyreduce: ;} break; - case 112: -#line 1431 "Gmsh.y" + case 114: +#line 1441 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindSurfaceLoop(num)){ @@ -5217,27 +5222,34 @@ yyreduce: ;} break; - case 113: -#line 1447 "Gmsh.y" + case 115: +#line 1457 "Gmsh.y" + { + curPhysDim = 2; + ;} + break; + + case 116: +#line 1461 "Gmsh.y" { - int num = (int)(yyvsp[(4) - (8)].i); + int num = (int)(yyvsp[(5) - (9)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){ yymsg(0, "Physical surface %d already exists", num); } else{ - List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (8)].l)); + List_T *temp = ListOfDouble2ListOfInt((yyvsp[(8) - (9)].l)); PhysicalGroup *p = Create_PhysicalGroup(num, MSH_PHYSICAL_SURFACE, temp); List_Delete(temp); List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); } - List_Delete((yyvsp[(7) - (8)].l)); + List_Delete((yyvsp[(8) - (9)].l)); (yyval.s).Type = MSH_PHYSICAL_SURFACE; (yyval.s).Num = num; ;} break; - case 114: -#line 1463 "Gmsh.y" + case 117: +#line 1477 "Gmsh.y" { int num = (int)(yyvsp[(4) - (12)].d); if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){ @@ -5266,8 +5278,8 @@ yyreduce: ;} break; - case 115: -#line 1491 "Gmsh.y" + case 118: +#line 1505 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){ @@ -5286,8 +5298,8 @@ yyreduce: ;} break; - case 116: -#line 1511 "Gmsh.y" + case 119: +#line 1525 "Gmsh.y" { yymsg(0, "'Complex Volume' command is deprecated: use 'Volume' instead"); int num = (int)(yyvsp[(4) - (8)].d); @@ -5307,8 +5319,8 @@ yyreduce: ;} break; - case 117: -#line 1529 "Gmsh.y" + case 120: +#line 1543 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindVolume(num)){ @@ -5327,59 +5339,66 @@ yyreduce: ;} break; - case 118: -#line 1546 "Gmsh.y" + case 121: +#line 1560 "Gmsh.y" + { + curPhysDim = 3; + ;} + break; + + case 122: +#line 1564 "Gmsh.y" { - int num = (int)(yyvsp[(4) - (8)].i); + int num = (int)(yyvsp[(5) - (9)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME)){ yymsg(0, "Physical volume %d already exists", num); } else{ - List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (8)].l)); + List_T *temp = ListOfDouble2ListOfInt((yyvsp[(8) - (9)].l)); PhysicalGroup *p = Create_PhysicalGroup(num, MSH_PHYSICAL_VOLUME, temp); List_Delete(temp); List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); } - List_Delete((yyvsp[(7) - (8)].l)); + List_Delete((yyvsp[(8) - (9)].l)); (yyval.s).Type = MSH_PHYSICAL_VOLUME; (yyval.s).Num = num; ;} break; - case 119: -#line 1567 "Gmsh.y" + case 123: +#line 1585 "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 120: -#line 1572 "Gmsh.y" + case 124: +#line 1590 "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 121: -#line 1577 "Gmsh.y" + case 125: +#line 1595 "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 122: -#line 1582 "Gmsh.y" + case 126: +#line 1600 "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 123: -#line 1587 "Gmsh.y" + case 127: +#line 1605 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); if(!strcmp((yyvsp[(1) - (4)].c), "Duplicata")){ @@ -5401,8 +5420,8 @@ yyreduce: ;} break; - case 124: -#line 1607 "Gmsh.y" + case 128: +#line 1625 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); IntersectCurvesWithSurface((yyvsp[(4) - (9)].l), (int)(yyvsp[(8) - (9)].d), (yyval.l)); @@ -5410,8 +5429,8 @@ yyreduce: ;} break; - case 125: -#line 1613 "Gmsh.y" + case 129: +#line 1631 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape*)); List_T *tmp = ListOfDouble2ListOfInt((yyvsp[(7) - (9)].l)); @@ -5421,32 +5440,32 @@ yyreduce: ;} break; - case 126: -#line 1623 "Gmsh.y" + case 130: +#line 1641 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 127: -#line 1624 "Gmsh.y" + case 131: +#line 1642 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 128: -#line 1629 "Gmsh.y" + case 132: +#line 1647 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); ;} break; - case 129: -#line 1633 "Gmsh.y" + case 133: +#line 1651 "Gmsh.y" { List_Add((yyval.l), &(yyvsp[(2) - (2)].s)); ;} break; - case 130: -#line 1637 "Gmsh.y" + case 134: +#line 1655 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5471,8 +5490,8 @@ yyreduce: ;} break; - case 131: -#line 1660 "Gmsh.y" + case 135: +#line 1678 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5497,8 +5516,8 @@ yyreduce: ;} break; - case 132: -#line 1683 "Gmsh.y" + case 136: +#line 1701 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5523,8 +5542,8 @@ yyreduce: ;} break; - case 133: -#line 1706 "Gmsh.y" + case 137: +#line 1724 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5549,8 +5568,8 @@ yyreduce: ;} break; - case 134: -#line 1734 "Gmsh.y" + case 138: +#line 1752 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -5561,15 +5580,15 @@ yyreduce: ;} break; - case 135: -#line 1743 "Gmsh.y" + case 139: +#line 1761 "Gmsh.y" { GModel::current()->getFields()->deleteField((int)(yyvsp[(4) - (6)].d)); ;} break; - case 136: -#line 1747 "Gmsh.y" + case 140: +#line 1765 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -5586,8 +5605,8 @@ yyreduce: ;} break; - case 137: -#line 1762 "Gmsh.y" + case 141: +#line 1780 "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++){ @@ -5616,8 +5635,8 @@ yyreduce: ;} break; - case 138: -#line 1789 "Gmsh.y" + case 142: +#line 1807 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (4)].c), "Empty") && !strcmp((yyvsp[(3) - (4)].c), "Views")){ @@ -5631,8 +5650,8 @@ yyreduce: ;} break; - case 139: -#line 1806 "Gmsh.y" + case 143: +#line 1824 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -5643,8 +5662,8 @@ yyreduce: ;} break; - case 140: -#line 1820 "Gmsh.y" + case 144: +#line 1838 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 1); @@ -5652,8 +5671,8 @@ yyreduce: ;} break; - case 141: -#line 1826 "Gmsh.y" + case 145: +#line 1844 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 0); @@ -5661,8 +5680,8 @@ yyreduce: ;} break; - case 142: -#line 1832 "Gmsh.y" + case 146: +#line 1850 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -5673,8 +5692,8 @@ yyreduce: ;} break; - case 143: -#line 1841 "Gmsh.y" + case 147: +#line 1859 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -5685,8 +5704,8 @@ yyreduce: ;} break; - case 144: -#line 1855 "Gmsh.y" + case 148: +#line 1873 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Include")){ char tmpstring[1024]; @@ -5736,8 +5755,8 @@ yyreduce: ;} break; - case 145: -#line 1903 "Gmsh.y" + case 149: +#line 1921 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Save") && !strcmp((yyvsp[(2) - (7)].c), "View")){ @@ -5757,8 +5776,8 @@ yyreduce: ;} break; - case 146: -#line 1921 "Gmsh.y" + case 150: +#line 1939 "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")){ @@ -5775,8 +5794,8 @@ yyreduce: ;} break; - case 147: -#line 1936 "Gmsh.y" + case 151: +#line 1954 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){ SleepInSeconds((yyvsp[(2) - (3)].d)); @@ -5797,8 +5816,8 @@ yyreduce: ;} break; - case 148: -#line 1955 "Gmsh.y" + case 152: +#line 1973 "Gmsh.y" { #if !defined(HAVE_NO_POST) try { @@ -5812,8 +5831,8 @@ yyreduce: ;} break; - case 149: -#line 1967 "Gmsh.y" + case 153: +#line 1985 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (3)].c), "ElementsFromAllViews")) @@ -5839,31 +5858,31 @@ yyreduce: ;} break; - case 150: -#line 1991 "Gmsh.y" + case 154: +#line 2009 "Gmsh.y" { exit(0); ;} break; - case 151: -#line 1995 "Gmsh.y" + case 155: +#line 2013 "Gmsh.y" { CTX::instance()->forcedBBox = 0; SetBoundingBox(); ;} break; - case 152: -#line 2000 "Gmsh.y" + case 156: +#line 2018 "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 153: -#line 2005 "Gmsh.y" + case 157: +#line 2023 "Gmsh.y" { #if defined(HAVE_FLTK) Draw(); @@ -5871,15 +5890,15 @@ yyreduce: ;} break; - case 154: -#line 2011 "Gmsh.y" + case 158: +#line 2029 "Gmsh.y" { - GModel::current()->createTopologyFromMSH(); + GModel::current()->createTopologyFromMesh(); ;} break; - case 155: -#line 2020 "Gmsh.y" + case 159: +#line 2038 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (6)].d); @@ -5898,8 +5917,8 @@ yyreduce: ;} break; - case 156: -#line 2037 "Gmsh.y" + case 160: +#line 2055 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (8)].d); @@ -5918,8 +5937,8 @@ yyreduce: ;} break; - case 157: -#line 2054 "Gmsh.y" + case 161: +#line 2072 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (8)].d); @@ -5940,8 +5959,8 @@ yyreduce: ;} break; - case 158: -#line 2073 "Gmsh.y" + case 162: +#line 2091 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d); @@ -5962,8 +5981,8 @@ yyreduce: ;} break; - case 159: -#line 2092 "Gmsh.y" + case 163: +#line 2110 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(0, "Invalid For/EndFor loop"); @@ -5993,8 +6012,8 @@ yyreduce: ;} break; - case 160: -#line 2120 "Gmsh.y" + case 164: +#line 2138 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction ((yyvsp[(2) - (2)].c), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6004,8 +6023,8 @@ yyreduce: ;} break; - case 161: -#line 2128 "Gmsh.y" + case 165: +#line 2146 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction (&gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6013,8 +6032,8 @@ yyreduce: ;} break; - case 162: -#line 2134 "Gmsh.y" + case 166: +#line 2152 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction ((yyvsp[(2) - (3)].c), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6023,21 +6042,21 @@ yyreduce: ;} break; - case 163: -#line 2141 "Gmsh.y" + case 167: +#line 2159 "Gmsh.y" { if(!(yyvsp[(3) - (4)].d)) skip_until("If", "EndIf"); ;} break; - case 164: -#line 2145 "Gmsh.y" + case 168: +#line 2163 "Gmsh.y" { ;} break; - case 165: -#line 2154 "Gmsh.y" + case 169: +#line 2172 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (5)].l), @@ -6047,8 +6066,8 @@ yyreduce: ;} break; - case 166: -#line 2162 "Gmsh.y" + case 170: +#line 2180 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (11)].l), @@ -6058,8 +6077,8 @@ yyreduce: ;} break; - case 167: -#line 2170 "Gmsh.y" + case 171: +#line 2188 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l), @@ -6069,15 +6088,15 @@ yyreduce: ;} break; - case 168: -#line 2178 "Gmsh.y" + case 172: +#line 2196 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 169: -#line 2182 "Gmsh.y" + case 173: +#line 2200 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l), @@ -6087,15 +6106,15 @@ yyreduce: ;} break; - case 170: -#line 2190 "Gmsh.y" + case 174: +#line 2208 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 171: -#line 2194 "Gmsh.y" + case 175: +#line 2212 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), @@ -6105,15 +6124,15 @@ yyreduce: ;} break; - case 172: -#line 2202 "Gmsh.y" + case 176: +#line 2220 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 173: -#line 2206 "Gmsh.y" + case 177: +#line 2224 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), @@ -6123,15 +6142,15 @@ yyreduce: ;} break; - case 174: -#line 2214 "Gmsh.y" + case 178: +#line 2232 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 175: -#line 2218 "Gmsh.y" + case 179: +#line 2236 "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., @@ -6140,8 +6159,8 @@ yyreduce: ;} break; - case 176: -#line 2227 "Gmsh.y" + case 180: +#line 2245 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), @@ -6150,8 +6169,8 @@ yyreduce: ;} break; - case 177: -#line 2234 "Gmsh.y" + case 181: +#line 2252 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), @@ -6160,8 +6179,8 @@ yyreduce: ;} break; - case 178: -#line 2241 "Gmsh.y" + case 182: +#line 2259 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), @@ -6170,8 +6189,8 @@ yyreduce: ;} break; - case 179: -#line 2248 "Gmsh.y" + case 183: +#line 2266 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -6180,8 +6199,8 @@ yyreduce: ;} break; - case 180: -#line 2255 "Gmsh.y" + case 184: +#line 2273 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -6190,8 +6209,8 @@ yyreduce: ;} break; - case 181: -#line 2262 "Gmsh.y" + case 185: +#line 2280 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -6200,8 +6219,8 @@ yyreduce: ;} break; - case 182: -#line 2269 "Gmsh.y" + case 186: +#line 2287 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), @@ -6210,8 +6229,8 @@ yyreduce: ;} break; - case 183: -#line 2276 "Gmsh.y" + case 187: +#line 2294 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), @@ -6220,8 +6239,8 @@ yyreduce: ;} break; - case 184: -#line 2283 "Gmsh.y" + case 188: +#line 2301 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), @@ -6230,15 +6249,15 @@ yyreduce: ;} break; - case 185: -#line 2290 "Gmsh.y" + case 189: +#line 2308 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 186: -#line 2294 "Gmsh.y" + case 190: +#line 2312 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -6247,15 +6266,15 @@ yyreduce: ;} break; - case 187: -#line 2301 "Gmsh.y" + case 191: +#line 2319 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 188: -#line 2305 "Gmsh.y" + case 192: +#line 2323 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -6264,15 +6283,15 @@ yyreduce: ;} break; - case 189: -#line 2312 "Gmsh.y" + case 193: +#line 2330 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 190: -#line 2316 "Gmsh.y" + case 194: +#line 2334 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -6281,15 +6300,15 @@ yyreduce: ;} break; - case 191: -#line 2323 "Gmsh.y" + case 195: +#line 2341 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 192: -#line 2327 "Gmsh.y" + case 196: +#line 2345 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), @@ -6298,15 +6317,15 @@ yyreduce: ;} break; - case 193: -#line 2334 "Gmsh.y" + case 197: +#line 2352 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 194: -#line 2338 "Gmsh.y" + case 198: +#line 2356 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), @@ -6315,15 +6334,15 @@ yyreduce: ;} break; - case 195: -#line 2345 "Gmsh.y" + case 199: +#line 2363 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 196: -#line 2349 "Gmsh.y" + case 200: +#line 2367 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), @@ -6332,15 +6351,15 @@ yyreduce: ;} break; - case 197: -#line 2356 "Gmsh.y" + case 201: +#line 2374 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 198: -#line 2360 "Gmsh.y" + case 202: +#line 2378 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), @@ -6349,15 +6368,15 @@ yyreduce: ;} break; - case 199: -#line 2367 "Gmsh.y" + case 203: +#line 2385 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 200: -#line 2371 "Gmsh.y" + case 204: +#line 2389 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), @@ -6366,15 +6385,15 @@ yyreduce: ;} break; - case 201: -#line 2378 "Gmsh.y" + case 205: +#line 2396 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 202: -#line 2382 "Gmsh.y" + case 206: +#line 2400 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), @@ -6383,20 +6402,20 @@ yyreduce: ;} break; - case 203: -#line 2393 "Gmsh.y" + case 207: +#line 2411 "Gmsh.y" { ;} break; - case 204: -#line 2396 "Gmsh.y" + case 208: +#line 2414 "Gmsh.y" { ;} break; - case 205: -#line 2402 "Gmsh.y" + case 209: +#line 2420 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = 1; @@ -6407,8 +6426,8 @@ yyreduce: ;} break; - case 206: -#line 2411 "Gmsh.y" + case 210: +#line 2429 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l)); @@ -6430,8 +6449,8 @@ yyreduce: ;} break; - case 207: -#line 2431 "Gmsh.y" + case 211: +#line 2449 "Gmsh.y" { yymsg(0, "Explicit region numbers in layers are deprecated"); extr.mesh.ExtrudeMesh = true; @@ -6456,15 +6475,15 @@ yyreduce: ;} break; - case 208: -#line 2454 "Gmsh.y" + case 212: +#line 2472 "Gmsh.y" { extr.mesh.Recombine = true; ;} break; - case 209: -#line 2458 "Gmsh.y" + case 213: +#line 2476 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindSurface(num)){ @@ -6485,15 +6504,15 @@ yyreduce: ;} break; - case 210: -#line 2481 "Gmsh.y" + case 214: +#line 2499 "Gmsh.y" { (yyval.v)[0] = (yyval.v)[1] = 1.; ;} break; - case 211: -#line 2485 "Gmsh.y" + case 215: +#line 2503 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power")) (yyval.v)[0] = 1.; @@ -6508,15 +6527,15 @@ yyreduce: ;} break; - case 212: -#line 2500 "Gmsh.y" + case 216: +#line 2518 "Gmsh.y" { (yyval.i) = -1; // left ;} break; - case 213: -#line 2504 "Gmsh.y" + case 217: +#line 2522 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Right")) (yyval.i) = 1; @@ -6528,36 +6547,36 @@ yyreduce: ;} break; - case 214: -#line 2516 "Gmsh.y" + case 218: +#line 2534 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; - case 215: -#line 2520 "Gmsh.y" + case 219: +#line 2538 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; - case 216: -#line 2525 "Gmsh.y" + case 220: +#line 2543 "Gmsh.y" { (yyval.i) = 45; ;} break; - case 217: -#line 2529 "Gmsh.y" + case 221: +#line 2547 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(2) - (2)].d); ;} break; - case 218: -#line 2536 "Gmsh.y" + case 222: +#line 2554 "Gmsh.y" { int type = (int)(yyvsp[(6) - (7)].v)[0]; double coef = fabs((yyvsp[(6) - (7)].v)[1]); @@ -6615,8 +6634,8 @@ yyreduce: ;} break; - case 219: -#line 2592 "Gmsh.y" + case 223: +#line 2610 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (6)].l)); if(k != 0 && k != 3 && k != 4){ @@ -6688,16 +6707,16 @@ yyreduce: ;} break; - case 220: -#line 2662 "Gmsh.y" + case 224: +#line 2680 "Gmsh.y" { yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete((yyvsp[(7) - (8)].l)); ;} break; - case 221: -#line 2667 "Gmsh.y" + case 225: +#line 2685 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (5)].l)); if(k != 0 && k != 6 && k != 8){ @@ -6766,8 +6785,8 @@ yyreduce: ;} break; - case 222: -#line 2734 "Gmsh.y" + case 226: +#line 2752 "Gmsh.y" { if(!(yyvsp[(3) - (5)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -6812,8 +6831,8 @@ yyreduce: ;} break; - case 223: -#line 2777 "Gmsh.y" + case 227: +#line 2795 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -6835,8 +6854,8 @@ yyreduce: ;} break; - case 224: -#line 2803 "Gmsh.y" + case 228: +#line 2821 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -6861,8 +6880,8 @@ yyreduce: ;} break; - case 225: -#line 2826 "Gmsh.y" + case 229: +#line 2844 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -6887,27 +6906,27 @@ yyreduce: ;} break; - case 226: -#line 2849 "Gmsh.y" + case 230: +#line 2867 "Gmsh.y" { ;} break; - case 227: -#line 2852 "Gmsh.y" + case 231: +#line 2870 "Gmsh.y" { ;} break; - case 228: -#line 2861 "Gmsh.y" + case 232: +#line 2879 "Gmsh.y" { ReplaceAllDuplicates(); ;} break; - case 229: -#line 2865 "Gmsh.y" + case 233: +#line 2883 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) ReplaceAllDuplicates(); @@ -6919,48 +6938,48 @@ yyreduce: ;} break; - case 230: -#line 2880 "Gmsh.y" + case 234: +#line 2898 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; - case 231: -#line 2881 "Gmsh.y" + case 235: +#line 2899 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; - case 232: -#line 2882 "Gmsh.y" + case 236: +#line 2900 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; - case 233: -#line 2883 "Gmsh.y" + case 237: +#line 2901 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; - case 234: -#line 2884 "Gmsh.y" + case 238: +#line 2902 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; - case 235: -#line 2885 "Gmsh.y" + case 239: +#line 2903 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; - case 236: -#line 2886 "Gmsh.y" + case 240: +#line 2904 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; - case 237: -#line 2887 "Gmsh.y" + case 241: +#line 2905 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} break; - case 238: -#line 2889 "Gmsh.y" + case 242: +#line 2907 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -6969,308 +6988,308 @@ yyreduce: ;} break; - case 239: -#line 2895 "Gmsh.y" + case 243: +#line 2913 "Gmsh.y" { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; - case 240: -#line 2896 "Gmsh.y" + case 244: +#line 2914 "Gmsh.y" { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; - case 241: -#line 2897 "Gmsh.y" + case 245: +#line 2915 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; - case 242: -#line 2898 "Gmsh.y" + case 246: +#line 2916 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; - case 243: -#line 2899 "Gmsh.y" + case 247: +#line 2917 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; - case 244: -#line 2900 "Gmsh.y" + case 248: +#line 2918 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; - case 245: -#line 2901 "Gmsh.y" + case 249: +#line 2919 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; - case 246: -#line 2902 "Gmsh.y" + case 250: +#line 2920 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; - case 247: -#line 2903 "Gmsh.y" + case 251: +#line 2921 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; - case 248: -#line 2904 "Gmsh.y" + case 252: +#line 2922 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; - case 249: -#line 2905 "Gmsh.y" + case 253: +#line 2923 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; - case 250: -#line 2906 "Gmsh.y" + case 254: +#line 2924 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; - case 251: -#line 2907 "Gmsh.y" + case 255: +#line 2925 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; - case 252: -#line 2908 "Gmsh.y" + case 256: +#line 2926 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; - case 253: -#line 2909 "Gmsh.y" + case 257: +#line 2927 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; - case 254: -#line 2910 "Gmsh.y" + case 258: +#line 2928 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; - case 255: -#line 2911 "Gmsh.y" + case 259: +#line 2929 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; - case 256: -#line 2912 "Gmsh.y" + case 260: +#line 2930 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; - case 257: -#line 2913 "Gmsh.y" + case 261: +#line 2931 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; - case 258: -#line 2914 "Gmsh.y" + case 262: +#line 2932 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; - case 259: -#line 2915 "Gmsh.y" + case 263: +#line 2933 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; - case 260: -#line 2916 "Gmsh.y" + case 264: +#line 2934 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; - case 261: -#line 2917 "Gmsh.y" + case 265: +#line 2935 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; - case 262: -#line 2918 "Gmsh.y" + case 266: +#line 2936 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; - - case 263: -#line 2919 "Gmsh.y" + + case 267: +#line 2937 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; - case 264: -#line 2920 "Gmsh.y" + case 268: +#line 2938 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; - case 265: -#line 2921 "Gmsh.y" + case 269: +#line 2939 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; - case 266: -#line 2922 "Gmsh.y" + case 270: +#line 2940 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; - case 267: -#line 2923 "Gmsh.y" + case 271: +#line 2941 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 268: -#line 2924 "Gmsh.y" + case 272: +#line 2942 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 269: -#line 2925 "Gmsh.y" + case 273: +#line 2943 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; - case 270: -#line 2926 "Gmsh.y" + case 274: +#line 2944 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; - case 271: -#line 2928 "Gmsh.y" + case 275: +#line 2946 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; - case 272: -#line 2929 "Gmsh.y" + case 276: +#line 2947 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; - case 273: -#line 2930 "Gmsh.y" + case 277: +#line 2948 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; - case 274: -#line 2931 "Gmsh.y" + case 278: +#line 2949 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; - case 275: -#line 2932 "Gmsh.y" + case 279: +#line 2950 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; - case 276: -#line 2933 "Gmsh.y" + case 280: +#line 2951 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; - case 277: -#line 2934 "Gmsh.y" + case 281: +#line 2952 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; - case 278: -#line 2935 "Gmsh.y" + case 282: +#line 2953 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; - case 279: -#line 2936 "Gmsh.y" + case 283: +#line 2954 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; - case 280: -#line 2937 "Gmsh.y" + case 284: +#line 2955 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; - case 281: -#line 2938 "Gmsh.y" + case 285: +#line 2956 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; - case 282: -#line 2939 "Gmsh.y" + case 286: +#line 2957 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; - case 283: -#line 2940 "Gmsh.y" + case 287: +#line 2958 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; - case 284: -#line 2941 "Gmsh.y" + case 288: +#line 2959 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; - case 285: -#line 2942 "Gmsh.y" + case 289: +#line 2960 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; - case 286: -#line 2943 "Gmsh.y" + case 290: +#line 2961 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; - case 287: -#line 2944 "Gmsh.y" + case 291: +#line 2962 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; - case 288: -#line 2945 "Gmsh.y" + case 292: +#line 2963 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 289: -#line 2946 "Gmsh.y" + case 293: +#line 2964 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 290: -#line 2947 "Gmsh.y" + case 294: +#line 2965 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; - case 291: -#line 2948 "Gmsh.y" + case 295: +#line 2966 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; - case 292: -#line 2957 "Gmsh.y" + case 296: +#line 2975 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; - case 293: -#line 2958 "Gmsh.y" + case 297: +#line 2976 "Gmsh.y" { (yyval.d) = 3.141592653589793; ;} break; - case 294: -#line 2959 "Gmsh.y" + case 298: +#line 2977 "Gmsh.y" { (yyval.d) = Msg::GetCommRank(); ;} break; - case 295: -#line 2960 "Gmsh.y" + case 299: +#line 2978 "Gmsh.y" { (yyval.d) = Msg::GetCommSize(); ;} break; - case 296: -#line 2961 "Gmsh.y" + case 300: +#line 2979 "Gmsh.y" { (yyval.d) = GetGmshMajorVersion(); ;} break; - case 297: -#line 2962 "Gmsh.y" + case 301: +#line 2980 "Gmsh.y" { (yyval.d) = GetGmshMinorVersion(); ;} break; - case 298: -#line 2963 "Gmsh.y" + case 302: +#line 2981 "Gmsh.y" { (yyval.d) = GetGmshPatchVersion(); ;} break; - case 299: -#line 2968 "Gmsh.y" + case 303: +#line 2986 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c)); @@ -7282,8 +7301,8 @@ yyreduce: ;} break; - case 300: -#line 2981 "Gmsh.y" + case 304: +#line 2999 "Gmsh.y" { char tmpstring[1024]; sprintf(tmpstring, "%s_%d", (yyvsp[(1) - (5)].c), (int)(yyvsp[(4) - (5)].d)) ; @@ -7297,8 +7316,8 @@ yyreduce: ;} break; - case 301: -#line 2993 "Gmsh.y" + case 305: +#line 3011 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -7315,8 +7334,8 @@ yyreduce: ;} break; - case 302: -#line 3008 "Gmsh.y" + case 306: +#line 3026 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(2) - (4)].c)); @@ -7328,8 +7347,8 @@ yyreduce: ;} break; - case 303: -#line 3018 "Gmsh.y" + case 307: +#line 3036 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -7341,8 +7360,8 @@ yyreduce: ;} break; - case 304: -#line 3028 "Gmsh.y" + case 308: +#line 3046 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -7359,24 +7378,24 @@ yyreduce: ;} break; - case 305: -#line 3046 "Gmsh.y" + case 309: +#line 3064 "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 306: -#line 3051 "Gmsh.y" + case 310: +#line 3069 "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 307: -#line 3056 "Gmsh.y" + case 311: +#line 3074 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -7388,8 +7407,8 @@ yyreduce: ;} break; - case 308: -#line 3066 "Gmsh.y" + case 312: +#line 3084 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -7401,124 +7420,124 @@ yyreduce: ;} break; - case 309: -#line 3076 "Gmsh.y" + case 313: +#line 3094 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); ;} break; - case 310: -#line 3084 "Gmsh.y" + case 314: +#line 3102 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; - case 311: -#line 3088 "Gmsh.y" + case 315: +#line 3106 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; - case 312: -#line 3092 "Gmsh.y" + case 316: +#line 3110 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; - case 313: -#line 3096 "Gmsh.y" + case 317: +#line 3114 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; - case 314: -#line 3100 "Gmsh.y" + case 318: +#line 3118 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; - case 315: -#line 3107 "Gmsh.y" + case 319: +#line 3125 "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 316: -#line 3111 "Gmsh.y" + case 320: +#line 3129 "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 317: -#line 3115 "Gmsh.y" + case 321: +#line 3133 "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 318: -#line 3119 "Gmsh.y" + case 322: +#line 3137 "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 319: -#line 3126 "Gmsh.y" + case 323: +#line 3144 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); ;} break; - case 320: -#line 3131 "Gmsh.y" + case 324: +#line 3149 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; - case 321: -#line 3138 "Gmsh.y" + case 325: +#line 3156 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 322: -#line 3143 "Gmsh.y" + case 326: +#line 3161 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 323: -#line 3147 "Gmsh.y" + case 327: +#line 3165 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); ;} break; - case 324: -#line 3152 "Gmsh.y" + case 328: +#line 3170 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 325: -#line 3156 "Gmsh.y" + case 329: +#line 3174 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7528,8 +7547,8 @@ yyreduce: ;} break; - case 326: -#line 3164 "Gmsh.y" + case 330: +#line 3182 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7539,15 +7558,15 @@ yyreduce: ;} break; - case 327: -#line 3175 "Gmsh.y" + case 331: +#line 3193 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 328: -#line 3179 "Gmsh.y" + case 332: +#line 3197 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all")) (yyval.l) = 0; @@ -7558,8 +7577,8 @@ yyreduce: ;} break; - case 329: -#line 3191 "Gmsh.y" + case 333: +#line 3209 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7569,8 +7588,8 @@ yyreduce: ;} break; - case 330: -#line 3199 "Gmsh.y" + case 334: +#line 3217 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7580,8 +7599,8 @@ yyreduce: ;} break; - case 331: -#line 3207 "Gmsh.y" + case 335: +#line 3225 "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)); @@ -7590,8 +7609,8 @@ yyreduce: ;} break; - case 332: -#line 3214 "Gmsh.y" + case 336: +#line 3232 "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)){ @@ -7604,8 +7623,8 @@ yyreduce: ;} break; - case 333: -#line 3225 "Gmsh.y" + case 337: +#line 3243 "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 @@ -7627,8 +7646,8 @@ yyreduce: ;} break; - case 334: -#line 3245 "Gmsh.y" + case 338: +#line 3263 "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++){ @@ -7640,8 +7659,8 @@ yyreduce: ;} break; - case 335: -#line 3255 "Gmsh.y" + case 339: +#line 3273 "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++){ @@ -7653,8 +7672,8 @@ yyreduce: ;} break; - case 336: -#line 3265 "Gmsh.y" + case 340: +#line 3283 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -7666,8 +7685,8 @@ yyreduce: ;} break; - case 337: -#line 3275 "Gmsh.y" + case 341: +#line 3293 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -7686,30 +7705,30 @@ yyreduce: ;} break; - case 338: -#line 3295 "Gmsh.y" + case 342: +#line 3313 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 339: -#line 3300 "Gmsh.y" + case 343: +#line 3318 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 340: -#line 3304 "Gmsh.y" + case 344: +#line 3322 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; - case 341: -#line 3308 "Gmsh.y" + case 345: +#line 3326 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -7720,22 +7739,22 @@ yyreduce: ;} break; - case 342: -#line 3320 "Gmsh.y" + case 346: +#line 3338 "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 343: -#line 3324 "Gmsh.y" + case 347: +#line 3342 "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 344: -#line 3336 "Gmsh.y" + case 348: +#line 3354 "Gmsh.y" { int flag; (yyval.u) = GetColorForString(ColorString, -1, (yyvsp[(1) - (1)].c), &flag); @@ -7744,8 +7763,8 @@ yyreduce: ;} break; - case 345: -#line 3343 "Gmsh.y" + case 349: +#line 3361 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -7754,15 +7773,15 @@ yyreduce: ;} break; - case 346: -#line 3353 "Gmsh.y" + case 350: +#line 3371 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 347: -#line 3357 "Gmsh.y" + case 351: +#line 3375 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (6)].d)); @@ -7776,30 +7795,30 @@ yyreduce: ;} break; - case 348: -#line 3372 "Gmsh.y" + case 352: +#line 3390 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); ;} break; - case 349: -#line 3377 "Gmsh.y" + case 353: +#line 3395 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; - case 350: -#line 3384 "Gmsh.y" + case 354: +#line 3402 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 351: -#line 3388 "Gmsh.y" + case 355: +#line 3406 "Gmsh.y" { if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown string variable '%s'", (yyvsp[(1) - (1)].c)); @@ -7814,8 +7833,8 @@ yyreduce: ;} break; - case 352: -#line 3401 "Gmsh.y" + case 356: +#line 3419 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), out); @@ -7825,8 +7844,8 @@ yyreduce: ;} break; - case 353: -#line 3409 "Gmsh.y" + case 357: +#line 3427 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), out); @@ -7836,15 +7855,15 @@ yyreduce: ;} break; - case 354: -#line 3420 "Gmsh.y" + case 358: +#line 3438 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 355: -#line 3424 "Gmsh.y" + case 359: +#line 3442 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -7854,8 +7873,8 @@ yyreduce: ;} break; - case 356: -#line 3432 "Gmsh.y" + case 360: +#line 3450 "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)); @@ -7865,8 +7884,8 @@ yyreduce: ;} break; - case 357: -#line 3440 "Gmsh.y" + case 361: +#line 3458 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -7882,8 +7901,8 @@ yyreduce: ;} break; - case 358: -#line 3454 "Gmsh.y" + case 362: +#line 3472 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -7899,15 +7918,15 @@ yyreduce: ;} break; - case 359: -#line 3468 "Gmsh.y" + case 363: +#line 3486 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; - case 360: -#line 3472 "Gmsh.y" + case 364: +#line 3490 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -7930,7 +7949,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 7934 "Gmsh.tab.cpp" +#line 7953 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -8144,7 +8163,7 @@ yyreturn: } -#line 3492 "Gmsh.y" +#line 3510 "Gmsh.y" int PrintListOfDouble(char *format, List_T *list, char *buffer) diff --git a/Parser/Gmsh.tab.hpp b/Parser/Gmsh.tab.hpp index 90c4b71fcb807b8489677dd01f27f280301552ba..5fbe87fe4d81426b987ba5b9dff21bd826973450 100644 --- a/Parser/Gmsh.tab.hpp +++ b/Parser/Gmsh.tab.hpp @@ -286,7 +286,7 @@ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 72 "Gmsh.y" +#line 73 "Gmsh.y" { char *c; int i; diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index f4b3d97779a1305f664b7ffba4e911420ac4366a..951cc492949801838fa990c56c7a801130080cd8 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -53,6 +53,7 @@ static std::vector<double> ViewCoord; static List_T *ViewValueList = 0; static int *ViewNumList = 0; static ExtrudeParams extr; +static int curPhysDim = 0; static gmshSurface *myGmshSurface = 0; #define MAX_RECUR_LOOPS 100 static int ImbricatedLoop = 0; @@ -990,7 +991,8 @@ PhysicalId : | StringExpr { $$ = GModel::current()->setPhysicalName - (std::string($1), ++GModel::current()->getGEOInternals()->MaxPhysicalNum); + (std::string($1), curPhysDim, + ++GModel::current()->getGEOInternals()->MaxPhysicalNum); Free($1); } ; @@ -1049,19 +1051,23 @@ Shape : $$.Type = MSH_POINT; $$.Num = num; } - | tPhysical tPoint '(' PhysicalId ')' tAFFECT ListOfDouble tEND + | tPhysical tPoint { - int num = (int)$4; + curPhysDim = 0; + } + '(' PhysicalId ')' tAFFECT ListOfDouble tEND + { + int num = (int)$5; if(FindPhysicalGroup(num, MSH_PHYSICAL_POINT)){ yymsg(0, "Physical point %d already exists", num); } else{ - List_T *temp = ListOfDouble2ListOfInt($7); + List_T *temp = ListOfDouble2ListOfInt($8); PhysicalGroup *p = Create_PhysicalGroup(num, MSH_PHYSICAL_POINT, temp); List_Delete(temp); List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); } - List_Delete($7); + List_Delete($8); $$.Type = MSH_PHYSICAL_POINT; $$.Num = num; } @@ -1282,19 +1288,23 @@ Shape : $$.Type = MSH_SEGM_LOOP; $$.Num = num; } - | tPhysical tLine '(' PhysicalId ')' tAFFECT ListOfDouble tEND + | tPhysical tLine { - int num = (int)$4; + curPhysDim = 1; + } + '(' PhysicalId ')' tAFFECT ListOfDouble tEND + { + int num = (int)$5; if(FindPhysicalGroup(num, MSH_PHYSICAL_LINE)){ yymsg(0, "Physical line %d already exists", num); } else{ - List_T *temp = ListOfDouble2ListOfInt($7); + List_T *temp = ListOfDouble2ListOfInt($8); PhysicalGroup *p = Create_PhysicalGroup(num, MSH_PHYSICAL_LINE, temp); List_Delete(temp); List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); } - List_Delete($7); + List_Delete($8); $$.Type = MSH_PHYSICAL_LINE; $$.Num = num; } @@ -1443,19 +1453,23 @@ Shape : $$.Type = MSH_SURF_LOOP; $$.Num = num; } - | tPhysical tSurface '(' PhysicalId ')' tAFFECT ListOfDouble tEND + | tPhysical tSurface { - int num = (int)$4; + curPhysDim = 2; + } + '(' PhysicalId ')' tAFFECT ListOfDouble tEND + { + int num = (int)$5; if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){ yymsg(0, "Physical surface %d already exists", num); } else{ - List_T *temp = ListOfDouble2ListOfInt($7); + List_T *temp = ListOfDouble2ListOfInt($8); PhysicalGroup *p = Create_PhysicalGroup(num, MSH_PHYSICAL_SURFACE, temp); List_Delete(temp); List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); } - List_Delete($7); + List_Delete($8); $$.Type = MSH_PHYSICAL_SURFACE; $$.Num = num; } @@ -1542,19 +1556,23 @@ Shape : $$.Type = MSH_VOLUME; $$.Num = num; } - | tPhysical tVolume '(' PhysicalId ')' tAFFECT ListOfDouble tEND + | tPhysical tVolume { - int num = (int)$4; + curPhysDim = 3; + } + '(' PhysicalId ')' tAFFECT ListOfDouble tEND + { + int num = (int)$5; if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME)){ yymsg(0, "Physical volume %d already exists", num); } else{ - List_T *temp = ListOfDouble2ListOfInt($7); + List_T *temp = ListOfDouble2ListOfInt($8); PhysicalGroup *p = Create_PhysicalGroup(num, MSH_PHYSICAL_VOLUME, temp); List_Delete(temp); List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); } - List_Delete($7); + List_Delete($8); $$.Type = MSH_PHYSICAL_VOLUME; $$.Num = num; } @@ -2009,7 +2027,7 @@ Command : } | tCreateTopology tEND { - GModel::current()->createTopologyFromMSH(); + GModel::current()->createTopologyFromMesh(); } ; diff --git a/Plugin/FiniteElement.cpp b/Plugin/FiniteElement.cpp index b35428a4297b0c164a45fdc78e6cd91feebe427f..3dd214efd7d7297a3f55a0ea02cca1aad25fe33e 100644 --- a/Plugin/FiniteElement.cpp +++ b/Plugin/FiniteElement.cpp @@ -145,16 +145,16 @@ class solver{ int dim = m->getNumRegions() ? 3 : 2; if(bc1 == "Dirichlet"){ - m->getMeshVertices(surface1, dim-1, vertices); + m->getMeshVerticesForPhysicalGroup(dim - 1, surface1, vertices); for(unsigned int i = 0; i < vertices.size(); i++) myAssembler->fixVertex(vertices[i], 0, 1, value1); } if(bc2 == "Dirichlet"){ - m->getMeshVertices(surface2, dim-1, vertices); + m->getMeshVerticesForPhysicalGroup(dim - 1, surface2, vertices); for(unsigned int i = 0; i < vertices.size(); i++) myAssembler->fixVertex(vertices[i], 0, 1, value2); } - m->getMeshVertices(volume, dim, vertices); + m->getMeshVerticesForPhysicalGroup(dim, volume, vertices); for(unsigned int i = 0; i < vertices.size(); i++) myAssembler->numberVertex(vertices[i], 0, 1); @@ -177,7 +177,7 @@ PView *GMSH_FiniteElementPlugin::execute(PView *v) int dim = m->getNumRegions() ? 3 : 2; std::vector<MVertex*> vertices; - m->getMeshVertices(volume, dim, vertices); + m->getMeshVerticesForPhysicalGroup(dim, volume, vertices); std::map<int, std::vector<double> > data; if(equation == "Projection"){ diff --git a/doc/VERSIONS.txt b/doc/VERSIONS.txt index 118edd6a034db9d14ed639b4d4331c33671cc50d..5c2d25ebe5678a543a750d902306cce9715aa729 100644 --- a/doc/VERSIONS.txt +++ b/doc/VERSIONS.txt @@ -1,7 +1,9 @@ -$Id: VERSIONS.txt,v 1.44 2009-04-01 18:50:53 geuzaine Exp $ +$Id: VERSIONS.txt,v 1.45 2009-05-19 19:29:52 geuzaine Exp $ 2.3.2 (?): optionally copy transfinite mesh contraints during geometry -transformations. +transformations; bumped mesh version format to 2.1 (small change in +the $PhysicalNames section, where the group dimension is now +required). 2.3.1 (Mar 18, 2009): removed GSL dependency (Gmsh now simply uses Blas and Lapack); new per-window visibility; added support for diff --git a/doc/texinfo/gmsh.texi b/doc/texinfo/gmsh.texi index 54c80e8ed98d092dd9e487bde3ff2f953f4f181c..f650bf2aad6fb9bca078e169db4603db6d24a0f0 100644 --- a/doc/texinfo/gmsh.texi +++ b/doc/texinfo/gmsh.texi @@ -3075,7 +3075,7 @@ for some examples. This chapter describes Gmsh's native ``MSH'' file format, used to store meshes and associated post-processing datasets. The MSH format exists in two flavors: ASCII and binary. The format has a version number -(currently: 2.0) that is independent of Gmsh's main version number. +(currently: 2.1) that is independent of Gmsh's main version number. (Remember that for small post-processing datasets you can also use human-readable ``parsed'' post-processing views, as described in @@ -3133,7 +3133,7 @@ $Elements $EndElements $PhysicalNames @var{number-of-names} -@var{physical-number} "@var{physical-name}" +@var{physical-dimension} @var{physical-number} "@var{physical-name}" @dots{} $EndPhysicalNames $NodeData @@ -3181,7 +3181,7 @@ $ElementEndNodeData where @table @code @item @var{version-number} -is a real number equal to 2.0 +is a real number equal to 2.1 @item @var{file-type} is an integer equal to 0 in the ASCII file format. @@ -3351,7 +3351,7 @@ file!): @smallexample $MeshFormat -2.0 0 8 +2.1 0 8 $EndMeshFormat $Nodes 6 @emph{six mesh nodes:} @@ -3421,7 +3421,7 @@ $EndElements where @table @code @item @var{version-number} -is a real number equal to 2.0. +is a real number equal to 2.1. @item @var{file-type} is an integer equal to 1.