From 99d9fddc42afb5da8111980a29abeff8d1ff5775 Mon Sep 17 00:00:00 2001 From: "erwin.coumans" Date: Thu, 4 Feb 2010 05:28:17 +0000 Subject: [PATCH] add name for collision shape and constraint serialization (to objects, shapes and constaints can be mapped to user data) updated serialization structures and header files (for new 'm_name' field, replacing user pointer) fix issue with btGeneric6DofConstraint::setParam in headerfile --- Demos/SerializeDemo/SerializeDemo.cpp | 18 +- Demos/SerializeDemo/testFile.bullet | Bin 67724 -> 67844 bytes .../bullet_btCollisionObjectDoubleData.h | 2 +- .../bullet_btCollisionObjectFloatData.h | 2 +- .../bullet_btCollisionShapeData.h | 2 +- .../bullet_btTypedConstraintData.h | 7 +- .../CollisionShapes/btCollisionShape.cpp | 17 +- .../CollisionShapes/btCollisionShape.h | 12 +- .../btGeneric6DofConstraint.h | 4 +- .../ConstraintSolver/btTypedConstraint.cpp | 8 +- .../ConstraintSolver/btTypedConstraint.h | 4 +- src/LinearMath/btSerializer.cpp | 780 +++++++++--------- 12 files changed, 440 insertions(+), 416 deletions(-) diff --git a/Demos/SerializeDemo/SerializeDemo.cpp b/Demos/SerializeDemo/SerializeDemo.cpp index c39fbda8d..f8a200148 100644 --- a/Demos/SerializeDemo/SerializeDemo.cpp +++ b/Demos/SerializeDemo/SerializeDemo.cpp @@ -16,9 +16,9 @@ subject to the following restrictions: #define TEST_SERIALIZATION 1 -//#ifdef BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES +#ifdef BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES #define CREATE_NEW_BULLETFILE 1 -//#endif //BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES +#endif //BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES ///create 125 (5x5x5) dynamic object #define ARRAY_SIZE_X 5 @@ -230,6 +230,20 @@ void SerializeDemo::initPhysics() static char* groundName = "GroundName"; serializer->registerNameForPointer(groundObject, groundName); + for (int i=0;iregisterNameForPointer(m_collisionShapes[i],name); + } + + btPoint2PointConstraint* p2p = new btPoint2PointConstraint(*(btRigidBody*)getDynamicsWorld()->getCollisionObjectArray()[2],btVector3(0,1,0)); + m_dynamicsWorld->addConstraint(p2p); + + const char* name = "constraintje"; + serializer->registerNameForPointer(p2p,name); + m_dynamicsWorld->serialize(serializer); FILE* f2 = fopen("testFile.bullet","wb"); diff --git a/Demos/SerializeDemo/testFile.bullet b/Demos/SerializeDemo/testFile.bullet index c56a891226b2ebb74bd5280995623c28a5b52ab7..b946379739fca1bcdbd185eb00d3a423fe5e86e8 100644 GIT binary patch literal 67844 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 N;5a)t&Q5dO{{v9MTw(wK diff --git a/Extras/Serialize/BulletFileLoader/autogenerated/bullet_btCollisionObjectDoubleData.h b/Extras/Serialize/BulletFileLoader/autogenerated/bullet_btCollisionObjectDoubleData.h index 95751613b..dc916d281 100644 --- a/Extras/Serialize/BulletFileLoader/autogenerated/bullet_btCollisionObjectDoubleData.h +++ b/Extras/Serialize/BulletFileLoader/autogenerated/bullet_btCollisionObjectDoubleData.h @@ -36,7 +36,7 @@ namespace Bullet { void *m_broadphaseHandle; void *m_collisionShape; btCollisionShapeData *m_rootCollisionShape; - void *m_userObjectPointer; + char *m_name; btTransformDoubleData m_worldTransform; btTransformDoubleData m_interpolationWorldTransform; btVector3DoubleData m_interpolationLinearVelocity; diff --git a/Extras/Serialize/BulletFileLoader/autogenerated/bullet_btCollisionObjectFloatData.h b/Extras/Serialize/BulletFileLoader/autogenerated/bullet_btCollisionObjectFloatData.h index 450a8b793..fb068050d 100644 --- a/Extras/Serialize/BulletFileLoader/autogenerated/bullet_btCollisionObjectFloatData.h +++ b/Extras/Serialize/BulletFileLoader/autogenerated/bullet_btCollisionObjectFloatData.h @@ -36,7 +36,7 @@ namespace Bullet { void *m_broadphaseHandle; void *m_collisionShape; btCollisionShapeData *m_rootCollisionShape; - void *m_userObjectPointer; + char *m_name; btTransformFloatData m_worldTransform; btTransformFloatData m_interpolationWorldTransform; btVector3FloatData m_interpolationLinearVelocity; diff --git a/Extras/Serialize/BulletFileLoader/autogenerated/bullet_btCollisionShapeData.h b/Extras/Serialize/BulletFileLoader/autogenerated/bullet_btCollisionShapeData.h index f1a1465ad..8a1efeff0 100644 --- a/Extras/Serialize/BulletFileLoader/autogenerated/bullet_btCollisionShapeData.h +++ b/Extras/Serialize/BulletFileLoader/autogenerated/bullet_btCollisionShapeData.h @@ -31,7 +31,7 @@ namespace Bullet { class btCollisionShapeData { public: - void *m_userPointer; + char *m_name; int m_shapeType; char m_padding[4]; }; diff --git a/Extras/Serialize/BulletFileLoader/autogenerated/bullet_btTypedConstraintData.h b/Extras/Serialize/BulletFileLoader/autogenerated/bullet_btTypedConstraintData.h index fdb613b28..b05882e42 100644 --- a/Extras/Serialize/BulletFileLoader/autogenerated/bullet_btTypedConstraintData.h +++ b/Extras/Serialize/BulletFileLoader/autogenerated/bullet_btTypedConstraintData.h @@ -23,7 +23,6 @@ // -------------------------------------------------- // #include "bullet_Common.h" -#include "bullet_btVector3FloatData.h" namespace Bullet { @@ -34,9 +33,7 @@ namespace Bullet { public: bInvalidHandle *m_rbA; bInvalidHandle *m_rbB; - btVector3FloatData m_appliedLinearImpulse; - btVector3FloatData m_appliedAngularImpulseA; - btVector3FloatData m_appliedAngularImpulseB; + char *m_name; int m_objectType; int m_userConstraintType; int m_userConstraintId; @@ -44,7 +41,7 @@ namespace Bullet { float m_appliedImpulse; float m_dbgDrawSize; int m_disableCollisionsBetweenLinkedBodies; - char m_pad[4]; + char m_pad4[4]; }; } diff --git a/src/BulletCollision/CollisionShapes/btCollisionShape.cpp b/src/BulletCollision/CollisionShapes/btCollisionShape.cpp index 95ad5fa5b..9372a67b0 100644 --- a/src/BulletCollision/CollisionShapes/btCollisionShape.cpp +++ b/src/BulletCollision/CollisionShapes/btCollisionShape.cpp @@ -13,7 +13,7 @@ subject to the following restrictions: 3. This notice may not be removed or altered from any source distribution. */ #include "BulletCollision/CollisionShapes/btCollisionShape.h" - +#include "LinearMath/btSerializer.h" /* Make sure this dummy function never changes so that it @@ -94,3 +94,18 @@ void btCollisionShape::calculateTemporalAabb(const btTransform& curTrans,const b temporalAabbMin -= angularMotion3d; temporalAabbMax += angularMotion3d; } + +///fills the dataBuffer and returns the struct name (and 0 on failure) +const char* btCollisionShape::serialize(void* dataBuffer, btSerializer* serializer) const +{ + btCollisionShapeData* shapeData = (btCollisionShapeData*) dataBuffer; + shapeData->m_name = (char*) serializer->findNameForPointer(this); + if (shapeData->m_name) + { + serializer->serializeName(shapeData->m_name); + } + shapeData->m_shapeType = m_shapeType; + //shapeData->m_padding//?? + return "btCollisionShapeData"; +} + diff --git a/src/BulletCollision/CollisionShapes/btCollisionShape.h b/src/BulletCollision/CollisionShapes/btCollisionShape.h index a00759299..a3278aa3a 100644 --- a/src/BulletCollision/CollisionShapes/btCollisionShape.h +++ b/src/BulletCollision/CollisionShapes/btCollisionShape.h @@ -128,7 +128,7 @@ public: ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 struct btCollisionShapeData { - void *m_userPointer; + char *m_name; int m_shapeType; char m_padding[4]; }; @@ -138,15 +138,7 @@ SIMD_FORCE_INLINE int btCollisionShape::calculateSerializeBufferSize() const return sizeof(btCollisionShapeData); } -///fills the dataBuffer and returns the struct name (and 0 on failure) -SIMD_FORCE_INLINE const char* btCollisionShape::serialize(void* dataBuffer, btSerializer* serializer) const -{ - btCollisionShapeData* shapeData = (btCollisionShapeData*) dataBuffer; - shapeData->m_userPointer = m_userPointer; - shapeData->m_shapeType = m_shapeType; - //shapeData->m_padding//?? - return "btCollisionShapeData"; -} + #endif //COLLISION_SHAPE_H diff --git a/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h b/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h index 40100205c..99eb3b26a 100644 --- a/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h +++ b/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h @@ -527,9 +527,9 @@ public: ///override the default global value of a parameter (such as ERP or CFM), optionally provide the axis (0..5). ///If no axis is provided, it uses the default axis for this constraint. - virtual void btGeneric6DofConstraint::setParam(int num, btScalar value, int axis = -1); + virtual void setParam(int num, btScalar value, int axis = -1); ///return the local value of parameter - virtual btScalar btGeneric6DofConstraint::getParam(int num, int axis = -1) const; + virtual btScalar getParam(int num, int axis = -1) const; virtual int calculateSerializeBufferSize() const; diff --git a/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp b/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp index cff532105..5544f94ff 100644 --- a/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp +++ b/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp @@ -16,7 +16,7 @@ subject to the following restrictions: #include "btTypedConstraint.h" #include "BulletDynamics/Dynamics/btRigidBody.h" - +#include "LinearMath/btSerializer.h" #define DEFAULT_DEBUGDRAW_SIZE btScalar(0.3f) @@ -105,7 +105,11 @@ const char* btTypedConstraint::serialize(void* dataBuffer, btSerializer* seriali tcd->m_rbA = (btRigidBodyData*)&m_rbA; tcd->m_rbB = (btRigidBodyData*)&m_rbB; - + tcd->m_name = (char*) serializer->findNameForPointer(this); + if (tcd->m_name) + { + serializer->serializeName(tcd->m_name); + } tcd->m_objectType = m_objectType; tcd->m_needsFeedback = m_needsFeedback; diff --git a/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h b/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h index d9661b0b7..5893d2ea2 100644 --- a/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h +++ b/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h @@ -276,6 +276,7 @@ struct btTypedConstraintData { btRigidBodyData *m_rbA; btRigidBodyData *m_rbB; + char *m_name; int m_objectType; int m_userConstraintType; @@ -286,7 +287,8 @@ struct btTypedConstraintData float m_dbgDrawSize; int m_disableCollisionsBetweenLinkedBodies; - char m_pad[4]; + char m_pad4[4]; + }; SIMD_FORCE_INLINE int btTypedConstraint::calculateSerializeBufferSize() const diff --git a/src/LinearMath/btSerializer.cpp b/src/LinearMath/btSerializer.cpp index f22538522..c20072854 100644 --- a/src/LinearMath/btSerializer.cpp +++ b/src/LinearMath/btSerializer.cpp @@ -6,206 +6,206 @@ unsigned char sBulletDNAstr64[]= { 115,116,114,97,105,110,116,115,0,42,102,105,114,115,116,0,42,108,97,115, 116,0,109,95,102,108,111,97,116,115,91,52,93,0,109,95,101,108,91,51, 93,0,109,95,98,97,115,105,115,0,109,95,111,114,105,103,105,110,0,42, -109,95,117,115,101,114,80,111,105,110,116,101,114,0,109,95,115,104,97,112, -101,84,121,112,101,0,109,95,112,97,100,100,105,110,103,91,52,93,0,109, -95,99,111,108,108,105,115,105,111,110,83,104,97,112,101,68,97,116,97,0, -109,95,108,111,99,97,108,83,99,97,108,105,110,103,0,109,95,112,108,97, -110,101,78,111,114,109,97,108,0,109,95,112,108,97,110,101,67,111,110,115, -116,97,110,116,0,109,95,112,97,100,91,52,93,0,109,95,105,109,112,108, -105,99,105,116,83,104,97,112,101,68,105,109,101,110,115,105,111,110,115,0, -109,95,99,111,108,108,105,115,105,111,110,77,97,114,103,105,110,0,109,95, -112,97,100,100,105,110,103,0,109,95,112,111,115,0,109,95,114,97,100,105, -117,115,0,109,95,99,111,110,118,101,120,73,110,116,101,114,110,97,108,83, -104,97,112,101,68,97,116,97,0,42,109,95,108,111,99,97,108,80,111,115, -105,116,105,111,110,65,114,114,97,121,80,116,114,0,109,95,108,111,99,97, -108,80,111,115,105,116,105,111,110,65,114,114,97,121,83,105,122,101,0,109, -95,118,97,108,117,101,0,105,110,116,0,42,109,95,118,101,114,116,105,99, -101,115,51,102,0,42,109,95,118,101,114,116,105,99,101,115,51,100,0,42, -109,95,105,110,100,105,99,101,115,51,50,0,42,109,95,105,110,100,105,99, -101,115,49,54,0,109,95,110,117,109,84,114,105,97,110,103,108,101,115,0, -109,95,110,117,109,86,101,114,116,105,99,101,115,0,42,109,95,109,101,115, -104,80,97,114,116,115,80,116,114,0,109,95,115,99,97,108,105,110,103,0, -109,95,110,117,109,77,101,115,104,80,97,114,116,115,0,109,95,109,101,115, -104,73,110,116,101,114,102,97,99,101,0,109,95,116,114,97,110,115,102,111, -114,109,0,42,109,95,99,104,105,108,100,83,104,97,112,101,0,109,95,99, -104,105,108,100,83,104,97,112,101,84,121,112,101,0,109,95,99,104,105,108, -100,77,97,114,103,105,110,0,42,109,95,99,104,105,108,100,83,104,97,112, -101,80,116,114,0,109,95,110,117,109,67,104,105,108,100,83,104,97,112,101, -115,0,109,95,117,112,65,120,105,115,0,109,95,103,105,109,112,97,99,116, -83,117,98,84,121,112,101,0,42,109,95,117,110,115,99,97,108,101,100,80, -111,105,110,116,115,70,108,111,97,116,80,116,114,0,42,109,95,117,110,115, -99,97,108,101,100,80,111,105,110,116,115,68,111,117,98,108,101,80,116,114, -0,109,95,110,117,109,85,110,115,99,97,108,101,100,80,111,105,110,116,115, -0,109,95,112,97,100,100,105,110,103,51,91,52,93,0,42,109,95,98,114, -111,97,100,112,104,97,115,101,72,97,110,100,108,101,0,42,109,95,99,111, -108,108,105,115,105,111,110,83,104,97,112,101,0,42,109,95,114,111,111,116, -67,111,108,108,105,115,105,111,110,83,104,97,112,101,0,42,109,95,110,97, -109,101,0,109,95,119,111,114,108,100,84,114,97,110,115,102,111,114,109,0, -109,95,105,110,116,101,114,112,111,108,97,116,105,111,110,87,111,114,108,100, -84,114,97,110,115,102,111,114,109,0,109,95,105,110,116,101,114,112,111,108, -97,116,105,111,110,76,105,110,101,97,114,86,101,108,111,99,105,116,121,0, -109,95,105,110,116,101,114,112,111,108,97,116,105,111,110,65,110,103,117,108, -97,114,86,101,108,111,99,105,116,121,0,109,95,97,110,105,115,111,116,114, -111,112,105,99,70,114,105,99,116,105,111,110,0,109,95,99,111,110,116,97, -99,116,80,114,111,99,101,115,115,105,110,103,84,104,114,101,115,104,111,108, -100,0,109,95,100,101,97,99,116,105,118,97,116,105,111,110,84,105,109,101, -0,109,95,102,114,105,99,116,105,111,110,0,109,95,114,101,115,116,105,116, -117,116,105,111,110,0,109,95,104,105,116,70,114,97,99,116,105,111,110,0, -109,95,99,99,100,83,119,101,112,116,83,112,104,101,114,101,82,97,100,105, -117,115,0,109,95,99,99,100,77,111,116,105,111,110,84,104,114,101,115,104, -111,108,100,0,109,95,104,97,115,65,110,105,115,111,116,114,111,112,105,99, -70,114,105,99,116,105,111,110,0,109,95,99,111,108,108,105,115,105,111,110, -70,108,97,103,115,0,109,95,105,115,108,97,110,100,84,97,103,49,0,109, -95,99,111,109,112,97,110,105,111,110,73,100,0,109,95,97,99,116,105,118, -97,116,105,111,110,83,116,97,116,101,49,0,109,95,105,110,116,101,114,110, -97,108,84,121,112,101,0,109,95,99,104,101,99,107,67,111,108,108,105,100, -101,87,105,116,104,0,109,95,99,111,108,108,105,115,105,111,110,79,98,106, -101,99,116,68,97,116,97,0,109,95,105,110,118,73,110,101,114,116,105,97, -84,101,110,115,111,114,87,111,114,108,100,0,109,95,108,105,110,101,97,114, -86,101,108,111,99,105,116,121,0,109,95,97,110,103,117,108,97,114,86,101, -108,111,99,105,116,121,0,109,95,97,110,103,117,108,97,114,70,97,99,116, -111,114,0,109,95,108,105,110,101,97,114,70,97,99,116,111,114,0,109,95, -103,114,97,118,105,116,121,0,109,95,103,114,97,118,105,116,121,95,97,99, -99,101,108,101,114,97,116,105,111,110,0,109,95,105,110,118,73,110,101,114, -116,105,97,76,111,99,97,108,0,109,95,116,111,116,97,108,70,111,114,99, -101,0,109,95,116,111,116,97,108,84,111,114,113,117,101,0,109,95,105,110, -118,101,114,115,101,77,97,115,115,0,109,95,108,105,110,101,97,114,68,97, -109,112,105,110,103,0,109,95,97,110,103,117,108,97,114,68,97,109,112,105, -110,103,0,109,95,97,100,100,105,116,105,111,110,97,108,68,97,109,112,105, -110,103,70,97,99,116,111,114,0,109,95,97,100,100,105,116,105,111,110,97, -108,76,105,110,101,97,114,68,97,109,112,105,110,103,84,104,114,101,115,104, -111,108,100,83,113,114,0,109,95,97,100,100,105,116,105,111,110,97,108,65, -110,103,117,108,97,114,68,97,109,112,105,110,103,84,104,114,101,115,104,111, -108,100,83,113,114,0,109,95,97,100,100,105,116,105,111,110,97,108,65,110, -103,117,108,97,114,68,97,109,112,105,110,103,70,97,99,116,111,114,0,109, -95,108,105,110,101,97,114,83,108,101,101,112,105,110,103,84,104,114,101,115, -104,111,108,100,0,109,95,97,110,103,117,108,97,114,83,108,101,101,112,105, -110,103,84,104,114,101,115,104,111,108,100,0,109,95,97,100,100,105,116,105, -111,110,97,108,68,97,109,112,105,110,103,0,109,95,110,117,109,67,111,110, -115,116,114,97,105,110,116,82,111,119,115,0,110,117,98,0,42,109,95,114, -98,65,0,42,109,95,114,98,66,0,109,95,111,98,106,101,99,116,84,121, -112,101,0,109,95,117,115,101,114,67,111,110,115,116,114,97,105,110,116,84, -121,112,101,0,109,95,117,115,101,114,67,111,110,115,116,114,97,105,110,116, -73,100,0,109,95,110,101,101,100,115,70,101,101,100,98,97,99,107,0,109, -95,97,112,112,108,105,101,100,73,109,112,117,108,115,101,0,109,95,100,98, -103,68,114,97,119,83,105,122,101,0,109,95,100,105,115,97,98,108,101,67, -111,108,108,105,115,105,111,110,115,66,101,116,119,101,101,110,76,105,110,107, -101,100,66,111,100,105,101,115,0,109,95,116,121,112,101,67,111,110,115,116, -114,97,105,110,116,68,97,116,97,0,109,95,112,105,118,111,116,73,110,65, -0,109,95,112,105,118,111,116,73,110,66,0,109,95,114,98,65,70,114,97, -109,101,0,109,95,114,98,66,70,114,97,109,101,0,109,95,117,115,101,82, -101,102,101,114,101,110,99,101,70,114,97,109,101,65,0,109,95,97,110,103, -117,108,97,114,79,110,108,121,0,109,95,101,110,97,98,108,101,65,110,103, -117,108,97,114,77,111,116,111,114,0,109,95,109,111,116,111,114,84,97,114, -103,101,116,86,101,108,111,99,105,116,121,0,109,95,109,97,120,77,111,116, -111,114,73,109,112,117,108,115,101,0,109,95,108,111,119,101,114,76,105,109, -105,116,0,109,95,117,112,112,101,114,76,105,109,105,116,0,109,95,108,105, -109,105,116,83,111,102,116,110,101,115,115,0,109,95,98,105,97,115,70,97, -99,116,111,114,0,109,95,114,101,108,97,120,97,116,105,111,110,70,97,99, -116,111,114,0,109,95,115,119,105,110,103,83,112,97,110,49,0,109,95,115, -119,105,110,103,83,112,97,110,50,0,109,95,116,119,105,115,116,83,112,97, -110,0,109,95,100,97,109,112,105,110,103,0,109,95,108,105,110,101,97,114, -85,112,112,101,114,76,105,109,105,116,0,109,95,108,105,110,101,97,114,76, -111,119,101,114,76,105,109,105,116,0,109,95,97,110,103,117,108,97,114,85, -112,112,101,114,76,105,109,105,116,0,109,95,97,110,103,117,108,97,114,76, -111,119,101,114,76,105,109,105,116,0,109,95,117,115,101,76,105,110,101,97, -114,82,101,102,101,114,101,110,99,101,70,114,97,109,101,65,0,109,95,117, -115,101,79,102,102,115,101,116,70,111,114,67,111,110,115,116,114,97,105,110, -116,70,114,97,109,101,0,0,84,89,80,69,49,0,0,0,99,104,97,114, -0,117,99,104,97,114,0,115,104,111,114,116,0,117,115,104,111,114,116,0, -105,110,116,0,108,111,110,103,0,117,108,111,110,103,0,102,108,111,97,116, -0,100,111,117,98,108,101,0,118,111,105,100,0,80,111,105,110,116,101,114, -65,114,114,97,121,0,98,116,80,104,121,115,105,99,115,83,121,115,116,101, -109,0,76,105,115,116,66,97,115,101,0,98,116,86,101,99,116,111,114,51, -70,108,111,97,116,68,97,116,97,0,98,116,86,101,99,116,111,114,51,68, -111,117,98,108,101,68,97,116,97,0,98,116,77,97,116,114,105,120,51,120, -51,70,108,111,97,116,68,97,116,97,0,98,116,77,97,116,114,105,120,51, -120,51,68,111,117,98,108,101,68,97,116,97,0,98,116,84,114,97,110,115, -102,111,114,109,70,108,111,97,116,68,97,116,97,0,98,116,84,114,97,110, -115,102,111,114,109,68,111,117,98,108,101,68,97,116,97,0,98,116,67,111, -108,108,105,115,105,111,110,83,104,97,112,101,68,97,116,97,0,98,116,83, -116,97,116,105,99,80,108,97,110,101,83,104,97,112,101,68,97,116,97,0, -98,116,67,111,110,118,101,120,73,110,116,101,114,110,97,108,83,104,97,112, -101,68,97,116,97,0,98,116,80,111,115,105,116,105,111,110,65,110,100,82, -97,100,105,117,115,0,98,116,77,117,108,116,105,83,112,104,101,114,101,83, -104,97,112,101,68,97,116,97,0,98,116,73,110,116,73,110,100,101,120,68, -97,116,97,0,98,116,83,104,111,114,116,73,110,116,73,110,100,101,120,68, -97,116,97,0,98,116,77,101,115,104,80,97,114,116,68,97,116,97,0,98, -116,83,116,114,105,100,105,110,103,77,101,115,104,73,110,116,101,114,102,97, -99,101,68,97,116,97,0,98,116,84,114,105,97,110,103,108,101,77,101,115, -104,83,104,97,112,101,68,97,116,97,0,98,116,67,111,109,112,111,117,110, -100,83,104,97,112,101,67,104,105,108,100,68,97,116,97,0,98,116,67,111, -109,112,111,117,110,100,83,104,97,112,101,68,97,116,97,0,98,116,67,121, -108,105,110,100,101,114,83,104,97,112,101,68,97,116,97,0,98,116,67,97, -112,115,117,108,101,83,104,97,112,101,68,97,116,97,0,98,116,71,73,109, -112,97,99,116,77,101,115,104,83,104,97,112,101,68,97,116,97,0,98,116, -67,111,110,118,101,120,72,117,108,108,83,104,97,112,101,68,97,116,97,0, -98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,68,111,117, -98,108,101,68,97,116,97,0,98,116,67,111,108,108,105,115,105,111,110,79, -98,106,101,99,116,70,108,111,97,116,68,97,116,97,0,98,116,82,105,103, -105,100,66,111,100,121,70,108,111,97,116,68,97,116,97,0,98,116,82,105, -103,105,100,66,111,100,121,68,111,117,98,108,101,68,97,116,97,0,98,116, -67,111,110,115,116,114,97,105,110,116,73,110,102,111,49,0,98,116,84,121, -112,101,100,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,98,116, -82,105,103,105,100,66,111,100,121,68,97,116,97,0,98,116,80,111,105,110, -116,50,80,111,105,110,116,67,111,110,115,116,114,97,105,110,116,70,108,111, -97,116,68,97,116,97,0,98,116,80,111,105,110,116,50,80,111,105,110,116, -67,111,110,115,116,114,97,105,110,116,68,111,117,98,108,101,68,97,116,97, -0,98,116,72,105,110,103,101,67,111,110,115,116,114,97,105,110,116,68,111, -117,98,108,101,68,97,116,97,0,98,116,72,105,110,103,101,67,111,110,115, -116,114,97,105,110,116,70,108,111,97,116,68,97,116,97,0,98,116,67,111, -110,101,84,119,105,115,116,67,111,110,115,116,114,97,105,110,116,68,97,116, -97,0,98,116,71,101,110,101,114,105,99,54,68,111,102,67,111,110,115,116, -114,97,105,110,116,68,97,116,97,0,98,116,83,108,105,100,101,114,67,111, -110,115,116,114,97,105,110,116,68,97,116,97,0,0,0,0,84,76,69,78, -1,0,1,0,2,0,2,0,4,0,4,0,4,0,4,0,8,0,0,0, -16,0,48,0,16,0,16,0,32,0,48,0,96,0,64,0,-128,0,16,0, -56,0,56,0,20,0,72,0,4,0,4,0,40,0,32,0,56,0,80,0, -32,0,64,0,64,0,72,0,80,0,-40,1,8,1,-16,1,-88,3,8,0, -48,0,0,0,80,0,112,0,88,1,-40,0,-48,0,-8,0,-56,0,0,0, -83,84,82,67,38,0,0,0,10,0,3,0,4,0,0,0,4,0,1,0, -9,0,2,0,11,0,3,0,10,0,3,0,10,0,4,0,10,0,5,0, -12,0,2,0,9,0,6,0,9,0,7,0,13,0,1,0,7,0,8,0, -14,0,1,0,8,0,8,0,15,0,1,0,13,0,9,0,16,0,1,0, -14,0,9,0,17,0,2,0,15,0,10,0,13,0,11,0,18,0,2,0, -16,0,10,0,14,0,11,0,19,0,3,0,9,0,12,0,4,0,13,0, -0,0,14,0,20,0,5,0,19,0,15,0,13,0,16,0,13,0,17,0, -7,0,18,0,0,0,19,0,21,0,5,0,19,0,15,0,13,0,16,0, -13,0,20,0,7,0,21,0,4,0,22,0,22,0,2,0,13,0,23,0, -7,0,24,0,23,0,4,0,21,0,25,0,22,0,26,0,4,0,27,0, -0,0,14,0,24,0,1,0,4,0,28,0,25,0,2,0,2,0,29,0, -2,0,28,0,26,0,6,0,13,0,30,0,14,0,31,0,24,0,32,0, -25,0,33,0,4,0,34,0,4,0,35,0,27,0,4,0,26,0,36,0, -13,0,37,0,4,0,38,0,0,0,14,0,28,0,4,0,19,0,15,0, -27,0,39,0,7,0,21,0,0,0,14,0,29,0,4,0,17,0,40,0, -19,0,41,0,4,0,42,0,7,0,43,0,30,0,4,0,19,0,15,0, -29,0,44,0,4,0,45,0,7,0,21,0,31,0,3,0,21,0,25,0, -4,0,46,0,0,0,14,0,32,0,3,0,21,0,25,0,4,0,46,0, -0,0,14,0,33,0,5,0,19,0,15,0,27,0,39,0,13,0,16,0, -7,0,21,0,4,0,47,0,34,0,5,0,21,0,25,0,13,0,48,0, -14,0,49,0,4,0,50,0,0,0,51,0,35,0,24,0,9,0,52,0, -9,0,53,0,19,0,54,0,0,0,55,0,18,0,56,0,18,0,57,0, -14,0,58,0,14,0,59,0,14,0,60,0,8,0,61,0,8,0,62,0, -8,0,63,0,8,0,64,0,8,0,65,0,8,0,66,0,8,0,67,0, +109,95,110,97,109,101,0,109,95,115,104,97,112,101,84,121,112,101,0,109, +95,112,97,100,100,105,110,103,91,52,93,0,109,95,99,111,108,108,105,115, +105,111,110,83,104,97,112,101,68,97,116,97,0,109,95,108,111,99,97,108, +83,99,97,108,105,110,103,0,109,95,112,108,97,110,101,78,111,114,109,97, +108,0,109,95,112,108,97,110,101,67,111,110,115,116,97,110,116,0,109,95, +112,97,100,91,52,93,0,109,95,105,109,112,108,105,99,105,116,83,104,97, +112,101,68,105,109,101,110,115,105,111,110,115,0,109,95,99,111,108,108,105, +115,105,111,110,77,97,114,103,105,110,0,109,95,112,97,100,100,105,110,103, +0,109,95,112,111,115,0,109,95,114,97,100,105,117,115,0,109,95,99,111, +110,118,101,120,73,110,116,101,114,110,97,108,83,104,97,112,101,68,97,116, +97,0,42,109,95,108,111,99,97,108,80,111,115,105,116,105,111,110,65,114, +114,97,121,80,116,114,0,109,95,108,111,99,97,108,80,111,115,105,116,105, +111,110,65,114,114,97,121,83,105,122,101,0,109,95,118,97,108,117,101,0, +105,110,116,0,42,109,95,118,101,114,116,105,99,101,115,51,102,0,42,109, +95,118,101,114,116,105,99,101,115,51,100,0,42,109,95,105,110,100,105,99, +101,115,51,50,0,42,109,95,105,110,100,105,99,101,115,49,54,0,109,95, +110,117,109,84,114,105,97,110,103,108,101,115,0,109,95,110,117,109,86,101, +114,116,105,99,101,115,0,42,109,95,109,101,115,104,80,97,114,116,115,80, +116,114,0,109,95,115,99,97,108,105,110,103,0,109,95,110,117,109,77,101, +115,104,80,97,114,116,115,0,109,95,109,101,115,104,73,110,116,101,114,102, +97,99,101,0,109,95,116,114,97,110,115,102,111,114,109,0,42,109,95,99, +104,105,108,100,83,104,97,112,101,0,109,95,99,104,105,108,100,83,104,97, +112,101,84,121,112,101,0,109,95,99,104,105,108,100,77,97,114,103,105,110, +0,42,109,95,99,104,105,108,100,83,104,97,112,101,80,116,114,0,109,95, +110,117,109,67,104,105,108,100,83,104,97,112,101,115,0,109,95,117,112,65, +120,105,115,0,109,95,103,105,109,112,97,99,116,83,117,98,84,121,112,101, +0,42,109,95,117,110,115,99,97,108,101,100,80,111,105,110,116,115,70,108, +111,97,116,80,116,114,0,42,109,95,117,110,115,99,97,108,101,100,80,111, +105,110,116,115,68,111,117,98,108,101,80,116,114,0,109,95,110,117,109,85, +110,115,99,97,108,101,100,80,111,105,110,116,115,0,109,95,112,97,100,100, +105,110,103,51,91,52,93,0,42,109,95,98,114,111,97,100,112,104,97,115, +101,72,97,110,100,108,101,0,42,109,95,99,111,108,108,105,115,105,111,110, +83,104,97,112,101,0,42,109,95,114,111,111,116,67,111,108,108,105,115,105, +111,110,83,104,97,112,101,0,109,95,119,111,114,108,100,84,114,97,110,115, +102,111,114,109,0,109,95,105,110,116,101,114,112,111,108,97,116,105,111,110, +87,111,114,108,100,84,114,97,110,115,102,111,114,109,0,109,95,105,110,116, +101,114,112,111,108,97,116,105,111,110,76,105,110,101,97,114,86,101,108,111, +99,105,116,121,0,109,95,105,110,116,101,114,112,111,108,97,116,105,111,110, +65,110,103,117,108,97,114,86,101,108,111,99,105,116,121,0,109,95,97,110, +105,115,111,116,114,111,112,105,99,70,114,105,99,116,105,111,110,0,109,95, +99,111,110,116,97,99,116,80,114,111,99,101,115,115,105,110,103,84,104,114, +101,115,104,111,108,100,0,109,95,100,101,97,99,116,105,118,97,116,105,111, +110,84,105,109,101,0,109,95,102,114,105,99,116,105,111,110,0,109,95,114, +101,115,116,105,116,117,116,105,111,110,0,109,95,104,105,116,70,114,97,99, +116,105,111,110,0,109,95,99,99,100,83,119,101,112,116,83,112,104,101,114, +101,82,97,100,105,117,115,0,109,95,99,99,100,77,111,116,105,111,110,84, +104,114,101,115,104,111,108,100,0,109,95,104,97,115,65,110,105,115,111,116, +114,111,112,105,99,70,114,105,99,116,105,111,110,0,109,95,99,111,108,108, +105,115,105,111,110,70,108,97,103,115,0,109,95,105,115,108,97,110,100,84, +97,103,49,0,109,95,99,111,109,112,97,110,105,111,110,73,100,0,109,95, +97,99,116,105,118,97,116,105,111,110,83,116,97,116,101,49,0,109,95,105, +110,116,101,114,110,97,108,84,121,112,101,0,109,95,99,104,101,99,107,67, +111,108,108,105,100,101,87,105,116,104,0,109,95,99,111,108,108,105,115,105, +111,110,79,98,106,101,99,116,68,97,116,97,0,109,95,105,110,118,73,110, +101,114,116,105,97,84,101,110,115,111,114,87,111,114,108,100,0,109,95,108, +105,110,101,97,114,86,101,108,111,99,105,116,121,0,109,95,97,110,103,117, +108,97,114,86,101,108,111,99,105,116,121,0,109,95,97,110,103,117,108,97, +114,70,97,99,116,111,114,0,109,95,108,105,110,101,97,114,70,97,99,116, +111,114,0,109,95,103,114,97,118,105,116,121,0,109,95,103,114,97,118,105, +116,121,95,97,99,99,101,108,101,114,97,116,105,111,110,0,109,95,105,110, +118,73,110,101,114,116,105,97,76,111,99,97,108,0,109,95,116,111,116,97, +108,70,111,114,99,101,0,109,95,116,111,116,97,108,84,111,114,113,117,101, +0,109,95,105,110,118,101,114,115,101,77,97,115,115,0,109,95,108,105,110, +101,97,114,68,97,109,112,105,110,103,0,109,95,97,110,103,117,108,97,114, +68,97,109,112,105,110,103,0,109,95,97,100,100,105,116,105,111,110,97,108, +68,97,109,112,105,110,103,70,97,99,116,111,114,0,109,95,97,100,100,105, +116,105,111,110,97,108,76,105,110,101,97,114,68,97,109,112,105,110,103,84, +104,114,101,115,104,111,108,100,83,113,114,0,109,95,97,100,100,105,116,105, +111,110,97,108,65,110,103,117,108,97,114,68,97,109,112,105,110,103,84,104, +114,101,115,104,111,108,100,83,113,114,0,109,95,97,100,100,105,116,105,111, +110,97,108,65,110,103,117,108,97,114,68,97,109,112,105,110,103,70,97,99, +116,111,114,0,109,95,108,105,110,101,97,114,83,108,101,101,112,105,110,103, +84,104,114,101,115,104,111,108,100,0,109,95,97,110,103,117,108,97,114,83, +108,101,101,112,105,110,103,84,104,114,101,115,104,111,108,100,0,109,95,97, +100,100,105,116,105,111,110,97,108,68,97,109,112,105,110,103,0,109,95,110, +117,109,67,111,110,115,116,114,97,105,110,116,82,111,119,115,0,110,117,98, +0,42,109,95,114,98,65,0,42,109,95,114,98,66,0,109,95,111,98,106, +101,99,116,84,121,112,101,0,109,95,117,115,101,114,67,111,110,115,116,114, +97,105,110,116,84,121,112,101,0,109,95,117,115,101,114,67,111,110,115,116, +114,97,105,110,116,73,100,0,109,95,110,101,101,100,115,70,101,101,100,98, +97,99,107,0,109,95,97,112,112,108,105,101,100,73,109,112,117,108,115,101, +0,109,95,100,98,103,68,114,97,119,83,105,122,101,0,109,95,100,105,115, +97,98,108,101,67,111,108,108,105,115,105,111,110,115,66,101,116,119,101,101, +110,76,105,110,107,101,100,66,111,100,105,101,115,0,109,95,112,97,100,52, +91,52,93,0,109,95,116,121,112,101,67,111,110,115,116,114,97,105,110,116, +68,97,116,97,0,109,95,112,105,118,111,116,73,110,65,0,109,95,112,105, +118,111,116,73,110,66,0,109,95,114,98,65,70,114,97,109,101,0,109,95, +114,98,66,70,114,97,109,101,0,109,95,117,115,101,82,101,102,101,114,101, +110,99,101,70,114,97,109,101,65,0,109,95,97,110,103,117,108,97,114,79, +110,108,121,0,109,95,101,110,97,98,108,101,65,110,103,117,108,97,114,77, +111,116,111,114,0,109,95,109,111,116,111,114,84,97,114,103,101,116,86,101, +108,111,99,105,116,121,0,109,95,109,97,120,77,111,116,111,114,73,109,112, +117,108,115,101,0,109,95,108,111,119,101,114,76,105,109,105,116,0,109,95, +117,112,112,101,114,76,105,109,105,116,0,109,95,108,105,109,105,116,83,111, +102,116,110,101,115,115,0,109,95,98,105,97,115,70,97,99,116,111,114,0, +109,95,114,101,108,97,120,97,116,105,111,110,70,97,99,116,111,114,0,109, +95,115,119,105,110,103,83,112,97,110,49,0,109,95,115,119,105,110,103,83, +112,97,110,50,0,109,95,116,119,105,115,116,83,112,97,110,0,109,95,100, +97,109,112,105,110,103,0,109,95,108,105,110,101,97,114,85,112,112,101,114, +76,105,109,105,116,0,109,95,108,105,110,101,97,114,76,111,119,101,114,76, +105,109,105,116,0,109,95,97,110,103,117,108,97,114,85,112,112,101,114,76, +105,109,105,116,0,109,95,97,110,103,117,108,97,114,76,111,119,101,114,76, +105,109,105,116,0,109,95,117,115,101,76,105,110,101,97,114,82,101,102,101, +114,101,110,99,101,70,114,97,109,101,65,0,109,95,117,115,101,79,102,102, +115,101,116,70,111,114,67,111,110,115,116,114,97,105,110,116,70,114,97,109, +101,0,0,0,84,89,80,69,49,0,0,0,99,104,97,114,0,117,99,104, +97,114,0,115,104,111,114,116,0,117,115,104,111,114,116,0,105,110,116,0, +108,111,110,103,0,117,108,111,110,103,0,102,108,111,97,116,0,100,111,117, +98,108,101,0,118,111,105,100,0,80,111,105,110,116,101,114,65,114,114,97, +121,0,98,116,80,104,121,115,105,99,115,83,121,115,116,101,109,0,76,105, +115,116,66,97,115,101,0,98,116,86,101,99,116,111,114,51,70,108,111,97, +116,68,97,116,97,0,98,116,86,101,99,116,111,114,51,68,111,117,98,108, +101,68,97,116,97,0,98,116,77,97,116,114,105,120,51,120,51,70,108,111, +97,116,68,97,116,97,0,98,116,77,97,116,114,105,120,51,120,51,68,111, +117,98,108,101,68,97,116,97,0,98,116,84,114,97,110,115,102,111,114,109, +70,108,111,97,116,68,97,116,97,0,98,116,84,114,97,110,115,102,111,114, +109,68,111,117,98,108,101,68,97,116,97,0,98,116,67,111,108,108,105,115, +105,111,110,83,104,97,112,101,68,97,116,97,0,98,116,83,116,97,116,105, +99,80,108,97,110,101,83,104,97,112,101,68,97,116,97,0,98,116,67,111, +110,118,101,120,73,110,116,101,114,110,97,108,83,104,97,112,101,68,97,116, +97,0,98,116,80,111,115,105,116,105,111,110,65,110,100,82,97,100,105,117, +115,0,98,116,77,117,108,116,105,83,112,104,101,114,101,83,104,97,112,101, +68,97,116,97,0,98,116,73,110,116,73,110,100,101,120,68,97,116,97,0, +98,116,83,104,111,114,116,73,110,116,73,110,100,101,120,68,97,116,97,0, +98,116,77,101,115,104,80,97,114,116,68,97,116,97,0,98,116,83,116,114, +105,100,105,110,103,77,101,115,104,73,110,116,101,114,102,97,99,101,68,97, +116,97,0,98,116,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97, +112,101,68,97,116,97,0,98,116,67,111,109,112,111,117,110,100,83,104,97, +112,101,67,104,105,108,100,68,97,116,97,0,98,116,67,111,109,112,111,117, +110,100,83,104,97,112,101,68,97,116,97,0,98,116,67,121,108,105,110,100, +101,114,83,104,97,112,101,68,97,116,97,0,98,116,67,97,112,115,117,108, +101,83,104,97,112,101,68,97,116,97,0,98,116,71,73,109,112,97,99,116, +77,101,115,104,83,104,97,112,101,68,97,116,97,0,98,116,67,111,110,118, +101,120,72,117,108,108,83,104,97,112,101,68,97,116,97,0,98,116,67,111, +108,108,105,115,105,111,110,79,98,106,101,99,116,68,111,117,98,108,101,68, +97,116,97,0,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99, +116,70,108,111,97,116,68,97,116,97,0,98,116,82,105,103,105,100,66,111, +100,121,70,108,111,97,116,68,97,116,97,0,98,116,82,105,103,105,100,66, +111,100,121,68,111,117,98,108,101,68,97,116,97,0,98,116,67,111,110,115, +116,114,97,105,110,116,73,110,102,111,49,0,98,116,84,121,112,101,100,67, +111,110,115,116,114,97,105,110,116,68,97,116,97,0,98,116,82,105,103,105, +100,66,111,100,121,68,97,116,97,0,98,116,80,111,105,110,116,50,80,111, +105,110,116,67,111,110,115,116,114,97,105,110,116,70,108,111,97,116,68,97, +116,97,0,98,116,80,111,105,110,116,50,80,111,105,110,116,67,111,110,115, +116,114,97,105,110,116,68,111,117,98,108,101,68,97,116,97,0,98,116,72, +105,110,103,101,67,111,110,115,116,114,97,105,110,116,68,111,117,98,108,101, +68,97,116,97,0,98,116,72,105,110,103,101,67,111,110,115,116,114,97,105, +110,116,70,108,111,97,116,68,97,116,97,0,98,116,67,111,110,101,84,119, +105,115,116,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,98,116, +71,101,110,101,114,105,99,54,68,111,102,67,111,110,115,116,114,97,105,110, +116,68,97,116,97,0,98,116,83,108,105,100,101,114,67,111,110,115,116,114, +97,105,110,116,68,97,116,97,0,0,0,0,84,76,69,78,1,0,1,0, +2,0,2,0,4,0,4,0,4,0,4,0,8,0,0,0,16,0,48,0, +16,0,16,0,32,0,48,0,96,0,64,0,-128,0,16,0,56,0,56,0, +20,0,72,0,4,0,4,0,40,0,32,0,56,0,80,0,32,0,64,0, +64,0,72,0,80,0,-40,1,8,1,-16,1,-88,3,8,0,56,0,0,0, +88,0,120,0,96,1,-32,0,-40,0,0,1,-48,0,0,0,83,84,82,67, +38,0,0,0,10,0,3,0,4,0,0,0,4,0,1,0,9,0,2,0, +11,0,3,0,10,0,3,0,10,0,4,0,10,0,5,0,12,0,2,0, +9,0,6,0,9,0,7,0,13,0,1,0,7,0,8,0,14,0,1,0, +8,0,8,0,15,0,1,0,13,0,9,0,16,0,1,0,14,0,9,0, +17,0,2,0,15,0,10,0,13,0,11,0,18,0,2,0,16,0,10,0, +14,0,11,0,19,0,3,0,0,0,12,0,4,0,13,0,0,0,14,0, +20,0,5,0,19,0,15,0,13,0,16,0,13,0,17,0,7,0,18,0, +0,0,19,0,21,0,5,0,19,0,15,0,13,0,16,0,13,0,20,0, +7,0,21,0,4,0,22,0,22,0,2,0,13,0,23,0,7,0,24,0, +23,0,4,0,21,0,25,0,22,0,26,0,4,0,27,0,0,0,14,0, +24,0,1,0,4,0,28,0,25,0,2,0,2,0,29,0,2,0,28,0, +26,0,6,0,13,0,30,0,14,0,31,0,24,0,32,0,25,0,33,0, +4,0,34,0,4,0,35,0,27,0,4,0,26,0,36,0,13,0,37,0, +4,0,38,0,0,0,14,0,28,0,4,0,19,0,15,0,27,0,39,0, +7,0,21,0,0,0,14,0,29,0,4,0,17,0,40,0,19,0,41,0, +4,0,42,0,7,0,43,0,30,0,4,0,19,0,15,0,29,0,44,0, +4,0,45,0,7,0,21,0,31,0,3,0,21,0,25,0,4,0,46,0, +0,0,14,0,32,0,3,0,21,0,25,0,4,0,46,0,0,0,14,0, +33,0,5,0,19,0,15,0,27,0,39,0,13,0,16,0,7,0,21,0, +4,0,47,0,34,0,5,0,21,0,25,0,13,0,48,0,14,0,49,0, +4,0,50,0,0,0,51,0,35,0,24,0,9,0,52,0,9,0,53,0, +19,0,54,0,0,0,12,0,18,0,55,0,18,0,56,0,14,0,57,0, +14,0,58,0,14,0,59,0,8,0,60,0,8,0,61,0,8,0,62,0, +8,0,63,0,8,0,64,0,8,0,65,0,8,0,66,0,4,0,67,0, 4,0,68,0,4,0,69,0,4,0,70,0,4,0,71,0,4,0,72,0, -4,0,73,0,4,0,74,0,0,0,14,0,36,0,23,0,9,0,52,0, -9,0,53,0,19,0,54,0,0,0,55,0,17,0,56,0,17,0,57,0, -13,0,58,0,13,0,59,0,13,0,60,0,7,0,61,0,7,0,62,0, -7,0,63,0,7,0,64,0,7,0,65,0,7,0,66,0,7,0,67,0, +4,0,73,0,0,0,14,0,36,0,23,0,9,0,52,0,9,0,53,0, +19,0,54,0,0,0,12,0,17,0,55,0,17,0,56,0,13,0,57,0, +13,0,58,0,13,0,59,0,7,0,60,0,7,0,61,0,7,0,62,0, +7,0,63,0,7,0,64,0,7,0,65,0,7,0,66,0,4,0,67,0, 4,0,68,0,4,0,69,0,4,0,70,0,4,0,71,0,4,0,72,0, -4,0,73,0,4,0,74,0,37,0,21,0,36,0,75,0,15,0,76,0, +4,0,73,0,37,0,21,0,36,0,74,0,15,0,75,0,13,0,76,0, 13,0,77,0,13,0,78,0,13,0,79,0,13,0,80,0,13,0,81,0, -13,0,82,0,13,0,83,0,13,0,84,0,13,0,85,0,7,0,86,0, +13,0,82,0,13,0,83,0,13,0,84,0,7,0,85,0,7,0,86,0, 7,0,87,0,7,0,88,0,7,0,89,0,7,0,90,0,7,0,91,0, -7,0,92,0,7,0,93,0,7,0,94,0,4,0,95,0,38,0,22,0, -35,0,75,0,16,0,76,0,14,0,77,0,14,0,78,0,14,0,79,0, +7,0,92,0,7,0,93,0,4,0,94,0,38,0,22,0,35,0,74,0, +16,0,75,0,14,0,76,0,14,0,77,0,14,0,78,0,14,0,79,0, 14,0,80,0,14,0,81,0,14,0,82,0,14,0,83,0,14,0,84,0, -14,0,85,0,8,0,86,0,8,0,87,0,8,0,88,0,8,0,89,0, -8,0,90,0,8,0,91,0,8,0,92,0,8,0,93,0,8,0,94,0, -4,0,95,0,0,0,14,0,39,0,2,0,4,0,96,0,4,0,97,0, -40,0,10,0,41,0,98,0,41,0,99,0,4,0,100,0,4,0,101,0, -4,0,102,0,4,0,103,0,7,0,104,0,7,0,105,0,4,0,106,0, -0,0,19,0,42,0,3,0,40,0,107,0,13,0,108,0,13,0,109,0, +8,0,85,0,8,0,86,0,8,0,87,0,8,0,88,0,8,0,89,0, +8,0,90,0,8,0,91,0,8,0,92,0,8,0,93,0,4,0,94,0, +0,0,14,0,39,0,2,0,4,0,95,0,4,0,96,0,40,0,11,0, +41,0,97,0,41,0,98,0,0,0,12,0,4,0,99,0,4,0,100,0, +4,0,101,0,4,0,102,0,7,0,103,0,7,0,104,0,4,0,105,0, +0,0,106,0,42,0,3,0,40,0,107,0,13,0,108,0,13,0,109,0, 43,0,3,0,40,0,107,0,14,0,108,0,14,0,109,0,44,0,13,0, 40,0,107,0,18,0,110,0,18,0,111,0,4,0,112,0,4,0,113,0, 4,0,114,0,7,0,115,0,7,0,116,0,7,0,117,0,7,0,118,0, @@ -229,206 +229,206 @@ unsigned char sBulletDNAstr[]= { 115,116,114,97,105,110,116,115,0,42,102,105,114,115,116,0,42,108,97,115, 116,0,109,95,102,108,111,97,116,115,91,52,93,0,109,95,101,108,91,51, 93,0,109,95,98,97,115,105,115,0,109,95,111,114,105,103,105,110,0,42, -109,95,117,115,101,114,80,111,105,110,116,101,114,0,109,95,115,104,97,112, -101,84,121,112,101,0,109,95,112,97,100,100,105,110,103,91,52,93,0,109, -95,99,111,108,108,105,115,105,111,110,83,104,97,112,101,68,97,116,97,0, -109,95,108,111,99,97,108,83,99,97,108,105,110,103,0,109,95,112,108,97, -110,101,78,111,114,109,97,108,0,109,95,112,108,97,110,101,67,111,110,115, -116,97,110,116,0,109,95,112,97,100,91,52,93,0,109,95,105,109,112,108, -105,99,105,116,83,104,97,112,101,68,105,109,101,110,115,105,111,110,115,0, -109,95,99,111,108,108,105,115,105,111,110,77,97,114,103,105,110,0,109,95, -112,97,100,100,105,110,103,0,109,95,112,111,115,0,109,95,114,97,100,105, -117,115,0,109,95,99,111,110,118,101,120,73,110,116,101,114,110,97,108,83, -104,97,112,101,68,97,116,97,0,42,109,95,108,111,99,97,108,80,111,115, -105,116,105,111,110,65,114,114,97,121,80,116,114,0,109,95,108,111,99,97, -108,80,111,115,105,116,105,111,110,65,114,114,97,121,83,105,122,101,0,109, -95,118,97,108,117,101,0,105,110,116,0,42,109,95,118,101,114,116,105,99, -101,115,51,102,0,42,109,95,118,101,114,116,105,99,101,115,51,100,0,42, -109,95,105,110,100,105,99,101,115,51,50,0,42,109,95,105,110,100,105,99, -101,115,49,54,0,109,95,110,117,109,84,114,105,97,110,103,108,101,115,0, -109,95,110,117,109,86,101,114,116,105,99,101,115,0,42,109,95,109,101,115, -104,80,97,114,116,115,80,116,114,0,109,95,115,99,97,108,105,110,103,0, -109,95,110,117,109,77,101,115,104,80,97,114,116,115,0,109,95,109,101,115, -104,73,110,116,101,114,102,97,99,101,0,109,95,116,114,97,110,115,102,111, -114,109,0,42,109,95,99,104,105,108,100,83,104,97,112,101,0,109,95,99, -104,105,108,100,83,104,97,112,101,84,121,112,101,0,109,95,99,104,105,108, -100,77,97,114,103,105,110,0,42,109,95,99,104,105,108,100,83,104,97,112, -101,80,116,114,0,109,95,110,117,109,67,104,105,108,100,83,104,97,112,101, -115,0,109,95,117,112,65,120,105,115,0,109,95,103,105,109,112,97,99,116, -83,117,98,84,121,112,101,0,42,109,95,117,110,115,99,97,108,101,100,80, -111,105,110,116,115,70,108,111,97,116,80,116,114,0,42,109,95,117,110,115, -99,97,108,101,100,80,111,105,110,116,115,68,111,117,98,108,101,80,116,114, -0,109,95,110,117,109,85,110,115,99,97,108,101,100,80,111,105,110,116,115, -0,109,95,112,97,100,100,105,110,103,51,91,52,93,0,42,109,95,98,114, -111,97,100,112,104,97,115,101,72,97,110,100,108,101,0,42,109,95,99,111, -108,108,105,115,105,111,110,83,104,97,112,101,0,42,109,95,114,111,111,116, -67,111,108,108,105,115,105,111,110,83,104,97,112,101,0,42,109,95,110,97, -109,101,0,109,95,119,111,114,108,100,84,114,97,110,115,102,111,114,109,0, -109,95,105,110,116,101,114,112,111,108,97,116,105,111,110,87,111,114,108,100, -84,114,97,110,115,102,111,114,109,0,109,95,105,110,116,101,114,112,111,108, -97,116,105,111,110,76,105,110,101,97,114,86,101,108,111,99,105,116,121,0, -109,95,105,110,116,101,114,112,111,108,97,116,105,111,110,65,110,103,117,108, -97,114,86,101,108,111,99,105,116,121,0,109,95,97,110,105,115,111,116,114, -111,112,105,99,70,114,105,99,116,105,111,110,0,109,95,99,111,110,116,97, -99,116,80,114,111,99,101,115,115,105,110,103,84,104,114,101,115,104,111,108, -100,0,109,95,100,101,97,99,116,105,118,97,116,105,111,110,84,105,109,101, -0,109,95,102,114,105,99,116,105,111,110,0,109,95,114,101,115,116,105,116, -117,116,105,111,110,0,109,95,104,105,116,70,114,97,99,116,105,111,110,0, -109,95,99,99,100,83,119,101,112,116,83,112,104,101,114,101,82,97,100,105, -117,115,0,109,95,99,99,100,77,111,116,105,111,110,84,104,114,101,115,104, -111,108,100,0,109,95,104,97,115,65,110,105,115,111,116,114,111,112,105,99, -70,114,105,99,116,105,111,110,0,109,95,99,111,108,108,105,115,105,111,110, -70,108,97,103,115,0,109,95,105,115,108,97,110,100,84,97,103,49,0,109, -95,99,111,109,112,97,110,105,111,110,73,100,0,109,95,97,99,116,105,118, -97,116,105,111,110,83,116,97,116,101,49,0,109,95,105,110,116,101,114,110, -97,108,84,121,112,101,0,109,95,99,104,101,99,107,67,111,108,108,105,100, -101,87,105,116,104,0,109,95,99,111,108,108,105,115,105,111,110,79,98,106, -101,99,116,68,97,116,97,0,109,95,105,110,118,73,110,101,114,116,105,97, -84,101,110,115,111,114,87,111,114,108,100,0,109,95,108,105,110,101,97,114, -86,101,108,111,99,105,116,121,0,109,95,97,110,103,117,108,97,114,86,101, -108,111,99,105,116,121,0,109,95,97,110,103,117,108,97,114,70,97,99,116, -111,114,0,109,95,108,105,110,101,97,114,70,97,99,116,111,114,0,109,95, -103,114,97,118,105,116,121,0,109,95,103,114,97,118,105,116,121,95,97,99, -99,101,108,101,114,97,116,105,111,110,0,109,95,105,110,118,73,110,101,114, -116,105,97,76,111,99,97,108,0,109,95,116,111,116,97,108,70,111,114,99, -101,0,109,95,116,111,116,97,108,84,111,114,113,117,101,0,109,95,105,110, -118,101,114,115,101,77,97,115,115,0,109,95,108,105,110,101,97,114,68,97, -109,112,105,110,103,0,109,95,97,110,103,117,108,97,114,68,97,109,112,105, -110,103,0,109,95,97,100,100,105,116,105,111,110,97,108,68,97,109,112,105, -110,103,70,97,99,116,111,114,0,109,95,97,100,100,105,116,105,111,110,97, -108,76,105,110,101,97,114,68,97,109,112,105,110,103,84,104,114,101,115,104, -111,108,100,83,113,114,0,109,95,97,100,100,105,116,105,111,110,97,108,65, -110,103,117,108,97,114,68,97,109,112,105,110,103,84,104,114,101,115,104,111, -108,100,83,113,114,0,109,95,97,100,100,105,116,105,111,110,97,108,65,110, -103,117,108,97,114,68,97,109,112,105,110,103,70,97,99,116,111,114,0,109, -95,108,105,110,101,97,114,83,108,101,101,112,105,110,103,84,104,114,101,115, -104,111,108,100,0,109,95,97,110,103,117,108,97,114,83,108,101,101,112,105, -110,103,84,104,114,101,115,104,111,108,100,0,109,95,97,100,100,105,116,105, -111,110,97,108,68,97,109,112,105,110,103,0,109,95,110,117,109,67,111,110, -115,116,114,97,105,110,116,82,111,119,115,0,110,117,98,0,42,109,95,114, -98,65,0,42,109,95,114,98,66,0,109,95,111,98,106,101,99,116,84,121, -112,101,0,109,95,117,115,101,114,67,111,110,115,116,114,97,105,110,116,84, -121,112,101,0,109,95,117,115,101,114,67,111,110,115,116,114,97,105,110,116, -73,100,0,109,95,110,101,101,100,115,70,101,101,100,98,97,99,107,0,109, -95,97,112,112,108,105,101,100,73,109,112,117,108,115,101,0,109,95,100,98, -103,68,114,97,119,83,105,122,101,0,109,95,100,105,115,97,98,108,101,67, -111,108,108,105,115,105,111,110,115,66,101,116,119,101,101,110,76,105,110,107, -101,100,66,111,100,105,101,115,0,109,95,116,121,112,101,67,111,110,115,116, -114,97,105,110,116,68,97,116,97,0,109,95,112,105,118,111,116,73,110,65, -0,109,95,112,105,118,111,116,73,110,66,0,109,95,114,98,65,70,114,97, -109,101,0,109,95,114,98,66,70,114,97,109,101,0,109,95,117,115,101,82, -101,102,101,114,101,110,99,101,70,114,97,109,101,65,0,109,95,97,110,103, -117,108,97,114,79,110,108,121,0,109,95,101,110,97,98,108,101,65,110,103, -117,108,97,114,77,111,116,111,114,0,109,95,109,111,116,111,114,84,97,114, -103,101,116,86,101,108,111,99,105,116,121,0,109,95,109,97,120,77,111,116, -111,114,73,109,112,117,108,115,101,0,109,95,108,111,119,101,114,76,105,109, -105,116,0,109,95,117,112,112,101,114,76,105,109,105,116,0,109,95,108,105, -109,105,116,83,111,102,116,110,101,115,115,0,109,95,98,105,97,115,70,97, -99,116,111,114,0,109,95,114,101,108,97,120,97,116,105,111,110,70,97,99, -116,111,114,0,109,95,115,119,105,110,103,83,112,97,110,49,0,109,95,115, -119,105,110,103,83,112,97,110,50,0,109,95,116,119,105,115,116,83,112,97, -110,0,109,95,100,97,109,112,105,110,103,0,109,95,108,105,110,101,97,114, -85,112,112,101,114,76,105,109,105,116,0,109,95,108,105,110,101,97,114,76, -111,119,101,114,76,105,109,105,116,0,109,95,97,110,103,117,108,97,114,85, -112,112,101,114,76,105,109,105,116,0,109,95,97,110,103,117,108,97,114,76, -111,119,101,114,76,105,109,105,116,0,109,95,117,115,101,76,105,110,101,97, -114,82,101,102,101,114,101,110,99,101,70,114,97,109,101,65,0,109,95,117, -115,101,79,102,102,115,101,116,70,111,114,67,111,110,115,116,114,97,105,110, -116,70,114,97,109,101,0,0,84,89,80,69,49,0,0,0,99,104,97,114, -0,117,99,104,97,114,0,115,104,111,114,116,0,117,115,104,111,114,116,0, -105,110,116,0,108,111,110,103,0,117,108,111,110,103,0,102,108,111,97,116, -0,100,111,117,98,108,101,0,118,111,105,100,0,80,111,105,110,116,101,114, -65,114,114,97,121,0,98,116,80,104,121,115,105,99,115,83,121,115,116,101, -109,0,76,105,115,116,66,97,115,101,0,98,116,86,101,99,116,111,114,51, -70,108,111,97,116,68,97,116,97,0,98,116,86,101,99,116,111,114,51,68, -111,117,98,108,101,68,97,116,97,0,98,116,77,97,116,114,105,120,51,120, -51,70,108,111,97,116,68,97,116,97,0,98,116,77,97,116,114,105,120,51, -120,51,68,111,117,98,108,101,68,97,116,97,0,98,116,84,114,97,110,115, -102,111,114,109,70,108,111,97,116,68,97,116,97,0,98,116,84,114,97,110, -115,102,111,114,109,68,111,117,98,108,101,68,97,116,97,0,98,116,67,111, -108,108,105,115,105,111,110,83,104,97,112,101,68,97,116,97,0,98,116,83, -116,97,116,105,99,80,108,97,110,101,83,104,97,112,101,68,97,116,97,0, -98,116,67,111,110,118,101,120,73,110,116,101,114,110,97,108,83,104,97,112, -101,68,97,116,97,0,98,116,80,111,115,105,116,105,111,110,65,110,100,82, -97,100,105,117,115,0,98,116,77,117,108,116,105,83,112,104,101,114,101,83, -104,97,112,101,68,97,116,97,0,98,116,73,110,116,73,110,100,101,120,68, -97,116,97,0,98,116,83,104,111,114,116,73,110,116,73,110,100,101,120,68, -97,116,97,0,98,116,77,101,115,104,80,97,114,116,68,97,116,97,0,98, -116,83,116,114,105,100,105,110,103,77,101,115,104,73,110,116,101,114,102,97, -99,101,68,97,116,97,0,98,116,84,114,105,97,110,103,108,101,77,101,115, -104,83,104,97,112,101,68,97,116,97,0,98,116,67,111,109,112,111,117,110, -100,83,104,97,112,101,67,104,105,108,100,68,97,116,97,0,98,116,67,111, -109,112,111,117,110,100,83,104,97,112,101,68,97,116,97,0,98,116,67,121, -108,105,110,100,101,114,83,104,97,112,101,68,97,116,97,0,98,116,67,97, -112,115,117,108,101,83,104,97,112,101,68,97,116,97,0,98,116,71,73,109, -112,97,99,116,77,101,115,104,83,104,97,112,101,68,97,116,97,0,98,116, -67,111,110,118,101,120,72,117,108,108,83,104,97,112,101,68,97,116,97,0, -98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,68,111,117, -98,108,101,68,97,116,97,0,98,116,67,111,108,108,105,115,105,111,110,79, -98,106,101,99,116,70,108,111,97,116,68,97,116,97,0,98,116,82,105,103, -105,100,66,111,100,121,70,108,111,97,116,68,97,116,97,0,98,116,82,105, -103,105,100,66,111,100,121,68,111,117,98,108,101,68,97,116,97,0,98,116, -67,111,110,115,116,114,97,105,110,116,73,110,102,111,49,0,98,116,84,121, -112,101,100,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,98,116, -82,105,103,105,100,66,111,100,121,68,97,116,97,0,98,116,80,111,105,110, -116,50,80,111,105,110,116,67,111,110,115,116,114,97,105,110,116,70,108,111, -97,116,68,97,116,97,0,98,116,80,111,105,110,116,50,80,111,105,110,116, -67,111,110,115,116,114,97,105,110,116,68,111,117,98,108,101,68,97,116,97, -0,98,116,72,105,110,103,101,67,111,110,115,116,114,97,105,110,116,68,111, -117,98,108,101,68,97,116,97,0,98,116,72,105,110,103,101,67,111,110,115, -116,114,97,105,110,116,70,108,111,97,116,68,97,116,97,0,98,116,67,111, -110,101,84,119,105,115,116,67,111,110,115,116,114,97,105,110,116,68,97,116, -97,0,98,116,71,101,110,101,114,105,99,54,68,111,102,67,111,110,115,116, -114,97,105,110,116,68,97,116,97,0,98,116,83,108,105,100,101,114,67,111, -110,115,116,114,97,105,110,116,68,97,116,97,0,0,0,0,84,76,69,78, -1,0,1,0,2,0,2,0,4,0,4,0,4,0,4,0,8,0,0,0, -12,0,36,0,8,0,16,0,32,0,48,0,96,0,64,0,-128,0,12,0, -52,0,52,0,20,0,64,0,4,0,4,0,24,0,28,0,48,0,76,0, -24,0,60,0,60,0,64,0,68,0,-56,1,-8,0,-32,1,-104,3,8,0, -40,0,0,0,72,0,104,0,80,1,-48,0,-56,0,-16,0,-64,0,0,0, -83,84,82,67,38,0,0,0,10,0,3,0,4,0,0,0,4,0,1,0, -9,0,2,0,11,0,3,0,10,0,3,0,10,0,4,0,10,0,5,0, -12,0,2,0,9,0,6,0,9,0,7,0,13,0,1,0,7,0,8,0, -14,0,1,0,8,0,8,0,15,0,1,0,13,0,9,0,16,0,1,0, -14,0,9,0,17,0,2,0,15,0,10,0,13,0,11,0,18,0,2,0, -16,0,10,0,14,0,11,0,19,0,3,0,9,0,12,0,4,0,13,0, -0,0,14,0,20,0,5,0,19,0,15,0,13,0,16,0,13,0,17,0, -7,0,18,0,0,0,19,0,21,0,5,0,19,0,15,0,13,0,16,0, -13,0,20,0,7,0,21,0,4,0,22,0,22,0,2,0,13,0,23,0, -7,0,24,0,23,0,4,0,21,0,25,0,22,0,26,0,4,0,27,0, -0,0,14,0,24,0,1,0,4,0,28,0,25,0,2,0,2,0,29,0, -2,0,28,0,26,0,6,0,13,0,30,0,14,0,31,0,24,0,32,0, -25,0,33,0,4,0,34,0,4,0,35,0,27,0,4,0,26,0,36,0, -13,0,37,0,4,0,38,0,0,0,14,0,28,0,4,0,19,0,15,0, -27,0,39,0,7,0,21,0,0,0,14,0,29,0,4,0,17,0,40,0, -19,0,41,0,4,0,42,0,7,0,43,0,30,0,4,0,19,0,15,0, -29,0,44,0,4,0,45,0,7,0,21,0,31,0,3,0,21,0,25,0, -4,0,46,0,0,0,14,0,32,0,3,0,21,0,25,0,4,0,46,0, -0,0,14,0,33,0,5,0,19,0,15,0,27,0,39,0,13,0,16,0, -7,0,21,0,4,0,47,0,34,0,5,0,21,0,25,0,13,0,48,0, -14,0,49,0,4,0,50,0,0,0,51,0,35,0,24,0,9,0,52,0, -9,0,53,0,19,0,54,0,0,0,55,0,18,0,56,0,18,0,57,0, -14,0,58,0,14,0,59,0,14,0,60,0,8,0,61,0,8,0,62,0, -8,0,63,0,8,0,64,0,8,0,65,0,8,0,66,0,8,0,67,0, +109,95,110,97,109,101,0,109,95,115,104,97,112,101,84,121,112,101,0,109, +95,112,97,100,100,105,110,103,91,52,93,0,109,95,99,111,108,108,105,115, +105,111,110,83,104,97,112,101,68,97,116,97,0,109,95,108,111,99,97,108, +83,99,97,108,105,110,103,0,109,95,112,108,97,110,101,78,111,114,109,97, +108,0,109,95,112,108,97,110,101,67,111,110,115,116,97,110,116,0,109,95, +112,97,100,91,52,93,0,109,95,105,109,112,108,105,99,105,116,83,104,97, +112,101,68,105,109,101,110,115,105,111,110,115,0,109,95,99,111,108,108,105, +115,105,111,110,77,97,114,103,105,110,0,109,95,112,97,100,100,105,110,103, +0,109,95,112,111,115,0,109,95,114,97,100,105,117,115,0,109,95,99,111, +110,118,101,120,73,110,116,101,114,110,97,108,83,104,97,112,101,68,97,116, +97,0,42,109,95,108,111,99,97,108,80,111,115,105,116,105,111,110,65,114, +114,97,121,80,116,114,0,109,95,108,111,99,97,108,80,111,115,105,116,105, +111,110,65,114,114,97,121,83,105,122,101,0,109,95,118,97,108,117,101,0, +105,110,116,0,42,109,95,118,101,114,116,105,99,101,115,51,102,0,42,109, +95,118,101,114,116,105,99,101,115,51,100,0,42,109,95,105,110,100,105,99, +101,115,51,50,0,42,109,95,105,110,100,105,99,101,115,49,54,0,109,95, +110,117,109,84,114,105,97,110,103,108,101,115,0,109,95,110,117,109,86,101, +114,116,105,99,101,115,0,42,109,95,109,101,115,104,80,97,114,116,115,80, +116,114,0,109,95,115,99,97,108,105,110,103,0,109,95,110,117,109,77,101, +115,104,80,97,114,116,115,0,109,95,109,101,115,104,73,110,116,101,114,102, +97,99,101,0,109,95,116,114,97,110,115,102,111,114,109,0,42,109,95,99, +104,105,108,100,83,104,97,112,101,0,109,95,99,104,105,108,100,83,104,97, +112,101,84,121,112,101,0,109,95,99,104,105,108,100,77,97,114,103,105,110, +0,42,109,95,99,104,105,108,100,83,104,97,112,101,80,116,114,0,109,95, +110,117,109,67,104,105,108,100,83,104,97,112,101,115,0,109,95,117,112,65, +120,105,115,0,109,95,103,105,109,112,97,99,116,83,117,98,84,121,112,101, +0,42,109,95,117,110,115,99,97,108,101,100,80,111,105,110,116,115,70,108, +111,97,116,80,116,114,0,42,109,95,117,110,115,99,97,108,101,100,80,111, +105,110,116,115,68,111,117,98,108,101,80,116,114,0,109,95,110,117,109,85, +110,115,99,97,108,101,100,80,111,105,110,116,115,0,109,95,112,97,100,100, +105,110,103,51,91,52,93,0,42,109,95,98,114,111,97,100,112,104,97,115, +101,72,97,110,100,108,101,0,42,109,95,99,111,108,108,105,115,105,111,110, +83,104,97,112,101,0,42,109,95,114,111,111,116,67,111,108,108,105,115,105, +111,110,83,104,97,112,101,0,109,95,119,111,114,108,100,84,114,97,110,115, +102,111,114,109,0,109,95,105,110,116,101,114,112,111,108,97,116,105,111,110, +87,111,114,108,100,84,114,97,110,115,102,111,114,109,0,109,95,105,110,116, +101,114,112,111,108,97,116,105,111,110,76,105,110,101,97,114,86,101,108,111, +99,105,116,121,0,109,95,105,110,116,101,114,112,111,108,97,116,105,111,110, +65,110,103,117,108,97,114,86,101,108,111,99,105,116,121,0,109,95,97,110, +105,115,111,116,114,111,112,105,99,70,114,105,99,116,105,111,110,0,109,95, +99,111,110,116,97,99,116,80,114,111,99,101,115,115,105,110,103,84,104,114, +101,115,104,111,108,100,0,109,95,100,101,97,99,116,105,118,97,116,105,111, +110,84,105,109,101,0,109,95,102,114,105,99,116,105,111,110,0,109,95,114, +101,115,116,105,116,117,116,105,111,110,0,109,95,104,105,116,70,114,97,99, +116,105,111,110,0,109,95,99,99,100,83,119,101,112,116,83,112,104,101,114, +101,82,97,100,105,117,115,0,109,95,99,99,100,77,111,116,105,111,110,84, +104,114,101,115,104,111,108,100,0,109,95,104,97,115,65,110,105,115,111,116, +114,111,112,105,99,70,114,105,99,116,105,111,110,0,109,95,99,111,108,108, +105,115,105,111,110,70,108,97,103,115,0,109,95,105,115,108,97,110,100,84, +97,103,49,0,109,95,99,111,109,112,97,110,105,111,110,73,100,0,109,95, +97,99,116,105,118,97,116,105,111,110,83,116,97,116,101,49,0,109,95,105, +110,116,101,114,110,97,108,84,121,112,101,0,109,95,99,104,101,99,107,67, +111,108,108,105,100,101,87,105,116,104,0,109,95,99,111,108,108,105,115,105, +111,110,79,98,106,101,99,116,68,97,116,97,0,109,95,105,110,118,73,110, +101,114,116,105,97,84,101,110,115,111,114,87,111,114,108,100,0,109,95,108, +105,110,101,97,114,86,101,108,111,99,105,116,121,0,109,95,97,110,103,117, +108,97,114,86,101,108,111,99,105,116,121,0,109,95,97,110,103,117,108,97, +114,70,97,99,116,111,114,0,109,95,108,105,110,101,97,114,70,97,99,116, +111,114,0,109,95,103,114,97,118,105,116,121,0,109,95,103,114,97,118,105, +116,121,95,97,99,99,101,108,101,114,97,116,105,111,110,0,109,95,105,110, +118,73,110,101,114,116,105,97,76,111,99,97,108,0,109,95,116,111,116,97, +108,70,111,114,99,101,0,109,95,116,111,116,97,108,84,111,114,113,117,101, +0,109,95,105,110,118,101,114,115,101,77,97,115,115,0,109,95,108,105,110, +101,97,114,68,97,109,112,105,110,103,0,109,95,97,110,103,117,108,97,114, +68,97,109,112,105,110,103,0,109,95,97,100,100,105,116,105,111,110,97,108, +68,97,109,112,105,110,103,70,97,99,116,111,114,0,109,95,97,100,100,105, +116,105,111,110,97,108,76,105,110,101,97,114,68,97,109,112,105,110,103,84, +104,114,101,115,104,111,108,100,83,113,114,0,109,95,97,100,100,105,116,105, +111,110,97,108,65,110,103,117,108,97,114,68,97,109,112,105,110,103,84,104, +114,101,115,104,111,108,100,83,113,114,0,109,95,97,100,100,105,116,105,111, +110,97,108,65,110,103,117,108,97,114,68,97,109,112,105,110,103,70,97,99, +116,111,114,0,109,95,108,105,110,101,97,114,83,108,101,101,112,105,110,103, +84,104,114,101,115,104,111,108,100,0,109,95,97,110,103,117,108,97,114,83, +108,101,101,112,105,110,103,84,104,114,101,115,104,111,108,100,0,109,95,97, +100,100,105,116,105,111,110,97,108,68,97,109,112,105,110,103,0,109,95,110, +117,109,67,111,110,115,116,114,97,105,110,116,82,111,119,115,0,110,117,98, +0,42,109,95,114,98,65,0,42,109,95,114,98,66,0,109,95,111,98,106, +101,99,116,84,121,112,101,0,109,95,117,115,101,114,67,111,110,115,116,114, +97,105,110,116,84,121,112,101,0,109,95,117,115,101,114,67,111,110,115,116, +114,97,105,110,116,73,100,0,109,95,110,101,101,100,115,70,101,101,100,98, +97,99,107,0,109,95,97,112,112,108,105,101,100,73,109,112,117,108,115,101, +0,109,95,100,98,103,68,114,97,119,83,105,122,101,0,109,95,100,105,115, +97,98,108,101,67,111,108,108,105,115,105,111,110,115,66,101,116,119,101,101, +110,76,105,110,107,101,100,66,111,100,105,101,115,0,109,95,112,97,100,52, +91,52,93,0,109,95,116,121,112,101,67,111,110,115,116,114,97,105,110,116, +68,97,116,97,0,109,95,112,105,118,111,116,73,110,65,0,109,95,112,105, +118,111,116,73,110,66,0,109,95,114,98,65,70,114,97,109,101,0,109,95, +114,98,66,70,114,97,109,101,0,109,95,117,115,101,82,101,102,101,114,101, +110,99,101,70,114,97,109,101,65,0,109,95,97,110,103,117,108,97,114,79, +110,108,121,0,109,95,101,110,97,98,108,101,65,110,103,117,108,97,114,77, +111,116,111,114,0,109,95,109,111,116,111,114,84,97,114,103,101,116,86,101, +108,111,99,105,116,121,0,109,95,109,97,120,77,111,116,111,114,73,109,112, +117,108,115,101,0,109,95,108,111,119,101,114,76,105,109,105,116,0,109,95, +117,112,112,101,114,76,105,109,105,116,0,109,95,108,105,109,105,116,83,111, +102,116,110,101,115,115,0,109,95,98,105,97,115,70,97,99,116,111,114,0, +109,95,114,101,108,97,120,97,116,105,111,110,70,97,99,116,111,114,0,109, +95,115,119,105,110,103,83,112,97,110,49,0,109,95,115,119,105,110,103,83, +112,97,110,50,0,109,95,116,119,105,115,116,83,112,97,110,0,109,95,100, +97,109,112,105,110,103,0,109,95,108,105,110,101,97,114,85,112,112,101,114, +76,105,109,105,116,0,109,95,108,105,110,101,97,114,76,111,119,101,114,76, +105,109,105,116,0,109,95,97,110,103,117,108,97,114,85,112,112,101,114,76, +105,109,105,116,0,109,95,97,110,103,117,108,97,114,76,111,119,101,114,76, +105,109,105,116,0,109,95,117,115,101,76,105,110,101,97,114,82,101,102,101, +114,101,110,99,101,70,114,97,109,101,65,0,109,95,117,115,101,79,102,102, +115,101,116,70,111,114,67,111,110,115,116,114,97,105,110,116,70,114,97,109, +101,0,0,0,84,89,80,69,49,0,0,0,99,104,97,114,0,117,99,104, +97,114,0,115,104,111,114,116,0,117,115,104,111,114,116,0,105,110,116,0, +108,111,110,103,0,117,108,111,110,103,0,102,108,111,97,116,0,100,111,117, +98,108,101,0,118,111,105,100,0,80,111,105,110,116,101,114,65,114,114,97, +121,0,98,116,80,104,121,115,105,99,115,83,121,115,116,101,109,0,76,105, +115,116,66,97,115,101,0,98,116,86,101,99,116,111,114,51,70,108,111,97, +116,68,97,116,97,0,98,116,86,101,99,116,111,114,51,68,111,117,98,108, +101,68,97,116,97,0,98,116,77,97,116,114,105,120,51,120,51,70,108,111, +97,116,68,97,116,97,0,98,116,77,97,116,114,105,120,51,120,51,68,111, +117,98,108,101,68,97,116,97,0,98,116,84,114,97,110,115,102,111,114,109, +70,108,111,97,116,68,97,116,97,0,98,116,84,114,97,110,115,102,111,114, +109,68,111,117,98,108,101,68,97,116,97,0,98,116,67,111,108,108,105,115, +105,111,110,83,104,97,112,101,68,97,116,97,0,98,116,83,116,97,116,105, +99,80,108,97,110,101,83,104,97,112,101,68,97,116,97,0,98,116,67,111, +110,118,101,120,73,110,116,101,114,110,97,108,83,104,97,112,101,68,97,116, +97,0,98,116,80,111,115,105,116,105,111,110,65,110,100,82,97,100,105,117, +115,0,98,116,77,117,108,116,105,83,112,104,101,114,101,83,104,97,112,101, +68,97,116,97,0,98,116,73,110,116,73,110,100,101,120,68,97,116,97,0, +98,116,83,104,111,114,116,73,110,116,73,110,100,101,120,68,97,116,97,0, +98,116,77,101,115,104,80,97,114,116,68,97,116,97,0,98,116,83,116,114, +105,100,105,110,103,77,101,115,104,73,110,116,101,114,102,97,99,101,68,97, +116,97,0,98,116,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97, +112,101,68,97,116,97,0,98,116,67,111,109,112,111,117,110,100,83,104,97, +112,101,67,104,105,108,100,68,97,116,97,0,98,116,67,111,109,112,111,117, +110,100,83,104,97,112,101,68,97,116,97,0,98,116,67,121,108,105,110,100, +101,114,83,104,97,112,101,68,97,116,97,0,98,116,67,97,112,115,117,108, +101,83,104,97,112,101,68,97,116,97,0,98,116,71,73,109,112,97,99,116, +77,101,115,104,83,104,97,112,101,68,97,116,97,0,98,116,67,111,110,118, +101,120,72,117,108,108,83,104,97,112,101,68,97,116,97,0,98,116,67,111, +108,108,105,115,105,111,110,79,98,106,101,99,116,68,111,117,98,108,101,68, +97,116,97,0,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99, +116,70,108,111,97,116,68,97,116,97,0,98,116,82,105,103,105,100,66,111, +100,121,70,108,111,97,116,68,97,116,97,0,98,116,82,105,103,105,100,66, +111,100,121,68,111,117,98,108,101,68,97,116,97,0,98,116,67,111,110,115, +116,114,97,105,110,116,73,110,102,111,49,0,98,116,84,121,112,101,100,67, +111,110,115,116,114,97,105,110,116,68,97,116,97,0,98,116,82,105,103,105, +100,66,111,100,121,68,97,116,97,0,98,116,80,111,105,110,116,50,80,111, +105,110,116,67,111,110,115,116,114,97,105,110,116,70,108,111,97,116,68,97, +116,97,0,98,116,80,111,105,110,116,50,80,111,105,110,116,67,111,110,115, +116,114,97,105,110,116,68,111,117,98,108,101,68,97,116,97,0,98,116,72, +105,110,103,101,67,111,110,115,116,114,97,105,110,116,68,111,117,98,108,101, +68,97,116,97,0,98,116,72,105,110,103,101,67,111,110,115,116,114,97,105, +110,116,70,108,111,97,116,68,97,116,97,0,98,116,67,111,110,101,84,119, +105,115,116,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,98,116, +71,101,110,101,114,105,99,54,68,111,102,67,111,110,115,116,114,97,105,110, +116,68,97,116,97,0,98,116,83,108,105,100,101,114,67,111,110,115,116,114, +97,105,110,116,68,97,116,97,0,0,0,0,84,76,69,78,1,0,1,0, +2,0,2,0,4,0,4,0,4,0,4,0,8,0,0,0,12,0,36,0, +8,0,16,0,32,0,48,0,96,0,64,0,-128,0,12,0,52,0,52,0, +20,0,64,0,4,0,4,0,24,0,28,0,48,0,76,0,24,0,60,0, +60,0,64,0,68,0,-56,1,-8,0,-32,1,-104,3,8,0,44,0,0,0, +76,0,108,0,84,1,-44,0,-52,0,-12,0,-60,0,0,0,83,84,82,67, +38,0,0,0,10,0,3,0,4,0,0,0,4,0,1,0,9,0,2,0, +11,0,3,0,10,0,3,0,10,0,4,0,10,0,5,0,12,0,2,0, +9,0,6,0,9,0,7,0,13,0,1,0,7,0,8,0,14,0,1,0, +8,0,8,0,15,0,1,0,13,0,9,0,16,0,1,0,14,0,9,0, +17,0,2,0,15,0,10,0,13,0,11,0,18,0,2,0,16,0,10,0, +14,0,11,0,19,0,3,0,0,0,12,0,4,0,13,0,0,0,14,0, +20,0,5,0,19,0,15,0,13,0,16,0,13,0,17,0,7,0,18,0, +0,0,19,0,21,0,5,0,19,0,15,0,13,0,16,0,13,0,20,0, +7,0,21,0,4,0,22,0,22,0,2,0,13,0,23,0,7,0,24,0, +23,0,4,0,21,0,25,0,22,0,26,0,4,0,27,0,0,0,14,0, +24,0,1,0,4,0,28,0,25,0,2,0,2,0,29,0,2,0,28,0, +26,0,6,0,13,0,30,0,14,0,31,0,24,0,32,0,25,0,33,0, +4,0,34,0,4,0,35,0,27,0,4,0,26,0,36,0,13,0,37,0, +4,0,38,0,0,0,14,0,28,0,4,0,19,0,15,0,27,0,39,0, +7,0,21,0,0,0,14,0,29,0,4,0,17,0,40,0,19,0,41,0, +4,0,42,0,7,0,43,0,30,0,4,0,19,0,15,0,29,0,44,0, +4,0,45,0,7,0,21,0,31,0,3,0,21,0,25,0,4,0,46,0, +0,0,14,0,32,0,3,0,21,0,25,0,4,0,46,0,0,0,14,0, +33,0,5,0,19,0,15,0,27,0,39,0,13,0,16,0,7,0,21,0, +4,0,47,0,34,0,5,0,21,0,25,0,13,0,48,0,14,0,49,0, +4,0,50,0,0,0,51,0,35,0,24,0,9,0,52,0,9,0,53,0, +19,0,54,0,0,0,12,0,18,0,55,0,18,0,56,0,14,0,57,0, +14,0,58,0,14,0,59,0,8,0,60,0,8,0,61,0,8,0,62,0, +8,0,63,0,8,0,64,0,8,0,65,0,8,0,66,0,4,0,67,0, 4,0,68,0,4,0,69,0,4,0,70,0,4,0,71,0,4,0,72,0, -4,0,73,0,4,0,74,0,0,0,14,0,36,0,23,0,9,0,52,0, -9,0,53,0,19,0,54,0,0,0,55,0,17,0,56,0,17,0,57,0, -13,0,58,0,13,0,59,0,13,0,60,0,7,0,61,0,7,0,62,0, -7,0,63,0,7,0,64,0,7,0,65,0,7,0,66,0,7,0,67,0, +4,0,73,0,0,0,14,0,36,0,23,0,9,0,52,0,9,0,53,0, +19,0,54,0,0,0,12,0,17,0,55,0,17,0,56,0,13,0,57,0, +13,0,58,0,13,0,59,0,7,0,60,0,7,0,61,0,7,0,62,0, +7,0,63,0,7,0,64,0,7,0,65,0,7,0,66,0,4,0,67,0, 4,0,68,0,4,0,69,0,4,0,70,0,4,0,71,0,4,0,72,0, -4,0,73,0,4,0,74,0,37,0,21,0,36,0,75,0,15,0,76,0, +4,0,73,0,37,0,21,0,36,0,74,0,15,0,75,0,13,0,76,0, 13,0,77,0,13,0,78,0,13,0,79,0,13,0,80,0,13,0,81,0, -13,0,82,0,13,0,83,0,13,0,84,0,13,0,85,0,7,0,86,0, +13,0,82,0,13,0,83,0,13,0,84,0,7,0,85,0,7,0,86,0, 7,0,87,0,7,0,88,0,7,0,89,0,7,0,90,0,7,0,91,0, -7,0,92,0,7,0,93,0,7,0,94,0,4,0,95,0,38,0,22,0, -35,0,75,0,16,0,76,0,14,0,77,0,14,0,78,0,14,0,79,0, +7,0,92,0,7,0,93,0,4,0,94,0,38,0,22,0,35,0,74,0, +16,0,75,0,14,0,76,0,14,0,77,0,14,0,78,0,14,0,79,0, 14,0,80,0,14,0,81,0,14,0,82,0,14,0,83,0,14,0,84,0, -14,0,85,0,8,0,86,0,8,0,87,0,8,0,88,0,8,0,89,0, -8,0,90,0,8,0,91,0,8,0,92,0,8,0,93,0,8,0,94,0, -4,0,95,0,0,0,14,0,39,0,2,0,4,0,96,0,4,0,97,0, -40,0,10,0,41,0,98,0,41,0,99,0,4,0,100,0,4,0,101,0, -4,0,102,0,4,0,103,0,7,0,104,0,7,0,105,0,4,0,106,0, -0,0,19,0,42,0,3,0,40,0,107,0,13,0,108,0,13,0,109,0, +8,0,85,0,8,0,86,0,8,0,87,0,8,0,88,0,8,0,89,0, +8,0,90,0,8,0,91,0,8,0,92,0,8,0,93,0,4,0,94,0, +0,0,14,0,39,0,2,0,4,0,95,0,4,0,96,0,40,0,11,0, +41,0,97,0,41,0,98,0,0,0,12,0,4,0,99,0,4,0,100,0, +4,0,101,0,4,0,102,0,7,0,103,0,7,0,104,0,4,0,105,0, +0,0,106,0,42,0,3,0,40,0,107,0,13,0,108,0,13,0,109,0, 43,0,3,0,40,0,107,0,14,0,108,0,14,0,109,0,44,0,13,0, 40,0,107,0,18,0,110,0,18,0,111,0,4,0,112,0,4,0,113,0, 4,0,114,0,7,0,115,0,7,0,116,0,7,0,117,0,7,0,118,0,