From 3c95d91a575d44842d7ee2a3406a9222bf11451c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 5 Sep 2008 00:28:17 +0000 Subject: [PATCH 01/66] * corrective UV transformation - only works with UV edge slide right now. but should be extended so transforming dosnt distort UV's * smooth respects mirror option (will move mirrored vert too) --- source/blender/blenkernel/BKE_action.h | 2 +- source/blender/blenkernel/intern/action.c | 2 +- source/blender/makesdna/DNA_scene_types.h | 1 + source/blender/src/buttons_editing.c | 5 + source/blender/src/editmesh_mods.c | 17 +- source/blender/src/editmesh_tools.c | 182 +++++++++++++++++++++- 6 files changed, 204 insertions(+), 5 deletions(-) diff --git a/source/blender/blenkernel/BKE_action.h b/source/blender/blenkernel/BKE_action.h index 716eac81b55..4a13fa31f6c 100644 --- a/source/blender/blenkernel/BKE_action.h +++ b/source/blender/blenkernel/BKE_action.h @@ -159,7 +159,7 @@ float get_action_frame(struct Object *ob, float cframe); /* map strip time to global time (frame nr) */ float get_action_frame_inv(struct Object *ob, float cframe); /* builds a list of NlaIpoChannel with ipo values to write in datablock */ -void extract_ipochannels_from_action(ListBase *lb, struct ID *id, struct bAction *act, char *name, float ctime); +void extract_ipochannels_from_action(ListBase *lb, struct ID *id, struct bAction *act, const char *name, float ctime); /* write values returned by extract_ipochannels_from_action, returns the number of value written */ int execute_ipochannels(ListBase *lb); diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c index 2648233aca5..043ede5987a 100644 --- a/source/blender/blenkernel/intern/action.c +++ b/source/blender/blenkernel/intern/action.c @@ -862,7 +862,7 @@ typedef struct NlaIpoChannel { int type; } NlaIpoChannel; -void extract_ipochannels_from_action(ListBase *lb, ID *id, bAction *act, char *name, float ctime) +void extract_ipochannels_from_action(ListBase *lb, ID *id, bAction *act, const char *name, float ctime) { bActionChannel *achan= get_action_channel(act, name); IpoCurve *icu; diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 72050b0809e..32522d1e866 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -790,6 +790,7 @@ typedef struct Scene { /* toolsettings->uvcalc_flag */ #define UVCALC_FILLHOLES 1 #define UVCALC_NO_ASPECT_CORRECT 2 /* would call this UVCALC_ASPECT_CORRECT, except it should be default with old file */ +#define UVCALC_TRANSFORM_CORRECT 4 /* adjust UV's while transforming to avoid distortion */ /* toolsettings->edge_mode */ #define EDGE_MODE_SELECT 0 diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c index 76f244db6fc..c83d7b2e124 100644 --- a/source/blender/src/buttons_editing.c +++ b/source/blender/src/buttons_editing.c @@ -6277,6 +6277,11 @@ static void editing_panel_mesh_uvautocalculation(void) row= 180; uiDefButBitS(block, TOGN, UVCALC_NO_ASPECT_CORRECT, B_NOP, "Image Aspect",100,row,200,butH,&G.scene->toolsettings->uvcalc_flag, 0, 0, 0, 0, "Scale the UV Unwrapping to correct for the current images aspect ratio"); + + row-= butHB+butS; + uiDefButBitS(block, TOG, UVCALC_TRANSFORM_CORRECT, B_NOP, "Transform Correction",100,row,200,butH,&G.scene->toolsettings->uvcalc_flag, 0, 0, 0, 0, "Correct for UV distortion while transforming, (only works with edge slide now)"); + + row= 180; uiBlockBeginAlign(block); uiDefButF(block, NUM,B_UVAUTO_CUBESIZE ,"Cube Size:",315,row,200,butH, &G.scene->toolsettings->uvcalc_cubesize, 0.0001, 100.0, 10, 3, "Defines the cubemap size for cube mapping"); diff --git a/source/blender/src/editmesh_mods.c b/source/blender/src/editmesh_mods.c index c162c904776..81d0ffeeb3b 100644 --- a/source/blender/src/editmesh_mods.c +++ b/source/blender/src/editmesh_mods.c @@ -4202,7 +4202,7 @@ void editmesh_align_view_to_selected(View3D *v3d, int axis) void vertexsmooth(void) { EditMesh *em = G.editMesh; - EditVert *eve; + EditVert *eve, *eve_mir = NULL; EditEdge *eed; float *adror, *adr, fac; float fvec[3]; @@ -4285,13 +4285,19 @@ void vertexsmooth(void) while(eve) { if(eve->f & SELECT) { if(eve->f1) { + + if (G.scene->toolsettings->editbutflag & B_MESH_X_MIRROR) { + eve_mir= editmesh_get_x_mirror_vert(G.obedit, eve->co); + } + adr = eve->tmp.p; fac= 0.5/(float)eve->f1; eve->co[0]= 0.5*eve->co[0]+fac*adr[0]; eve->co[1]= 0.5*eve->co[1]+fac*adr[1]; eve->co[2]= 0.5*eve->co[2]+fac*adr[2]; - + + /* clip if needed by mirror modifier */ if (eve->f2) { if (eve->f2 & 1) { @@ -4304,6 +4310,13 @@ void vertexsmooth(void) eve->co[2]= 0.0f; } } + + if (eve_mir) { + eve_mir->co[0]=-eve->co[0]; + eve_mir->co[1]= eve->co[1]; + eve_mir->co[2]= eve->co[2]; + } + } eve->tmp.p= NULL; } diff --git a/source/blender/src/editmesh_tools.c b/source/blender/src/editmesh_tools.c index 2b25253dc95..c2fccb0e50f 100644 --- a/source/blender/src/editmesh_tools.c +++ b/source/blender/src/editmesh_tools.c @@ -4648,6 +4648,12 @@ void bevel_menu_old() } /* *********** END BEVEL *********/ +typedef struct SlideUv { + float origuv[2]; + float *uv_up, *uv_down; + //float *fuv[4]; + LinkNode *fuv_list; +} SlideUv; typedef struct SlideVert { EditEdge *up,*down; @@ -4655,9 +4661,19 @@ typedef struct SlideVert { } SlideVert; int EdgeLoopDelete(void) { + + /* temporal flag setting so we keep UVs when deleting edge loops, + * this is a bit of a hack but it works how you would want in almost all cases */ + short uvcalc_flag_orig = G.scene->toolsettings->uvcalc_flag; + G.scene->toolsettings->uvcalc_flag |= UVCALC_TRANSFORM_CORRECT; + if(!EdgeSlide(1, 1)) { return 0; } + + /* restore uvcalc flag */ + G.scene->toolsettings->uvcalc_flag = uvcalc_flag_orig; + EM_select_more(); removedoublesflag(1,0, 0.001); EM_select_flush(); @@ -4674,11 +4690,21 @@ int EdgeSlide(short immediate, float imperc) EditVert *ev, *nearest; LinkNode *edgelist = NULL, *vertlist=NULL, *look; GHash *vertgh; + SlideVert *tempsv; float perc = 0, percp = 0,vertdist, projectMat[4][4], viewMat[4][4]; float shiftlabda= 0.0f,len = 0.0f; int i = 0,j, numsel, numadded=0, timesthrough = 0, vertsel=0, prop=1, cancel = 0,flip=0; int wasshift = 0; + + /* UV correction vars */ + GHash **uvarray; + int uvlay_tot= CustomData_number_of_layers(&G.editMesh->fdata, CD_MTFACE); + int uvlay_idx; + SlideUv *slideuvs, *suv, *suv_last; + float uv_tmp[2]; + LinkNode *fuv_link; + short event, draw=1; short mval[2], mvalo[2]; char str[128]; @@ -4985,6 +5011,99 @@ int EdgeSlide(short immediate, float imperc) look = look->next; } + + + if (uvlay_tot && (G.scene->toolsettings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT)) { + int maxnum = 0; + uvarray = MEM_callocN( uvlay_tot * sizeof(GHash *), "SlideUVs Array"); + suv_last = slideuvs = MEM_callocN( uvlay_tot * (numadded+1) * sizeof(SlideUv), "SlideUVs"); /* uvLayers * verts */ + suv = NULL; + + for (uvlay_idx=0; uvlay_idxverts.first;ev;ev=ev->next) { + ev->tmp.l = 0; + } + look = vertlist; + while(look) { + float *uv_new; + tempsv = BLI_ghash_lookup(vertgh,(EditVert*)look->link); + + ev = look->link; + suv = NULL; + for(efa = em->faces.first;efa;efa=efa->next) { + if (ev->tmp.l != -1) { /* test for self, in this case its invalid */ + int k=-1; /* face corner */ + + /* Is this vert in the faces corner? */ + if (efa->v1==ev) k=0; + else if (efa->v2==ev) k=1; + else if (efa->v3==ev) k=2; + else if (efa->v4 && efa->v4==ev) k=3; + + if (k != -1) { + MTFace *tf = CustomData_em_get_n(&em->fdata, efa->data, CD_MTFACE, uvlay_idx); + EditVert *ev_up, *ev_down; + + uv_new = tf->uv[k]; + + if (ev->tmp.l) { + if (fabs(suv->origuv[0]-uv_new[0]) > 0.0001 || fabs(suv->origuv[1]-uv_new[1])) { + ev->tmp.l = -1; /* Tag as invalid */ + BLI_linklist_free(suv->fuv_list,NULL); + suv->fuv_list = NULL; + BLI_ghash_remove(uvarray[uvlay_idx],ev, NULL, NULL); + suv = NULL; + break; + } + } else { + ev->tmp.l = 1; + suv = suv_last; + + suv->fuv_list = NULL; + suv->uv_up = suv->uv_down = NULL; + suv->origuv[0] = uv_new[0]; + suv->origuv[1] = uv_new[1]; + + BLI_linklist_prepend(&suv->fuv_list, uv_new); + BLI_ghash_insert(uvarray[uvlay_idx],ev,suv); + + suv_last++; /* advance to next slide UV */ + maxnum++; + } + + /* Now get the uvs along the up or down edge if we can */ + if (suv) { + if (!suv->uv_up) { + ev_up = editedge_getOtherVert(tempsv->up,ev); + if (efa->v1==ev_up) suv->uv_up = tf->uv[0]; + else if (efa->v2==ev_up) suv->uv_up = tf->uv[1]; + else if (efa->v3==ev_up) suv->uv_up = tf->uv[2]; + else if (efa->v4 && efa->v4==ev_up) suv->uv_up = tf->uv[3]; + } + if (!suv->uv_down) { /* if the first face was apart of the up edge, it cant be apart of the down edge */ + ev_down = editedge_getOtherVert(tempsv->down,ev); + if (efa->v1==ev_down) suv->uv_down = tf->uv[0]; + else if (efa->v2==ev_down) suv->uv_down = tf->uv[1]; + else if (efa->v3==ev_down) suv->uv_down = tf->uv[2]; + else if (efa->v4 && efa->v4==ev_down) suv->uv_down = tf->uv[3]; + } + + /* Copy the pointers to the face UV's */ + BLI_linklist_prepend(&suv->fuv_list, uv_new); + } + } + } + } + look = look->next; + } + } /* end uv layer loop */ + } /* end uvlay_tot */ + + + // we should have enough info now to slide len = 0.0f; @@ -5089,7 +5208,21 @@ int EdgeSlide(short immediate, float imperc) tempev = editedge_getOtherVert((perc>=0)?tempsv->up:tempsv->down, ev); VecLerpf(ev->co, tempsv->origvert.co, tempev->co, fabs(perc)); - + + if (G.scene->toolsettings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT) { + for (uvlay_idx=0; uvlay_idxfuv_list && suv->uv_up && suv->uv_down) { + Vec2Lerpf(uv_tmp, suv->origuv, (perc>=0)?suv->uv_up:suv->uv_down, fabs(perc)); + fuv_link = suv->fuv_list; + while (fuv_link) { + VECCOPY2D(((float *)fuv_link->link), uv_tmp); + fuv_link = fuv_link->next; + } + } + } + } + look = look->next; } } @@ -5105,8 +5238,37 @@ int EdgeSlide(short immediate, float imperc) if(newlen < 0.0) {newlen = 0.0;} if(flip == 0) { VecLerpf(ev->co, editedge_getOtherVert(tempsv->down,ev)->co, editedge_getOtherVert(tempsv->up,ev)->co, fabs(newlen)); + if (G.scene->toolsettings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT) { + /* dont do anything if no UVs */ + for (uvlay_idx=0; uvlay_idxfuv_list && suv->uv_up && suv->uv_down) { + Vec2Lerpf(uv_tmp, suv->uv_down, suv->uv_up, fabs(newlen)); + fuv_link = suv->fuv_list; + while (fuv_link) { + VECCOPY2D(((float *)fuv_link->link), uv_tmp); + fuv_link = fuv_link->next; + } + } + } + } } else{ VecLerpf(ev->co, editedge_getOtherVert(tempsv->up,ev)->co, editedge_getOtherVert(tempsv->down,ev)->co, fabs(newlen)); + + if (G.scene->toolsettings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT) { + /* dont do anything if no UVs */ + for (uvlay_idx=0; uvlay_idxfuv_list && suv->uv_up && suv->uv_down) { + Vec2Lerpf(uv_tmp, suv->uv_up, suv->uv_down, fabs(newlen)); + fuv_link = suv->fuv_list; + while (fuv_link) { + VECCOPY2D(((float *)fuv_link->link), uv_tmp); + fuv_link = fuv_link->next; + } + } + } + } } look = look->next; } @@ -5276,6 +5438,24 @@ int EdgeSlide(short immediate, float imperc) BLI_ghash_free(vertgh, NULL, (GHashValFreeFP)MEM_freeN); BLI_linklist_free(vertlist,NULL); BLI_linklist_free(edgelist,NULL); + + if (uvlay_tot && (G.scene->toolsettings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT)) { + for (uvlay_idx=0; uvlay_idx= slideuvs) { + if (suv->fuv_list) { + BLI_linklist_free(suv->fuv_list,NULL); + } + suv--; + } + + allqueue(REDRAWIMAGE, 0); + } if(cancel == 1) { return -1; From e3a1547eea2b76daa30ccd9405868f8e5f2a1bc4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 5 Sep 2008 02:53:12 +0000 Subject: [PATCH 02/66] BGE Py API added exception messages for replaceMesh.setMesh() and allowed None as an argument. added exception messages for other BGE module functions. --- source/blender/python/api2_2x/Mathutils.c | 2 +- source/blender/python/api2_2x/Mathutils.h | 2 +- source/gameengine/Ketsji/KX_PythonInit.cpp | 407 +++++++++--------- .../Ketsji/KX_SCA_ReplaceMeshActuator.cpp | 39 +- .../Ketsji/KX_SCA_ReplaceMeshActuator.h | 2 +- .../PyDoc/KX_SCA_ReplaceMeshActuator.py | 5 +- 6 files changed, 228 insertions(+), 229 deletions(-) diff --git a/source/blender/python/api2_2x/Mathutils.c b/source/blender/python/api2_2x/Mathutils.c index 217e096060f..f0b51285376 100644 --- a/source/blender/python/api2_2x/Mathutils.c +++ b/source/blender/python/api2_2x/Mathutils.c @@ -108,7 +108,7 @@ struct PyMethodDef M_Mathutils_methods[] = { }; /*----------------------------MODULE INIT-------------------------*/ /* from can be Blender.Mathutils or GameLogic.Mathutils for the BGE */ -PyObject *Mathutils_Init(char *from) +PyObject *Mathutils_Init(const char *from) { PyObject *submodule; diff --git a/source/blender/python/api2_2x/Mathutils.h b/source/blender/python/api2_2x/Mathutils.h index 76d53cb6c4c..0db83216178 100644 --- a/source/blender/python/api2_2x/Mathutils.h +++ b/source/blender/python/api2_2x/Mathutils.h @@ -38,7 +38,7 @@ #include "euler.h" #include "point.h" -PyObject *Mathutils_Init( char * from ); +PyObject *Mathutils_Init( const char * from ); PyObject *row_vector_multiplication(VectorObject* vec, MatrixObject * mat); PyObject *column_vector_multiplication(MatrixObject * mat, VectorObject* vec); PyObject *row_point_multiplication(PointObject* pt, MatrixObject * mat); diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 120311fb967..f2902d0ef01 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -123,15 +123,13 @@ static PyObject* gPyGetRandomFloat(PyObject*) static PyObject* gPySetGravity(PyObject*, PyObject* args) { MT_Vector3 vec = MT_Vector3(0., 0., 0.); - if (PyVecArgTo(args, vec)) - { - if (gp_KetsjiScene) - gp_KetsjiScene->SetGravity(vec); - - Py_Return; - } + if (!PyVecArgTo(args, vec)) + return NULL; + + if (gp_KetsjiScene) + gp_KetsjiScene->SetGravity(vec); - return NULL; + Py_RETURN_NONE; } static char gPyExpandPath_doc[] = @@ -149,13 +147,12 @@ static PyObject* gPyExpandPath(PyObject*, PyObject* args) char expanded[FILE_MAXDIR + FILE_MAXFILE]; char* filename; - if (PyArg_ParseTuple(args,"s",&filename)) - { - BLI_strncpy(expanded, filename, FILE_MAXDIR + FILE_MAXFILE); - BLI_convertstringcode(expanded, G.sce); - return PyString_FromString(expanded); - } - return NULL; + if (!PyArg_ParseTuple(args,"s",&filename)) + return NULL; + + BLI_strncpy(expanded, filename, FILE_MAXDIR + FILE_MAXFILE); + BLI_convertstringcode(expanded, G.sce); + return PyString_FromString(expanded); } @@ -183,6 +180,12 @@ static PyObject* gPyGetSpectrum(PyObject*) PyList_SetItem(resultlist, index, PyFloat_FromDouble(spectrum[index])); } } + else { + for (int index = 0; index < 512; index++) + { + PyList_SetItem(resultlist, index, PyFloat_FromDouble(0.0)); + } + } return resultlist; } @@ -193,16 +196,17 @@ static PyObject* gPyStartDSP(PyObject*, PyObject* args) { SND_IAudioDevice* audiodevice = SND_DeviceManager::Instance(); - if (audiodevice) - { - if (!usedsp) - { - audiodevice->StartUsingDSP(); - usedsp = true; - Py_Return; - } + if (!audiodevice) { + PyErr_SetString(PyExc_RuntimeError, "no audio device available"); + return NULL; } - return NULL; + + if (!usedsp) { + audiodevice->StartUsingDSP(); + usedsp = true; + } + + Py_RETURN_NONE; } @@ -211,28 +215,27 @@ static PyObject* gPyStopDSP(PyObject*, PyObject* args) { SND_IAudioDevice* audiodevice = SND_DeviceManager::Instance(); - if (audiodevice) - { - if (usedsp) - { - audiodevice->StopUsingDSP(); - usedsp = false; - Py_Return; - } + if (!audiodevice) { + PyErr_SetString(PyExc_RuntimeError, "no audio device available"); + return NULL; } - return NULL; + + if (usedsp) { + audiodevice->StopUsingDSP(); + usedsp = true; + } + + Py_RETURN_NONE; } static PyObject* gPySetLogicTicRate(PyObject*, PyObject* args) { float ticrate; - if (PyArg_ParseTuple(args, "f", &ticrate)) - { - KX_KetsjiEngine::SetTicRate(ticrate); - Py_Return; - } + if (!PyArg_ParseTuple(args, "f", &ticrate)) + return NULL; - return NULL; + KX_KetsjiEngine::SetTicRate(ticrate); + Py_RETURN_NONE; } static PyObject* gPyGetLogicTicRate(PyObject*) @@ -243,26 +246,21 @@ static PyObject* gPyGetLogicTicRate(PyObject*) static PyObject* gPySetPhysicsTicRate(PyObject*, PyObject* args) { float ticrate; - if (PyArg_ParseTuple(args, "f", &ticrate)) - { - - PHY_GetActiveEnvironment()->setFixedTimeStep(true,ticrate); - Py_Return; - } + if (!PyArg_ParseTuple(args, "f", &ticrate)) + return NULL; - return NULL; + PHY_GetActiveEnvironment()->setFixedTimeStep(true,ticrate); + Py_RETURN_NONE; } static PyObject* gPySetPhysicsDebug(PyObject*, PyObject* args) { int debugMode; - if (PyArg_ParseTuple(args, "i", &debugMode)) - { - PHY_GetActiveEnvironment()->setDebugMode(debugMode); - Py_Return; - } + if (!PyArg_ParseTuple(args, "i", &debugMode)) + return NULL; - return NULL; + PHY_GetActiveEnvironment()->setDebugMode(debugMode); + Py_RETURN_NONE; } @@ -425,22 +423,14 @@ static struct PyMethodDef game_methods[] = { static PyObject* gPyGetWindowHeight(PyObject*, PyObject* args) { - int height = (gp_Canvas ? gp_Canvas->GetHeight() : 0); - - PyObject* heightval = PyInt_FromLong(height); - return heightval; + return PyInt_FromLong((gp_Canvas ? gp_Canvas->GetHeight() : 0)); } static PyObject* gPyGetWindowWidth(PyObject*, PyObject* args) { - - - int width = (gp_Canvas ? gp_Canvas->GetWidth() : 0); - - PyObject* widthval = PyInt_FromLong(width); - return widthval; + return PyInt_FromLong((gp_Canvas ? gp_Canvas->GetWidth() : 0)); } @@ -451,15 +441,11 @@ bool gUseVisibilityTemp = false; static PyObject* gPyEnableVisibility(PyObject*, PyObject* args) { int visible; - if (PyArg_ParseTuple(args,"i",&visible)) - { - gUseVisibilityTemp = (visible != 0); - } - else - { + if (!PyArg_ParseTuple(args,"i",&visible)) return NULL; - } - Py_Return; + + gUseVisibilityTemp = (visible != 0); + Py_RETURN_NONE; } @@ -467,23 +453,20 @@ static PyObject* gPyEnableVisibility(PyObject*, PyObject* args) static PyObject* gPyShowMouse(PyObject*, PyObject* args) { int visible; - if (PyArg_ParseTuple(args,"i",&visible)) - { - if (visible) - { - if (gp_Canvas) - gp_Canvas->SetMouseState(RAS_ICanvas::MOUSE_NORMAL); - } else - { - if (gp_Canvas) - gp_Canvas->SetMouseState(RAS_ICanvas::MOUSE_INVISIBLE); - } - } - else { + if (!PyArg_ParseTuple(args,"i",&visible)) return NULL; + + if (visible) + { + if (gp_Canvas) + gp_Canvas->SetMouseState(RAS_ICanvas::MOUSE_NORMAL); + } else + { + if (gp_Canvas) + gp_Canvas->SetMouseState(RAS_ICanvas::MOUSE_INVISIBLE); } - Py_Return; + Py_RETURN_NONE; } @@ -491,74 +474,81 @@ static PyObject* gPyShowMouse(PyObject*, PyObject* args) static PyObject* gPySetMousePosition(PyObject*, PyObject* args) { int x,y; - if (PyArg_ParseTuple(args,"ii",&x,&y)) - { - if (gp_Canvas) - gp_Canvas->SetMousePosition(x,y); - } - else { + if (!PyArg_ParseTuple(args,"ii",&x,&y)) return NULL; - } - Py_Return; + if (gp_Canvas) + gp_Canvas->SetMousePosition(x,y); + + Py_RETURN_NONE; } static PyObject* gPySetEyeSeparation(PyObject*, PyObject* args) { float sep; - if (PyArg_ParseTuple(args, "f", &sep)) - { - if (gp_Rasterizer) - gp_Rasterizer->SetEyeSeparation(sep); - - Py_Return; + if (!PyArg_ParseTuple(args, "f", &sep)) + return NULL; + + if (!gp_Rasterizer) { + PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); + return NULL; } - return NULL; + gp_Rasterizer->SetEyeSeparation(sep); + + Py_RETURN_NONE; } static PyObject* gPyGetEyeSeparation(PyObject*, PyObject*, PyObject*) { - if (gp_Rasterizer) - return PyFloat_FromDouble(gp_Rasterizer->GetEyeSeparation()); + if (!gp_Rasterizer) { + PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); + return NULL; + } - return NULL; + return PyFloat_FromDouble(gp_Rasterizer->GetEyeSeparation()); } static PyObject* gPySetFocalLength(PyObject*, PyObject* args) { float focus; - if (PyArg_ParseTuple(args, "f", &focus)) - { - if (gp_Rasterizer) - gp_Rasterizer->SetFocalLength(focus); - Py_Return; - } + if (!PyArg_ParseTuple(args, "f", &focus)) + return NULL; - return NULL; + if (!gp_Rasterizer) { + PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); + return NULL; + } + + gp_Rasterizer->SetFocalLength(focus); + + Py_RETURN_NONE; } static PyObject* gPyGetFocalLength(PyObject*, PyObject*, PyObject*) { - if (gp_Rasterizer) - return PyFloat_FromDouble(gp_Rasterizer->GetFocalLength()); - return NULL; + if (!gp_Rasterizer) { + PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); + return NULL; + } + + return PyFloat_FromDouble(gp_Rasterizer->GetFocalLength()); + + Py_RETURN_NONE; } static PyObject* gPySetBackgroundColor(PyObject*, PyObject* args) { MT_Vector4 vec = MT_Vector4(0., 0., 0.3, 0.); - if (PyVecArgTo(args, vec)) - { - if (gp_Canvas) - { - gp_Rasterizer->SetBackColor(vec[0], vec[1], vec[2], vec[3]); - } - Py_Return; - } + if (!PyVecArgTo(args, vec)) + return NULL; - return NULL; + if (gp_Canvas) + { + gp_Rasterizer->SetBackColor(vec[0], vec[1], vec[2], vec[3]); + } + Py_RETURN_NONE; } @@ -567,16 +557,16 @@ static PyObject* gPySetMistColor(PyObject*, PyObject* args) { MT_Vector3 vec = MT_Vector3(0., 0., 0.); - if (PyVecArgTo(args, vec)) - { - if (gp_Rasterizer) - { - gp_Rasterizer->SetFogColor(vec[0], vec[1], vec[2]); - } - Py_Return; - } + if (!PyVecArgTo(args, vec)) + return NULL; - return NULL; + if (!gp_Rasterizer) { + PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); + return NULL; + } + gp_Rasterizer->SetFogColor(vec[0], vec[1], vec[2]); + + Py_RETURN_NONE; } @@ -585,17 +575,17 @@ static PyObject* gPySetMistStart(PyObject*, PyObject* args) { float miststart; - if (PyArg_ParseTuple(args,"f",&miststart)) - { - if (gp_Rasterizer) - { - gp_Rasterizer->SetFogStart(miststart); - } - } - else { + if (!PyArg_ParseTuple(args,"f",&miststart)) + return NULL; + + if (!gp_Rasterizer) { + PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); return NULL; } - Py_Return; + + gp_Rasterizer->SetFogStart(miststart); + + Py_RETURN_NONE; } @@ -604,17 +594,17 @@ static PyObject* gPySetMistEnd(PyObject*, PyObject* args) { float mistend; - if (PyArg_ParseTuple(args,"f",&mistend)) - { - if (gp_Rasterizer) - { - gp_Rasterizer->SetFogEnd(mistend); - } - } - else { + if (!PyArg_ParseTuple(args,"f",&mistend)) + return NULL; + + if (!gp_Rasterizer) { + PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); return NULL; } - Py_Return; + + gp_Rasterizer->SetFogEnd(mistend); + + Py_RETURN_NONE; } @@ -622,16 +612,16 @@ static PyObject* gPySetAmbientColor(PyObject*, PyObject* args) { MT_Vector3 vec = MT_Vector3(0., 0., 0.); - if (PyVecArgTo(args, vec)) - { - if (gp_Rasterizer) - { - gp_Rasterizer->SetAmbientColor(vec[0], vec[1], vec[2]); - } - Py_Return; - } + if (!PyVecArgTo(args, vec)) + return NULL; - return NULL; + if (!gp_Rasterizer) { + PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); + return NULL; + } + gp_Rasterizer->SetAmbientColor(vec[0], vec[1], vec[2]); + + Py_RETURN_NONE; } @@ -640,42 +630,43 @@ static PyObject* gPySetAmbientColor(PyObject*, PyObject* args) static PyObject* gPyMakeScreenshot(PyObject*, PyObject* args) { char* filename; - if (PyArg_ParseTuple(args,"s",&filename)) - { - if (gp_Canvas) - { - gp_Canvas->MakeScreenShot(filename); - } - } - else { + if (!PyArg_ParseTuple(args,"s",&filename)) return NULL; + + if (gp_Canvas) + { + gp_Canvas->MakeScreenShot(filename); } - Py_Return; + + Py_RETURN_NONE; } static PyObject* gPyEnableMotionBlur(PyObject*, PyObject* args) { float motionblurvalue; - if (PyArg_ParseTuple(args,"f",&motionblurvalue)) - { - if(gp_Rasterizer) - { - gp_Rasterizer->EnableMotionBlur(motionblurvalue); - } - } - else { + if (!PyArg_ParseTuple(args,"f",&motionblurvalue)) + return NULL; + + if (!gp_Rasterizer) { + PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); return NULL; } - Py_Return; + + gp_Rasterizer->EnableMotionBlur(motionblurvalue); + + Py_RETURN_NONE; } static PyObject* gPyDisableMotionBlur(PyObject*, PyObject* args) { - if(gp_Rasterizer) - { - gp_Rasterizer->DisableMotionBlur(); + if (!gp_Rasterizer) { + PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); + return NULL; } - Py_Return; + + gp_Rasterizer->DisableMotionBlur(); + + Py_RETURN_NONE; } int getGLSLSettingFlag(char *setting) @@ -704,30 +695,33 @@ static PyObject* gPySetGLSLMaterialSetting(PyObject*, int enable, flag; if (PyArg_ParseTuple(args,"si",&setting,&enable)) - { - flag = getGLSLSettingFlag(setting); + return NULL; + + flag = getGLSLSettingFlag(setting); + + if (flag==-1) { + PyErr_SetString(PyExc_ValueError, "glsl setting is not known"); + return NULL; + } + + if (enable) + G.fileflags &= ~flag; + else + G.fileflags |= flag; - if(flag != -1) { - if (enable) - G.fileflags &= ~flag; - else - G.fileflags |= flag; + /* display lists and GLSL materials need to be remade */ + if(gp_KetsjiEngine) { + KX_SceneList *scenes = gp_KetsjiEngine->CurrentScenes(); + KX_SceneList::iterator it; - /* display lists and GLSL materials need to be remade */ - if(gp_KetsjiEngine) { - KX_SceneList *scenes = gp_KetsjiEngine->CurrentScenes(); - KX_SceneList::iterator it; - - for(it=scenes->begin(); it!=scenes->end(); it++) - if((*it)->GetBucketManager()) - (*it)->GetBucketManager()->ReleaseDisplayLists(); - } - - GPU_materials_free(); - } + for(it=scenes->begin(); it!=scenes->end(); it++) + if((*it)->GetBucketManager()) + (*it)->GetBucketManager()->ReleaseDisplayLists(); } - Py_Return; + GPU_materials_free(); + + Py_RETURN_NONE; } static PyObject* gPyGetGLSLMaterialSetting(PyObject*, @@ -737,14 +731,17 @@ static PyObject* gPyGetGLSLMaterialSetting(PyObject*, char *setting; int enabled = 0, flag; - if (PyArg_ParseTuple(args,"s",&setting)) - { - flag = getGLSLSettingFlag(setting); - - if(flag != -1) - enabled = ((G.fileflags & flag) != 0); + if (!PyArg_ParseTuple(args,"s",&setting)) + return NULL; + + flag = getGLSLSettingFlag(setting); + + if (flag==-1) { + PyErr_SetString(PyExc_ValueError, "glsl setting is not known"); + return NULL; } + enabled = ((G.fileflags & flag) != 0); return PyInt_FromLong(enabled); } diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp index 630df2d21d9..18a297d6c92 100644 --- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp @@ -80,7 +80,7 @@ PyParentObject KX_SCA_ReplaceMeshActuator::Parents[] = { PyMethodDef KX_SCA_ReplaceMeshActuator::Methods[] = { - {"setMesh", (PyCFunction) KX_SCA_ReplaceMeshActuator::sPySetMesh, METH_VARARGS, SetMesh_doc}, + {"setMesh", (PyCFunction) KX_SCA_ReplaceMeshActuator::sPySetMesh, METH_O, SetMesh_doc}, KX_PYMETHODTABLE(KX_SCA_ReplaceMeshActuator, instantReplaceMesh), KX_PYMETHODTABLE(KX_SCA_ReplaceMeshActuator, getMesh), @@ -99,28 +99,29 @@ PyObject* KX_SCA_ReplaceMeshActuator::_getattr(const STR_String& attr) /* 1. setMesh */ char KX_SCA_ReplaceMeshActuator::SetMesh_doc[] = "setMesh(name)\n" - "\t- name: string\n" + "\t- name: string or None\n" "\tSet the mesh that will be substituted for the current one.\n"; -PyObject* KX_SCA_ReplaceMeshActuator::PySetMesh(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_SCA_ReplaceMeshActuator::PySetMesh(PyObject* self, PyObject* value) { - char* meshname; - - if (!PyArg_ParseTuple(args, "s", &meshname)) - { - return NULL; - } - - void* mesh = SCA_ILogicBrick::m_sCurrentLogicManager->GetMeshByName(STR_String(meshname)); - - if (mesh) { + if (value == Py_None) { + m_mesh = NULL; + } else { + char* meshname = PyString_AsString(value); + if (!meshname) { + PyErr_SetString(PyExc_ValueError, "Expected the name of a mesh or None"); + return NULL; + } + void* mesh = SCA_ILogicBrick::m_sCurrentLogicManager->GetMeshByName(STR_String(meshname)); + + if (mesh==NULL) { + PyErr_SetString(PyExc_ValueError, "The mesh name given does not exist"); + return NULL; + } m_mesh= (class RAS_MeshObject*)mesh; - Py_Return; } - return NULL; + Py_RETURN_NONE; } KX_PYMETHODDEF_DOC(KX_SCA_ReplaceMeshActuator, getMesh, @@ -129,7 +130,7 @@ KX_PYMETHODDEF_DOC(KX_SCA_ReplaceMeshActuator, getMesh, ) { if (!m_mesh) - Py_Return; + Py_RETURN_NONE; return PyString_FromString(const_cast(m_mesh->GetName().ReadPtr())); } @@ -139,7 +140,7 @@ KX_PYMETHODDEF_DOC(KX_SCA_ReplaceMeshActuator, instantReplaceMesh, "instantReplaceMesh() : immediately replace mesh without delay\n") { InstantReplaceMesh(); - Py_Return; + Py_RETURN_NONE; } /* ------------------------------------------------------------------------- */ diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h index 5ba0a099b14..1da154cc222 100644 --- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h +++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h @@ -76,7 +76,7 @@ class KX_SCA_ReplaceMeshActuator : public SCA_IActuator void InstantReplaceMesh(); /* 1. setMesh */ - KX_PYMETHOD_DOC(KX_SCA_ReplaceMeshActuator,SetMesh); + KX_PYMETHOD_DOC_O(KX_SCA_ReplaceMeshActuator,SetMesh); KX_PYMETHOD_DOC(KX_SCA_ReplaceMeshActuator,getMesh); KX_PYMETHOD_DOC(KX_SCA_ReplaceMeshActuator,instantReplaceMesh); diff --git a/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py b/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py index eb00a91a4ce..498f6072e23 100644 --- a/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py +++ b/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py @@ -59,8 +59,9 @@ class KX_SCA_ReplaceMeshActuator(SCA_IActuator): def setMesh(name): """ Sets the name of the mesh that will replace the current one. + When the name is None it will unset the mesh value so no action is taken. - @type name: string + @type name: string or None """ def getMesh(): """ @@ -68,6 +69,6 @@ class KX_SCA_ReplaceMeshActuator(SCA_IActuator): Returns None if no mesh has been scheduled to be added. - @rtype: string + @rtype: string or None """ From 18b5b4ff0c270c328f0fe30e0af9a7ff178247eb Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Fri, 5 Sep 2008 05:17:26 +0000 Subject: [PATCH 03/66] * Made the Ipo editor handle colours initialise from old files to the previously stored Ipo editor vertex colours, rather than the default pink and yellow. This keeps existing themes looking the same as they did before rather than turning them pink by default. --- source/blender/src/usiblender.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/source/blender/src/usiblender.c b/source/blender/src/usiblender.c index 21bec1ec978..901daf0ee58 100644 --- a/source/blender/src/usiblender.c +++ b/source/blender/src/usiblender.c @@ -483,9 +483,12 @@ static void init_userdef_file(void) if ((G.main->versionfile < 247) || (G.main->versionfile == 247 && G.main->subversionfile < 1)) { bTheme *btheme; for(btheme= U.themes.first; btheme; btheme= btheme->next) { - SETCOL(btheme->tipo.handle_vertex, 0xff, 0x70, 0xff, 255); - SETCOL(btheme->tipo.handle_vertex_select, 0xff, 0xff, 0x70, 255); - btheme->tipo.handle_vertex_size= 3; + char *col; + col = btheme->tipo.vertex; + SETCOL(btheme->tipo.handle_vertex, col[0], col[1], col[2], 255); + col = btheme->tipo.vertex_select; + SETCOL(btheme->tipo.handle_vertex_select, col[0], col[1], col[2], 255); + btheme->tipo.handle_vertex_size= btheme->tipo.vertex_size; } } From 18fe6c27ff2b4a76ec5c646a3dda0a7bd64d94b4 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 5 Sep 2008 06:05:25 +0000 Subject: [PATCH 04/66] Compiling/Warning Fixes (for scons/mingw + "split sources hack") Part 1: * Removed compiler warnings from texteditor work * Added round brackets around the new defines for IPO channels for extra texture layers * Tweaked priorities so that BLI_heap_* functions in blenlib can be found by linker (split-sources specific) TODO: * "monkey*" vars cannot be found still --- .../blender/blenkernel/intern/suggestions.c | 4 +-- source/blender/blenkernel/intern/text.c | 4 +-- source/blender/blenlib/SConscript | 2 +- source/blender/makesdna/DNA_ipo_types.h | 36 +++++++++---------- source/blender/src/keyval.c | 2 +- 5 files changed, 24 insertions(+), 24 deletions(-) diff --git a/source/blender/blenkernel/intern/suggestions.c b/source/blender/blenkernel/intern/suggestions.c index 54ce425a04a..6530909336c 100644 --- a/source/blender/blenkernel/intern/suggestions.c +++ b/source/blender/blenkernel/intern/suggestions.c @@ -44,12 +44,12 @@ static Text *activeToolText = NULL; static SuggList suggestions = {NULL, NULL, NULL, NULL, NULL}; static char *documentation = NULL; -static int doc_lines = 0; +//static int doc_lines = 0; static int txttl_cmp(const char *first, const char *second, int len) { int cmp, i; for (cmp=0, i=0; iflags & TMARK_TEMP) && !(mrk->flags & TMARK_EDITALL)) { txt_clear_markers(text, mrk->group, TMARK_TEMP); } else { - TextMarker *nxt= mrk->next; + //TextMarker *nxt= mrk->next; BLI_freelinkN(&text->markers, mrk); } return; @@ -2308,7 +2308,7 @@ void txt_backspace_char (Text *text) if ((mrk->flags & TMARK_TEMP) && !(mrk->flags & TMARK_EDITALL)) { txt_clear_markers(text, mrk->group, TMARK_TEMP); } else { - TextMarker *nxt= mrk->next; + //TextMarker *nxt= mrk->next; BLI_freelinkN(&text->markers, mrk); } return; diff --git a/source/blender/blenlib/SConscript b/source/blender/blenlib/SConscript index 649d3cb5659..65cebf02f62 100644 --- a/source/blender/blenlib/SConscript +++ b/source/blender/blenlib/SConscript @@ -24,4 +24,4 @@ if env['OURPLATFORM'] == 'linux2': if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw'): incs += ' ' + env['BF_PTHREADS_INC'] -env.BlenderLib ( 'bf_blenlib', sources, Split(incs), Split(defs), libtype=['core','player'], priority = [85,195], compileflags =cflags ) +env.BlenderLib ( 'bf_blenlib', sources, Split(incs), Split(defs), libtype=['core', 'intern', 'player'], priority = [85,150,195], compileflags =cflags ) diff --git a/source/blender/makesdna/DNA_ipo_types.h b/source/blender/makesdna/DNA_ipo_types.h index e7f46b81935..2659de2f067 100644 --- a/source/blender/makesdna/DNA_ipo_types.h +++ b/source/blender/makesdna/DNA_ipo_types.h @@ -142,24 +142,24 @@ typedef short IPO_Channel; #define MA_FRESTRAI 25 #define MA_ADD 26 -#define MA_MAP1 1<<5 -#define MA_MAP2 1<<6 -#define MA_MAP3 1<<7 -#define MA_MAP4 1<<8 -#define MA_MAP5 1<<9 -#define MA_MAP6 1<<10 -#define MA_MAP7 1<<11 -#define MA_MAP8 1<<12 -#define MA_MAP9 1<<13 -#define MA_MAP10 1<<14 -#define MA_MAP11 1<<15 -#define MA_MAP12 1<<16 -#define MA_MAP13 1<<17 -#define MA_MAP14 1<<18 -#define MA_MAP15 1<<19 -#define MA_MAP16 1<<20 -#define MA_MAP17 1<<21 -#define MA_MAP18 1<<22 +#define MA_MAP1 (1<<5) +#define MA_MAP2 (1<<6) +#define MA_MAP3 (1<<7) +#define MA_MAP4 (1<<8) +#define MA_MAP5 (1<<9) +#define MA_MAP6 (1<<10) +#define MA_MAP7 (1<<11) +#define MA_MAP8 (1<<12) +#define MA_MAP9 (1<<13) +#define MA_MAP10 (1<<14) +#define MA_MAP11 (1<<15) +#define MA_MAP12 (1<<16) +#define MA_MAP13 (1<<17) +#define MA_MAP14 (1<<18) +#define MA_MAP15 (1<<19) +#define MA_MAP16 (1<<20) +#define MA_MAP17 (1<<21) +#define MA_MAP18 (1<<22) #define TEX_TOTNAM 14 diff --git a/source/blender/src/keyval.c b/source/blender/src/keyval.c index f59cce0da8f..5a2ba531821 100644 --- a/source/blender/src/keyval.c +++ b/source/blender/src/keyval.c @@ -390,7 +390,7 @@ int decode_key_string(char *str, unsigned short *key, unsigned short *qual) } /* Compare last part against key names */ - if (len-prev==1 || len-prev==4 && !strncmp(str+prev, "KEY", 3)) { + if ((len-prev==1) || ((len-prev==4) && !strncmp(str+prev, "KEY", 3))) { if (str[prev]>='A' && str[prev]<='Z') { *key= str[prev]-'A'+AKEY; From e8621cf05e6f54294057e3e68c971abda53fdf9a Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 5 Sep 2008 07:12:04 +0000 Subject: [PATCH 05/66] Grease Pencil - Available in Image Editor: Grease Pencil is now available in the image editor. It is important to note that the strokes drawn WILL NOT become part of the image visible at the time. Unfortunately, 'fancy' stroke drawing cannot be enabled for use with the 'Stick to View' setting here, as the scaling is wrong. --- source/blender/blenloader/intern/readfile.c | 3 + source/blender/blenloader/intern/writefile.c | 4 +- source/blender/include/BIF_space.h | 1 + source/blender/makesdna/DNA_space_types.h | 1 + source/blender/src/drawgpencil.c | 84 +++++++++++++++----- source/blender/src/drawimage.c | 56 ++++++++++++- source/blender/src/gpencil.c | 20 ++--- source/blender/src/header_image.c | 5 ++ source/blender/src/header_node.c | 2 +- source/blender/src/space.c | 18 ++++- 10 files changed, 158 insertions(+), 36 deletions(-) diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index a2b1828c399..91e17c42da8 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -4173,6 +4173,9 @@ static void direct_link_screen(FileData *fd, bScreen *sc) sima->cumap= newdataadr(fd, sima->cumap); if(sima->cumap) direct_link_curvemapping(fd, sima->cumap); + sima->gpd= newdataadr(fd, sima->gpd); + if (sima->gpd) + link_gpencil(fd, sima->gpd); sima->iuser.ok= 1; } else if(sl->spacetype==SPACE_NODE) { diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 3bc6799d616..44634a7468c 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -1698,7 +1698,9 @@ static void write_screens(WriteData *wd, ListBase *scrbase) writestruct(wd, DATA, "SpaceImage", 1, sl); if(sima->cumap) - write_curvemapping(wd, sima->cumap); + write_curvemapping(wd, sima->cumap); + if(sima->gpd) + write_gpencil(wd, sima->gpd); } else if(sl->spacetype==SPACE_IMASEL) { writestruct(wd, DATA, "SpaceImaSel", 1, sl); diff --git a/source/blender/include/BIF_space.h b/source/blender/include/BIF_space.h index b441bfe3663..c7d0f4a1ada 100644 --- a/source/blender/include/BIF_space.h +++ b/source/blender/include/BIF_space.h @@ -65,6 +65,7 @@ struct SpaceOops; #define IMAGE_HANDLER_PREVIEW 33 #define IMAGE_HANDLER_GAME_PROPERTIES 34 #define IMAGE_HANDLER_VIEW_PROPERTIES 35 +#define IMAGE_HANDLER_GREASEPENCIL 36 /*#define IMAGE_HANDLER_TRANSFORM_PROPERTIES 36*/ /* action handler codes */ diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 8e849c5aa3d..c59cafc1ef0 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -538,6 +538,7 @@ typedef struct SpaceImaSel { #define SI_DRAW_TILE 1<<19 #define SI_SMOOTH_UV 1<<20 #define SI_DRAW_STRETCH 1<<21 +#define SI_DISPGP 1<<22 /* SpaceIpo->flag */ #define SIPO_LOCK_VIEW 1<<0 diff --git a/source/blender/src/drawgpencil.c b/source/blender/src/drawgpencil.c index 15f65bfe3cf..d1c1e4a5ac6 100644 --- a/source/blender/src/drawgpencil.c +++ b/source/blender/src/drawgpencil.c @@ -394,7 +394,7 @@ static void gp_draw_stroke_buffer (tGPspoint *points, int totpoints, short thick /* ----- Existing Strokes Drawing (3D and Point) ------ */ /* draw a given stroke - just a single dot (only one point) */ -static void gp_draw_stroke_point (bGPDspoint *points, short thickness, short sflag, int winx, int winy) +static void gp_draw_stroke_point (bGPDspoint *points, short thickness, short sflag, int offsx, int offsy, int winx, int winy) { /* draw point */ if (sflag & GP_STROKE_3DSPACE) { @@ -410,6 +410,10 @@ static void gp_draw_stroke_point (bGPDspoint *points, short thickness, short sfl co[0]= points->x; co[1]= points->y; } + else if (sflag & GP_STROKE_2DIMAGE) { + co[0]= points->x; + co[1]= points->y; + } else { co[0]= (points->x / 1000 * winx); co[1]= (points->y / 1000 * winy); @@ -473,10 +477,11 @@ static void gp_draw_stroke_3d (bGPDspoint *points, int totpoints, short thicknes /* ----- Fancy 2D-Stroke Drawing ------ */ /* draw a given stroke in 2d */ -static void gp_draw_stroke (bGPDspoint *points, int totpoints, short thickness, short dflag, short sflag, short debug, int winx, int winy) +static void gp_draw_stroke (bGPDspoint *points, int totpoints, short thickness, short dflag, short sflag, + short debug, int offsx, int offsy, int winx, int winy) { /* if thickness is less than GP_DRAWTHICKNESS_SPECIAL, 'smooth' opengl lines look better */ - if (thickness < GP_DRAWTHICKNESS_SPECIAL) { + if ((thickness < GP_DRAWTHICKNESS_SPECIAL) || (dflag & GP_DRAWDATA_ONLYI2D)) { bGPDspoint *pt; int i; @@ -485,6 +490,12 @@ static void gp_draw_stroke (bGPDspoint *points, int totpoints, short thickness, if (sflag & GP_STROKE_2DSPACE) { glVertex2f(pt->x, pt->y); } + else if (sflag & GP_STROKE_2DIMAGE) { + const float x= pt->x; + const float y= pt->y; + + glVertex2f(x, y); + } else { const float x= (pt->x / 1000 * winx); const float y= (pt->y / 1000 * winy); @@ -514,6 +525,10 @@ static void gp_draw_stroke (bGPDspoint *points, int totpoints, short thickness, s0[0]= pt1->x; s0[1]= pt1->y; s1[0]= pt2->x; s1[1]= pt2->y; } + else if (sflag & GP_STROKE_2DIMAGE) { + s0[0]= pt1->x; s0[1]= pt1->y; + s1[0]= pt2->x; s1[1]= pt2->y; + } else { s0[0]= (pt1->x / 1000 * winx); s0[1]= (pt1->y / 1000 * winy); @@ -656,6 +671,13 @@ static void gp_draw_stroke (bGPDspoint *points, int totpoints, short thickness, if (sflag & GP_STROKE_2DSPACE) { glVertex2f(pt->x, pt->y); } + else if (sflag & GP_STROKE_2DIMAGE) { + // fixme + const float x= pt->x; + const float y= pt->y; + + glVertex2f(x, y); + } else { const float x= (pt->x / 1000 * winx); const float y= (pt->y / 1000 * winy); @@ -670,8 +692,8 @@ static void gp_draw_stroke (bGPDspoint *points, int totpoints, short thickness, /* ----- General Drawing ------ */ /* draw a set of strokes */ -static void gp_draw_strokes (bGPDframe *gpf, int winx, int winy, int dflag, short debug, - short lthick, float color[4]) +static void gp_draw_strokes (bGPDframe *gpf, int offsx, int offsy, int winx, int winy, int dflag, + short debug, short lthick, float color[4]) { bGPDstroke *gps; @@ -697,16 +719,16 @@ static void gp_draw_strokes (bGPDframe *gpf, int winx, int winy, int dflag, shor /* check which stroke-drawer to use */ if (gps->totpoints == 1) - gp_draw_stroke_point(gps->points, lthick, gps->flag, winx, winy); + gp_draw_stroke_point(gps->points, lthick, gps->flag, offsx, offsy, winx, winy); else if (dflag & GP_DRAWDATA_ONLY3D) gp_draw_stroke_3d(gps->points, gps->totpoints, lthick, dflag, gps->flag, debug, winx, winy); else if (gps->totpoints > 1) - gp_draw_stroke(gps->points, gps->totpoints, lthick, dflag, gps->flag, debug, winx, winy); + gp_draw_stroke(gps->points, gps->totpoints, lthick, dflag, gps->flag, debug, offsx, offsy, winx, winy); } } /* draw grease-pencil datablock */ -static void gp_draw_data (bGPdata *gpd, int winx, int winy, int dflag) +static void gp_draw_data (bGPdata *gpd, int offsx, int offsy, int winx, int winy, int dflag) { bGPDlayer *gpl, *actlay=NULL; @@ -758,7 +780,7 @@ static void gp_draw_data (bGPdata *gpd, int winx, int winy, int dflag) if ((gpf->framenum - gf->framenum) <= gpl->gstep) { /* alpha decreases with distance from curframe index */ tcolor[3] = color[3] - (i/gpl->gstep); - gp_draw_strokes(gf, winx, winy, dflag, debug, lthick, tcolor); + gp_draw_strokes(gf, offsx, offsy, winx, winy, dflag, debug, lthick, tcolor); } else break; @@ -770,7 +792,7 @@ static void gp_draw_data (bGPdata *gpd, int winx, int winy, int dflag) if ((gf->framenum - gpf->framenum) <= gpl->gstep) { /* alpha decreases with distance from curframe index */ tcolor[3] = color[3] - (i/gpl->gstep); - gp_draw_strokes(gf, winx, winy, dflag, debug, lthick, tcolor); + gp_draw_strokes(gf, offsx, offsy, winx, winy, dflag, debug, lthick, tcolor); } else break; @@ -783,12 +805,12 @@ static void gp_draw_data (bGPdata *gpd, int winx, int winy, int dflag) /* draw the strokes for the ghost frames (at half of the alpha set by user) */ if (gpf->prev) { tcolor[3] = (color[3] / 7); - gp_draw_strokes(gpf->prev, winx, winy, dflag, debug, lthick, tcolor); + gp_draw_strokes(gpf->prev, offsx, offsy, winx, winy, dflag, debug, lthick, tcolor); } if (gpf->next) { tcolor[3] = (color[3] / 4); - gp_draw_strokes(gpf->next, winx, winy, dflag, debug, lthick, tcolor); + gp_draw_strokes(gpf->next, offsx, offsy, winx, winy, dflag, debug, lthick, tcolor); } /* restore alpha */ @@ -798,7 +820,7 @@ static void gp_draw_data (bGPdata *gpd, int winx, int winy, int dflag) /* draw the strokes already in active frame */ tcolor[3]= color[3]; - gp_draw_strokes(gpf, winx, winy, dflag, debug, lthick, tcolor); + gp_draw_strokes(gpf, offsx, offsy, winx, winy, dflag, debug, lthick, tcolor); /* Check if may need to draw the active stroke cache, only if this layer is the active layer * that is being edited. (Stroke buffer is currently stored in gp-data) @@ -866,6 +888,7 @@ static void gp_draw_data (bGPdata *gpd, int winx, int winy, int dflag) void draw_gpencil_2dimage (ScrArea *sa, ImBuf *ibuf) { bGPdata *gpd; + int offsx, offsy, sizex, sizey; int dflag = 0; /* check that we have grease-pencil stuff to draw */ @@ -873,9 +896,34 @@ void draw_gpencil_2dimage (ScrArea *sa, ImBuf *ibuf) gpd= gpencil_data_getactive(sa); if (gpd == NULL) return; + /* calculate rect */ + switch (sa->spacetype) { + case SPACE_IMAGE: /* image */ + { + SpaceImage *sima= (SpaceImage *)sa->spacedata.first; + + // fixme... are these settings still needed? + offsx= 0; + offsy= 0; + sizex= sa->winx; + sizey= sa->winy; + + myortho2(sima->v2d.cur.xmin, sima->v2d.cur.xmax, sima->v2d.cur.ymin, sima->v2d.cur.ymax); + } + break; + + default: /* for spacetype not yet handled */ + offsx= 0; + offsy= 0; + sizex= sa->winx; + sizey= sa->winy; + break; + } + + /* draw it! */ dflag = (GP_DRAWDATA_ONLYI2D|GP_DRAWDATA_NOSTATUS); - gp_draw_data(gpd, sa->winx, sa->winy, dflag); + gp_draw_data(gpd, offsx, offsy, sizex, sizey, dflag); } /* draw grease-pencil sketches to specified 2d-view assuming that matrices are already set correctly @@ -893,7 +941,7 @@ void draw_gpencil_2dview (ScrArea *sa, short onlyv2d) /* draw it! */ if (onlyv2d) dflag |= (GP_DRAWDATA_ONLYV2D|GP_DRAWDATA_NOSTATUS); - gp_draw_data(gpd, sa->winx, sa->winy, dflag); + gp_draw_data(gpd, 0, 0, sa->winx, sa->winy, dflag); } /* draw grease-pencil sketches to specified 3d-view assuming that matrices are already set correctly @@ -910,7 +958,7 @@ void draw_gpencil_3dview (ScrArea *sa, short only3d) /* draw it! */ if (only3d) dflag |= (GP_DRAWDATA_ONLY3D|GP_DRAWDATA_NOSTATUS); - gp_draw_data(gpd, sa->winx, sa->winy, dflag); + gp_draw_data(gpd, 0, 0, sa->winx, sa->winy, dflag); } /* draw grease-pencil sketches to opengl render window assuming that matrices are already set correctly */ @@ -924,7 +972,7 @@ void draw_gpencil_oglrender (View3D *v3d, int winx, int winy) if (gpd == NULL) return; /* pass 1: draw 3d-strokes ------------ > */ - gp_draw_data(gpd, winx, winy, (GP_DRAWDATA_NOSTATUS|GP_DRAWDATA_ONLY3D)); + gp_draw_data(gpd, 0, 0, winx, winy, (GP_DRAWDATA_NOSTATUS|GP_DRAWDATA_ONLY3D)); /* pass 2: draw 2d-strokes ------------ > */ /* adjust view matrices */ @@ -932,7 +980,7 @@ void draw_gpencil_oglrender (View3D *v3d, int winx, int winy) glLoadIdentity(); /* draw it! */ - gp_draw_data(gpd, winx, winy, GP_DRAWDATA_NOSTATUS); + gp_draw_data(gpd, 0, 0, winx, winy, GP_DRAWDATA_NOSTATUS); } /* ************************************************** */ diff --git a/source/blender/src/drawimage.c b/source/blender/src/drawimage.c index 14849cdd450..97765690ceb 100644 --- a/source/blender/src/drawimage.c +++ b/source/blender/src/drawimage.c @@ -52,6 +52,7 @@ #include "DNA_camera_types.h" #include "DNA_color_types.h" #include "DNA_image_types.h" +#include "DNA_gpencil_types.h" #include "DNA_mesh_types.h" #include "DNA_meshdata_types.h" #include "DNA_node_types.h" @@ -79,6 +80,7 @@ #include "BDR_editface.h" #include "BDR_drawobject.h" #include "BDR_drawmesh.h" +#include "BDR_gpencil.h" #include "BDR_imagepaint.h" #include "BIF_cursors.h" @@ -86,6 +88,7 @@ #include "BIF_graphics.h" #include "BIF_mywindow.h" #include "BIF_drawimage.h" +#include "BIF_drawgpencil.h" #include "BIF_resources.h" #include "BIF_interface.h" #include "BIF_interface_icons.h" @@ -1778,6 +1781,45 @@ static void image_panel_preview(ScrArea *sa, short cntrl) // IMAGE_HANDLER_PREVI } +static void image_panel_gpencil(short cntrl) // IMAGE_HANDLER_GREASEPENCIL +{ + uiBlock *block; + SpaceImage *sima; + + sima= curarea->spacedata.first; + + block= uiNewBlock(&curarea->uiblocks, "image_panel_gpencil", UI_EMBOSS, UI_HELV, curarea->win); + uiPanelControl(UI_PNL_SOLID | UI_PNL_CLOSE | cntrl); + uiSetPanelHandler(IMAGE_HANDLER_GREASEPENCIL); // for close and esc + if (uiNewPanel(curarea, block, "Grease Pencil", "SpaceImage", 100, 30, 318, 204)==0) return; + + /* allocate memory for gpd if drawing enabled (this must be done first or else we crash) */ + if (sima->flag & SI_DISPGP) { + if (sima->gpd == NULL) + gpencil_data_setactive(curarea, gpencil_data_addnew()); + } + + if (sima->flag & SI_DISPGP) { + bGPdata *gpd= sima->gpd; + short newheight; + + /* this is a variable height panel, newpanel doesnt force new size on existing panels */ + /* so first we make it default height */ + uiNewPanelHeight(block, 204); + + /* draw button for showing gpencil settings and drawings */ + uiDefButBitI(block, TOG, SI_DISPGP, B_REDR, "Use Grease Pencil", 10, 225, 150, 20, &sima->flag, 0, 0, 0, 0, "Display freehand annotations overlay over this Image/UV Editor (draw using Shift-LMB)"); + + /* extend the panel if the contents won't fit */ + newheight= draw_gpencil_panel(block, gpd, curarea); + uiNewPanelHeight(block, newheight); + } + else { + uiDefButBitI(block, TOG, SI_DISPGP, B_REDR, "Use Grease Pencil", 10, 225, 150, 20, &sima->flag, 0, 0, 0, 0, "Display freehand annotations overlay over this Image/UV Editor"); + uiDefBut(block, LABEL, 1, " ", 160, 180, 150, 20, NULL, 0.0, 0.0, 0, 0, ""); + } +} + static void image_blockhandlers(ScrArea *sa) { SpaceImage *sima= sa->spacedata.first; @@ -1788,7 +1830,6 @@ static void image_blockhandlers(ScrArea *sa) for(a=0; ablockhandler[a]) { - case IMAGE_HANDLER_PROPERTIES: image_panel_properties(sima->blockhandler[a+1]); break; @@ -1806,7 +1847,10 @@ static void image_blockhandlers(ScrArea *sa) break; case IMAGE_HANDLER_PREVIEW: image_panel_preview(sa, sima->blockhandler[a+1]); - break; + break; + case IMAGE_HANDLER_GREASEPENCIL: + image_panel_gpencil(sima->blockhandler[a+1]); + break; } /* clear action value for event */ sima->blockhandler[a+1]= 0; @@ -2339,9 +2383,17 @@ void drawimagespace(ScrArea *sa, void *spacedata) } draw_image_transform(ibuf, xuser_asp, yuser_asp); + + /* draw grease-pencil ('image' strokes) */ + if (sima->flag & SI_DISPGP) + draw_gpencil_2dimage(sa, ibuf); mywinset(sa->win); /* restore scissor after gla call... */ myortho2(-0.375, sa->winx-0.375, -0.375, sa->winy-0.375); + + /* draw grease-pencil (screen strokes) */ + if (sima->flag & SI_DISPGP) + draw_gpencil_2dview(sa, 0); if(G.rendering==0) { draw_image_view_tool(); diff --git a/source/blender/src/gpencil.c b/source/blender/src/gpencil.c index 6bbaecc2956..9a2988e6e6d 100644 --- a/source/blender/src/gpencil.c +++ b/source/blender/src/gpencil.c @@ -62,6 +62,7 @@ #include "BKE_blender.h" #include "BKE_armature.h" #include "BKE_curve.h" +#include "BKE_image.h" #include "BIF_gl.h" #include "BIF_glutil.h" @@ -1137,7 +1138,7 @@ static void gp_session_initpaint (tGPsdata *p) /* set the current area */ p->sa= curarea; p->v2d= &sima->v2d; - //p->ibuf= BKE_image_get_ibuf(sima->image, &sima->iuser); + p->ibuf= BKE_image_get_ibuf(sima->image, &sima->iuser); } break; /* unsupported views */ @@ -1249,20 +1250,13 @@ static void gp_stroke_convertcoords (tGPsdata *p, short mval[], float out[]) else if ( (gpd->sbuffer_sflag & GP_STROKE_2DIMAGE) && (p->v2d) && (p->ibuf) ) { - ImBuf *ibuf= p->ibuf; float x, y; - /* convert to 'canvas' coordinates, then adjust for view */ + /* convert to 'canvas' coordinates (not need to adjust to canvas) */ areamouseco_to_ipoco(p->v2d, mval, &x, &y); - if (ibuf) { - out[0]= x*ibuf->x; - out[1]= y*ibuf->y; - } - else { - out[0]= x; - out[1]= y; - } + out[0]= x; + out[1]= y; } /* 2d - relative to screen (viewport area) */ @@ -1637,7 +1631,9 @@ static void gp_paint_initstroke (tGPsdata *p, short paintmode) break; case SPACE_IMAGE: { - p->gpd->sbuffer_sflag |= GP_STROKE_2DIMAGE; + /* check if any ibuf available */ + if (p->ibuf) + p->gpd->sbuffer_sflag |= GP_STROKE_2DIMAGE; } break; } diff --git a/source/blender/src/header_image.c b/source/blender/src/header_image.c index 1b90c406f0e..4ca287d81c5 100644 --- a/source/blender/src/header_image.c +++ b/source/blender/src/header_image.c @@ -477,6 +477,9 @@ static void do_image_viewmenu(void *arg, int event) G.sima->flag ^= SI_LOCAL_UV; allqueue(REDRAWIMAGE, 0); break; + case 15: /* Grease Pencil... */ + add_blockhandler(curarea, IMAGE_HANDLER_GREASEPENCIL, UI_PNL_UNSTOW); + break; } allqueue(REDRAWVIEW3D, 0); } @@ -499,6 +502,8 @@ static uiBlock *image_viewmenu(void *arg_unused) uiDefIconTextBut(block, BUTM, 1, ICON_MENU_PANEL, "Curves Tool...", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 11, ""); uiDefIconTextBut(block, BUTM, 1, ICON_MENU_PANEL, "Composite Preview...|Shift P", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 12, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_MENU_PANEL, "Grease Pencil...", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 15, ""); + if(G.sima->flag & SI_LOCAL_UV) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "UV Local View|NumPad /", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 14, ""); else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "UV Local View|NumPad /", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 14, ""); if(!(G.sima->flag & SI_LOCAL_UV)) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "UV Global View|NumPad /", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 14, ""); diff --git a/source/blender/src/header_node.c b/source/blender/src/header_node.c index 4c7b4aa80bc..b4f7b2ad8b0 100644 --- a/source/blender/src/header_node.c +++ b/source/blender/src/header_node.c @@ -112,7 +112,7 @@ static void do_node_viewmenu(void *arg, int event) break; case 4: /* Grease Pencil */ add_blockhandler(curarea, NODES_HANDLER_GREASEPENCIL, UI_PNL_UNSTOW); - break; + break; } allqueue(REDRAWNODE, 0); } diff --git a/source/blender/src/space.c b/source/blender/src/space.c index 88a0bf0f9b1..64b3014d8d2 100644 --- a/source/blender/src/space.c +++ b/source/blender/src/space.c @@ -5336,7 +5336,15 @@ static void winqreadimagespace(ScrArea *sa, void *spacedata, BWinEvent *evt) if(val==0) return; if(uiDoBlocks(&sa->uiblocks, event, 1)!=UI_NOTHING ) event= 0; - + + /* grease-pencil drawing before draw-tool */ + if (event == LEFTMOUSE) { + if (gpencil_do_paint(sa, L_MOUSE)) return; + } + else if (event == RIGHTMOUSE) { + if (gpencil_do_paint(sa, R_MOUSE)) return; + } + if (sima->image && (sima->flag & SI_DRAWTOOL)) { switch(event) { case CKEY: @@ -5359,7 +5367,7 @@ static void winqreadimagespace(ScrArea *sa, void *spacedata, BWinEvent *evt) event = LEFTMOUSE; } } - + /* Draw tool is inactive, editmode is enabled and the image is not a render or composite */ if (EM_texFaceCheck() && (G.sima->image==0 || (G.sima->image->type != IMA_TYPE_R_RESULT && G.sima->image->type != IMA_TYPE_COMPOSITE))) { switch(event) { @@ -6340,6 +6348,8 @@ void freespacelist(ScrArea *sa) SpaceImage *sima= (SpaceImage *)sl; if(sima->cumap) curvemapping_free(sima->cumap); + if(sima->gpd) + free_gpencil_data(sima->gpd); } else if(sl->spacetype==SPACE_NODE) { SpaceNode *snode= (SpaceNode *)sl; @@ -6407,6 +6417,10 @@ void duplicatespacelist(ScrArea *newarea, ListBase *lb1, ListBase *lb2) SpaceSeq *sseq= (SpaceSeq *)sl; sseq->gpd= gpencil_data_duplicate(sseq->gpd); } + else if(sl->spacetype==SPACE_IMAGE) { + SpaceImage *sima= (SpaceImage *)sl; + sima->gpd= gpencil_data_duplicate(sima->gpd); + } sl= sl->next; } From b32036f5d6b08233e30dc62ea0f5e84a0e75cc7c Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Fri, 5 Sep 2008 11:55:39 +0000 Subject: [PATCH 06/66] bvh nodes got parent node reference again --- source/blender/blenlib/intern/BLI_kdopbvh.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/source/blender/blenlib/intern/BLI_kdopbvh.c b/source/blender/blenlib/intern/BLI_kdopbvh.c index 989e516d161..341a27c4306 100644 --- a/source/blender/blenlib/intern/BLI_kdopbvh.c +++ b/source/blender/blenlib/intern/BLI_kdopbvh.c @@ -51,6 +51,7 @@ typedef struct BVHNode { struct BVHNode **children; + struct BVHNode *parent; // some user defined traversed need that float *bv; // Bounding volume of all nodes, max 13 axis int index; // face, edge, vertex index char totnode; // how many nodes are used, used for speedup @@ -700,6 +701,10 @@ static void non_recursive_bvh_div_nodes(BVHTree *tree, BVHNode *branches_array, BVHBuildHelper data; int depth; + + // set parent from root node to NULL + BVHNode *tmp = branches_array+0; + tmp->parent = NULL; //Most of bvhtree code relies on 1-leaf trees having at least one branch //We handle that special case here @@ -709,7 +714,8 @@ static void non_recursive_bvh_div_nodes(BVHTree *tree, BVHNode *branches_array, refit_kdop_hull(tree, root, 0, num_leafs); root->main_axis = get_largest_axis(root->bv) / 2; root->totnode = 1; - root->children[0] = leafs_array[0]; + root->children[0] = leafs_array[0]; + root->children[0]->parent = root; return; } @@ -772,9 +778,15 @@ static void non_recursive_bvh_div_nodes(BVHTree *tree, BVHNode *branches_array, int child_leafs_end = implicit_leafs_index(&data, depth+1, child_level_index+1); if(child_leafs_end - child_leafs_begin > 1) + { parent->children[k] = branches_array + child_index; + parent->children[k]->parent = parent; + } else if(child_leafs_end - child_leafs_begin == 1) + { parent->children[k] = leafs_array[ child_leafs_begin ]; + parent->children[k]->parent = parent; + } else break; From d88b4acc9bec144cb4a3155d68cc73274e035f55 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Fri, 5 Sep 2008 12:06:47 +0000 Subject: [PATCH 07/66] Fixing non-working check for incompatible trees --- source/blender/blenlib/intern/BLI_kdopbvh.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/blender/blenlib/intern/BLI_kdopbvh.c b/source/blender/blenlib/intern/BLI_kdopbvh.c index 341a27c4306..9f82a816147 100644 --- a/source/blender/blenlib/intern/BLI_kdopbvh.c +++ b/source/blender/blenlib/intern/BLI_kdopbvh.c @@ -482,7 +482,7 @@ static void bvhtree_print_tree(BVHTree *tree, BVHNode *node, int depth) { int i; for(i=0; iindex, node - tree->nodearray); + printf(" - %d (%ld): ", node->index, node - tree->nodearray); for(i=2*tree->start_axis; i<2*tree->stop_axis; i++) printf("%.3f ", node->bv[i]); printf("\n"); @@ -497,10 +497,10 @@ static void bvhtree_info(BVHTree *tree) printf("BVHTree info\n"); printf("tree_type = %d, axis = %d, epsilon = %f\n", tree->tree_type, tree->axis, tree->epsilon); printf("nodes = %d, branches = %d, leafs = %d\n", tree->totbranch + tree->totleaf, tree->totbranch, tree->totleaf); - printf("Memory per node = %dbytes\n", sizeof(BVHNode) + sizeof(BVHNode*)*tree->tree_type + sizeof(float)*tree->axis); + printf("Memory per node = %ldbytes\n", sizeof(BVHNode) + sizeof(BVHNode*)*tree->tree_type + sizeof(float)*tree->axis); printf("BV memory = %dbytes\n", MEM_allocN_len(tree->nodebv)); - printf("Total memory = %dbytes\n", sizeof(BVHTree) + printf("Total memory = %ldbytes\n", sizeof(BVHTree) + MEM_allocN_len(tree->nodes) + MEM_allocN_len(tree->nodearray) + MEM_allocN_len(tree->nodechild) @@ -1108,7 +1108,7 @@ BVHTreeOverlap *BLI_bvhtree_overlap(BVHTree *tree1, BVHTree *tree2, int *result) BVHOverlapData **data; // check for compatibility of both trees (can't compare 14-DOP with 18-DOP) - if((tree1->axis != tree2->axis) && ((tree1->axis == 14) || tree2->axis == 14)) + if((tree1->axis != tree2->axis) && (tree1->axis == 14 || tree2->axis == 14) && (tree1->axis == 18 || tree2->axis == 18)) return 0; // fast check root nodes for collision before doing big splitting + traversal From 5b6e9eec7b907dcd06b81a199c132cac30ed1a6e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 5 Sep 2008 13:08:50 +0000 Subject: [PATCH 08/66] Two more apricot branch features: * Auto Depth: use the depth buffer for improving pan/zoom/rotate in large scenes. * The viewport drawtype for objects in groups now aren't just taken from the original object, but the minimum together with the parent drawtype is used. --- source/blender/makesdna/DNA_userdef_types.h | 1 + source/blender/src/drawview.c | 3 +- source/blender/src/space.c | 5 + source/blender/src/view.c | 135 ++++++++++++++++++-- 4 files changed, 135 insertions(+), 9 deletions(-) diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 11b35b4d6d4..981591dc810 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -268,6 +268,7 @@ extern UserDef U; /* from usiblender.c !!!! */ #define USER_GLOBALUNDO (1 << 13) #define USER_ORBIT_SELECTION (1 << 14) // old flag for #define USER_KEYINSERTAVAI (1 << 15) +#define USER_ORBIT_ZBUF (1 << 15) #define USER_HIDE_DOT (1 << 16) #define USER_SHOW_ROTVIEWICON (1 << 17) #define USER_SHOW_VIEWPORTNAME (1 << 18) diff --git a/source/blender/src/drawview.c b/source/blender/src/drawview.c index 020dfd407ad..4658455fe1e 100644 --- a/source/blender/src/drawview.c +++ b/source/blender/src/drawview.c @@ -2689,7 +2689,8 @@ static void draw_dupli_objects_color(View3D *v3d, Base *base, int color) tbase.object= dob->ob; /* extra service: draw the duplicator in drawtype of parent */ - dt= tbase.object->dt; tbase.object->dt= base->object->dt; + /* MIN2 for the drawtype to allow bounding box objects in groups for lods */ + dt= tbase.object->dt; tbase.object->dt= MIN2(tbase.object->dt, base->object->dt); dtx= tbase.object->dtx; tbase.object->dtx= base->object->dtx; /* negative scale flag has to propagate */ diff --git a/source/blender/src/space.c b/source/blender/src/space.c index 64b3014d8d2..fe06f66bec7 100644 --- a/source/blender/src/space.c +++ b/source/blender/src/space.c @@ -3738,6 +3738,11 @@ void drawinfospace(ScrArea *sa, void *spacedata) "Snap objects and sub-objects to grid units when scaling"); uiBlockEndAlign(block); + uiDefButBitI(block, TOG, USER_ORBIT_ZBUF, B_DRAWINFO, "Auto Depth", + (xpos+edgsp+mpref+spref+(2*midsp)),y2,spref,buth, + &(U.uiflag), 0, 0, 0, 0, + "Use the depth under the mouse to improve view pan/rotate/zoom functionality"); + uiDefButBitI(block, TOG, USER_LOCKAROUND, B_DRAWINFO, "Global Pivot", (xpos+edgsp+mpref+spref+(2*midsp)),y1,spref,buth, &(U.uiflag), 0, 0, 0, 0, diff --git a/source/blender/src/view.c b/source/blender/src/view.c index 12450bee9de..4c56e5ce64e 100644 --- a/source/blender/src/view.c +++ b/source/blender/src/view.c @@ -793,6 +793,82 @@ void viewmoveNDOFfly(int mode) BIF_view3d_previewrender_signal(curarea, PR_DBASE|PR_DISPRECT); } +int view_autodist( float mouse_worldloc[3] ) //, float *autodist ) +{ + View3D *v3d = G.vd; + + /* Zooms in on a border drawn by the user */ + short mval[2]; + rcti rect; + + /* ZBuffer depth vars */ + bglMats mats; + float depth, depth_close= MAXFLOAT; + int had_depth = 0; + double cent[2], p[3]; + int xs, ys; + + getmouseco_areawin(mval); + + persp(PERSP_VIEW); + + rect.xmax = mval[0] + 4; + rect.ymax = mval[1] + 4; + + rect.xmin = mval[0] - 4; + rect.ymin = mval[1] - 4; + + /* Get Z Depths, needed for perspective, nice for ortho */ + bgl_get_mats(&mats); + draw_depth(curarea, (void *)v3d, NULL); + + /* force updating */ + if (v3d->depths) { + had_depth = 1; + v3d->depths->damaged = 1; + } + + view3d_update_depths(v3d); + + /* Constrain rect to depth bounds */ + if (rect.xmin < 0) rect.xmin = 0; + if (rect.ymin < 0) rect.ymin = 0; + if (rect.xmax >= v3d->depths->w) rect.xmax = v3d->depths->w-1; + if (rect.ymax >= v3d->depths->h) rect.ymax = v3d->depths->h-1; + + /* Find the closest Z pixel */ + for (xs=rect.xmin; xs < rect.xmax; xs++) { + for (ys=rect.ymin; ys < rect.ymax; ys++) { + depth= v3d->depths->depths[ys*v3d->depths->w+xs]; + if(depth < v3d->depths->depth_range[1] && depth > v3d->depths->depth_range[0]) { + if (depth_close > depth) { + depth_close = depth; + } + } + } + } + + if (depth_close==MAXFLOAT) + return 0; + + if (had_depth==0) { + MEM_freeN(v3d->depths->depths); + v3d->depths->depths = NULL; + } + v3d->depths->damaged = 1; + + cent[0] = (double)mval[0]; + cent[1] = (double)mval[1]; + + if (!gluUnProject(cent[0], cent[1], depth_close, mats.modelview, mats.projection, mats.viewport, &p[0], &p[1], &p[2])) + return 0; + + mouse_worldloc[0] = (float)p[0]; + mouse_worldloc[1] = (float)p[1]; + mouse_worldloc[2] = (float)p[2]; + return 1; +} + void viewmove(int mode) { static float lastofs[3] = {0,0,0}; @@ -825,15 +901,11 @@ void viewmove(int mode) Mat3MulVecfl(mat, upvec); VecAddf(G.vd->ofs, G.vd->ofs, upvec); } - - /* sometimes this routine is called from headerbuttons */ areawinset(curarea->win); - initgrabz(-G.vd->ofs[0], -G.vd->ofs[1], -G.vd->ofs[2]); - QUATCOPY(oldquat, G.vd->viewquat); getmouseco_areawin(mval_area); /* for zoom to mouse loc */ @@ -867,9 +939,44 @@ void viewmove(int mode) VECCOPY(obofs, lastofs); VecMulf(obofs, -1.0f); } + else if (U.uiflag & USER_ORBIT_ZBUF) { + if ((use_sel=view_autodist(obofs))) { + if (G.vd->persp==V3D_PERSP) { + float my_origin[3]; /* original G.vd->ofs */ + float my_pivot[3]; /* view */ + + VECCOPY(my_origin, G.vd->ofs); + VecMulf(my_origin, -1.0f); /* ofs is flipped */ + + /* Set the dist value to be the distance from this 3d point */ + /* this means youll always be able to zoom into it and panning wont go bad when dist was zero */ + + /* remove dist value */ + upvec[0] = upvec[1] = 0; + upvec[2] = G.vd->dist; + Mat3CpyMat4(mat, G.vd->viewinv); + Mat3MulVecfl(mat, upvec); + VecSubf(my_pivot, G.vd->ofs, upvec); + VecMulf(my_pivot, -1.0f); /* ofs is flipped */ + + /* find a new ofs value that is allong the view axis (rather then the mouse location) */ + lambda_cp_line_ex(obofs, my_pivot, my_origin, dvec); + dist0 = G.vd->dist = VecLenf(my_pivot, dvec); + + VecMulf(dvec, -1.0f); + VECCOPY(G.vd->ofs, dvec); + } + VecMulf(obofs, -1.0f); + VECCOPY(ofs, G.vd->ofs); + } else { + ofs[0] = ofs[1] = ofs[2] = 0.0f; + } + } else ofs[0] = ofs[1] = ofs[2] = 0.0f; - + + initgrabz(-G.vd->ofs[0], -G.vd->ofs[1], -G.vd->ofs[2]); + reverse= 1.0f; if (G.vd->persmat[2][1] < 0.0f) reverse= -1.0f; @@ -1046,9 +1153,20 @@ void viewmove(int mode) zfac*G.vd->dist < 10.0*G.vd->far) view_zoom_mouseloc(zfac, mval_area); - /* these limits are in toets.c too */ - if(G.vd->dist<0.001*G.vd->grid) G.vd->dist= 0.001*G.vd->grid; - if(G.vd->dist>10.0*G.vd->far) G.vd->dist=10.0*G.vd->far; + + if ((U.uiflag & USER_ORBIT_ZBUF) && (U.viewzoom==USER_ZOOM_CONT) && (G.vd->persp==V3D_PERSP)) { + /* Secret apricot feature, translate the view when in continues mode */ + upvec[0] = upvec[1] = 0; + upvec[2] = (dist0 - G.vd->dist) * G.vd->grid; + G.vd->dist = dist0; + Mat3CpyMat4(mat, G.vd->viewinv); + Mat3MulVecfl(mat, upvec); + VecAddf(G.vd->ofs, G.vd->ofs, upvec); + } else { + /* these limits are in toets.c too */ + if(G.vd->dist<0.001*G.vd->grid) G.vd->dist= 0.001*G.vd->grid; + if(G.vd->dist>10.0*G.vd->far) G.vd->dist=10.0*G.vd->far; + } if(G.vd->persp==V3D_ORTHO || G.vd->persp==V3D_CAMOB) preview3d_event= 0; } @@ -2353,3 +2471,4 @@ void smooth_view_to_camera(View3D *v3d) v3d->persp= V3D_CAMOB; } } + From 330aa94ecc0a674c7c2e8c34909c7b8ee9753c31 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 5 Sep 2008 14:33:36 +0000 Subject: [PATCH 09/66] * GLSL lamps now respect 3d viewport layers. * Fix undo crash related to sound. Sounds still stop working in the game engine after undo, but seems to be a different issue. --- source/blender/gpu/GPU_material.h | 4 +- source/blender/gpu/intern/gpu_draw.c | 2 +- source/blender/gpu/intern/gpu_material.c | 78 ++++++++++++------- source/blender/src/drawview.c | 6 +- source/blender/src/editsound.c | 15 ++++ source/gameengine/Ketsji/BL_BlenderShader.cpp | 4 +- source/gameengine/Ketsji/KX_Light.cpp | 2 +- 7 files changed, 74 insertions(+), 37 deletions(-) diff --git a/source/blender/gpu/GPU_material.h b/source/blender/gpu/GPU_material.h index 560421f7edf..ccc687858f4 100644 --- a/source/blender/gpu/GPU_material.h +++ b/source/blender/gpu/GPU_material.h @@ -124,7 +124,7 @@ void GPU_material_free(struct Material *ma); void GPU_materials_free(); -void GPU_material_bind(GPUMaterial *material, int lay, double time); +void GPU_material_bind(GPUMaterial *material, int oblay, int viewlay, double time); void GPU_material_bind_uniforms(GPUMaterial *material, float obmat[][4], float viewmat[][4], float viewinv[][4], float obcol[4]); void GPU_material_unbind(GPUMaterial *material); int GPU_material_bound(GPUMaterial *material); @@ -158,7 +158,7 @@ int GPU_lamp_has_shadow_buffer(GPULamp *lamp); void GPU_lamp_shadow_buffer_bind(GPULamp *lamp, float viewmat[][4], int *winsize, float winmat[][4]); void GPU_lamp_shadow_buffer_unbind(GPULamp *lamp); -void GPU_lamp_update(GPULamp *lamp, float obmat[][4]); +void GPU_lamp_update(GPULamp *lamp, int lay, float obmat[][4]); int GPU_lamp_shadow_layer(GPULamp *lamp); #ifdef __cplusplus diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c index 3ff8e7fa559..8922846f365 100644 --- a/source/blender/gpu/intern/gpu_draw.c +++ b/source/blender/gpu/intern/gpu_draw.c @@ -900,7 +900,7 @@ int GPU_enable_material(int nr, void *attribs) gpumat = GPU_material_from_blender(GMS.gscene, mat); GPU_material_vertex_attributes(gpumat, gattribs); - GPU_material_bind(gpumat, GMS.gob->lay, 1.0); + GPU_material_bind(gpumat, GMS.gob->lay, G.vd->lay, 1.0); GPU_material_bind_uniforms(gpumat, GMS.gob->obmat, G.vd->viewmat, G.vd->viewinv, GMS.gob->col); GMS.gboundmat= mat; diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index 47400f61c25..4e54ca77ec4 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -56,7 +56,6 @@ #include "BLI_arithb.h" #include "BLI_blenlib.h" -#include "BLI_linklist.h" #include "GPU_extensions.h" #include "GPU_material.h" @@ -95,7 +94,7 @@ struct GPUMaterial { int obmatloc, invobmatloc; int obcolloc; - LinkNode *lamps; + ListBase lamps; }; struct GPULamp { @@ -132,7 +131,7 @@ struct GPULamp { GPUFrameBuffer *fb; GPUTexture *tex; - LinkNode *materials; + ListBase materials; }; /* Functions */ @@ -221,6 +220,7 @@ static int GPU_material_construct_end(GPUMaterial *material) void GPU_material_free(Material *ma) { LinkData *link; + LinkData *nlink, *mlink, *next; for(link=ma->gpumaterial.first; link; link=link->next) { GPUMaterial *material = link->data; @@ -228,7 +228,17 @@ void GPU_material_free(Material *ma) if(material->pass) GPU_pass_free(material->pass); - BLI_linklist_free(material->lamps, NULL); + for(nlink=material->lamps.first; nlink; nlink=nlink->next) { + GPULamp *lamp = nlink->data; + + for(mlink=lamp->materials.first; mlink; mlink=next) { + next = mlink->next; + if(mlink->data == ma) + BLI_freelinkN(&lamp->materials, mlink); + } + } + + BLI_freelistN(&material->lamps); MEM_freeN(material); } @@ -236,17 +246,17 @@ void GPU_material_free(Material *ma) BLI_freelistN(&ma->gpumaterial); } -void GPU_material_bind(GPUMaterial *material, int lay, double time) +void GPU_material_bind(GPUMaterial *material, int oblay, int viewlay, double time) { if(material->pass) { - LinkNode *nlink; + LinkData *nlink; GPULamp *lamp; /* handle layer lamps */ - for(nlink=material->lamps; nlink; nlink=nlink->next) { - lamp= nlink->link; + for(nlink=material->lamps.first; nlink; nlink=nlink->next) { + lamp= nlink->data; - if(!(lamp->mode & LA_LAYER) || (lamp->lay & lay)) { + if((lamp->lay & viewlay) && (!(lamp->mode & LA_LAYER) || (lamp->lay & oblay))) { lamp->dynenergy = lamp->energy; VECCOPY(lamp->dyncol, lamp->col); } @@ -265,7 +275,7 @@ void GPU_material_bind_uniforms(GPUMaterial *material, float obmat[][4], float v { if(material->pass) { GPUShader *shader = GPU_pass_shader(material->pass); - LinkNode *nlink; + LinkData *nlink; GPULamp *lamp; float invmat[4][4], col[4]; @@ -290,8 +300,8 @@ void GPU_material_bind_uniforms(GPUMaterial *material, float obmat[][4], float v } /* update lamps */ - for(nlink=material->lamps; nlink; nlink=nlink->next) { - lamp= nlink->link; + for(nlink=material->lamps.first; nlink; nlink=nlink->next) { + lamp= nlink->data; if(material->dynproperty & DYN_LAMP_VEC) { VECCOPY(lamp->dynvec, lamp->vec); @@ -587,6 +597,13 @@ static void do_specular_ramp(GPUShadeInput *shi, GPUNodeLink *is, GPUNodeLink *t } } +void add_user_list(ListBase *list, void *data) +{ + LinkData *link = MEM_callocN(sizeof(LinkData), "GPULinkData"); + link->data = data; + BLI_addtail(list, link); +} + static void shade_one_light(GPUShadeInput *shi, GPUShadeResult *shr, GPULamp *lamp) { Material *ma= shi->mat; @@ -668,8 +685,8 @@ static void shade_one_light(GPUShadeInput *shi, GPUShadeResult *shr, GPULamp *la GPU_dynamic_uniform(&lamp->dynenergy), shi->rgb, shi->specrgb, shr->diff, shr->spec, &shr->diff, &shr->spec); - BLI_linklist_append(&mat->lamps, lamp); - BLI_linklist_append(&lamp->materials, ma); + add_user_list(&mat->lamps, lamp); + add_user_list(&lamp->materials, ma); return; } @@ -677,8 +694,8 @@ static void shade_one_light(GPUShadeInput *shi, GPUShadeResult *shr, GPULamp *la } } else if((G.fileflags & G_FILE_GLSL_NO_SHADOWS) && (lamp->mode & LA_ONLYSHADOW)) { - BLI_linklist_append(&mat->lamps, lamp); - BLI_linklist_append(&lamp->materials, ma); + add_user_list(&mat->lamps, lamp); + add_user_list(&lamp->materials, ma); return; } else @@ -730,8 +747,8 @@ static void shade_one_light(GPUShadeInput *shi, GPUShadeResult *shr, GPULamp *la } } - BLI_linklist_append(&mat->lamps, lamp); - BLI_linklist_append(&lamp->materials, ma); + add_user_list(&mat->lamps, lamp); + add_user_list(&lamp->materials, ma); } static void material_lights(GPUShadeInput *shi, GPUShadeResult *shr) @@ -1258,10 +1275,12 @@ void GPU_materials_free() /* Lamps and shadow buffers */ -void GPU_lamp_update(GPULamp *lamp, float obmat[][4]) +void GPU_lamp_update(GPULamp *lamp, int lay, float obmat[][4]) { float mat[4][4]; + lamp->lay = lay; + Mat4CpyMat4(mat, obmat); Mat4Ortho(mat); @@ -1279,7 +1298,6 @@ static void gpu_lamp_from_blender(Scene *scene, Object *ob, Object *par, Lamp *l lamp->ob = ob; lamp->par = par; lamp->la = la; - lamp->lay = ob->lay; /* add_render_lamp */ lamp->mode = la->mode; @@ -1292,7 +1310,7 @@ static void gpu_lamp_from_blender(Scene *scene, Object *ob, Object *par, Lamp *l lamp->col[1]= la->g*lamp->energy; lamp->col[2]= la->b*lamp->energy; - GPU_lamp_update(lamp, ob->obmat); + GPU_lamp_update(lamp, ob->lay, ob->obmat); lamp->spotsi= la->spotsize; if(lamp->mode & LA_HALO) @@ -1340,10 +1358,12 @@ GPULamp *GPU_lamp_from_blender(Scene *scene, Object *ob, Object *par) GPULamp *lamp; LinkData *link; - for(link=ob->gpulamp.first; link; link=link->next) - if(((GPULamp*)link->data)->par == par && - ((GPULamp*)link->data)->scene == scene) + for(link=ob->gpulamp.first; link; link=link->next) { + lamp = (GPULamp*)link->data; + + if(lamp->par == par && lamp->scene == scene) return link->data; + } lamp = MEM_callocN(sizeof(GPULamp), "GPULamp"); @@ -1383,18 +1403,20 @@ void GPU_lamp_free(Object *ob) { GPULamp *lamp; LinkData *link; - LinkNode *nlink; + LinkData *nlink; Material *ma; for(link=ob->gpulamp.first; link; link=link->next) { lamp = link->data; - for(nlink=lamp->materials; nlink; nlink=nlink->next) { - ma= nlink->link; + while(lamp->materials.first) { + nlink = lamp->materials.first; + ma = nlink->data; + BLI_freelinkN(&lamp->materials, nlink); + if(ma->gpumaterial.first) GPU_material_free(ma); } - BLI_linklist_free(lamp->materials, NULL); gpu_lamp_shadow_free(lamp); diff --git a/source/blender/src/drawview.c b/source/blender/src/drawview.c index 4658455fe1e..3a054323034 100644 --- a/source/blender/src/drawview.c +++ b/source/blender/src/drawview.c @@ -2941,9 +2941,9 @@ static void gpu_render_lamp_update(View3D *v3d, Object *ob, Object *par, float o lamp = GPU_lamp_from_blender(G.scene, ob, par); if(lamp) { - GPU_lamp_update(lamp, obmat); - - if(GPU_lamp_has_shadow_buffer(lamp)) { + GPU_lamp_update(lamp, ob->lay, obmat); + + if((ob->lay & v3d->lay) && GPU_lamp_has_shadow_buffer(lamp)) { shadow= MEM_callocN(sizeof(View3DShadow), "View3DShadow"); shadow->lamp = lamp; BLI_addtail(shadows, shadow); diff --git a/source/blender/src/editsound.c b/source/blender/src/editsound.c index 05eb094a7c2..2d70525f971 100644 --- a/source/blender/src/editsound.c +++ b/source/blender/src/editsound.c @@ -275,6 +275,12 @@ void sound_initialize_sounds(void) bSound *sound; if(ghSoundScene) { + for(sound=G.main->sound.first; sound; sound=sound->id.next) { + if(sound->snd_sound) { + SND_RemoveSound(ghSoundScene, sound->snd_sound); + sound->snd_sound = NULL; + } + } /* clear the soundscene */ SND_RemoveAllSounds(ghSoundScene); @@ -908,7 +914,16 @@ void sound_stop_all_sounds(void) void sound_end_all_sounds(void) { #if GAMEBLENDER == 1 + bSound *sound; + if(ghSoundScene) { + for(sound=G.main->sound.first; sound; sound=sound->id.next) { + if(sound->snd_sound) { + SND_RemoveSound(ghSoundScene, sound->snd_sound); + sound->snd_sound = NULL; + } + } + sound_stop_all_sounds(); SND_RemoveAllSounds(ghSoundScene); } diff --git a/source/gameengine/Ketsji/BL_BlenderShader.cpp b/source/gameengine/Ketsji/BL_BlenderShader.cpp index 13b8235687b..8ec463be6ff 100644 --- a/source/gameengine/Ketsji/BL_BlenderShader.cpp +++ b/source/gameengine/Ketsji/BL_BlenderShader.cpp @@ -22,7 +22,7 @@ BL_BlenderShader::BL_BlenderShader(KX_Scene *scene, struct Material *ma, int lig mMat(ma), mLightLayer(lightlayer) { - mBlenderScene = scene->GetBlenderScene(); //GetSceneForName(scene->GetName()); + mBlenderScene = scene->GetBlenderScene(); mBlendMode = GPU_BLEND_SOLID; if(mMat) @@ -52,7 +52,7 @@ void BL_BlenderShader::SetProg(bool enable, double time) { if(VerifyShader()) { if(enable) - GPU_material_bind(GPU_material_from_blender(mBlenderScene, mMat), mLightLayer, time); + GPU_material_bind(GPU_material_from_blender(mBlenderScene, mMat), mLightLayer, ~0, time); else GPU_material_unbind(GPU_material_from_blender(mBlenderScene, mMat)); } diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp index 6cfe5610863..979015532e3 100644 --- a/source/gameengine/Ketsji/KX_Light.cpp +++ b/source/gameengine/Ketsji/KX_Light.cpp @@ -105,7 +105,7 @@ void KX_LightObject::Update() for(int j=0; j<4; j++, dobmat++) obmat[i][j] = (float)*dobmat; - GPU_lamp_update(lamp, obmat); + GPU_lamp_update(lamp, m_lightobj.m_layer, obmat); } } From f1415bca7e9448076b2a3454b964b139b4a2e510 Mon Sep 17 00:00:00 2001 From: Kent Mein Date: Fri, 5 Sep 2008 14:42:03 +0000 Subject: [PATCH 10/66] Missing header. Kent --- source/blender/src/verse_image.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/blender/src/verse_image.c b/source/blender/src/verse_image.c index 4a78126e3f8..edb3a0a9f2c 100644 --- a/source/blender/src/verse_image.c +++ b/source/blender/src/verse_image.c @@ -43,6 +43,8 @@ #include "BIF_verse.h" #include "BIF_space.h" +#include "GPU_draw.h" + /* * unsubscribe from verse bitmap */ From 2e653838c09be5f813c4d979a035b0b44211bed4 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 5 Sep 2008 15:08:01 +0000 Subject: [PATCH 11/66] Bugfix for GLSL: no specular/diffuse + only shadow for lamps didn't work correct. --- source/blender/gpu/intern/gpu_material.c | 11 +- .../gpu/intern/gpu_shader_material.glsl | 11 +- .../gpu/intern/gpu_shader_material.glsl.c | 1930 +++++++++-------- 3 files changed, 985 insertions(+), 967 deletions(-) diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index 4e54ca77ec4..1bbf21488ea 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -682,8 +682,15 @@ static void shade_one_light(GPUShadeInput *shi, GPUShadeResult *shr, GPULamp *la if(lamp->mode & LA_ONLYSHADOW) { GPU_link(mat, "shade_only_shadow", i, shadfac, - GPU_dynamic_uniform(&lamp->dynenergy), shi->rgb, shi->specrgb, - shr->diff, shr->spec, &shr->diff, &shr->spec); + GPU_dynamic_uniform(&lamp->dynenergy), &shadfac); + + if(!(lamp->mode & LA_NO_DIFF)) + GPU_link(mat, "shade_only_shadow_diffuse", shadfac, shi->rgb, + shr->diff, &shr->diff); + + if(!(lamp->mode & LA_NO_SPEC)) + GPU_link(mat, "shade_only_shadow_specular", shadfac, shi->specrgb, + shr->spec, &shr->spec); add_user_list(&mat->lamps, lamp); add_user_list(&lamp->materials, ma); diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl b/source/blender/gpu/intern/gpu_shader_material.glsl index 309cb738454..66b7124504b 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl +++ b/source/blender/gpu/intern/gpu_shader_material.glsl @@ -1483,11 +1483,18 @@ void ramp_rgbtobw(vec3 color, out float outval) outval = color.r*0.3 + color.g*0.58 + color.b*0.12; } -void shade_only_shadow(float i, float shadfac, float energy, vec3 rgb, vec3 specrgb, vec4 diff, vec4 spec, out vec4 outdiff, out vec4 outspec) +void shade_only_shadow(float i, float shadfac, float energy, out float outshadfac) { - shadfac = i*energy*(1.0 - shadfac); + outshadfac = i*energy*(1.0 - shadfac); +} +void shade_only_shadow_diffuse(float shadfac, vec3 rgb, vec4 diff, out vec4 outdiff) +{ outdiff = diff - vec4(rgb*shadfac, 0.0); +} + +void shade_only_shadow_specular(float shadfac, vec3 specrgb, vec4 spec, out vec4 outspec) +{ outspec = spec - vec4(specrgb*shadfac, 0.0); } diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl.c b/source/blender/gpu/intern/gpu_shader_material.glsl.c index 38263efd864..8592ff5baf2 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl.c +++ b/source/blender/gpu/intern/gpu_shader_material.glsl.c @@ -1,989 +1,993 @@ /* DataToC output of file */ -int datatoc_gpu_shader_material_glsl_size= 32638; +int datatoc_gpu_shader_material_glsl_size= 32765; char datatoc_gpu_shader_material_glsl[]= { - 10,102,108,111, 97,116, 32,101,120,112, 95, 98,108,101,110,100,101,114, 40,102,108,111, 97,116, 32,102, 41, 10,123, 10, - 9,114,101,116,117,114,110, 32,112,111,119, 40, 50, 46, 55, 49, 56, 50, 56, 49, 56, 50, 56, 52, 54, 44, 32,102, 41, 59, 10,125, - 10, 10,118,111,105,100, 32,114,103, 98, 95,116,111, 95,104,115,118, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32, -118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, 99,109, 97,120, 44, 32, 99,109,105,110, - 44, 32,104, 44, 32,115, 44, 32,118, 44, 32, 99,100,101,108,116, 97, 59, 10, 9,118,101, 99, 51, 32, 99, 59, 10, 10, 9, 99,109, - 97,120, 32, 61, 32,109, 97,120, 40,114,103, 98, 91, 48, 93, 44, 32,109, 97,120, 40,114,103, 98, 91, 49, 93, 44, 32,114,103, 98, - 91, 50, 93, 41, 41, 59, 10, 9, 99,109,105,110, 32, 61, 32,109,105,110, 40,114,103, 98, 91, 48, 93, 44, 32,109,105,110, 40,114, -103, 98, 91, 49, 93, 44, 32,114,103, 98, 91, 50, 93, 41, 41, 59, 10, 9, 99,100,101,108,116, 97, 32, 61, 32, 99,109, 97,120, 45, - 99,109,105,110, 59, 10, 10, 9,118, 32, 61, 32, 99,109, 97,120, 59, 10, 9,105,102, 32, 40, 99,109, 97,120, 33, 61, 48, 46, 48, - 41, 10, 9, 9,115, 32, 61, 32, 99,100,101,108,116, 97, 47, 99,109, 97,120, 59, 10, 9,101,108,115,101, 32,123, 10, 9, 9,115, - 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 10, 9,105,102, 32, 40,115, 32, 61, 61, - 32, 48, 46, 48, 41, 32,123, 10, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9, - 99, 32, 61, 32, 40,118,101, 99, 51, 40, 99,109, 97,120, 44, 32, 99,109, 97,120, 44, 32, 99,109, 97,120, 41, 32, 45, 32,114,103, - 98, 46,120,121,122, 41, 47, 99,100,101,108,116, 97, 59, 10, 10, 9, 9,105,102, 32, 40,114,103, 98, 46,120, 61, 61, 99,109, 97, -120, 41, 32,104, 32, 61, 32, 99, 91, 50, 93, 32, 45, 32, 99, 91, 49, 93, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,114, -103, 98, 46,121, 61, 61, 99,109, 97,120, 41, 32,104, 32, 61, 32, 50, 46, 48, 32, 43, 32, 99, 91, 48, 93, 32, 45, 32, 32, 99, 91, - 50, 93, 59, 10, 9, 9,101,108,115,101, 32,104, 32, 61, 32, 52, 46, 48, 32, 43, 32, 99, 91, 49, 93, 32, 45, 32, 99, 91, 48, 93, - 59, 10, 10, 9, 9,104, 32, 47, 61, 32, 54, 46, 48, 59, 10, 10, 9, 9,105,102, 32, 40,104, 60, 48, 46, 48, 41, 10, 9, 9, 9, -104, 32, 43, 61, 32, 49, 46, 48, 59, 10, 9,125, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,104, 44, 32, -115, 44, 32,118, 44, 32,114,103, 98, 46,119, 41, 59, 10,125, 10, 10,118,111,105,100, 32,104,115,118, 95,116,111, 95,114,103, 98, - 40,118,101, 99, 52, 32,104,115,118, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, -108,111, 97,116, 32,105, 44, 32,102, 44, 32,112, 44, 32,113, 44, 32,116, 44, 32,104, 44, 32,115, 44, 32,118, 59, 10, 9,118,101, - 99, 51, 32,114,103, 98, 59, 10, 10, 9,104, 32, 61, 32,104,115,118, 91, 48, 93, 59, 10, 9,115, 32, 61, 32,104,115,118, 91, 49, - 93, 59, 10, 9,118, 32, 61, 32,104,115,118, 91, 50, 93, 59, 10, 10, 9,105,102, 40,115, 61, 61, 48, 46, 48, 41, 32,123, 10, 9, - 9,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32,118, 44, 32,118, 41, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, - 10, 9, 9,105,102, 40,104, 61, 61, 49, 46, 48, 41, 10, 9, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9, 10, 9, 9,104, - 32, 42, 61, 32, 54, 46, 48, 59, 10, 9, 9,105, 32, 61, 32,102,108,111,111,114, 40,104, 41, 59, 10, 9, 9,102, 32, 61, 32,104, - 32, 45, 32,105, 59, 10, 9, 9,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,102, 44, 32,102, 44, 32,102, 41, 59, 10, 9, 9,112, - 32, 61, 32,118, 42, 40, 49, 46, 48, 45,115, 41, 59, 10, 9, 9,113, 32, 61, 32,118, 42, 40, 49, 46, 48, 45, 40,115, 42,102, 41, - 41, 59, 10, 9, 9,116, 32, 61, 32,118, 42, 40, 49, 46, 48, 45, 40,115, 42, 40, 49, 46, 48, 45,102, 41, 41, 41, 59, 10, 9, 9, - 10, 9, 9,105,102, 32, 40,105, 32, 61, 61, 32, 48, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32,116, - 44, 32,112, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 49, 46, 48, 41, 32,114,103, 98, 32, 61, - 32,118,101, 99, 51, 40,113, 44, 32,118, 44, 32,112, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, - 50, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,112, 44, 32,118, 44, 32,116, 41, 59, 10, 9, 9,101,108,115,101, - 32,105,102, 32, 40,105, 32, 61, 61, 32, 51, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,112, 44, 32,113, 44, 32, -118, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 52, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118, -101, 99, 51, 40,116, 44, 32,112, 44, 32,118, 41, 59, 10, 9, 9,101,108,115,101, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40, -118, 44, 32,112, 44, 32,113, 41, 59, 10, 9,125, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,114,103, 98, - 44, 32,104,115,118, 46,119, 41, 59, 10,125, 10, 10, 35,100,101,102,105,110,101, 32, 77, 95, 80, 73, 32, 51, 46, 49, 52, 49, 53, - 57, 50, 54, 53, 51, 53, 56, 57, 55, 57, 51, 50, 51, 56, 52, 54, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 83, - 72, 65, 68, 69, 82, 32, 78, 79, 68, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,118,111, -105,100, 32,118, 99,111,108, 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 52, 32, 97,116,116,118, 99,111,108, 44, 32, -111,117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 41, 10,123, 10, 9,118, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 97,116, -116,118, 99,111,108, 46,120, 47, 50, 53, 53, 46, 48, 44, 32, 97,116,116,118, 99,111,108, 46,121, 47, 50, 53, 53, 46, 48, 44, 32, - 97,116,116,118, 99,111,108, 46,122, 47, 50, 53, 53, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,117, -118, 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32,111,117,116, 32,118,101, 99, 51, - 32,117,118, 41, 10,123, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32,118,101, - 99, 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, 41, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,103,101,111,109, - 40,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,109, 97,116, 52, 32,118,105,101,119,105,110,118, -109, 97,116, 44, 32,118,101, 99, 51, 32, 97,116,116,111,114, 99,111, 44, 32,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32,118, -101, 99, 52, 32, 97,116,116,118, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108, 44, 32,111,117, -116, 32,118,101, 99, 51, 32,108,111, 99, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,111,117,116, - 32,118,101, 99, 51, 32,111,114, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 44, 32,111,117,116, 32,118,101, 99, - 51, 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 44, 32,111,117,116, 32,102,108,111, - 97,116, 32,102,114,111,110,116, 98, 97, 99,107, 41, 10,123, 10, 9,108,111, 99, 97,108, 32, 61, 32, 99,111, 59, 10, 9,118,105, -101,119, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108,111, 99, 97,108, 41, 59, 10, 9,103,108,111, 98, 97,108, 32, 61, - 32, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40,108,111, 99, 97,108, 44, 32, 49, 46, 48, 41, 41, 46,120, -121,122, 59, 10, 9,111,114, 99,111, 32, 61, 32, 97,116,116,111,114, 99,111, 59, 10, 9,117,118, 95, 97,116,116,114,105, 98,117, -116,101, 40, 97,116,116,117,118, 44, 32,117,118, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, 97,108, -105,122,101, 40,110,111,114, 41, 59, 9, 47, 42, 32, 98,108,101,110,100,101,114, 32,114,101,110,100,101,114, 32,110,111,114,109, - 97,108, 32,105,115, 32,110,101,103, 97,116,101,100, 32, 42, 47, 10, 9,118, 99,111,108, 95, 97,116,116,114,105, 98,117,116,101, - 40, 97,116,116,118, 99,111,108, 44, 32,118, 99,111,108, 41, 59, 10, 9,102,114,111,110,116, 98, 97, 99,107, 32, 61, 32, 49, 46, - 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,112,112,105,110,103, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,109, 97,116, - 52, 32,109, 97,116, 44, 32,118,101, 99, 51, 32,109,105,110,118,101, 99, 44, 32,118,101, 99, 51, 32,109, 97,120,118,101, 99, 44, - 32,102,108,111, 97,116, 32,100,111,109,105,110, 44, 32,102,108,111, 97,116, 32,100,111,109, 97,120, 44, 32,111,117,116, 32,118, -101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32, 40,109, 97,116, 32, 42, 32,118, -101, 99, 52, 40,118,101, 99, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9,105,102, 40,100,111,109,105,110, 32, 61, 61, - 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, 99, 32, 61, 32,109, 97,120, 40,111,117,116,118,101, 99, 44, 32,109,105,110, -118,101, 99, 41, 59, 10, 9,105,102, 40,100,111,109, 97,120, 32, 61, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, 99, - 32, 61, 32,109,105,110, 40,111,117,116,118,101, 99, 44, 32,109, 97,120,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32, - 99, 97,109,101,114, 97, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,105,101,119, - 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,100,101,112,116,104, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, -111,117,116,100,105,115,116, 41, 10,123, 10, 9,111,117,116,100,101,112,116,104, 32, 61, 32, 97, 98,115, 40, 99,111, 46,122, 41, - 59, 10, 9,111,117,116,100,105,115,116, 32, 61, 32,108,101,110,103,116,104, 40, 99,111, 41, 59, 10, 9,111,117,116,118,105,101, -119, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, - 97,100,100, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32, -102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 43, - 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,115,117, 98,116,114, 97, 99,116, 40,102,108,111, - 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111, -117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 45, 32,118, 97,108, 50, 59, 10, -125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109,117,108,116,105,112,108,121, 40,102,108,111, 97,116, 32,118, 97,108, 49, - 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10, -123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 42, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, - 32,109, 97,116,104, 95,100,105,118,105,100,101, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, - 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97, -108, 50, 32, 61, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, - 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 47, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, - 32,109, 97,116,104, 95,115,105,110,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, -111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,115,105,110, 40,118, 97,108, 41, 59, 10,125, 10, - 10,118,111,105,100, 32,109, 97,116,104, 95, 99,111,115,105,110,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, - 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 99,111,115, 40,118, - 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,116, 97,110,103,101,110,116, 40,102,108,111, 97,116, 32, -118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, - 32, 61, 32,116, 97,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,115,105,110, 40,102, -108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105, -102, 32, 40,118, 97,108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38, 32,118, 97,108, 32, 62, 61, 32, 45, 49, 46, 48, 41, 10, 9, 9, -111,117,116,118, 97,108, 32, 61, 32, 97,115,105,110, 40,118, 97,108, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, - 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97, 99,111,115, 40,102,108,111, 97, -116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40, -118, 97,108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38, 32,118, 97,108, 32, 62, 61, 32, 45, 49, 46, 48, 41, 10, 9, 9,111,117,116, -118, 97,108, 32, 61, 32, 97, 99,111,115, 40,118, 97,108, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, - 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,116, 97,110, 40,102,108,111, 97,116, 32,118, - 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, - 61, 32, 97,116, 97,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,112,111,119, 40,102,108, + 10,102,108,111, 97,116, 32,101,120,112, 95, 98,108,101,110,100,101,114, 40,102,108,111, 97,116, 32,102, 41, 10,123, + 10, 9,114,101,116,117,114,110, 32,112,111,119, 40, 50, 46, 55, 49, 56, 50, 56, 49, 56, 50, 56, 52, 54, 44, 32,102, 41, 59, 10, +125, 10, 10,118,111,105,100, 32,114,103, 98, 95,116,111, 95,104,115,118, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, + 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, 99,109, 97,120, 44, 32, 99,109,105, +110, 44, 32,104, 44, 32,115, 44, 32,118, 44, 32, 99,100,101,108,116, 97, 59, 10, 9,118,101, 99, 51, 32, 99, 59, 10, 10, 9, 99, +109, 97,120, 32, 61, 32,109, 97,120, 40,114,103, 98, 91, 48, 93, 44, 32,109, 97,120, 40,114,103, 98, 91, 49, 93, 44, 32,114,103, + 98, 91, 50, 93, 41, 41, 59, 10, 9, 99,109,105,110, 32, 61, 32,109,105,110, 40,114,103, 98, 91, 48, 93, 44, 32,109,105,110, 40, +114,103, 98, 91, 49, 93, 44, 32,114,103, 98, 91, 50, 93, 41, 41, 59, 10, 9, 99,100,101,108,116, 97, 32, 61, 32, 99,109, 97,120, + 45, 99,109,105,110, 59, 10, 10, 9,118, 32, 61, 32, 99,109, 97,120, 59, 10, 9,105,102, 32, 40, 99,109, 97,120, 33, 61, 48, 46, + 48, 41, 10, 9, 9,115, 32, 61, 32, 99,100,101,108,116, 97, 47, 99,109, 97,120, 59, 10, 9,101,108,115,101, 32,123, 10, 9, 9, +115, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 10, 9,105,102, 32, 40,115, 32, 61, + 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, + 9, 99, 32, 61, 32, 40,118,101, 99, 51, 40, 99,109, 97,120, 44, 32, 99,109, 97,120, 44, 32, 99,109, 97,120, 41, 32, 45, 32,114, +103, 98, 46,120,121,122, 41, 47, 99,100,101,108,116, 97, 59, 10, 10, 9, 9,105,102, 32, 40,114,103, 98, 46,120, 61, 61, 99,109, + 97,120, 41, 32,104, 32, 61, 32, 99, 91, 50, 93, 32, 45, 32, 99, 91, 49, 93, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40, +114,103, 98, 46,121, 61, 61, 99,109, 97,120, 41, 32,104, 32, 61, 32, 50, 46, 48, 32, 43, 32, 99, 91, 48, 93, 32, 45, 32, 32, 99, + 91, 50, 93, 59, 10, 9, 9,101,108,115,101, 32,104, 32, 61, 32, 52, 46, 48, 32, 43, 32, 99, 91, 49, 93, 32, 45, 32, 99, 91, 48, + 93, 59, 10, 10, 9, 9,104, 32, 47, 61, 32, 54, 46, 48, 59, 10, 10, 9, 9,105,102, 32, 40,104, 60, 48, 46, 48, 41, 10, 9, 9, + 9,104, 32, 43, 61, 32, 49, 46, 48, 59, 10, 9,125, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,104, 44, + 32,115, 44, 32,118, 44, 32,114,103, 98, 46,119, 41, 59, 10,125, 10, 10,118,111,105,100, 32,104,115,118, 95,116,111, 95,114,103, + 98, 40,118,101, 99, 52, 32,104,115,118, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9, +102,108,111, 97,116, 32,105, 44, 32,102, 44, 32,112, 44, 32,113, 44, 32,116, 44, 32,104, 44, 32,115, 44, 32,118, 59, 10, 9,118, +101, 99, 51, 32,114,103, 98, 59, 10, 10, 9,104, 32, 61, 32,104,115,118, 91, 48, 93, 59, 10, 9,115, 32, 61, 32,104,115,118, 91, + 49, 93, 59, 10, 9,118, 32, 61, 32,104,115,118, 91, 50, 93, 59, 10, 10, 9,105,102, 40,115, 61, 61, 48, 46, 48, 41, 32,123, 10, + 9, 9,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32,118, 44, 32,118, 41, 59, 10, 9,125, 10, 9,101,108,115,101, 32, +123, 10, 9, 9,105,102, 40,104, 61, 61, 49, 46, 48, 41, 10, 9, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9, 10, 9, 9, +104, 32, 42, 61, 32, 54, 46, 48, 59, 10, 9, 9,105, 32, 61, 32,102,108,111,111,114, 40,104, 41, 59, 10, 9, 9,102, 32, 61, 32, +104, 32, 45, 32,105, 59, 10, 9, 9,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,102, 44, 32,102, 44, 32,102, 41, 59, 10, 9, 9, +112, 32, 61, 32,118, 42, 40, 49, 46, 48, 45,115, 41, 59, 10, 9, 9,113, 32, 61, 32,118, 42, 40, 49, 46, 48, 45, 40,115, 42,102, + 41, 41, 59, 10, 9, 9,116, 32, 61, 32,118, 42, 40, 49, 46, 48, 45, 40,115, 42, 40, 49, 46, 48, 45,102, 41, 41, 41, 59, 10, 9, + 9, 10, 9, 9,105,102, 32, 40,105, 32, 61, 61, 32, 48, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32, +116, 44, 32,112, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 49, 46, 48, 41, 32,114,103, 98, 32, + 61, 32,118,101, 99, 51, 40,113, 44, 32,118, 44, 32,112, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, + 32, 50, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,112, 44, 32,118, 44, 32,116, 41, 59, 10, 9, 9,101,108,115, +101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 51, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,112, 44, 32,113, 44, + 32,118, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 52, 46, 48, 41, 32,114,103, 98, 32, 61, 32, +118,101, 99, 51, 40,116, 44, 32,112, 44, 32,118, 41, 59, 10, 9, 9,101,108,115,101, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, + 40,118, 44, 32,112, 44, 32,113, 41, 59, 10, 9,125, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,114,103, + 98, 44, 32,104,115,118, 46,119, 41, 59, 10,125, 10, 10, 35,100,101,102,105,110,101, 32, 77, 95, 80, 73, 32, 51, 46, 49, 52, 49, + 53, 57, 50, 54, 53, 51, 53, 56, 57, 55, 57, 51, 50, 51, 56, 52, 54, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, + 83, 72, 65, 68, 69, 82, 32, 78, 79, 68, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,118, +111,105,100, 32,118, 99,111,108, 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 52, 32, 97,116,116,118, 99,111,108, 44, + 32,111,117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 41, 10,123, 10, 9,118, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 97, +116,116,118, 99,111,108, 46,120, 47, 50, 53, 53, 46, 48, 44, 32, 97,116,116,118, 99,111,108, 46,121, 47, 50, 53, 53, 46, 48, 44, + 32, 97,116,116,118, 99,111,108, 46,122, 47, 50, 53, 53, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32, +117,118, 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32,111,117,116, 32,118,101, 99, + 51, 32,117,118, 41, 10,123, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32,118, +101, 99, 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, 41, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,103,101,111, +109, 40,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,109, 97,116, 52, 32,118,105,101,119,105,110, +118,109, 97,116, 44, 32,118,101, 99, 51, 32, 97,116,116,111,114, 99,111, 44, 32,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32, +118,101, 99, 52, 32, 97,116,116,118, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108, 44, 32,111, +117,116, 32,118,101, 99, 51, 32,108,111, 99, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,111,117, +116, 32,118,101, 99, 51, 32,111,114, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 44, 32,111,117,116, 32,118,101, + 99, 51, 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 44, 32,111,117,116, 32,102,108, +111, 97,116, 32,102,114,111,110,116, 98, 97, 99,107, 41, 10,123, 10, 9,108,111, 99, 97,108, 32, 61, 32, 99,111, 59, 10, 9,118, +105,101,119, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108,111, 99, 97,108, 41, 59, 10, 9,103,108,111, 98, 97,108, 32, + 61, 32, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40,108,111, 99, 97,108, 44, 32, 49, 46, 48, 41, 41, 46, +120,121,122, 59, 10, 9,111,114, 99,111, 32, 61, 32, 97,116,116,111,114, 99,111, 59, 10, 9,117,118, 95, 97,116,116,114,105, 98, +117,116,101, 40, 97,116,116,117,118, 44, 32,117,118, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, 97, +108,105,122,101, 40,110,111,114, 41, 59, 9, 47, 42, 32, 98,108,101,110,100,101,114, 32,114,101,110,100,101,114, 32,110,111,114, +109, 97,108, 32,105,115, 32,110,101,103, 97,116,101,100, 32, 42, 47, 10, 9,118, 99,111,108, 95, 97,116,116,114,105, 98,117,116, +101, 40, 97,116,116,118, 99,111,108, 44, 32,118, 99,111,108, 41, 59, 10, 9,102,114,111,110,116, 98, 97, 99,107, 32, 61, 32, 49, + 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,112,112,105,110,103, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,109, 97, +116, 52, 32,109, 97,116, 44, 32,118,101, 99, 51, 32,109,105,110,118,101, 99, 44, 32,118,101, 99, 51, 32,109, 97,120,118,101, 99, + 44, 32,102,108,111, 97,116, 32,100,111,109,105,110, 44, 32,102,108,111, 97,116, 32,100,111,109, 97,120, 44, 32,111,117,116, 32, +118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32, 40,109, 97,116, 32, 42, 32, +118,101, 99, 52, 40,118,101, 99, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9,105,102, 40,100,111,109,105,110, 32, 61, + 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, 99, 32, 61, 32,109, 97,120, 40,111,117,116,118,101, 99, 44, 32,109,105, +110,118,101, 99, 41, 59, 10, 9,105,102, 40,100,111,109, 97,120, 32, 61, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, + 99, 32, 61, 32,109,105,110, 40,111,117,116,118,101, 99, 44, 32,109, 97,120,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, + 32, 99, 97,109,101,114, 97, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,105,101, +119, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,100,101,112,116,104, 44, 32,111,117,116, 32,102,108,111, 97,116, + 32,111,117,116,100,105,115,116, 41, 10,123, 10, 9,111,117,116,100,101,112,116,104, 32, 61, 32, 97, 98,115, 40, 99,111, 46,122, + 41, 59, 10, 9,111,117,116,100,105,115,116, 32, 61, 32,108,101,110,103,116,104, 40, 99,111, 41, 59, 10, 9,111,117,116,118,105, +101,119, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, + 95, 97,100,100, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, + 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, + 43, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,115,117, 98,116,114, 97, 99,116, 40,102,108, 111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, -111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 49, 32, 62, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117, -116,118, 97,108, 32, 61, 32,112,111,119, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10, 9,101,108,115,101, 10, 9, 9, -111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,108,111,103, 40,102, +111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 45, 32,118, 97,108, 50, 59, + 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109,117,108,116,105,112,108,121, 40,102,108,111, 97,116, 32,118, 97,108, + 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, + 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 42, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105, +100, 32,109, 97,116,104, 95,100,105,118,105,100,101, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32, +118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, + 97,108, 50, 32, 61, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115, +101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 47, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105, +100, 32,109, 97,116,104, 95,115,105,110,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, + 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,115,105,110, 40,118, 97,108, 41, 59, 10,125, + 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 99,111,115,105,110,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117, +116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 99,111,115, 40, +118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,116, 97,110,103,101,110,116, 40,102,108,111, 97,116, + 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97, +108, 32, 61, 32,116, 97,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,115,105,110, 40, +102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9, +105,102, 32, 40,118, 97,108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38, 32,118, 97,108, 32, 62, 61, 32, 45, 49, 46, 48, 41, 10, 9, + 9,111,117,116,118, 97,108, 32, 61, 32, 97,115,105,110, 40,118, 97,108, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, +118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97, 99,111,115, 40,102,108,111, + 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, + 40,118, 97,108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38, 32,118, 97,108, 32, 62, 61, 32, 45, 49, 46, 48, 41, 10, 9, 9,111,117, +116,118, 97,108, 32, 61, 32, 97, 99,111,115, 40,118, 97,108, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, + 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,116, 97,110, 40,102,108,111, 97,116, 32, +118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, + 32, 61, 32, 97,116, 97,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,112,111,119, 40,102, 108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, - 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 62, 32, 48, 46, 48, 32, 32, 38, 38, 32,118, 97, -108, 50, 32, 62, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 61, 32,108,111,103, 50, 40,118, 97,108, 49, 41, 32, 47, - 32,108,111,103, 50, 40,118, 97,108, 50, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 61, 32, 48, 46, 48, - 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109, 97,120, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102, -108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9, -111,117,116,118, 97,108, 32, 61, 32,109, 97,120, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10,125, 10, 10,118,111,105, -100, 32,109, 97,116,104, 95,109,105,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, - 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, - 32,109,105,110, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,114, -111,117,110,100, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, - 41, 10,123, 10, 9,111,117,116,118, 97,108, 61, 32,102,108,111,111,114, 40,118, 97,108, 32, 43, 32, 48, 46, 53, 41, 59, 10,125, - 10, 10,118,111,105,100, 32,109, 97,116,104, 95,108,101,115,115, 95,116,104, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, - 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10, -123, 10, 9,105,102, 40,118, 97,108, 49, 32, 60, 32,118, 97,108, 50, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, - 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, - 32,109, 97,116,104, 95,103,114,101, 97,116,101,114, 95,116,104, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102, -108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9, -105,102, 40,118, 97,108, 49, 32, 62, 32,118, 97,108, 50, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 59, 10, - 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,113, -117,101,101,122,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,102,108,111, 97,116, 32,119,105,100,116,104, 44, 32,102,108, -111, 97,116, 32, 99,101,110,116,101,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, - 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 47, 40, 49, 46, 48, 32, 43, 32,112,111,119, 40, 50, 46, 55, 49, 56, 50, 56, - 49, 56, 51, 44, 32, 45, 40, 40,118, 97,108, 45, 99,101,110,116,101,114, 41, 42,119,105,100,116,104, 41, 41, 41, 59, 10,125, 10, - 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 97,100,100, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, - 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, -111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 43, 32,118, 50, 59, 10, 9,111,117, -116,118, 97,108, 32, 61, 32, 40, 97, 98,115, 40,111,117,116,118,101, 99, 91, 48, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116, -118,101, 99, 91, 49, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 50, 93, 41, 41, 47, 51, 46, 48, 59, 10,125, - 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,115,117, 98, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, + 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 49, 32, 62, 61, 32, 48, 46, 48, 41, 10, 9, 9,111, +117,116,118, 97,108, 32, 61, 32,112,111,119, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10, 9,101,108,115,101, 10, 9, + 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,108,111,103, 40, +102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97, +116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 62, 32, 48, 46, 48, 32, 32, 38, 38, 32,118, + 97,108, 50, 32, 62, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 61, 32,108,111,103, 50, 40,118, 97,108, 49, 41, 32, + 47, 32,108,111,103, 50, 40,118, 97,108, 50, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 61, 32, 48, 46, + 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109, 97,120, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32, +102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, + 9,111,117,116,118, 97,108, 32, 61, 32,109, 97,120, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10,125, 10, 10,118,111, +105,100, 32,109, 97,116,104, 95,109,105,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97, +108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, + 61, 32,109,105,110, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, +114,111,117,110,100, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97, +108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 61, 32,102,108,111,111,114, 40,118, 97,108, 32, 43, 32, 48, 46, 53, 41, 59, 10, +125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,108,101,115,115, 95,116,104, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, + 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, + 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 60, 32,118, 97,108, 50, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 49, + 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105, +100, 32,109, 97,116,104, 95,103,114,101, 97,116,101,114, 95,116,104, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32, +102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, + 9,105,102, 40,118, 97,108, 49, 32, 62, 32,118, 97,108, 50, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 59, + 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115, +113,117,101,101,122,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,102,108,111, 97,116, 32,119,105,100,116,104, 44, 32,102, +108,111, 97,116, 32, 99,101,110,116,101,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, + 10, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 47, 40, 49, 46, 48, 32, 43, 32,112,111,119, 40, 50, 46, 55, 49, 56, 50, + 56, 49, 56, 51, 44, 32, 45, 40, 40,118, 97,108, 45, 99,101,110,116,101,114, 41, 42,119,105,100,116,104, 41, 41, 41, 59, 10,125, + 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 97,100,100, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, - 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 45, 32,118, 50, 59, 10, 9,111, + 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 43, 32,118, 50, 59, 10, 9,111, 117,116,118, 97,108, 32, 61, 32, 40, 97, 98,115, 40,111,117,116,118,101, 99, 91, 48, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117, 116,118,101, 99, 91, 49, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 50, 93, 41, 41, 47, 51, 46, 48, 59, 10, -125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 97,118,101,114, 97,103,101, 40,118,101, 99, 51, 32,118, 49, - 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32, -102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 43, 32,118, - 50, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,111,117,116,118,101, 99, 41, 59, 10, 9,111,117, -116,118,101, 99, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,117,116,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105, -100, 32,118,101, 99, 95,109, 97,116,104, 95,100,111,116, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, - 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, - 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101, 99, 51, 40, 48, 44, 32, 48, 44, 32, 48, 41, 59, 10, 9, -111,117,116,118, 97,108, 32, 61, 32,100,111,116, 40,118, 49, 44, 32,118, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, - 99, 95,109, 97,116,104, 95, 99,114,111,115,115, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111, -117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, - 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32, 99,114,111,115,115, 40,118, 49, 44, 32,118, 50, 41, 59, 10, 9,111,117, -116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,111,117,116,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118, -101, 99, 95,109, 97,116,104, 95,110,111,114,109, 97,108,105,122,101, 40,118,101, 99, 51, 32,118, 44, 32,111,117,116, 32,118,101, - 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9, -111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,118, 41, 59, 10, 9,111,117,116,118,101, 99, 32, 61, 32,110,111, -114,109, 97,108,105,122,101, 40,118, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,110,101,103, - 97,116,101, 40,118,101, 99, 51, 32,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118, 41, 10,123, 10, 9,111,117, -116,118, 32, 61, 32, 45,118, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,114,109, 97,108, 40,118,101, 99, 51, 32,100,105,114, - 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114, 44, 32,111,117,116, - 32,102,108,111, 97,116, 32,111,117,116,100,111,116, 41, 10,123, 10, 9,111,117,116,110,111,114, 32, 61, 32,100,105,114, 59, 10, - 9,111,117,116,100,111,116, 32, 61, 32, 45,100,111,116, 40,100,105,114, 44, 32,110,111,114, 41, 59, 10,125, 10, 10,118,111,105, -100, 32, 99,117,114,118,101,115, 95,118,101, 99, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 49, 68, - 32, 99,117,114,118,101,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111, -117,116,118,101, 99, 46,120, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118, -101, 99, 46,120, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,120, 59, 10, 9,111,117,116,118,101, 99, 46,121, 32, 61, 32, -116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,121, 32, 43, 32, 49, 46, 48, - 41, 42, 48, 46, 53, 41, 46,121, 59, 10, 9,111,117,116,118,101, 99, 46,122, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, - 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,122, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,122, 59, 10, -125, 10, 10,118,111,105,100, 32, 99,117,114,118,101,115, 95,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,115, 97,109, -112,108,101,114, 49, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, - 41, 10,123, 10, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, - 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,114, 41, 46, 97, - 41, 46,114, 59, 10, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101, -109, 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,103, 41, 46, - 97, 41, 46,103, 59, 10, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118, -101,109, 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46, 98, 41, - 46, 97, 41, 46, 98, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105, -100, 32,115,101,116, 95,118, 97,108,117,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, - 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 59, 10,125, 10, 10,118,111,105, -100, 32,115,101,116, 95,114,103, 98, 40,118,101, 99, 51, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116, - 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,101, -116, 95,114,103, 98, 97, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, - 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,118, - 97,108,117,101, 95,122,101,114,111, 40,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111, -117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 95,122,101,114, -111, 40,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, -101, 99, 51, 40, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 97, 95,122,101,114,111, 40, -111,117,116, 32,118,101, 99, 52, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118,101, 99, - 52, 40, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 98,108,101,110,100, 40,102,108,111, 97,116, 32, -102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118, -101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, - 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99, -111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, - 10, 10,118,111,105,100, 32,109,105,120, 95, 97,100,100, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99, +125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,115,117, 98, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, + 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97, +116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 45, 32,118, 50, 59, 10, 9, +111,117,116,118, 97,108, 32, 61, 32, 40, 97, 98,115, 40,111,117,116,118,101, 99, 91, 48, 93, 41, 32, 43, 32, 97, 98,115, 40,111, +117,116,118,101, 99, 91, 49, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 50, 93, 41, 41, 47, 51, 46, 48, 59, + 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 97,118,101,114, 97,103,101, 40,118,101, 99, 51, 32,118, + 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, + 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 43, 32, +118, 50, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,111,117,116,118,101, 99, 41, 59, 10, 9,111, +117,116,118,101, 99, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,117,116,118,101, 99, 41, 59, 10,125, 10, 10,118,111, +105,100, 32,118,101, 99, 95,109, 97,116,104, 95,100,111,116, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, + 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, +118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101, 99, 51, 40, 48, 44, 32, 48, 44, 32, 48, 41, 59, 10, + 9,111,117,116,118, 97,108, 32, 61, 32,100,111,116, 40,118, 49, 44, 32,118, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118, +101, 99, 95,109, 97,116,104, 95, 99,114,111,115,115, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32, +111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97, +108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32, 99,114,111,115,115, 40,118, 49, 44, 32,118, 50, 41, 59, 10, 9,111, +117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,111,117,116,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32, +118,101, 99, 95,109, 97,116,104, 95,110,111,114,109, 97,108,105,122,101, 40,118,101, 99, 51, 32,118, 44, 32,111,117,116, 32,118, +101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, + 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,118, 41, 59, 10, 9,111,117,116,118,101, 99, 32, 61, 32,110, +111,114,109, 97,108,105,122,101, 40,118, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,110,101, +103, 97,116,101, 40,118,101, 99, 51, 32,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118, 41, 10,123, 10, 9,111, +117,116,118, 32, 61, 32, 45,118, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,114,109, 97,108, 40,118,101, 99, 51, 32,100,105, +114, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114, 44, 32,111,117, +116, 32,102,108,111, 97,116, 32,111,117,116,100,111,116, 41, 10,123, 10, 9,111,117,116,110,111,114, 32, 61, 32,100,105,114, 59, + 10, 9,111,117,116,100,111,116, 32, 61, 32, 45,100,111,116, 40,100,105,114, 44, 32,110,111,114, 41, 59, 10,125, 10, 10,118,111, +105,100, 32, 99,117,114,118,101,115, 95,118,101, 99, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 49, + 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9, +111,117,116,118,101, 99, 46,120, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40, +118,101, 99, 46,120, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,120, 59, 10, 9,111,117,116,118,101, 99, 46,121, 32, 61, + 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,121, 32, 43, 32, 49, 46, + 48, 41, 42, 48, 46, 53, 41, 46,121, 59, 10, 9,111,117,116,118,101, 99, 46,122, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, + 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,122, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,122, 59, + 10,125, 10, 10,118,111,105,100, 32, 99,117,114,118,101,115, 95,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,115, 97, +109,112,108,101,114, 49, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111, +108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101, +109, 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,114, 41, 46, + 97, 41, 46,114, 59, 10, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118, +101,109, 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,103, 41, + 46, 97, 41, 46,103, 59, 10, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114, +118,101,109, 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46, 98, + 41, 46, 97, 41, 46, 98, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111, +105,100, 32,115,101,116, 95,118, 97,108,117,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97, +116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 59, 10,125, 10, 10,118,111, +105,100, 32,115,101,116, 95,114,103, 98, 40,118,101, 99, 51, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117, +116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115, +101,116, 95,114,103, 98, 97, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111, +108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95, +118, 97,108,117,101, 95,122,101,114,111, 40,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9, +111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 95,122,101, +114,111, 40,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, +118,101, 99, 51, 40, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 97, 95,122,101,114,111, + 40,111,117,116, 32,118,101, 99, 52, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118,101, + 99, 52, 40, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 98,108,101,110,100, 40,102,108,111, 97,116, + 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32, +118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, + 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, + 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10, +125, 10, 10,118,111,105,100, 32,109,105,120, 95, 97,100,100, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, + 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, + 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, + 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 43, 32, 99,111,108, 50, + 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118, +111,105,100, 32,109,105,120, 95,109,117,108,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, + 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, + 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111, +117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 42, 32, 99,111,108, 50, 44, 32,102, + 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, + 32,109,105,120, 95,115, 99,114,101,101,110, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, + 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, + 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108, +111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, + 32,118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 40,118,101, 99, 52, 40,102, 97, 99,109, 41, 32, 43, 32,102, 97, 99, 42, 40, +118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 99,111,108, 50, 41, 41, 42, 40,118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, + 99,111,108, 49, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111, +105,100, 32,109,105,120, 95,111,118,101,114,108, 97,121, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99, 111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, - 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 43, 32, 99,111,108, 50, 44, - 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111, -105,100, 32,109,105,120, 95,109,117,108,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, - 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, - 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117, -116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 42, 32, 99,111,108, 50, 44, 32,102, 97, - 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32, -109,105,120, 95,115, 99,114,101,101,110, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, - 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9, -102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, - 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, -118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 40,118,101, 99, 52, 40,102, 97, 99,109, 41, 32, 43, 32,102, 97, 99, 42, 40,118, -101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 99,111,108, 50, 41, 41, 42, 40,118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 99, -111,108, 49, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105, -100, 32,109,105,120, 95,111,118,101,114,108, 97,121, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111, -108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10, -123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9, -102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, - 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9, -111,117,116, 99,111,108, 46,114, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 99,111,108, 50, 46, -114, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99, -109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46,114, 41, 41, 42, 40, 49, 46, 48, - 32, 45, 32,111,117,116, 99,111,108, 46,114, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 60, 32, 48, 46, - 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, - 99,111,108, 50, 46,103, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 32, 45, - 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46,103, 41, 41, - 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, 98, - 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, - 42,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, - 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, - 50, 46, 98, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32, -109,105,120, 95,115,117, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, - 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, - 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, - 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 45, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, - 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, -100,105,118, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99, -111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99, -108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, - 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, - 9,105,102, 40, 99,111,108, 50, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46,114, 32, 61, 32,102, 97, - 99,109, 42,111,117,116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46,114, 47, 99,111,108, 50, 46, -114, 59, 10, 9,105,102, 40, 99,111,108, 50, 46,103, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46,103, 32, 61, - 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,103, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46,103, 47, 99,111, -108, 50, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 50, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46, - 98, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46, 98, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46, 98, - 47, 99,111,108, 50, 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,105,102,102, 40,102,108,111, 97,116, 32, -102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118, -101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, - 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 97, - 98,115, 40, 99,111,108, 49, 32, 45, 32, 99,111,108, 50, 41, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, - 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100, 97,114,107, 40,102,108,111, 97, -116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, - 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, - 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 46,114,103, 98, 32, 61, 32,109,105,110, 40, 99, -111,108, 49, 46,114,103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98, 42,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, - 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,108,105,103,104,116, 40,102,108, -111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111, -117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, - 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 46,114,103, 98, 32, 61, 32,109, 97,120, - 40, 99,111,108, 49, 46,114,103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98, 42,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111, -108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,111,100,103,101, 40, -102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, - 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, - 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, - 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, - 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9, 9,105,102, 40,116,109, -112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101, -108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46,114, 47,116,109,112, 41, 32, 62, 32, 49, 46, - 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9, -111,117,116, 99,111,108, 46,114, 32, 61, 32,116,109,112, 59, 10, 9,125, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, - 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, - 99, 42, 99,111,108, 50, 46,103, 59, 10, 9, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117, -116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111, -117,116, 99,111,108, 46,103, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, - 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,109,112, 59, - 10, 9,125, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, - 97,116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, 9, 9,105,102, 40, -116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9, - 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 47,116,109,112, 41, 32, 62, 32, - 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, - 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,116,109,112, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, - 95, 98,117,114,110, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, - 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, - 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,116,109, -112, 44, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, - 99,111,108, 49, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, - 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 48, 46, - 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, 45, - 32,111,117,116, 99,111,108, 46,114, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, - 46,114, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9, -111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114, - 32, 61, 32,116,109,112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46, -103, 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, - 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, - 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99, -111,108, 46,103, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, - 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, - 46,103, 32, 61, 32,116,109,112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, - 50, 46, 98, 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, - 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, - 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117, -116, 99,111,108, 46, 98, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, - 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99, -111,108, 46, 98, 32, 61, 32,116,109,112, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,104,117,101, 40,102,108,111, 97, -116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, - 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, - 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, - 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115, -118, 44, 32,104,115,118, 50, 44, 32,116,109,112, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32, -104,115,118, 50, 41, 59, 10, 10, 9,105,102, 40,104,115,118, 50, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114, -103, 98, 95,116,111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 9, 9,104,115,118, 46,120, 32, - 61, 32,104,115,118, 50, 46,120, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,116,109,112, 41, - 59, 32, 10, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40,111,117,116, 99,111,108, 44, 32,116,109,112, 44, 32, -102, 97, 99, 41, 59, 10, 9, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10, 9,125, 10,125, 10, - 10,118,111,105,100, 32,109,105,120, 95,115, 97,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111, -108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10, -123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9, -102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, - 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 59, 10, 9,114,103, 98, 95, -116,111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 10, 9,105,102, 40,104,115,118, 46,121, 32, - 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, - 50, 41, 59, 10, 10, 9, 9,104,115,118, 46,121, 32, 61, 32,102, 97, 99,109, 42,104,115,118, 46,121, 32, 43, 32,102, 97, 99, 42, -104,115,118, 50, 46,121, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, - 41, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,118, 97,108, 40,102,108,111, 97,116, 32,102, 97, 99, 44, - 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32, -111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, - 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, - 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111, -108, 49, 44, 32,104,115,118, 41, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, - 41, 59, 10, 10, 9,104,115,118, 46,122, 32, 61, 32,102, 97, 99,109, 42,104,115,118, 46,122, 32, 43, 32,102, 97, 99, 42,104,115, -118, 50, 46,122, 59, 10, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10, -125, 10, 10,118,111,105,100, 32,109,105,120, 95, 99,111,108,111,114, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, - 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99, -111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, - 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117, -116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 44, 32,116, -109,112, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9,105, -102, 40,104,115,118, 50, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, -111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 9, 9,104,115,118, 46,120, 32, 61, 32,104,115,118, 50, 46,120, 59, 10, - 9, 9,104,115,118, 46,121, 32, 61, 32,104,115,118, 50, 46,121, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104, -115,118, 44, 32,116,109,112, 41, 59, 32, 10, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40,111,117,116, 99,111, -108, 44, 32,116,109,112, 44, 32,102, 97, 99, 41, 59, 10, 9, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, - 97, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,118, 97,108,116,111,114,103, 98, 40,102,108,111, 97,116, 32,102, 97, 99, - 44, 32,115, 97,109,112,108,101,114, 49, 68, 32, 99,111,108,111,114,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111, -117,116, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, 97,108,112,104, 97, 41, 10,123, 10, 9,111,117, -116, 99,111,108, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,111,108,111,114,109, 97,112, 44, 32,102, 97, 99, 41, 59, - 10, 9,111,117,116, 97,108,112,104, 97, 32, 61, 32,111,117,116, 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,114, -103, 98,116,111, 98,119, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, -118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 99,111,108,111,114, 46,114, 42, 48, 46, 51, 53, 32, 43, 32, - 99,111,108,111,114, 46,103, 42, 48, 46, 52, 53, 32, 43, 32, 99,111,108,111,114, 46, 98, 42, 48, 46, 50, 59, 10,125, 10, 10,118, -111,105,100, 32,105,110,118,101,114,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32, -111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 46,120,121,122, 32, 61, - 32,109,105,120, 40, 99,111,108, 46,120,121,122, 44, 32,118,101, 99, 51, 40, 49, 46, 48, 44, 32, 49, 46, 48, 44, 32, 49, 46, 48, - 41, 32, 45, 32, 99,111,108, 46,120,121,122, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46,119, 32, 61, 32, 99, -111,108, 46,119, 59, 10,125, 10, 10,118,111,105,100, 32,104,117,101, 95,115, 97,116, 40,102,108,111, 97,116, 32,104,117,101, 44, - 32,102,108,111, 97,116, 32,115, 97,116, 44, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,102,108,111, 97,116, 32,102, - 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, - 10, 9,118,101, 99, 52, 32,104,115,118, 59, 10, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 44, 32,104,115, -118, 41, 59, 10, 10, 9,104,115,118, 91, 48, 93, 32, 43, 61, 32, 40,104,117,101, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9,105,102, - 40,104,115,118, 91, 48, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 48, 93, 45, 61, 49, 46, 48, 59, 32,101,108,115,101, 32,105, -102, 40,104,115,118, 91, 48, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 48, 93, 43, 61, 32, 49, 46, 48, 59, 10, 9,104,115,118, - 91, 49, 93, 32, 42, 61, 32,115, 97,116, 59, 10, 9,105,102, 40,104,115,118, 91, 49, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, - 49, 93, 61, 32, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,115,118, 91, 49, 93, 60, 48, 46, 48, 41, 32,104,115,118, - 91, 49, 93, 61, 32, 48, 46, 48, 59, 10, 9,104,115,118, 91, 50, 93, 32, 42, 61, 32,118, 97,108,117,101, 59, 10, 9,105,102, 40, -104,115,118, 91, 50, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, - 40,104,115,118, 91, 50, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 48, 46, 48, 59, 10, 10, 9,104,115,118, 95, -116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, -109,105,120, 40, 99,111,108, 44, 32,111,117,116, 99,111,108, 44, 32,102, 97, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115, -101,112, 97,114, 97,116,101, 95,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, -114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 98, 41, 10,123, 10, 9, -114, 32, 61, 32, 99,111,108, 46,114, 59, 10, 9,103, 32, 61, 32, 99,111,108, 46,103, 59, 10, 9, 98, 32, 61, 32, 99,111,108, 46, - 98, 59, 10,125, 10, 10,118,111,105,100, 32, 99,111,109, 98,105,110,101, 95,114,103, 98, 40,102,108,111, 97,116, 32,114, 44, 32, -102,108,111, 97,116, 32,103, 44, 32,102,108,111, 97,116, 32, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108, 41, 10, -123, 10, 9, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,114, 44, 32,103, 44, 32, 98, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10, -118,111,105,100, 32,111,117,116,112,117,116, 95,110,111,100,101, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,102,108,111, 97,116, - 32, 97,108,112,104, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,111,117,116,114, -103, 98, 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 46,114,103, 98, 44, 32, 97,108,112,104, 97, 41, 59, 10,125, 10, 10, 47, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 84, 69, 88, 84, 85, 82, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 47, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,102,108,105,112, 95, 98,108,101,110,100, 40,118,101, - 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118, -101, 99, 32, 61, 32,118,101, 99, 46,121,120,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95, 98,108, -101,110,100, 95,108,105,110, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, - 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, 59, - 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95, 98,108,101,110,100, 95,113,117, 97,100, 40,118,101, 99, 51, - 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97, -108, 32, 61, 32,109, 97,120, 40, 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10, 9, -111,117,116,118, 97,108, 32, 42, 61, 32,111,117,116,118, 97,108, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114, -101, 95,119,111,111,100, 95,115,105,110, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118, - 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110, -111,114,109, 97,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, 97, 32, 61, 32,115,113,114,116, 40,118,101, 99, 46,120, 42,118, -101, 99, 46,120, 32, 43, 32,118,101, 99, 46,121, 42,118,101, 99, 46,121, 32, 43, 32,118,101, 99, 46,122, 42,118,101, 99, 46,122, - 41, 42, 50, 48, 46, 48, 59, 10, 9,102,108,111, 97,116, 32,119,105, 32, 61, 32, 48, 46, 53, 32, 43, 32, 48, 46, 53, 42,115,105, -110, 40, 97, 41, 59, 10, 10, 9,118, 97,108,117,101, 32, 61, 32,119,105, 59, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, - 52, 40,119,105, 44, 32,119,105, 44, 32,119,105, 44, 32, 49, 46, 48, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32,118,101, - 99, 51, 40, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117, -114,101, 95,105,109, 97,103,101, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, - 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111, -114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,116, -101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 40,118,101, 99, 46,120,121, 32, 43, 32,118,101, 99, 50, 40, 49, 46, 48, - 44, 32, 49, 46, 48, 41, 41, 42, 48, 46, 53, 41, 59, 10, 9,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 59, 10, 10, 9,110,111, -114,109, 97,108, 46,120, 32, 61, 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46,114, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9,110, -111,114,109, 97,108, 46,121, 32, 61, 32, 50, 46, 48, 42, 40, 48, 46, 53, 32, 45, 32, 99,111,108,111,114, 46,103, 41, 59, 10, 9, -110,111,114,109, 97,108, 46,122, 32, 61, 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46, 98, 32, 45, 32, 48, 46, 53, 41, 59, 10, -125, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 77, 84, 69, 88, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111,114, 99,111, 40,118,101, 99, 51, 32, - 97,116,116,111,114, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,114, 99,111, 41, 10,123, 10, 9,111,114, 99,111, 32, - 61, 32, 97,116,116,111,114, 99,111, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,117,118, 40,118,101, 99, 50, - 32, 97,116,116,117,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 41, 10,123, 10, 9, 47, 42, 32,100,105,115, 97, 98, -108,101,100, 32,102,111,114, 32,110,111,119, 44, 32,119,111,114,107,115, 32,116,111,103,101,116,104,101,114, 32,119,105,116,104, - 32,108,101, 97,118,105,110,103, 32,111,117,116, 32,109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 10, 9, 32, 32, - 32,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32,118,101, 99, 50, 40, 49, 46, 48, 44, - 32, 49, 46, 48, 41, 44, 32, 48, 46, 48, 41, 59, 32, 42, 47, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, - 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,110,111,114,109, 40,118,101, 99, 51, 32, -110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, - 42, 32, 99,111,114,114,101,115,112,111,110,100,115, 32,116,111, 32,115,104,105, 45, 62,111,114,110, 44, 32,119,104,105, 99,104, - 32,105,115, 32,110,101,103, 97,116,101,100, 32,115,111, 32, 99, 97,110, 99,101,108,115, 10, 9, 32, 32, 32,111,117,116, 32, 98, -108,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,110,101,103, 97,116,105,111,110, 32, 42, 47, 10, 9,111,117,116,110,111, -114,109, 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,110,111,114,109, 97,108, 41, 59, 10,125, 10, 10,118,111,105, -100, 32,116,101,120, 99,111, 95,116, 97,110,103,101,110,116, 40,118,101, 99, 51, 32,116, 97,110,103,101,110,116, 44, 32,111,117, -116, 32,118,101, 99, 51, 32,111,117,116,116, 97,110,103,101,110,116, 41, 10,123, 10, 9,111,117,116,116, 97,110,103,101,110,116, - 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,116, 97,110,103,101,110,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116, -101,120, 99,111, 95,103,108,111, 98, 97,108, 40,109, 97,116, 52, 32,118,105,101,119,105,110,118,109, 97,116, 44, 32,118,101, 99, - 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108, 41, 10,123, 10, 9,103,108,111, 98, 97,108, - 32, 61, 32, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49, 46, 48, 41, 41, 46,120,121, -122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111, 98,106,101, 99,116, 40,109, 97,116, 52, 32,118,105,101, -119,105,110,118,109, 97,116, 44, 32,109, 97,116, 52, 32,111, 98,105,110,118,109, 97,116, 44, 32,118,101, 99, 51, 32, 99,111, 44, - 32,111,117,116, 32,118,101, 99, 51, 32,111, 98,106,101, 99,116, 41, 10,123, 10, 9,111, 98,106,101, 99,116, 32, 61, 32, 40,111, - 98,105,110,118,109, 97,116, 42, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49, 46, 48, - 41, 41, 41, 46,120,121,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,114,101,102,108, 40,118,101, 99, 51, - 32,118,110, 44, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,111,117,116, 32,118,101, 99, 51, 32,114,101,102, 41, 10,123, 10, - 9,114,101,102, 32, 61, 32,118,105,101,119, 32, 45, 32, 50, 46, 48, 42,100,111,116, 40,118,110, 44, 32,118,105,101,119, 41, 42, -118,110, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,110,111,114,109, 40,118,101, 99, 51, 32,110,111,114,109, - 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 42, 32, 98,108, -101,110,100,101,114, 32,114,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,105,115, 32,110,101,103, 97,116,101,100, 32, 42, - 47, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, 97,108,105,122,101, 40,110,111,114,109, 97,108, - 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 98,108,101,110,100, 40,118,101, 99, 51, 32,111, -117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32, -102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102, -108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, - 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99, -111,108, 32, 43, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114, -103, 98, 95,109,117,108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, - 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, - 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, - 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99,111, -108, 32, 61, 32, 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 41, 42,111,117,116, 99,111,108, 59, - 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 99,114,101,101,110, 40,118,101, 99, 51, 32,111,117, -116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102, -108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108, -111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, - 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,118,101, 99, 51, 40, 49, 46, 48, 41, 32, - 45, 32, 40,118,101, 99, 51, 40,102, 97, 99,109, 41, 32, 43, 32,102, 97, 99,116, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, - 45, 32,116,101,120, 99,111,108, 41, 41, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,111,117,116, 99,111,108, 41, 59, - 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,111,118,101,114,108, 97,121, 40,118,101, 99, 51, 32,111, -117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32, -102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102, -108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, - 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 60, 32, 48, 46, 53, - 41, 10, 9, 9,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 42, 40,102, 97, 99,109, 32, 43, 32, 50, - 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, - 46,114, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, 48, - 32, 45, 32,116,101,120, 99,111,108, 46,114, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41, 59, 10, - 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46,103, 32, 61, - 32,111,117,116, 99,111,108, 46,103, 42, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111, -108, 46,103, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, - 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46,103, 41, 41, - 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, 98, - 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 42, 40,102, 97, - 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46, 98, 41, 59, 10, 9,101,108,115,101, 10, 9, - 9,105,110, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, -116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46, 98, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111, -108, 46, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115,117, 98, 40,118,101, 99, 51, 32, + 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111, +108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 60, 32, 48, 46, 53, 41, 10, 9, + 9,111,117,116, 99,111,108, 46,114, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 99,111,108, 50, + 46,114, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, + 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46,114, 41, 41, 42, 40, 49, 46, + 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 60, 32, 48, + 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, + 42, 99,111,108, 50, 46,103, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 32, + 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46,103, 41, + 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, + 98, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, + 48, 42,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, + 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111, +108, 50, 46, 98, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41, 59, 10,125, 10, 10,118,111,105,100, + 32,109,105,120, 95,115,117, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118, +101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, + 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111, +108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 45, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, + 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, + 95,100,105,118, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, + 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, + 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99, +109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, + 10, 9,105,102, 40, 99,111,108, 50, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46,114, 32, 61, 32,102, + 97, 99,109, 42,111,117,116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46,114, 47, 99,111,108, 50, + 46,114, 59, 10, 9,105,102, 40, 99,111,108, 50, 46,103, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46,103, 32, + 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,103, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46,103, 47, 99, +111,108, 50, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 50, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, + 46, 98, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46, 98, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46, + 98, 47, 99,111,108, 50, 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,105,102,102, 40,102,108,111, 97,116, + 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32, +118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, + 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, + 97, 98,115, 40, 99,111,108, 49, 32, 45, 32, 99,111,108, 50, 41, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, + 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100, 97,114,107, 40,102,108,111, + 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117, +116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, + 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 46,114,103, 98, 32, 61, 32,109,105,110, 40, + 99,111,108, 49, 46,114,103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98, 42,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, + 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,108,105,103,104,116, 40,102, +108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32, +111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40, +102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 46,114,103, 98, 32, 61, 32,109, 97, +120, 40, 99,111,108, 49, 46,114,103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98, 42,102, 97, 99, 41, 59, 10, 9,111,117,116, 99, +111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,111,100,103,101, + 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, + 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109, +112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, + 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97, +116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9, 9,105,102, 40,116, +109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9, +101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46,114, 47,116,109,112, 41, 32, 62, 32, 49, + 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, + 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,109,112, 59, 10, 9,125, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, + 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, + 97, 99, 42, 99,111,108, 50, 46,103, 59, 10, 9, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111, +117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, +111,117,116, 99,111,108, 46,103, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, + 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,109,112, + 59, 10, 9,125, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108, +111, 97,116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, 9, 9,105,102, + 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, + 9, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 47,116,109,112, 41, 32, 62, + 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, + 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,116,109,112, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105, +120, 95, 98,117,114,110, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, + 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, + 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,116, +109,112, 44, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, + 32, 99,111,108, 49, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46,114, + 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 48, + 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, + 45, 32,111,117,116, 99,111,108, 46,114, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111, +108, 46,114, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, + 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, +114, 32, 61, 32,116,109,112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, + 46,103, 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, + 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, + 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, + 99,111,108, 46,103, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, + 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111, +108, 46,103, 32, 61, 32,116,109,112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111, +108, 50, 46, 98, 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, + 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, + 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111, +117,116, 99,111,108, 46, 98, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, + 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, + 99,111,108, 46, 98, 32, 61, 32,116,109,112, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,104,117,101, 40,102,108,111, + 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117, +116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, + 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, + 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104, +115,118, 44, 32,104,115,118, 50, 44, 32,116,109,112, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, + 32,104,115,118, 50, 41, 59, 10, 10, 9,105,102, 40,104,115,118, 50, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9, +114,103, 98, 95,116,111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 9, 9,104,115,118, 46,120, + 32, 61, 32,104,115,118, 50, 46,120, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,116,109,112, + 41, 59, 32, 10, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40,111,117,116, 99,111,108, 44, 32,116,109,112, 44, + 32,102, 97, 99, 41, 59, 10, 9, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10, 9,125, 10,125, + 10, 10,118,111,105,100, 32,109,105,120, 95,115, 97,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99, +111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, + 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, + 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111, +108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 59, 10, 9,114,103, 98, + 95,116,111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 10, 9,105,102, 40,104,115,118, 46,121, + 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115, +118, 50, 41, 59, 10, 10, 9, 9,104,115,118, 46,121, 32, 61, 32,102, 97, 99,109, 42,104,115,118, 46,121, 32, 43, 32,102, 97, 99, + 42,104,115,118, 50, 46,121, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111, +108, 41, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,118, 97,108, 40,102,108,111, 97,116, 32,102, 97, 99, + 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, + 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, + 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, + 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99, +111,108, 49, 44, 32,104,115,118, 41, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, + 50, 41, 59, 10, 10, 9,104,115,118, 46,122, 32, 61, 32,102, 97, 99,109, 42,104,115,118, 46,122, 32, 43, 32,102, 97, 99, 42,104, +115,118, 50, 46,122, 59, 10, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, + 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 99,111,108,111,114, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, + 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, + 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, + 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111, +117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 44, 32, +116,109,112, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9, +105,102, 40,104,115,118, 50, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118, + 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 9, 9,104,115,118, 46,120, 32, 61, 32,104,115,118, 50, 46,120, 59, + 10, 9, 9,104,115,118, 46,121, 32, 61, 32,104,115,118, 50, 46,121, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40, +104,115,118, 44, 32,116,109,112, 41, 59, 32, 10, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40,111,117,116, 99, +111,108, 44, 32,116,109,112, 44, 32,102, 97, 99, 41, 59, 10, 9, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, + 46, 97, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,118, 97,108,116,111,114,103, 98, 40,102,108,111, 97,116, 32,102, 97, + 99, 44, 32,115, 97,109,112,108,101,114, 49, 68, 32, 99,111,108,111,114,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 52, 32, +111,117,116, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, 97,108,112,104, 97, 41, 10,123, 10, 9,111, +117,116, 99,111,108, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,111,108,111,114,109, 97,112, 44, 32,102, 97, 99, 41, + 59, 10, 9,111,117,116, 97,108,112,104, 97, 32, 61, 32,111,117,116, 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32, +114,103, 98,116,111, 98,119, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117, +116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 99,111,108,111,114, 46,114, 42, 48, 46, 51, 53, 32, 43, + 32, 99,111,108,111,114, 46,103, 42, 48, 46, 52, 53, 32, 43, 32, 99,111,108,111,114, 46, 98, 42, 48, 46, 50, 59, 10,125, 10, 10, +118,111,105,100, 32,105,110,118,101,114,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, + 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 46,120,121,122, 32, + 61, 32,109,105,120, 40, 99,111,108, 46,120,121,122, 44, 32,118,101, 99, 51, 40, 49, 46, 48, 44, 32, 49, 46, 48, 44, 32, 49, 46, + 48, 41, 32, 45, 32, 99,111,108, 46,120,121,122, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46,119, 32, 61, 32, + 99,111,108, 46,119, 59, 10,125, 10, 10,118,111,105,100, 32,104,117,101, 95,115, 97,116, 40,102,108,111, 97,116, 32,104,117,101, + 44, 32,102,108,111, 97,116, 32,115, 97,116, 44, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,102,108,111, 97,116, 32, +102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10, +123, 10, 9,118,101, 99, 52, 32,104,115,118, 59, 10, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 44, 32,104, +115,118, 41, 59, 10, 10, 9,104,115,118, 91, 48, 93, 32, 43, 61, 32, 40,104,117,101, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9,105, +102, 40,104,115,118, 91, 48, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 48, 93, 45, 61, 49, 46, 48, 59, 32,101,108,115,101, 32, +105,102, 40,104,115,118, 91, 48, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 48, 93, 43, 61, 32, 49, 46, 48, 59, 10, 9,104,115, +118, 91, 49, 93, 32, 42, 61, 32,115, 97,116, 59, 10, 9,105,102, 40,104,115,118, 91, 49, 93, 62, 49, 46, 48, 41, 32,104,115,118, + 91, 49, 93, 61, 32, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,115,118, 91, 49, 93, 60, 48, 46, 48, 41, 32,104,115, +118, 91, 49, 93, 61, 32, 48, 46, 48, 59, 10, 9,104,115,118, 91, 50, 93, 32, 42, 61, 32,118, 97,108,117,101, 59, 10, 9,105,102, + 40,104,115,118, 91, 50, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 49, 46, 48, 59, 32,101,108,115,101, 32,105, +102, 40,104,115,118, 91, 50, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 48, 46, 48, 59, 10, 10, 9,104,115,118, + 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, + 32,109,105,120, 40, 99,111,108, 44, 32,111,117,116, 99,111,108, 44, 32,102, 97, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32, +115,101,112, 97,114, 97,116,101, 95,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, + 32,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 98, 41, 10,123, 10, + 9,114, 32, 61, 32, 99,111,108, 46,114, 59, 10, 9,103, 32, 61, 32, 99,111,108, 46,103, 59, 10, 9, 98, 32, 61, 32, 99,111,108, + 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32, 99,111,109, 98,105,110,101, 95,114,103, 98, 40,102,108,111, 97,116, 32,114, 44, + 32,102,108,111, 97,116, 32,103, 44, 32,102,108,111, 97,116, 32, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108, 41, + 10,123, 10, 9, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,114, 44, 32,103, 44, 32, 98, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, + 10,118,111,105,100, 32,111,117,116,112,117,116, 95,110,111,100,101, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,102,108,111, 97, +116, 32, 97,108,112,104, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,111,117,116, +114,103, 98, 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 46,114,103, 98, 44, 32, 97,108,112,104, 97, 41, 59, 10,125, 10, 10, 47, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 84, 69, 88, 84, 85, 82, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 47, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,102,108,105,112, 95, 98,108,101,110,100, 40,118, +101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116, +118,101, 99, 32, 61, 32,118,101, 99, 46,121,120,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95, 98, +108,101,110,100, 95,108,105,110, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, +118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, + 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95, 98,108,101,110,100, 95,113,117, 97,100, 40,118,101, 99, + 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, + 97,108, 32, 61, 32,109, 97,120, 40, 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10, + 9,111,117,116,118, 97,108, 32, 42, 61, 32,111,117,116,118, 97,108, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117, +114,101, 95,119,111,111,100, 95,115,105,110, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, +118, 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32, +110,111,114,109, 97,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, 97, 32, 61, 32,115,113,114,116, 40,118,101, 99, 46,120, 42, +118,101, 99, 46,120, 32, 43, 32,118,101, 99, 46,121, 42,118,101, 99, 46,121, 32, 43, 32,118,101, 99, 46,122, 42,118,101, 99, 46, +122, 41, 42, 50, 48, 46, 48, 59, 10, 9,102,108,111, 97,116, 32,119,105, 32, 61, 32, 48, 46, 53, 32, 43, 32, 48, 46, 53, 42,115, +105,110, 40, 97, 41, 59, 10, 10, 9,118, 97,108,117,101, 32, 61, 32,119,105, 59, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, + 99, 52, 40,119,105, 44, 32,119,105, 44, 32,119,105, 44, 32, 49, 46, 48, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32,118, +101, 99, 51, 40, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116, +117,114,101, 95,105,109, 97,103,101, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, + 97, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108, +111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32, +116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 40,118,101, 99, 46,120,121, 32, 43, 32,118,101, 99, 50, 40, 49, 46, + 48, 44, 32, 49, 46, 48, 41, 41, 42, 48, 46, 53, 41, 59, 10, 9,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 59, 10, 10, 9,110, +111,114,109, 97,108, 46,120, 32, 61, 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46,114, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9, +110,111,114,109, 97,108, 46,121, 32, 61, 32, 50, 46, 48, 42, 40, 48, 46, 53, 32, 45, 32, 99,111,108,111,114, 46,103, 41, 59, 10, + 9,110,111,114,109, 97,108, 46,122, 32, 61, 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46, 98, 32, 45, 32, 48, 46, 53, 41, 59, + 10,125, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 77, 84, 69, 88, 32, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111,114, 99,111, 40,118,101, 99, 51, + 32, 97,116,116,111,114, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,114, 99,111, 41, 10,123, 10, 9,111,114, 99,111, + 32, 61, 32, 97,116,116,111,114, 99,111, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,117,118, 40,118,101, 99, + 50, 32, 97,116,116,117,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 41, 10,123, 10, 9, 47, 42, 32,100,105,115, 97, + 98,108,101,100, 32,102,111,114, 32,110,111,119, 44, 32,119,111,114,107,115, 32,116,111,103,101,116,104,101,114, 32,119,105,116, +104, 32,108,101, 97,118,105,110,103, 32,111,117,116, 32,109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 10, 9, 32, + 32, 32,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32,118,101, 99, 50, 40, 49, 46, 48, + 44, 32, 49, 46, 48, 41, 44, 32, 48, 46, 48, 41, 59, 32, 42, 47, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117, +118, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,110,111,114,109, 40,118,101, 99, 51, + 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, + 47, 42, 32, 99,111,114,114,101,115,112,111,110,100,115, 32,116,111, 32,115,104,105, 45, 62,111,114,110, 44, 32,119,104,105, 99, +104, 32,105,115, 32,110,101,103, 97,116,101,100, 32,115,111, 32, 99, 97,110, 99,101,108,115, 10, 9, 32, 32, 32,111,117,116, 32, + 98,108,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,110,101,103, 97,116,105,111,110, 32, 42, 47, 10, 9,111,117,116,110, +111,114,109, 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,110,111,114,109, 97,108, 41, 59, 10,125, 10, 10,118,111, +105,100, 32,116,101,120, 99,111, 95,116, 97,110,103,101,110,116, 40,118,101, 99, 51, 32,116, 97,110,103,101,110,116, 44, 32,111, +117,116, 32,118,101, 99, 51, 32,111,117,116,116, 97,110,103,101,110,116, 41, 10,123, 10, 9,111,117,116,116, 97,110,103,101,110, +116, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,116, 97,110,103,101,110,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32, +116,101,120, 99,111, 95,103,108,111, 98, 97,108, 40,109, 97,116, 52, 32,118,105,101,119,105,110,118,109, 97,116, 44, 32,118,101, + 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108, 41, 10,123, 10, 9,103,108,111, 98, 97, +108, 32, 61, 32, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49, 46, 48, 41, 41, 46,120, +121,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111, 98,106,101, 99,116, 40,109, 97,116, 52, 32,118,105, +101,119,105,110,118,109, 97,116, 44, 32,109, 97,116, 52, 32,111, 98,105,110,118,109, 97,116, 44, 32,118,101, 99, 51, 32, 99,111, + 44, 32,111,117,116, 32,118,101, 99, 51, 32,111, 98,106,101, 99,116, 41, 10,123, 10, 9,111, 98,106,101, 99,116, 32, 61, 32, 40, +111, 98,105,110,118,109, 97,116, 42, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49, 46, + 48, 41, 41, 41, 46,120,121,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,114,101,102,108, 40,118,101, 99, + 51, 32,118,110, 44, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,111,117,116, 32,118,101, 99, 51, 32,114,101,102, 41, 10,123, + 10, 9,114,101,102, 32, 61, 32,118,105,101,119, 32, 45, 32, 50, 46, 48, 42,100,111,116, 40,118,110, 44, 32,118,105,101,119, 41, + 42,118,110, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,110,111,114,109, 40,118,101, 99, 51, 32,110,111,114, +109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 42, 32, 98, +108,101,110,100,101,114, 32,114,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,105,115, 32,110,101,103, 97,116,101,100, 32, + 42, 47, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, 97,108,105,122,101, 40,110,111,114,109, 97, +108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 98,108,101,110,100, 40,118,101, 99, 51, 32, 111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9, -105,110, 99,111,108, 32, 61, 32, 45,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99, -111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 97,100,100, 40,118,101, 99, 51, 32,111,117, -116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102, -108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,105,110, - 99,111,108, 32, 61, 32,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108, 59, - 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,118, 40,118,101, 99, 51, 32,111,117,116, 99,111, +102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99, +109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, + 99,111,108, 32, 43, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, +114,103, 98, 95,109,117,108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, + 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, + 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, + 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99, +111,108, 32, 61, 32, 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 41, 42,111,117,116, 99,111,108, + 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 99,114,101,101,110, 40,118,101, 99, 51, 32,111, +117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32, +102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102, +108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, + 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,118,101, 99, 51, 40, 49, 46, 48, 41, + 32, 45, 32, 40,118,101, 99, 51, 40,102, 97, 99,109, 41, 32, 43, 32,102, 97, 99,116, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41, + 32, 45, 32,116,101,120, 99,111,108, 41, 41, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,111,117,116, 99,111,108, 41, + 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,111,118,101,114,108, 97,121, 40,118,101, 99, 51, 32, +111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, + 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9, +102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99, +109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 60, 32, 48, 46, + 53, 41, 10, 9, 9,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 42, 40,102, 97, 99,109, 32, 43, 32, + 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111, +108, 46,114, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, + 48, 32, 45, 32,116,101,120, 99,111,108, 46,114, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41, 59, + 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46,103, 32, + 61, 32,111,117,116, 99,111,108, 46,103, 42, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99, +111,108, 46,103, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40, +102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46,103, 41, + 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, + 98, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 42, 40,102, + 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46, 98, 41, 59, 10, 9,101,108,115,101, 10, + 9, 9,105,110, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, + 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46, 98, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99, +111,108, 46, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115,117, 98, 40,118,101, 99, 51, + 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, + 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, + 9,105,110, 99,111,108, 32, 61, 32, 45,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, + 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 97,100,100, 40,118,101, 99, 51, 32,111, +117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32, +102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,105, +110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108, + 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,118, 40,118,101, 99, 51, 32,111,117,116, 99, +111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, + 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97, +116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, + 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32, +105,110, 99,111,108, 46,114, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99,116, 42,111, +117,116, 99,111,108, 46,114, 47,116,101,120, 99,111,108, 46,114, 59, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,103, 32, 33, + 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,103, 32, 43, + 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46,103, 47,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40,116,101,120, + 99,111,108, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,102, 97, 99,109, 42,111,117,116, + 99,111,108, 46, 98, 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46, 98, 47,116,101,120, 99,111,108, 46, 98, 59, 10, +125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,102,102, 40,118,101, 99, 51, 32,111,117,116, 99,111, 108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97, 116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, - 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,105, -110, 99,111,108, 46,114, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99,116, 42,111,117, -116, 99,111,108, 46,114, 47,116,101,120, 99,111,108, 46,114, 59, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,103, 32, 33, 61, - 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,103, 32, 43, 32, -102, 97, 99,116, 42,111,117,116, 99,111,108, 46,103, 47,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40,116,101,120, 99, -111,108, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99, -111,108, 46, 98, 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46, 98, 47,116,101,120, 99,111,108, 46, 98, 59, 10,125, - 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,102,102, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, - 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, - 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, -102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, - 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32, -102, 97, 99,116, 42, 97, 98,115, 40,116,101,120, 99,111,108, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111, -105,100, 32,109,116,101,120, 95,114,103, 98, 95,100, 97,114,107, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, - 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99, -103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, - 44, 32, 99,111,108, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, - 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114, 59, 10, - 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,108, 46,114, 32, 61, 32, 99,111, -108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 59, 10, 9, 99,111,108, - 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99, -111,108, 46,103, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, -103, 32, 61, 32,111,117,116, 99,111,108, 46,103, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, - 46, 98, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46, 98, 41, 32,105,110, 99,111,108, 46, 98, 32, - 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 59, 10, -125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,108,105,103,104,116, 40,118,101, 99, 51, 32,111,117,116, 99, + 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, + 32,102, 97, 99,116, 42, 97, 98,115, 40,116,101,120, 99,111,108, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118, +111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100, 97,114,107, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118, +101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, + 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99, +109, 44, 32, 99,111,108, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, + 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114, 59, + 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,108, 46,114, 32, 61, 32, 99, +111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 59, 10, 9, 99,111, +108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, + 99,111,108, 46,103, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, + 46,103, 32, 61, 32,111,117,116, 99,111,108, 46,103, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111, +108, 46, 98, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46, 98, 41, 32,105,110, 99,111,108, 46, 98, + 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 59, + 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,108,105,103,104,116, 40,118,101, 99, 51, 32,111,117,116, + 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108, +111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, + 97,116, 32,102, 97, 99,109, 44, 32, 99,111,108, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, + 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, + 99,111,108, 46,114, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,108, + 46,114, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46, +114, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,108, + 32, 62, 32,111,117,116, 99,111,108, 46,103, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, + 32,105,110, 99,111,108, 46,103, 32, 61, 32,111,117,116, 99,111,108, 46,103, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, + 42,116,101,120, 99,111,108, 46, 98, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46, 98, 41, 32,105, +110, 99,111,108, 46, 98, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, + 99,111,108, 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,104,117,101, 40,118,101, 99, 51, + 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, + 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, + 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95,104,117,101, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32, +118,101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, + 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, + 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 97,116, 40,118,101, 99, 51, 32,111,117,116, 99, 111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, - 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97, -116, 32,102, 97, 99,109, 44, 32, 99,111,108, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, - 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99, -111,108, 46,114, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,108, 46, -114, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, - 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 32, - 62, 32,111,117,116, 99,111,108, 46,103, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32, -105,110, 99,111,108, 46,103, 32, 61, 32,111,117,116, 99,111,108, 46,103, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42, -116,101,120, 99,111,108, 46, 98, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46, 98, 41, 32,105,110, - 99,111,108, 46, 98, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99, -111,108, 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,104,117,101, 40,118,101, 99, 51, 32, -111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, - 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9, -118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95,104,117,101, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118, -101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, - 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, - 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 97,116, 40,118,101, 99, 51, 32,111,117,116, 99,111, -108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97, -116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, - 99,111,108, 59, 10, 10, 9,109,105,120, 95,115, 97,116, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111, -117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, - 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118, -111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,118, 97,108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, - 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99, -103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, - 10, 9,109,105,120, 95,118, 97,108, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,108, + 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, + 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95,115, 97,116, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40, +111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, + 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10, +118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,118, 97,108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118, +101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, + 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, + 10, 10, 9,109,105,120, 95,118, 97,108, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111, +108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41, + 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32, +109,116,101,120, 95,114,103, 98, 95, 99,111,108,111,114, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, + 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, + 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9, +109,105,120, 95, 99,111,108,111,114, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109, -116,101,120, 95,114,103, 98, 95, 99,111,108,111,114, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32, -116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32, -111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9,109, -105,120, 95, 99,111,108,111,114, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,108, 44, - 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, - 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116, -101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,105,110,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32, -102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,109, 44, 32,102,108,111, 97, -116, 32,102,108,105,112, 41, 10,123, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, - 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,102, 40,102,108,105,112, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, - 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32,102, 97, 99,116, 59, 10, 9, 9,102, 97, 99,116, 32, 61, 32,102, 97, 99,109, - 59, 10, 9, 9,102, 97, 99,109, 32, 61, 32,116,109,112, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, -118, 97,108,117,101, 95, 98,108,101,110,100, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32, -116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32, -102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9, -102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99, -116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32, -102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111, -105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,109,117,108, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32, -102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32, -102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111, -108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97, -114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,102, 97, - 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,103, 59, 10, 9,105,110, 99,111,108, 32, 61, 32, 40,102, 97, 99,109, 32, - 43, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 41, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109, -116,101,120, 95,118, 97,108,117,101, 95,115, 99,114,101,101,110, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102, -108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, - 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, - 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114, -115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,102, 97, 99, -109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,103, 59, 10, 9,105,110, 99,111,108, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40, -102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 41, 41, 42, 40, 49, 46, 48, - 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,115, -117, 98, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102, -108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105, -112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99, -109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32, -102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,102, 97, 99,116, 32, 61, 32, 45,102, 97, 99,116, 59, 10, 9,105,110, - 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118, -111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 97,100,100, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, +116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,105,110,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, + 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,109, 44, 32,102,108,111, + 97,116, 32,102,108,105,112, 41, 10,123, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, + 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,102, 40,102,108,105,112, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, + 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32,102, 97, 99,116, 59, 10, 9, 9,102, 97, 99,116, 32, 61, 32,102, 97, 99, +109, 59, 10, 9, 9,102, 97, 99,109, 32, 61, 32,116,109,112, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, + 95,118, 97,108,117,101, 95, 98,108,101,110,100, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, + 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, + 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, + 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, + 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, + 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118, +111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,109,117,108, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99, 111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,102, - 97, 99,116, 32, 61, 32,102, 97, 99,116, 59, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, - 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100,105, -118, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108, -111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, - 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, - 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, - 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,105,102, 40,116,101,120, 99,111,108, 32, 33, 61, 32, 48, 46, 48, 41, 10, - 9, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116, 42,111,117,116, - 99,111,108, 47,116,101,120, 99,111,108, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 32, 61, 32, 48, 46, 48, 59, - 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100,105,102,102, 40,102,108,111, 97,116, 32,111, -117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, - 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108,111, - 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, - 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, - 41, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116, 42, - 97, 98,115, 40,116,101,120, 99,111,108, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116, -101,120, 95,118, 97,108,117,101, 95,100, 97,114,107, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97, -116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, - 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, - 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, - 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,102,108,111, 97,116, 32, - 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, - 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 32, 61, 32,111, -117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,108,105,103,104,116, 40, -102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97, -116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32, -111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, - 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99, -109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,102,108,111, 97,116, 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, - 99,111,108, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32, 99, -111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 32, 61, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, - 32,109,116,101,120, 95,118, 97,108,117,101, 95, 99,108, 97,109,112, 95,112,111,115,105,116,105,118,101, 40,102,108,111, 97,116, - 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,111,117,116,102, 97, - 99, 32, 61, 32,109, 97,120, 40,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, -118, 97,108,117,101, 95, 99,108, 97,109,112, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, - 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,111,117,116,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, - 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,104, 97,114, 95,100,105,118,105, -100,101, 40,102,108,111, 97,116, 32,104, 97,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,104, 97,114, 41, 10, -123, 10, 9,111,117,116,104, 97,114, 32, 61, 32,104, 97,114, 47, 49, 50, 56, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, -116,101,120, 95,104, 97,114, 95,109,117,108,116,105,112,108,121, 95, 99,108, 97,109,112, 40,102,108,111, 97,116, 32,104, 97,114, - 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,104, 97,114, 41, 10,123, 10, 9,104, 97,114, 32, 42, 61, 32, 49, 50, - 56, 46, 48, 59, 10, 10, 9,105,102, 40,104, 97,114, 32, 60, 32, 49, 46, 48, 41, 32,111,117,116,104, 97,114, 32, 61, 32, 49, 46, - 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,104, 97,114, 32, 62, 32, 53, 49, 49, 46, 48, 41, 32,111,117,116,104, 97,114, 32, - 61, 32, 53, 49, 49, 46, 48, 59, 10, 9,101,108,115,101, 32,111,117,116,104, 97,114, 32, 61, 32,104, 97,114, 59, 10,125, 10, 10, -118,111,105,100, 32,109,116,101,120, 95, 97,108,112,104, 97, 95,102,114,111,109, 95, 99,111,108, 40,118,101, 99, 52, 32, 99,111, -108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 97,108,112,104, 97, 41, 10,123, 10, 9, 97,108,112,104, 97, 32, 61, 32, 99, -111,108, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 97,108,112,104, 97, 95,116,111, 95, 99,111,108, 40, -118,101, 99, 52, 32, 99,111,108, 44, 32,102,108,111, 97,116, 32, 97,108,112,104, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32, -111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, 98, - 44, 32, 97,108,112,104, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98,116,111,105,110,116, 40, -118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,116,101,110,115,105,116,121, 41, 10,123, - 10, 9,105,110,116,101,110,115,105,116,121, 32, 61, 32,100,111,116, 40,118,101, 99, 51, 40, 48, 46, 51, 53, 44, 32, 48, 46, 52, - 53, 44, 32, 48, 46, 50, 41, 44, 32,114,103, 98, 46,114,103, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, -118, 97,108,117,101, 95,105,110,118,101,114,116, 40,102,108,111, 97,116, 32,105,110,118, 97,108,117,101, 44, 32,111,117,116, 32, -102,108,111, 97,116, 32,111,117,116,118, 97,108,117,101, 41, 10,123, 10, 9,111,117,116,118, 97,108,117,101, 32, 61, 32, 49, 46, - 48, 32, 45, 32,105,110,118, 97,108,117,101, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,105,110, -118,101,114,116, 40,118,101, 99, 52, 32,105,110,114,103, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, - 41, 10,123, 10, 9,111,117,116,114,103, 98, 32, 61, 32,118,101, 99, 52, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,105, -110,114,103, 98, 46,114,103, 98, 44, 32,105,110,114,103, 98, 46, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, - 95,118, 97,108,117,101, 95,115,116,101,110, 99,105,108, 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,102,108, -111, 97,116, 32,105,110,116,101,110,115,105,116,121, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,116,101,110, - 99,105,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,105,110,116,101,110,115,105,116,121, 41, 10,123, 10, 9, -102,108,111, 97,116, 32,102, 97, 99,116, 32, 61, 32,105,110,116,101,110,115,105,116,121, 59, 10, 9,111,117,116,105,110,116,101, -110,115,105,116,121, 32, 61, 32,105,110,116,101,110,115,105,116,121, 42,115,116,101,110, 99,105,108, 59, 10, 9,111,117,116,115, -116,101,110, 99,105,108, 32, 61, 32,115,116,101,110, 99,105,108, 42,102, 97, 99,116, 59, 10,125, 10, 10,118,111,105,100, 32,109, -116,101,120, 95,114,103, 98, 95,115,116,101,110, 99,105,108, 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,118, -101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,116,101,110, 99,105,108, 44, 32,111, -117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,116, 32, 61, 32, -114,103, 98, 46, 97, 59, 10, 9,111,117,116,114,103, 98, 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 46,114,103, 98, 44, 32,114, -103, 98, 46, 97, 42,115,116,101,110, 99,105,108, 41, 59, 10, 9,111,117,116,115,116,101,110, 99,105,108, 32, 61, 32,115,116,101, -110, 99,105,108, 42,102, 97, 99,116, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, 95, -111,102,115, 40,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,118,101, 99, 51, 32,111,102,115, 44, 32,111,117,116, 32,118,101, - 99, 51, 32,111,117,116,116,101,120, 99,111, 41, 10,123, 10, 9,111,117,116,116,101,120, 99,111, 32, 61, 32,116,101,120, 99,111, - 32, 43, 32,111,102,115, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, 95,115,105,122, -101, 40,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,118,101, 99, 51, 32,115,105,122,101, 44, 32,111,117,116, 32,118,101, 99, - 51, 32,111,117,116,116,101,120, 99,111, 41, 10,123, 10, 9,111,117,116,116,101,120, 99,111, 32, 61, 32,115,105,122,101, 42,116, -101,120, 99,111, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 40,118,101, - 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118, -101, 99, 32, 61, 32,118,101, 99, 51, 40,118,101, 99, 46,120,121, 42, 48, 46, 53, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53, 44, - 32, 48, 46, 53, 41, 44, 32,118,101, 99, 46,122, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,105,109, 97,103, -101, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,102, -108,111, 97,116, 32,118, 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32, -118,101, 99, 51, 32,110,111,114,109, 97,108, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,116,101,120,116,117,114,101, 50, - 68, 40,105,109, 97, 44, 32,118,101, 99, 46,120,121, 41, 59, 10, 9,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 59, 10, 9, 10, - 9,110,111,114,109, 97,108, 32, 61, 32, 50, 46, 48, 42, 40,118,101, 99, 51, 40, 99,111,108,111,114, 46,114, 44, 32, 45, 99,111, -108,111,114, 46,103, 44, 32, 99,111,108,111,114, 46, 98, 41, 32, 45, 32,118,101, 99, 51, 40, 48, 46, 53, 44, 32, 45, 48, 46, 53, - 44, 32, 48, 46, 53, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,110,101,103, 97,116,101, 95,116,101,120, -110,111,114,109, 97,108, 40,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116, -110,111,114,109, 97,108, 41, 10,123, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32,118,101, 99, 51, 40, 45,110,111,114, -109, 97,108, 46,120, 44, 32, 45,110,111,114,109, 97,108, 46,121, 44, 32,110,111,114,109, 97,108, 46,122, 41, 59, 10,125, 10, 10, -118,111,105,100, 32,109,116,101,120, 95,110,115,112, 97, 99,101, 95,116, 97,110,103,101,110,116, 40,118,101, 99, 51, 32,116, 97, -110,103,101,110,116, 44, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,118,101, 99, 51, 32,116,101,120,110,111,114,109, - 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9,116, 97,110,103,101, -110,116, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,116, 97,110,103,101,110,116, 41, 59, 10, 9,118,101, 99, 51, 32, 66, - 32, 61, 32, 99,114,111,115,115, 40,110,111,114,109, 97,108, 44, 32,116, 97,110,103,101,110,116, 41, 59, 10, 10, 9,111,117,116, -110,111,114,109, 97,108, 32, 61, 32,116,101,120,110,111,114,109, 97,108, 46,120, 42,116, 97,110,103,101,110,116, 32, 43, 32,116, -101,120,110,111,114,109, 97,108, 46,121, 42, 66, 32, 43, 32,116,101,120,110,111,114,109, 97,108, 46,122, 42,110,111,114,109, 97, -108, 59, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,117,116,110,111,114, -109, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,108,101,110,100, 95,110,111,114,109, 97,108, 40, -102,108,111, 97,116, 32,110,111,114,102, 97, 99, 44, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,118,101, 99, 51, 32, -110,101,119,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, - 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32,110,111,114,102, 97, 99, 41, 42,110,111,114, -109, 97,108, 32, 43, 32,110,111,114,102, 97, 99, 42,110,101,119,110,111,114,109, 97,108, 59, 10, 9,111,117,116,110,111,114,109, - 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,117,116,110,111,114,109, 97,108, 41, 59, 10,125, 10, 10, 47, 42, - 42, 42, 42, 42, 42, 42, 32, 77, 65, 84, 69, 82, 73, 65, 76, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,118,111,105,100, - 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,115,117,110, 95,104,101,109,105, 40,118,101, 99, 51, 32,108, - 97,109,112,118,101, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,100, -105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,108,118, 32, 61, 32, -108, 97,109,112,118,101, 99, 59, 10, 9,100,105,115,116, 32, 61, 32, 49, 46, 48, 59, 10, 9,118,105,115,105,102, 97, 99, 32, 61, - 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,111,116, -104,101,114, 40,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,108, 97,109,112, 99,111, 44, 32,111,117,116, 32,118,101, - 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, - 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,108,118, 32, 61, 32, 99,111, 32, 45, 32,108, 97,109,112, 99,111, 59, 10, 9, -100,105,115,116, 32, 61, 32,108,101,110,103,116,104, 40,108,118, 41, 59, 10, 9,108,118, 32, 61, 32,110,111,114,109, 97,108,105, -122,101, 40,108,118, 41, 59, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32, -108, 97,109,112, 95,102, 97,108,108,111,102,102, 95,105,110,118,108,105,110,101, 97,114, 40,102,108,111, 97,116, 32,108, 97,109, -112,100,105,115,116, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115, -105,102, 97, 99, 41, 10,123, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32,108, 97,109,112,100,105,115,116, 47, 40,108, 97,109, -112,100,105,115,116, 32, 43, 32,100,105,115,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,102, 97,108,108, -111,102,102, 95,105,110,118,115,113,117, 97,114,101, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,102,108, -111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9, -118,105,115,105,102, 97, 99, 32, 61, 32,108, 97,109,112,100,105,115,116, 47, 40,108, 97,109,112,100,105,115,116, 32, 43, 32,100, -105,115,116, 42,100,105,115,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,102, 97,108,108,111,102,102, 95, -115,108,105,100,101,114,115, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,102,108,111, 97,116, 32,108,100, - 49, 44, 32,102,108,111, 97,116, 32,108,100, 50, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108, -111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116,107,119, - 32, 61, 32,108, 97,109,112,100,105,115,116, 42,108, 97,109,112,100,105,115,116, 59, 10, 10, 9,118,105,115,105,102, 97, 99, 32, - 61, 32,108, 97,109,112,100,105,115,116, 47, 40,108, 97,109,112,100,105,115,116, 32, 43, 32,108,100, 49, 42,100,105,115,116, 41, - 59, 10, 9,118,105,115,105,102, 97, 99, 32, 42, 61, 32,108, 97,109,112,100,105,115,116,107,119, 47, 40,108, 97,109,112,100,105, -115,116,107,119, 32, 43, 32,108,100, 50, 42,100,105,115,116, 42,100,105,115,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, - 97,109,112, 95,102, 97,108,108,111,102,102, 95, 99,117,114,118,101, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116, - 44, 32,115, 97,109,112,108,101,114, 49, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,102,108,111, 97,116, 32,100,105,115,116, - 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,118,105,115,105,102, 97, 99, 32, - 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,100,105,115,116, 47,108, 97,109,112,100, -105,115,116, 41, 46,120, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95, -115,112,104,101,114,101, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,102,108,111, 97,116, 32,100,105,115, -116, 44, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, -105,115,105,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,116, 61, 32,108, 97,109,112,100,105,115,116, 32, 45, 32,100, -105,115,116, 59, 10, 10, 9,111,117,116,118,105,115,105,102, 97, 99, 61, 32,118,105,115,105,102, 97, 99, 42,109, 97,120, 40,116, - 44, 32, 48, 46, 48, 41, 47,108, 97,109,112,100,105,115,116, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105, -115,105, 98,105,108,105,116,121, 95,115,112,111,116, 95,115,113,117, 97,114,101, 40,118,101, 99, 51, 32,108, 97,109,112,118,101, - 99, 44, 32,109, 97,116, 52, 32,108, 97,109,112,105,109, 97,116, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102, -108,111, 97,116, 32,105,110,112,114, 41, 10,123, 10, 9,105,102, 40,100,111,116, 40,108,118, 44, 32,108, 97,109,112,118,101, 99, - 41, 32, 62, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,118,101, 99, 51, 32,108,118,114,111,116, 32, 61, 32, 40,108, 97,109,112,105, -109, 97,116, 42,118,101, 99, 52, 40,108,118, 44, 32, 48, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9, 9,102,108,111, 97,116, 32, -120, 32, 61, 32,109, 97,120, 40, 97, 98,115, 40,108,118,114,111,116, 46,120, 47,108,118,114,111,116, 46,122, 41, 44, 32, 97, 98, -115, 40,108,118,114,111,116, 46,121, 47,108,118,114,111,116, 46,122, 41, 41, 59, 10, 10, 9, 9,105,110,112,114, 32, 61, 32, 49, - 46, 48, 47,115,113,114,116, 40, 49, 46, 48, 32, 43, 32,120, 42,120, 41, 59, 10, 9,125, 10, 9,101,108,115,101, 10, 9, 9,105, -110,112,114, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105, -116,121, 95,115,112,111,116, 95, 99,105,114, 99,108,101, 40,118,101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,118,101, 99, - 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,112,114, 41, 10,123, 10, 9,105,110,112,114, 32, 61, 32, -100,111,116, 40,108,118, 44, 32,108, 97,109,112,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118, -105,115,105, 98,105,108,105,116,121, 95,115,112,111,116, 40,102,108,111, 97,116, 32,115,112,111,116,115,105, 44, 32,102,108,111, - 97,116, 32,115,112,111,116, 98,108, 44, 32,102,108,111, 97,116, 32,105,110,112,114, 44, 32,102,108,111, 97,116, 32,118,105,115, -105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,102, -108,111, 97,116, 32,116, 32, 61, 32,115,112,111,116,115,105, 59, 10, 10, 9,105,102, 40,105,110,112,114, 32, 60, 61, 32,116, 41, - 32,123, 10, 9, 9,111,117,116,118,105,115,105,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32, -123, 10, 9, 9,116, 32, 61, 32,105,110,112,114, 32, 45, 32,116, 59, 10, 10, 9, 9, 47, 42, 32,115,111,102,116, 32, 97,114,101, - 97, 32, 42, 47, 10, 9, 9,105,102, 40,115,112,111,116, 98,108, 32, 33, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,105,110,112,114, - 32, 42, 61, 32,115,109,111,111,116,104,115,116,101,112, 40, 48, 46, 48, 44, 32, 49, 46, 48, 44, 32,116, 47,115,112,111,116, 98, -108, 41, 59, 10, 10, 9, 9,111,117,116,118,105,115,105,102, 97, 99, 32, 61, 32,118,105,115,105,102, 97, 99, 42,105,110,112,114, - 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95, 99,108, 97, -109,112, 40,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, -105,115,105,102, 97, 99, 41, 10,123, 10, 9,111,117,116,118,105,115,105,102, 97, 99, 32, 61, 32, 40,118,105,115,105,102, 97, 99, - 32, 60, 32, 48, 46, 48, 48, 49, 41, 63, 32, 48, 46, 48, 58, 32,118,105,115,105,102, 97, 99, 59, 10,125, 10, 10,118,111,105,100, - 32,115,104, 97,100,101, 95,118,105,101,119, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,105, -101,119, 41, 10,123, 10, 9, 47, 42, 32,104, 97,110,100,108,101, 32,112,101,114,115,112,101, 99,116,105,118,101, 47,111,114,116, -104,111,103,114, 97,112,104,105, 99, 32, 42, 47, 10, 9,118,105,101,119, 32, 61, 32, 40,103,108, 95, 80,114,111,106,101, 99,116, -105,111,110, 77, 97,116,114,105,120, 91, 51, 93, 91, 51, 93, 32, 61, 61, 32, 48, 46, 48, 41, 63, 32,110,111,114,109, 97,108,105, -122,101, 40, 99,111, 41, 58, 32,118,101, 99, 51, 40, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 45, 49, 46, 48, 41, 59, 10,125, 10, - 10,118,111,105,100, 32,115,104, 97,100,101, 95,116, 97,110,103,101,110,116, 95,118, 40,118,101, 99, 51, 32,108,118, 44, 32,118, -101, 99, 51, 32,116, 97,110,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,110, 41, 10,123, 10, 9,118,101, 99, 51, 32, 99, - 32, 61, 32, 99,114,111,115,115, 40,108,118, 44, 32,116, 97,110,103, 41, 59, 10, 9,118,101, 99, 51, 32,118,110,111,114, 32, 61, - 32, 99,114,111,115,115, 40, 99, 44, 32,116, 97,110,103, 41, 59, 10, 10, 9,118,110, 32, 61, 32, 45,110,111,114,109, 97,108,105, -122,101, 40,118,110,111,114, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,105,110,112, 40,118,101, 99, 51, - 32,118,110, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,112, 41, 10,123, 10, 9, -105,110,112, 32, 61, 32,100,111,116, 40,118,110, 44, 32,108,118, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, - 95,105,115, 95,110,111, 95,100,105,102,102,117,115,101, 40,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9, -105,115, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,105,115, 95,104,101,109,105, 40, -102,108,111, 97,116, 32,105,110,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105,115, 32, 61, - 32, 48, 46, 53, 42,105,110,112, 32, 43, 32, 48, 46, 53, 59, 10,125, 10, 10,102,108,111, 97,116, 32, 97,114,101, 97, 95,108, 97, -109,112, 95,101,110,101,114,103,121, 40,109, 97,116, 52, 32, 97,114,101, 97, 44, 32,118,101, 99, 51, 32, 99,111, 44, 32,118,101, - 99, 51, 32,118,110, 41, 10,123, 10, 9,118,101, 99, 51, 32,118,101, 99, 91, 52, 93, 44, 32, 99, 91, 52, 93, 59, 10, 9,102,108, -111, 97,116, 32,114, 97,100, 91, 52, 93, 44, 32,102, 97, 99, 59, 10, 9, 10, 9,118,101, 99, 91, 48, 93, 32, 61, 32,110,111,114, -109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,101, 97, 91, 48, 93, 46,120,121,122, 41, 59, 10, 9,118,101, 99, 91, 49, - 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,101, 97, 91, 49, 93, 46,120,121,122, 41, 59, - 10, 9,118,101, 99, 91, 50, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,101, 97, 91, 50, - 93, 46,120,121,122, 41, 59, 10, 9,118,101, 99, 91, 51, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 32, 45, - 32, 97,114,101, 97, 91, 51, 93, 46,120,121,122, 41, 59, 10, 10, 9, 99, 91, 48, 93, 32, 61, 32,110,111,114,109, 97,108,105,122, -101, 40, 99,114,111,115,115, 40,118,101, 99, 91, 48, 93, 44, 32,118,101, 99, 91, 49, 93, 41, 41, 59, 10, 9, 99, 91, 49, 93, 32, - 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,114,111,115,115, 40,118,101, 99, 91, 49, 93, 44, 32,118,101, 99, 91, 50, 93, - 41, 41, 59, 10, 9, 99, 91, 50, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,114,111,115,115, 40,118,101, 99, 91, - 50, 93, 44, 32,118,101, 99, 91, 51, 93, 41, 41, 59, 10, 9, 99, 91, 51, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, - 99,114,111,115,115, 40,118,101, 99, 91, 51, 93, 44, 32,118,101, 99, 91, 48, 93, 41, 41, 59, 10, 10, 9,114, 97,100, 91, 48, 93, - 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 48, 93, 44, 32,118,101, 99, 91, 49, 93, 41, 41, 59, 10, 9,114, - 97,100, 91, 49, 93, 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 49, 93, 44, 32,118,101, 99, 91, 50, 93, 41, - 41, 59, 10, 9,114, 97,100, 91, 50, 93, 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 50, 93, 44, 32,118,101, - 99, 91, 51, 93, 41, 41, 59, 10, 9,114, 97,100, 91, 51, 93, 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 51, - 93, 44, 32,118,101, 99, 91, 48, 93, 41, 41, 59, 10, 10, 9,102, 97, 99, 61, 32, 32,114, 97,100, 91, 48, 93, 42,100,111,116, 40, -118,110, 44, 32, 99, 91, 48, 93, 41, 59, 10, 9,102, 97, 99, 43, 61, 32,114, 97,100, 91, 49, 93, 42,100,111,116, 40,118,110, 44, - 32, 99, 91, 49, 93, 41, 59, 10, 9,102, 97, 99, 43, 61, 32,114, 97,100, 91, 50, 93, 42,100,111,116, 40,118,110, 44, 32, 99, 91, - 50, 93, 41, 59, 10, 9,102, 97, 99, 43, 61, 32,114, 97,100, 91, 51, 93, 42,100,111,116, 40,118,110, 44, 32, 99, 91, 51, 93, 41, - 59, 10, 10, 9,114,101,116,117,114,110, 32,109, 97,120, 40,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105, -100, 32,115,104, 97,100,101, 95,105,110,112, 95, 97,114,101, 97, 40,118,101, 99, 51, 32,112,111,115,105,116,105,111,110, 44, 32, -118,101, 99, 51, 32,108, 97,109,112, 99,111, 44, 32,118,101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,118,101, 99, 51, 32, -118,110, 44, 32,109, 97,116, 52, 32, 97,114,101, 97, 44, 32,102,108,111, 97,116, 32, 97,114,101, 97,115,105,122,101, 44, 32,102, -108,111, 97,116, 32,107, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,112, 41, 10,123, 10, 9,118,101, 99, 51, 32, 99, -111, 32, 61, 32,112,111,115,105,116,105,111,110, 59, 10, 9,118,101, 99, 51, 32,118,101, 99, 32, 61, 32, 99,111, 32, 45, 32,108, - 97,109,112, 99,111, 59, 10, 10, 9,105,102, 40,100,111,116, 40,118,101, 99, 44, 32,108, 97,109,112,118,101, 99, 41, 32, 60, 32, - 48, 46, 48, 41, 32,123, 10, 9, 9,105,110,112, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, - 9,102,108,111, 97,116, 32,105,110,116,101,110,115, 32, 61, 32, 97,114,101, 97, 95,108, 97,109,112, 95,101,110,101,114,103,121, - 40, 97,114,101, 97, 44, 32, 99,111, 44, 32,118,110, 41, 59, 10, 10, 9, 9,105,110,112, 32, 61, 32,112,111,119, 40,105,110,116, -101,110,115, 42, 97,114,101, 97,115,105,122,101, 44, 32,107, 41, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97, -100,101, 95,100,105,102,102,117,115,101, 95,111,114,101,110, 95,110, 97,121,101,114, 40,102,108,111, 97,116, 32,110,108, 44, 32, -118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,114,111, -117,103,104, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110, -111,114,109, 97,108,105,122,101, 40,118, 32, 43, 32,108, 41, 59, 10, 9,102,108,111, 97,116, 32,110,104, 32, 61, 32,109, 97,120, - 40,100,111,116, 40,110, 44, 32,104, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97, -120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,114,101, 97,108,110,108, - 32, 61, 32,100,111,116, 40,110, 44, 32,108, 41, 59, 10, 10, 9,105,102, 40,114,101, 97,108,110,108, 32, 60, 32, 48, 46, 48, 41, - 32,123, 10, 9, 9,105,115, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,105,102, 40,110,108, 32, 60, 32, - 48, 46, 48, 41, 32,123, 10, 9, 9,105,115, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9, -102,108,111, 97,116, 32,118,104, 32, 61, 32,109, 97,120, 40,100,111,116, 40,118, 44, 32,104, 41, 44, 32, 48, 46, 48, 41, 59, 10, - 9, 9,102,108,111, 97,116, 32, 76,105,116, 95, 65, 32, 61, 32, 97, 99,111,115, 40,114,101, 97,108,110,108, 41, 59, 10, 9, 9, -102,108,111, 97,116, 32, 86,105,101,119, 95, 65, 32, 61, 32, 97, 99,111,115, 40,110,118, 41, 59, 10, 10, 9, 9,118,101, 99, 51, - 32, 76,105,116, 95, 66, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108, 32, 45, 32,114,101, 97,108,110,108, 42,110, 41, - 59, 10, 9, 9,118,101, 99, 51, 32, 86,105,101,119, 95, 66, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 32, 45, 32, -110,118, 42,110, 41, 59, 10, 10, 9, 9,102,108,111, 97,116, 32,116, 32, 61, 32,109, 97,120, 40,100,111,116, 40, 76,105,116, 95, - 66, 44, 32, 86,105,101,119, 95, 66, 41, 44, 32, 48, 46, 48, 41, 59, 10, 10, 9, 9,102,108,111, 97,116, 32, 97, 44, 32, 98, 59, - 10, 10, 9, 9,105,102, 40, 76,105,116, 95, 65, 32, 62, 32, 86,105,101,119, 95, 65, 41, 32,123, 10, 9, 9, 9, 97, 32, 61, 32, - 76,105,116, 95, 65, 59, 10, 9, 9, 9, 98, 32, 61, 32, 86,105,101,119, 95, 65, 59, 10, 9, 9,125, 10, 9, 9,101,108,115,101, - 32,123, 10, 9, 9, 9, 97, 32, 61, 32, 86,105,101,119, 95, 65, 59, 10, 9, 9, 9, 98, 32, 61, 32, 76,105,116, 95, 65, 59, 10, - 9, 9,125, 10, 10, 9, 9,102,108,111, 97,116, 32, 65, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40, 48, 46, 53, 42, 40, 40,114,111, -117,103,104, 42,114,111,117,103,104, 41, 47, 40, 40,114,111,117,103,104, 42,114,111,117,103,104, 41, 32, 43, 32, 48, 46, 51, 51, - 41, 41, 41, 59, 10, 9, 9,102,108,111, 97,116, 32, 66, 32, 61, 32, 48, 46, 52, 53, 42, 40, 40,114,111,117,103,104, 42,114,111, -117,103,104, 41, 47, 40, 40,114,111,117,103,104, 42,114,111,117,103,104, 41, 32, 43, 32, 48, 46, 48, 57, 41, 41, 59, 10, 10, 9, - 9, 98, 32, 42, 61, 32, 48, 46, 57, 53, 59, 10, 9, 9,105,115, 32, 61, 32,110,108, 42, 40, 65, 32, 43, 32, 40, 66, 32, 42, 32, -116, 32, 42, 32,115,105,110, 40, 97, 41, 32, 42, 32,116, 97,110, 40, 98, 41, 41, 41, 59, 10, 9,125, 10,125, 10, 10,118,111,105, -100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115,101, 95,116,111,111,110, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, - 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116, -115,109,111,111,116,104, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,102,108,111, 97,116, 32,114, -115,108,116, 32, 61, 32,100,111,116, 40,110, 44, 32,108, 41, 59, 10, 9,102,108,111, 97,116, 32, 97,110,103, 32, 61, 32, 97, 99, -111,115, 40,114,115,108,116, 41, 59, 10, 10, 9,105,102, 40, 97,110,103, 32, 60, 32,115,105,122,101, 41, 32,105,115, 32, 61, 32, - 49, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 97,110,103, 32, 62, 32, 40,115,105,122,101, 32, 43, 32,116,115,109,111, -111,116,104, 41, 32,124,124, 32,116,115,109,111,111,116,104, 32, 61, 61, 32, 48, 46, 48, 41, 32,105,115, 32, 61, 32, 48, 46, 48, - 59, 10, 9,101,108,115,101, 32,105,115, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40, 40, 97,110,103, 32, 45, 32,115,105,122,101, 41, - 47,116,115,109,111,111,116,104, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115,101, - 95,109,105,110,110, 97,101,114,116, 40,102,108,111, 97,116, 32,110,108, 44, 32,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, - 32,118, 44, 32,102,108,111, 97,116, 32,100, 97,114,107,110,101,115,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, - 41, 10,123, 10, 9,105,102, 40,110,108, 32, 60, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,105,115, 32, 61, 32, 48, 46, 48, 59, - 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, - 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 41, 59, 10, 10, 9, 9,105,102, 40,100, 97,114,107,110,101,115,115, 32, 60, 61, 32, - 49, 46, 48, 41, 10, 9, 9, 9,105,115, 32, 61, 32,110,108, 42,112,111,119, 40,109, 97,120, 40,110,118, 42,110,108, 44, 32, 48, - 46, 49, 41, 44, 32,100, 97,114,107,110,101,115,115, 32, 45, 32, 49, 46, 48, 41, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9, -105,115, 32, 61, 32,110,108, 42,112,111,119, 40, 49, 46, 48, 48, 48, 49, 32, 45, 32,110,118, 44, 32,100, 97,114,107,110,101,115, -115, 32, 45, 32, 49, 46, 48, 41, 59, 10, 9,125, 10,125, 10, 10,102,108,111, 97,116, 32,102,114,101,115,110,101,108, 95,102, 97, - 99, 40,118,101, 99, 51, 32,118,105,101,119, 44, 32,118,101, 99, 51, 32,118,110, 44, 32,102,108,111, 97,116, 32,103,114, 97,100, - 44, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,116, 49, 44, 32,116, 50, 59, 10, 9,102, -108,111, 97,116, 32,102,102, 97, 99, 59, 10, 10, 9,105,102, 40,102, 97, 99, 61, 61, 48, 46, 48, 41, 32,123, 10, 9, 9,102,102, - 97, 99, 32, 61, 32, 49, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,116, 49, 61, 32,100,111,116, 40,118, -105,101,119, 44, 32,118,110, 41, 59, 10, 9, 9,105,102, 40,116, 49, 62, 48, 46, 48, 41, 32, 32,116, 50, 61, 32, 49, 46, 48, 43, -116, 49, 59, 10, 9, 9,101,108,115,101, 32,116, 50, 61, 32, 49, 46, 48, 45,116, 49, 59, 10, 10, 9, 9,116, 50, 61, 32,103,114, - 97,100, 32, 43, 32, 40, 49, 46, 48, 45,103,114, 97,100, 41, 42,112,111,119, 40,116, 50, 44, 32,102, 97, 99, 41, 59, 10, 10, 9, - 9,105,102, 40,116, 50, 60, 48, 46, 48, 41, 32,102,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105, -102, 40,116, 50, 62, 49, 46, 48, 41, 32,102,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,102,102, 97, - 99, 32, 61, 32,116, 50, 59, 10, 9,125, 10, 10, 9,114,101,116,117,114,110, 32,102,102, 97, 99, 59, 10,125, 10, 10,118,111,105, -100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115,101, 95,102,114,101,115,110,101,108, 40,118,101, 99, 51, 32,118,110, 44, - 32,118,101, 99, 51, 32,108,118, 44, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 95,105, - 44, 32,102,108,111, 97,116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105,115, - 32, 61, 32,102,114,101,115,110,101,108, 95,102, 97, 99, 40,108,118, 44, 32,118,110, 44, 32,102, 97, 99, 95,105, 44, 32,102, 97, - 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 99,117, 98,105, 99, 40,102,108,111, 97,116, 32,105,115, - 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,105,115, 41, 10,123, 10, 9,105,102, 40,105,115, 62, 48, 46, 48, 32, - 38, 38, 32,105,115, 60, 49, 46, 48, 41, 10, 9, 9,111,117,116,105,115, 61, 32,115,109,111,111,116,104,115,116,101,112, 40, 48, - 46, 48, 44, 32, 49, 46, 48, 44, 32,105,115, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,105,115, 61, 32,105,115, 59, - 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,118,105,115,105,102, 97, 99, 40,102,108,111, 97,116, 32,105, 44, 32, -102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,102,108,111, 97,116, 32,114,101,102,108, 44, 32,111,117,116, 32,102, -108,111, 97,116, 32,111,117,116,105, 41, 10,123, 10, 9, 47, 42,105,102, 40,105, 32, 62, 32, 48, 46, 48, 41, 42, 47, 10, 9, 9, -111,117,116,105, 32, 61, 32,109, 97,120, 40,105, 42,118,105,115,105,102, 97, 99, 42,114,101,102,108, 44, 32, 48, 46, 48, 41, 59, - 10, 9, 47, 42,101,108,115,101, 10, 9, 9,111,117,116,105, 32, 61, 32,105, 59, 42, 47, 10,125, 10, 10,118,111,105,100, 32,115, -104, 97,100,101, 95,116, 97,110,103,101,110,116, 95,118, 95,115,112,101, 99, 40,118,101, 99, 51, 32,116, 97,110,103, 44, 32,111, -117,116, 32,118,101, 99, 51, 32,118,110, 41, 10,123, 10, 9,118,110, 32, 61, 32,116, 97,110,103, 59, 10,125, 10, 10,118,111,105, -100, 32,115,104, 97,100,101, 95, 97,100,100, 95,116,111, 95,100,105,102,102,117,115,101, 40,102,108,111, 97,116, 32,105, 44, 32, -118,101, 99, 51, 32,108, 97,109,112, 99,111,108, 44, 32,118,101, 99, 51, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, - 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,105,102, 40,105, 32, 62, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, - 32, 61, 32,105, 42,108, 97,109,112, 99,111,108, 42, 99,111,108, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, - 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32, -115,104, 97,100,101, 95,104,101,109,105, 95,115,112,101, 99, 40,118,101, 99, 51, 32,118,110, 44, 32,118,101, 99, 51, 32,108,118, - 44, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,102,108,111, 97,116, 32,115,112,101, 99, 44, 32,102,108,111, 97,116, 32,104, - 97,114,100, 44, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,116, 41, - 10,123, 10, 9,108,118, 32, 43, 61, 32,118,105,101,119, 59, 10, 9,108,118, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, -108,118, 41, 59, 10, 10, 9,116, 32, 61, 32,100,111,116, 40,118,110, 44, 32,108,118, 41, 59, 10, 9,116, 32, 61, 32, 48, 46, 53, - 42,116, 32, 43, 32, 48, 46, 53, 59, 10, 10, 9,116, 32, 61, 32,118,105,115,105,102, 97, 99, 42,115,112,101, 99, 42,112,111,119, - 40,116, 44, 32,104, 97,114,100, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,112,104,111,110,103, 95,115, -112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97, -116, 32,104, 97,114,100, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,118,101, - 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108, 32, 43, 32,118, 41, 59, 10, 9,102,108,111, 97,116, 32, -114,115,108,116, 32, 61, 32,109, 97,120, 40,100,111,116, 40,104, 44, 32,110, 41, 44, 32, 48, 46, 48, 41, 59, 10, 10, 9,115,112, -101, 99,102, 97, 99, 32, 61, 32,112,111,119, 40,114,115,108,116, 44, 32,104, 97,114,100, 41, 59, 10,125, 10, 10,118,111,105,100, - 32,115,104, 97,100,101, 95, 99,111,111,107,116,111,114,114, 95,115,112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, - 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,104, 97,114,100, 44, 32,111,117,116, 32,102,108,111, - 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122, -101, 40,118, 32, 43, 32,108, 41, 59, 10, 9,102,108,111, 97,116, 32,110,104, 32, 61, 32,100,111,116, 40,110, 44, 32,104, 41, 59, - 10, 10, 9,105,102, 40,110,104, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, - 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100, -111,116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9, 9,102,108,111, 97,116, 32,105, 32, 61, 32,112,111,119, 40, -110,104, 44, 32,104, 97,114,100, 41, 59, 10, 10, 9, 9,105, 32, 61, 32,105, 47, 40, 48, 46, 49, 43,110,118, 41, 59, 10, 9, 9, -115,112,101, 99,102, 97, 99, 32, 61, 32,105, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 98,108, -105,110,110, 95,115,112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, - 32,102,108,111, 97,116, 32,114,101,102,114, 97, 99, 44, 32,102,108,111, 97,116, 32,115,112,101, 99, 95,112,111,119,101,114, 44, - 32,111,117,116, 32,102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,105,102, 40,114,101,102,114, 97, 99, - 32, 60, 32, 49, 46, 48, 41, 32,123, 10, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101, -108,115,101, 32,105,102, 40,115,112,101, 99, 95,112,111,119,101,114, 32, 61, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,115,112, -101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,105,102, 40,115,112,101, - 99, 95,112,111,119,101,114, 60, 49, 48, 48, 46, 48, 41, 10, 9, 9, 9,115,112,101, 99, 95,112,111,119,101,114, 61, 32,115,113, -114,116, 40, 49, 46, 48, 47,115,112,101, 99, 95,112,111,119,101,114, 41, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,115,112, -101, 99, 95,112,111,119,101,114, 61, 32, 49, 48, 46, 48, 47,115,112,101, 99, 95,112,111,119,101,114, 59, 10, 10, 9, 9,118,101, - 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 32, 43, 32,108, 41, 59, 10, 9, 9,102,108,111, 97,116, - 32,110,104, 32, 61, 32,100,111,116, 40,110, 44, 32,104, 41, 59, 10, 9, 9,105,102, 40,110,104, 32, 60, 32, 48, 46, 48, 41, 32, -123, 10, 9, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,125, 10, 9, 9,101,108,115,101, 32,123, - 10, 9, 9, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, - 48, 49, 41, 59, 10, 9, 9, 9,102,108,111, 97,116, 32,110,108, 32, 61, 32,100,111,116, 40,110, 44, 32,108, 41, 59, 10, 9, 9, - 9,105,102, 40,110,108, 32, 60, 61, 32, 48, 46, 48, 49, 41, 32,123, 10, 9, 9, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, - 48, 46, 48, 59, 10, 9, 9, 9,125, 10, 9, 9, 9,101,108,115,101, 32,123, 10, 9, 9, 9, 9,102,108,111, 97,116, 32,118,104, - 32, 61, 32,109, 97,120, 40,100,111,116, 40,118, 44, 32,104, 41, 44, 32, 48, 46, 48, 49, 41, 59, 10, 10, 9, 9, 9, 9,102,108, -111, 97,116, 32, 97, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9, 9, 9,102,108,111, 97,116, 32, 98, 32, 61, 32, 40, 50, 46, 48, 42, -110,104, 42,110,118, 41, 47,118,104, 59, 10, 9, 9, 9, 9,102,108,111, 97,116, 32, 99, 32, 61, 32, 40, 50, 46, 48, 42,110,104, - 42,110,108, 41, 47,118,104, 59, 10, 10, 9, 9, 9, 9,102,108,111, 97,116, 32,103, 59, 10, 10, 9, 9, 9, 9,105,102, 40, 97, - 32, 60, 32, 98, 32, 38, 38, 32, 97, 32, 60, 32, 99, 41, 32,103, 32, 61, 32, 97, 59, 10, 9, 9, 9, 9,101,108,115,101, 32,105, -102, 40, 98, 32, 60, 32, 97, 32, 38, 38, 32, 98, 32, 60, 32, 99, 41, 32,103, 32, 61, 32, 98, 59, 10, 9, 9, 9, 9,101,108,115, -101, 32,105,102, 40, 99, 32, 60, 32, 97, 32, 38, 38, 32, 99, 32, 60, 32, 98, 41, 32,103, 32, 61, 32, 99, 59, 10, 10, 9, 9, 9, - 9,102,108,111, 97,116, 32,112, 32, 61, 32,115,113,114,116, 40, 40, 40,114,101,102,114, 97, 99, 32, 42, 32,114,101,102,114, 97, - 99, 41, 43, 40,118,104, 42,118,104, 41, 45, 49, 46, 48, 41, 41, 59, 10, 9, 9, 9, 9,102,108,111, 97,116, 32,102, 32, 61, 32, - 40, 40, 40,112, 45,118,104, 41, 42, 40,112, 45,118,104, 41, 41, 47, 40, 40,112, 43,118,104, 41, 42, 40,112, 43,118,104, 41, 41, - 41, 42, 40, 49, 46, 48, 43, 40, 40, 40, 40,118,104, 42, 40,112, 43,118,104, 41, 41, 45, 49, 46, 48, 41, 42, 40, 40,118,104, 42, - 40,112, 43,118,104, 41, 41, 45, 49, 46, 48, 41, 41, 47, 40, 40, 40,118,104, 42, 40,112, 45,118,104, 41, 41, 43, 49, 46, 48, 41, - 42, 40, 40,118,104, 42, 40,112, 45,118,104, 41, 41, 43, 49, 46, 48, 41, 41, 41, 41, 59, 10, 9, 9, 9, 9,102,108,111, 97,116, - 32, 97,110,103, 32, 61, 32, 97, 99,111,115, 40,110,104, 41, 59, 10, 10, 9, 9, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, -109, 97,120, 40,102, 42,103, 42,101,120,112, 95, 98,108,101,110,100,101,114, 40, 40, 45, 40, 97,110,103, 42, 97,110,103, 41, 47, - 40, 50, 46, 48, 42,115,112,101, 99, 95,112,111,119,101,114, 42,115,112,101, 99, 95,112,111,119,101,114, 41, 41, 41, 44, 32, 48, - 46, 48, 41, 59, 10, 9, 9, 9,125, 10, 9, 9,125, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,119, - 97,114,100,105,115,111, 95,115,112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, - 32,118, 44, 32,102,108,111, 97,116, 32,114,109,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, - 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108, 32, 43, 32,118, 41, 59, 10, - 9,102,108,111, 97,116, 32,110,104, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,104, 41, 44, 32, 48, 46, 48, 48, 49, - 41, 59, 10, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, - 48, 48, 49, 41, 59, 10, 9,102,108,111, 97,116, 32,110,108, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,108, 41, 44, - 32, 48, 46, 48, 48, 49, 41, 59, 10, 9,102,108,111, 97,116, 32, 97,110,103,108,101, 32, 61, 32,116, 97,110, 40, 97, 99,111,115, - 40,110,104, 41, 41, 59, 10, 9,102,108,111, 97,116, 32, 97,108,112,104, 97, 32, 61, 32,109, 97,120, 40,114,109,115, 44, 32, 48, - 46, 48, 48, 49, 41, 59, 10, 10, 9,115,112,101, 99,102, 97, 99, 61, 32,110,108, 32, 42, 32, 40, 49, 46, 48, 47, 40, 52, 46, 48, - 42, 77, 95, 80, 73, 42, 97,108,112,104, 97, 42, 97,108,112,104, 97, 41, 41, 42, 40,101,120,112, 95, 98,108,101,110,100,101,114, - 40, 45, 40, 97,110,103,108,101, 42, 97,110,103,108,101, 41, 47, 40, 97,108,112,104, 97, 42, 97,108,112,104, 97, 41, 41, 47, 40, -115,113,114,116, 40,110,118, 42,110,108, 41, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,116,111,111, -110, 95,115,112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102, -108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,115,109,111,111,116,104, 44, 32,111,117,116, 32,102,108, + 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,103, 59, 10, 9,105,110, 99,111,108, 32, 61, 32, 40,102, 97, 99,109, + 32, 43, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 41, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32, +109,116,101,120, 95,118, 97,108,117,101, 95,115, 99,114,101,101,110, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32, +102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32, +102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111, +108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97, +114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,102, 97, + 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,103, 59, 10, 9,105,110, 99,111,108, 32, 61, 32, 49, 46, 48, 32, 45, 32, + 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 41, 41, 42, 40, 49, 46, + 48, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, +115,117, 98, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32, +102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108, +105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, + 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, + 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,102, 97, 99,116, 32, 61, 32, 45,102, 97, 99,116, 59, 10, 9,105, +110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10, +118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 97,100,100, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, + 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97, +116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, + 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95, +118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9, +102, 97, 99,116, 32, 61, 32,102, 97, 99,116, 59, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111, +108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100, +105,118, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102, +108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105, +112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99, +109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32, +102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,105,102, 40,116,101,120, 99,111,108, 32, 33, 61, 32, 48, 46, 48, 41, + 10, 9, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116, 42,111,117, +116, 99,111,108, 47,116,101,120, 99,111,108, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 32, 61, 32, 48, 46, 48, + 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100,105,102,102, 40,102,108,111, 97,116, 32, +111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, + 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108, +111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95, +118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105, +112, 41, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116, + 42, 97, 98,115, 40,116,101,120, 99,111,108, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, +116,101,120, 95,118, 97,108,117,101, 95,100, 97,114,107, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, + 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99, +103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10, +123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40, +102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,102,108,111, 97,116, + 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117, +116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 32, 61, 32, +111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,108,105,103,104,116, + 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, + 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, + 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, + 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, + 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,102,108,111, 97,116, 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101, +120, 99,111,108, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32, + 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 32, 61, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105, +100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 99,108, 97,109,112, 95,112,111,115,105,116,105,118,101, 40,102,108,111, 97, +116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,111,117,116,102, + 97, 99, 32, 61, 32,109, 97,120, 40,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, + 95,118, 97,108,117,101, 95, 99,108, 97,109,112, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97, +116, 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,111,117,116,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, + 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,104, 97,114, 95,100,105,118, +105,100,101, 40,102,108,111, 97,116, 32,104, 97,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,104, 97,114, 41, + 10,123, 10, 9,111,117,116,104, 97,114, 32, 61, 32,104, 97,114, 47, 49, 50, 56, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32, +109,116,101,120, 95,104, 97,114, 95,109,117,108,116,105,112,108,121, 95, 99,108, 97,109,112, 40,102,108,111, 97,116, 32,104, 97, +114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,104, 97,114, 41, 10,123, 10, 9,104, 97,114, 32, 42, 61, 32, 49, + 50, 56, 46, 48, 59, 10, 10, 9,105,102, 40,104, 97,114, 32, 60, 32, 49, 46, 48, 41, 32,111,117,116,104, 97,114, 32, 61, 32, 49, + 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,104, 97,114, 32, 62, 32, 53, 49, 49, 46, 48, 41, 32,111,117,116,104, 97,114, + 32, 61, 32, 53, 49, 49, 46, 48, 59, 10, 9,101,108,115,101, 32,111,117,116,104, 97,114, 32, 61, 32,104, 97,114, 59, 10,125, 10, + 10,118,111,105,100, 32,109,116,101,120, 95, 97,108,112,104, 97, 95,102,114,111,109, 95, 99,111,108, 40,118,101, 99, 52, 32, 99, +111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 97,108,112,104, 97, 41, 10,123, 10, 9, 97,108,112,104, 97, 32, 61, 32, + 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 97,108,112,104, 97, 95,116,111, 95, 99,111,108, + 40,118,101, 99, 52, 32, 99,111,108, 44, 32,102,108,111, 97,116, 32, 97,108,112,104, 97, 44, 32,111,117,116, 32,118,101, 99, 52, + 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, + 98, 44, 32, 97,108,112,104, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98,116,111,105,110,116, + 40,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,116,101,110,115,105,116,121, 41, 10, +123, 10, 9,105,110,116,101,110,115,105,116,121, 32, 61, 32,100,111,116, 40,118,101, 99, 51, 40, 48, 46, 51, 53, 44, 32, 48, 46, + 52, 53, 44, 32, 48, 46, 50, 41, 44, 32,114,103, 98, 46,114,103, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, + 95,118, 97,108,117,101, 95,105,110,118,101,114,116, 40,102,108,111, 97,116, 32,105,110,118, 97,108,117,101, 44, 32,111,117,116, + 32,102,108,111, 97,116, 32,111,117,116,118, 97,108,117,101, 41, 10,123, 10, 9,111,117,116,118, 97,108,117,101, 32, 61, 32, 49, + 46, 48, 32, 45, 32,105,110,118, 97,108,117,101, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,105, +110,118,101,114,116, 40,118,101, 99, 52, 32,105,110,114,103, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, + 98, 41, 10,123, 10, 9,111,117,116,114,103, 98, 32, 61, 32,118,101, 99, 52, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32, +105,110,114,103, 98, 46,114,103, 98, 44, 32,105,110,114,103, 98, 46, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101, +120, 95,118, 97,108,117,101, 95,115,116,101,110, 99,105,108, 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,102, +108,111, 97,116, 32,105,110,116,101,110,115,105,116,121, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,116,101, +110, 99,105,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,105,110,116,101,110,115,105,116,121, 41, 10,123, 10, + 9,102,108,111, 97,116, 32,102, 97, 99,116, 32, 61, 32,105,110,116,101,110,115,105,116,121, 59, 10, 9,111,117,116,105,110,116, +101,110,115,105,116,121, 32, 61, 32,105,110,116,101,110,115,105,116,121, 42,115,116,101,110, 99,105,108, 59, 10, 9,111,117,116, +115,116,101,110, 99,105,108, 32, 61, 32,115,116,101,110, 99,105,108, 42,102, 97, 99,116, 59, 10,125, 10, 10,118,111,105,100, 32, +109,116,101,120, 95,114,103, 98, 95,115,116,101,110, 99,105,108, 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32, +118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,116,101,110, 99,105,108, 44, 32, +111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,116, 32, 61, + 32,114,103, 98, 46, 97, 59, 10, 9,111,117,116,114,103, 98, 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 46,114,103, 98, 44, 32, +114,103, 98, 46, 97, 42,115,116,101,110, 99,105,108, 41, 59, 10, 9,111,117,116,115,116,101,110, 99,105,108, 32, 61, 32,115,116, +101,110, 99,105,108, 42,102, 97, 99,116, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, + 95,111,102,115, 40,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,118,101, 99, 51, 32,111,102,115, 44, 32,111,117,116, 32,118, +101, 99, 51, 32,111,117,116,116,101,120, 99,111, 41, 10,123, 10, 9,111,117,116,116,101,120, 99,111, 32, 61, 32,116,101,120, 99, +111, 32, 43, 32,111,102,115, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, 95,115,105, +122,101, 40,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,118,101, 99, 51, 32,115,105,122,101, 44, 32,111,117,116, 32,118,101, + 99, 51, 32,111,117,116,116,101,120, 99,111, 41, 10,123, 10, 9,111,117,116,116,101,120, 99,111, 32, 61, 32,115,105,122,101, 42, +116,101,120, 99,111, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 40,118, +101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116, +118,101, 99, 32, 61, 32,118,101, 99, 51, 40,118,101, 99, 46,120,121, 42, 48, 46, 53, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53, + 44, 32, 48, 46, 53, 41, 44, 32,118,101, 99, 46,122, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,105,109, 97, +103,101, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32, +102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, + 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,116,101,120,116,117,114,101, + 50, 68, 40,105,109, 97, 44, 32,118,101, 99, 46,120,121, 41, 59, 10, 9,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 59, 10, 9, + 10, 9,110,111,114,109, 97,108, 32, 61, 32, 50, 46, 48, 42, 40,118,101, 99, 51, 40, 99,111,108,111,114, 46,114, 44, 32, 45, 99, +111,108,111,114, 46,103, 44, 32, 99,111,108,111,114, 46, 98, 41, 32, 45, 32,118,101, 99, 51, 40, 48, 46, 53, 44, 32, 45, 48, 46, + 53, 44, 32, 48, 46, 53, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,110,101,103, 97,116,101, 95,116,101, +120,110,111,114,109, 97,108, 40,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117, +116,110,111,114,109, 97,108, 41, 10,123, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32,118,101, 99, 51, 40, 45,110,111, +114,109, 97,108, 46,120, 44, 32, 45,110,111,114,109, 97,108, 46,121, 44, 32,110,111,114,109, 97,108, 46,122, 41, 59, 10,125, 10, + 10,118,111,105,100, 32,109,116,101,120, 95,110,115,112, 97, 99,101, 95,116, 97,110,103,101,110,116, 40,118,101, 99, 51, 32,116, + 97,110,103,101,110,116, 44, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,118,101, 99, 51, 32,116,101,120,110,111,114, +109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9,116, 97,110,103, +101,110,116, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,116, 97,110,103,101,110,116, 41, 59, 10, 9,118,101, 99, 51, 32, + 66, 32, 61, 32, 99,114,111,115,115, 40,110,111,114,109, 97,108, 44, 32,116, 97,110,103,101,110,116, 41, 59, 10, 10, 9,111,117, +116,110,111,114,109, 97,108, 32, 61, 32,116,101,120,110,111,114,109, 97,108, 46,120, 42,116, 97,110,103,101,110,116, 32, 43, 32, +116,101,120,110,111,114,109, 97,108, 46,121, 42, 66, 32, 43, 32,116,101,120,110,111,114,109, 97,108, 46,122, 42,110,111,114,109, + 97,108, 59, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,117,116,110,111, +114,109, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,108,101,110,100, 95,110,111,114,109, 97,108, + 40,102,108,111, 97,116, 32,110,111,114,102, 97, 99, 44, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,118,101, 99, 51, + 32,110,101,119,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10, +123, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32,110,111,114,102, 97, 99, 41, 42,110,111, +114,109, 97,108, 32, 43, 32,110,111,114,102, 97, 99, 42,110,101,119,110,111,114,109, 97,108, 59, 10, 9,111,117,116,110,111,114, +109, 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,117,116,110,111,114,109, 97,108, 41, 59, 10,125, 10, 10, 47, + 42, 42, 42, 42, 42, 42, 42, 32, 77, 65, 84, 69, 82, 73, 65, 76, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,118,111,105, +100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,115,117,110, 95,104,101,109,105, 40,118,101, 99, 51, 32, +108, 97,109,112,118,101, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, +100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,108,118, 32, 61, + 32,108, 97,109,112,118,101, 99, 59, 10, 9,100,105,115,116, 32, 61, 32, 49, 46, 48, 59, 10, 9,118,105,115,105,102, 97, 99, 32, + 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,111, +116,104,101,114, 40,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,108, 97,109,112, 99,111, 44, 32,111,117,116, 32,118, +101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97, +116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,108,118, 32, 61, 32, 99,111, 32, 45, 32,108, 97,109,112, 99,111, 59, 10, + 9,100,105,115,116, 32, 61, 32,108,101,110,103,116,104, 40,108,118, 41, 59, 10, 9,108,118, 32, 61, 32,110,111,114,109, 97,108, +105,122,101, 40,108,118, 41, 59, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, + 32,108, 97,109,112, 95,102, 97,108,108,111,102,102, 95,105,110,118,108,105,110,101, 97,114, 40,102,108,111, 97,116, 32,108, 97, +109,112,100,105,115,116, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105, +115,105,102, 97, 99, 41, 10,123, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32,108, 97,109,112,100,105,115,116, 47, 40,108, 97, +109,112,100,105,115,116, 32, 43, 32,100,105,115,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,102, 97,108, +108,111,102,102, 95,105,110,118,115,113,117, 97,114,101, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,102, +108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, + 9,118,105,115,105,102, 97, 99, 32, 61, 32,108, 97,109,112,100,105,115,116, 47, 40,108, 97,109,112,100,105,115,116, 32, 43, 32, +100,105,115,116, 42,100,105,115,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,102, 97,108,108,111,102,102, + 95,115,108,105,100,101,114,115, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,102,108,111, 97,116, 32,108, +100, 49, 44, 32,102,108,111, 97,116, 32,108,100, 50, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102, +108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116,107, +119, 32, 61, 32,108, 97,109,112,100,105,115,116, 42,108, 97,109,112,100,105,115,116, 59, 10, 10, 9,118,105,115,105,102, 97, 99, + 32, 61, 32,108, 97,109,112,100,105,115,116, 47, 40,108, 97,109,112,100,105,115,116, 32, 43, 32,108,100, 49, 42,100,105,115,116, + 41, 59, 10, 9,118,105,115,105,102, 97, 99, 32, 42, 61, 32,108, 97,109,112,100,105,115,116,107,119, 47, 40,108, 97,109,112,100, +105,115,116,107,119, 32, 43, 32,108,100, 50, 42,100,105,115,116, 42,100,105,115,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32, +108, 97,109,112, 95,102, 97,108,108,111,102,102, 95, 99,117,114,118,101, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115, +116, 44, 32,115, 97,109,112,108,101,114, 49, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,102,108,111, 97,116, 32,100,105,115, +116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,118,105,115,105,102, 97, 99, + 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,100,105,115,116, 47,108, 97,109,112, +100,105,115,116, 41, 46,120, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, + 95,115,112,104,101,114,101, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,102,108,111, 97,116, 32,100,105, +115,116, 44, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, +118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,116, 61, 32,108, 97,109,112,100,105,115,116, 32, 45, 32, +100,105,115,116, 59, 10, 10, 9,111,117,116,118,105,115,105,102, 97, 99, 61, 32,118,105,115,105,102, 97, 99, 42,109, 97,120, 40, +116, 44, 32, 48, 46, 48, 41, 47,108, 97,109,112,100,105,115,116, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118, +105,115,105, 98,105,108,105,116,121, 95,115,112,111,116, 95,115,113,117, 97,114,101, 40,118,101, 99, 51, 32,108, 97,109,112,118, +101, 99, 44, 32,109, 97,116, 52, 32,108, 97,109,112,105,109, 97,116, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32, +102,108,111, 97,116, 32,105,110,112,114, 41, 10,123, 10, 9,105,102, 40,100,111,116, 40,108,118, 44, 32,108, 97,109,112,118,101, + 99, 41, 32, 62, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,118,101, 99, 51, 32,108,118,114,111,116, 32, 61, 32, 40,108, 97,109,112, +105,109, 97,116, 42,118,101, 99, 52, 40,108,118, 44, 32, 48, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9, 9,102,108,111, 97,116, + 32,120, 32, 61, 32,109, 97,120, 40, 97, 98,115, 40,108,118,114,111,116, 46,120, 47,108,118,114,111,116, 46,122, 41, 44, 32, 97, + 98,115, 40,108,118,114,111,116, 46,121, 47,108,118,114,111,116, 46,122, 41, 41, 59, 10, 10, 9, 9,105,110,112,114, 32, 61, 32, + 49, 46, 48, 47,115,113,114,116, 40, 49, 46, 48, 32, 43, 32,120, 42,120, 41, 59, 10, 9,125, 10, 9,101,108,115,101, 10, 9, 9, +105,110,112,114, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108, +105,116,121, 95,115,112,111,116, 95, 99,105,114, 99,108,101, 40,118,101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,118,101, + 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,112,114, 41, 10,123, 10, 9,105,110,112,114, 32, 61, + 32,100,111,116, 40,108,118, 44, 32,108, 97,109,112,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95, +118,105,115,105, 98,105,108,105,116,121, 95,115,112,111,116, 40,102,108,111, 97,116, 32,115,112,111,116,115,105, 44, 32,102,108, +111, 97,116, 32,115,112,111,116, 98,108, 44, 32,102,108,111, 97,116, 32,105,110,112,114, 44, 32,102,108,111, 97,116, 32,118,105, +115,105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9, +102,108,111, 97,116, 32,116, 32, 61, 32,115,112,111,116,115,105, 59, 10, 10, 9,105,102, 40,105,110,112,114, 32, 60, 61, 32,116, + 41, 32,123, 10, 9, 9,111,117,116,118,105,115,105,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, + 32,123, 10, 9, 9,116, 32, 61, 32,105,110,112,114, 32, 45, 32,116, 59, 10, 10, 9, 9, 47, 42, 32,115,111,102,116, 32, 97,114, +101, 97, 32, 42, 47, 10, 9, 9,105,102, 40,115,112,111,116, 98,108, 32, 33, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,105,110,112, +114, 32, 42, 61, 32,115,109,111,111,116,104,115,116,101,112, 40, 48, 46, 48, 44, 32, 49, 46, 48, 44, 32,116, 47,115,112,111,116, + 98,108, 41, 59, 10, 10, 9, 9,111,117,116,118,105,115,105,102, 97, 99, 32, 61, 32,118,105,115,105,102, 97, 99, 42,105,110,112, +114, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95, 99,108, + 97,109,112, 40,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, +118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,111,117,116,118,105,115,105,102, 97, 99, 32, 61, 32, 40,118,105,115,105,102, 97, + 99, 32, 60, 32, 48, 46, 48, 48, 49, 41, 63, 32, 48, 46, 48, 58, 32,118,105,115,105,102, 97, 99, 59, 10,125, 10, 10,118,111,105, +100, 32,115,104, 97,100,101, 95,118,105,101,119, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, +105,101,119, 41, 10,123, 10, 9, 47, 42, 32,104, 97,110,100,108,101, 32,112,101,114,115,112,101, 99,116,105,118,101, 47,111,114, +116,104,111,103,114, 97,112,104,105, 99, 32, 42, 47, 10, 9,118,105,101,119, 32, 61, 32, 40,103,108, 95, 80,114,111,106,101, 99, +116,105,111,110, 77, 97,116,114,105,120, 91, 51, 93, 91, 51, 93, 32, 61, 61, 32, 48, 46, 48, 41, 63, 32,110,111,114,109, 97,108, +105,122,101, 40, 99,111, 41, 58, 32,118,101, 99, 51, 40, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 45, 49, 46, 48, 41, 59, 10,125, + 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,116, 97,110,103,101,110,116, 95,118, 40,118,101, 99, 51, 32,108,118, 44, 32, +118,101, 99, 51, 32,116, 97,110,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,110, 41, 10,123, 10, 9,118,101, 99, 51, 32, + 99, 32, 61, 32, 99,114,111,115,115, 40,108,118, 44, 32,116, 97,110,103, 41, 59, 10, 9,118,101, 99, 51, 32,118,110,111,114, 32, + 61, 32, 99,114,111,115,115, 40, 99, 44, 32,116, 97,110,103, 41, 59, 10, 10, 9,118,110, 32, 61, 32, 45,110,111,114,109, 97,108, +105,122,101, 40,118,110,111,114, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,105,110,112, 40,118,101, 99, + 51, 32,118,110, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,112, 41, 10,123, 10, + 9,105,110,112, 32, 61, 32,100,111,116, 40,118,110, 44, 32,108,118, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100, +101, 95,105,115, 95,110,111, 95,100,105,102,102,117,115,101, 40,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, + 9,105,115, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,105,115, 95,104,101,109,105, + 40,102,108,111, 97,116, 32,105,110,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105,115, 32, + 61, 32, 48, 46, 53, 42,105,110,112, 32, 43, 32, 48, 46, 53, 59, 10,125, 10, 10,102,108,111, 97,116, 32, 97,114,101, 97, 95,108, + 97,109,112, 95,101,110,101,114,103,121, 40,109, 97,116, 52, 32, 97,114,101, 97, 44, 32,118,101, 99, 51, 32, 99,111, 44, 32,118, +101, 99, 51, 32,118,110, 41, 10,123, 10, 9,118,101, 99, 51, 32,118,101, 99, 91, 52, 93, 44, 32, 99, 91, 52, 93, 59, 10, 9,102, +108,111, 97,116, 32,114, 97,100, 91, 52, 93, 44, 32,102, 97, 99, 59, 10, 9, 10, 9,118,101, 99, 91, 48, 93, 32, 61, 32,110,111, +114,109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,101, 97, 91, 48, 93, 46,120,121,122, 41, 59, 10, 9,118,101, 99, 91, + 49, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,101, 97, 91, 49, 93, 46,120,121,122, 41, + 59, 10, 9,118,101, 99, 91, 50, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,101, 97, 91, + 50, 93, 46,120,121,122, 41, 59, 10, 9,118,101, 99, 91, 51, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 32, + 45, 32, 97,114,101, 97, 91, 51, 93, 46,120,121,122, 41, 59, 10, 10, 9, 99, 91, 48, 93, 32, 61, 32,110,111,114,109, 97,108,105, +122,101, 40, 99,114,111,115,115, 40,118,101, 99, 91, 48, 93, 44, 32,118,101, 99, 91, 49, 93, 41, 41, 59, 10, 9, 99, 91, 49, 93, + 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,114,111,115,115, 40,118,101, 99, 91, 49, 93, 44, 32,118,101, 99, 91, 50, + 93, 41, 41, 59, 10, 9, 99, 91, 50, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,114,111,115,115, 40,118,101, 99, + 91, 50, 93, 44, 32,118,101, 99, 91, 51, 93, 41, 41, 59, 10, 9, 99, 91, 51, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, + 40, 99,114,111,115,115, 40,118,101, 99, 91, 51, 93, 44, 32,118,101, 99, 91, 48, 93, 41, 41, 59, 10, 10, 9,114, 97,100, 91, 48, + 93, 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 48, 93, 44, 32,118,101, 99, 91, 49, 93, 41, 41, 59, 10, 9, +114, 97,100, 91, 49, 93, 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 49, 93, 44, 32,118,101, 99, 91, 50, 93, + 41, 41, 59, 10, 9,114, 97,100, 91, 50, 93, 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 50, 93, 44, 32,118, +101, 99, 91, 51, 93, 41, 41, 59, 10, 9,114, 97,100, 91, 51, 93, 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101, 99, 91, + 51, 93, 44, 32,118,101, 99, 91, 48, 93, 41, 41, 59, 10, 10, 9,102, 97, 99, 61, 32, 32,114, 97,100, 91, 48, 93, 42,100,111,116, + 40,118,110, 44, 32, 99, 91, 48, 93, 41, 59, 10, 9,102, 97, 99, 43, 61, 32,114, 97,100, 91, 49, 93, 42,100,111,116, 40,118,110, + 44, 32, 99, 91, 49, 93, 41, 59, 10, 9,102, 97, 99, 43, 61, 32,114, 97,100, 91, 50, 93, 42,100,111,116, 40,118,110, 44, 32, 99, + 91, 50, 93, 41, 59, 10, 9,102, 97, 99, 43, 61, 32,114, 97,100, 91, 51, 93, 42,100,111,116, 40,118,110, 44, 32, 99, 91, 51, 93, + 41, 59, 10, 10, 9,114,101,116,117,114,110, 32,109, 97,120, 40,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111, +105,100, 32,115,104, 97,100,101, 95,105,110,112, 95, 97,114,101, 97, 40,118,101, 99, 51, 32,112,111,115,105,116,105,111,110, 44, + 32,118,101, 99, 51, 32,108, 97,109,112, 99,111, 44, 32,118,101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,118,101, 99, 51, + 32,118,110, 44, 32,109, 97,116, 52, 32, 97,114,101, 97, 44, 32,102,108,111, 97,116, 32, 97,114,101, 97,115,105,122,101, 44, 32, +102,108,111, 97,116, 32,107, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,112, 41, 10,123, 10, 9,118,101, 99, 51, 32, + 99,111, 32, 61, 32,112,111,115,105,116,105,111,110, 59, 10, 9,118,101, 99, 51, 32,118,101, 99, 32, 61, 32, 99,111, 32, 45, 32, +108, 97,109,112, 99,111, 59, 10, 10, 9,105,102, 40,100,111,116, 40,118,101, 99, 44, 32,108, 97,109,112,118,101, 99, 41, 32, 60, + 32, 48, 46, 48, 41, 32,123, 10, 9, 9,105,110,112, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, + 9, 9,102,108,111, 97,116, 32,105,110,116,101,110,115, 32, 61, 32, 97,114,101, 97, 95,108, 97,109,112, 95,101,110,101,114,103, +121, 40, 97,114,101, 97, 44, 32, 99,111, 44, 32,118,110, 41, 59, 10, 10, 9, 9,105,110,112, 32, 61, 32,112,111,119, 40,105,110, +116,101,110,115, 42, 97,114,101, 97,115,105,122,101, 44, 32,107, 41, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, + 97,100,101, 95,100,105,102,102,117,115,101, 95,111,114,101,110, 95,110, 97,121,101,114, 40,102,108,111, 97,116, 32,110,108, 44, + 32,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,114, +111,117,103,104, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32, +110,111,114,109, 97,108,105,122,101, 40,118, 32, 43, 32,108, 41, 59, 10, 9,102,108,111, 97,116, 32,110,104, 32, 61, 32,109, 97, +120, 40,100,111,116, 40,110, 44, 32,104, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, + 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,114,101, 97,108,110, +108, 32, 61, 32,100,111,116, 40,110, 44, 32,108, 41, 59, 10, 10, 9,105,102, 40,114,101, 97,108,110,108, 32, 60, 32, 48, 46, 48, + 41, 32,123, 10, 9, 9,105,115, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,105,102, 40,110,108, 32, 60, + 32, 48, 46, 48, 41, 32,123, 10, 9, 9,105,115, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, + 9,102,108,111, 97,116, 32,118,104, 32, 61, 32,109, 97,120, 40,100,111,116, 40,118, 44, 32,104, 41, 44, 32, 48, 46, 48, 41, 59, + 10, 9, 9,102,108,111, 97,116, 32, 76,105,116, 95, 65, 32, 61, 32, 97, 99,111,115, 40,114,101, 97,108,110,108, 41, 59, 10, 9, + 9,102,108,111, 97,116, 32, 86,105,101,119, 95, 65, 32, 61, 32, 97, 99,111,115, 40,110,118, 41, 59, 10, 10, 9, 9,118,101, 99, + 51, 32, 76,105,116, 95, 66, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108, 32, 45, 32,114,101, 97,108,110,108, 42,110, + 41, 59, 10, 9, 9,118,101, 99, 51, 32, 86,105,101,119, 95, 66, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 32, 45, + 32,110,118, 42,110, 41, 59, 10, 10, 9, 9,102,108,111, 97,116, 32,116, 32, 61, 32,109, 97,120, 40,100,111,116, 40, 76,105,116, + 95, 66, 44, 32, 86,105,101,119, 95, 66, 41, 44, 32, 48, 46, 48, 41, 59, 10, 10, 9, 9,102,108,111, 97,116, 32, 97, 44, 32, 98, + 59, 10, 10, 9, 9,105,102, 40, 76,105,116, 95, 65, 32, 62, 32, 86,105,101,119, 95, 65, 41, 32,123, 10, 9, 9, 9, 97, 32, 61, + 32, 76,105,116, 95, 65, 59, 10, 9, 9, 9, 98, 32, 61, 32, 86,105,101,119, 95, 65, 59, 10, 9, 9,125, 10, 9, 9,101,108,115, +101, 32,123, 10, 9, 9, 9, 97, 32, 61, 32, 86,105,101,119, 95, 65, 59, 10, 9, 9, 9, 98, 32, 61, 32, 76,105,116, 95, 65, 59, + 10, 9, 9,125, 10, 10, 9, 9,102,108,111, 97,116, 32, 65, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40, 48, 46, 53, 42, 40, 40,114, +111,117,103,104, 42,114,111,117,103,104, 41, 47, 40, 40,114,111,117,103,104, 42,114,111,117,103,104, 41, 32, 43, 32, 48, 46, 51, + 51, 41, 41, 41, 59, 10, 9, 9,102,108,111, 97,116, 32, 66, 32, 61, 32, 48, 46, 52, 53, 42, 40, 40,114,111,117,103,104, 42,114, +111,117,103,104, 41, 47, 40, 40,114,111,117,103,104, 42,114,111,117,103,104, 41, 32, 43, 32, 48, 46, 48, 57, 41, 41, 59, 10, 10, + 9, 9, 98, 32, 42, 61, 32, 48, 46, 57, 53, 59, 10, 9, 9,105,115, 32, 61, 32,110,108, 42, 40, 65, 32, 43, 32, 40, 66, 32, 42, + 32,116, 32, 42, 32,115,105,110, 40, 97, 41, 32, 42, 32,116, 97,110, 40, 98, 41, 41, 41, 59, 10, 9,125, 10,125, 10, 10,118,111, +105,100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115,101, 95,116,111,111,110, 40,118,101, 99, 51, 32,110, 44, 32,118,101, + 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32, +116,115,109,111,111,116,104, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,102,108,111, 97,116, 32, +114,115,108,116, 32, 61, 32,100,111,116, 40,110, 44, 32,108, 41, 59, 10, 9,102,108,111, 97,116, 32, 97,110,103, 32, 61, 32, 97, + 99,111,115, 40,114,115,108,116, 41, 59, 10, 10, 9,105,102, 40, 97,110,103, 32, 60, 32,115,105,122,101, 41, 32,105,115, 32, 61, + 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 97,110,103, 32, 62, 32, 40,115,105,122,101, 32, 43, 32,116,115,109, +111,111,116,104, 41, 32,124,124, 32,116,115,109,111,111,116,104, 32, 61, 61, 32, 48, 46, 48, 41, 32,105,115, 32, 61, 32, 48, 46, + 48, 59, 10, 9,101,108,115,101, 32,105,115, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40, 40, 97,110,103, 32, 45, 32,115,105,122,101, + 41, 47,116,115,109,111,111,116,104, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115, +101, 95,109,105,110,110, 97,101,114,116, 40,102,108,111, 97,116, 32,110,108, 44, 32,118,101, 99, 51, 32,110, 44, 32,118,101, 99, + 51, 32,118, 44, 32,102,108,111, 97,116, 32,100, 97,114,107,110,101,115,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105, +115, 41, 10,123, 10, 9,105,102, 40,110,108, 32, 60, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,105,115, 32, 61, 32, 48, 46, 48, + 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111, +116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 41, 59, 10, 10, 9, 9,105,102, 40,100, 97,114,107,110,101,115,115, 32, 60, 61, + 32, 49, 46, 48, 41, 10, 9, 9, 9,105,115, 32, 61, 32,110,108, 42,112,111,119, 40,109, 97,120, 40,110,118, 42,110,108, 44, 32, + 48, 46, 49, 41, 44, 32,100, 97,114,107,110,101,115,115, 32, 45, 32, 49, 46, 48, 41, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, + 9,105,115, 32, 61, 32,110,108, 42,112,111,119, 40, 49, 46, 48, 48, 48, 49, 32, 45, 32,110,118, 44, 32,100, 97,114,107,110,101, +115,115, 32, 45, 32, 49, 46, 48, 41, 59, 10, 9,125, 10,125, 10, 10,102,108,111, 97,116, 32,102,114,101,115,110,101,108, 95,102, + 97, 99, 40,118,101, 99, 51, 32,118,105,101,119, 44, 32,118,101, 99, 51, 32,118,110, 44, 32,102,108,111, 97,116, 32,103,114, 97, +100, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,116, 49, 44, 32,116, 50, 59, 10, 9, +102,108,111, 97,116, 32,102,102, 97, 99, 59, 10, 10, 9,105,102, 40,102, 97, 99, 61, 61, 48, 46, 48, 41, 32,123, 10, 9, 9,102, +102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,116, 49, 61, 32,100,111,116, 40, +118,105,101,119, 44, 32,118,110, 41, 59, 10, 9, 9,105,102, 40,116, 49, 62, 48, 46, 48, 41, 32, 32,116, 50, 61, 32, 49, 46, 48, + 43,116, 49, 59, 10, 9, 9,101,108,115,101, 32,116, 50, 61, 32, 49, 46, 48, 45,116, 49, 59, 10, 10, 9, 9,116, 50, 61, 32,103, +114, 97,100, 32, 43, 32, 40, 49, 46, 48, 45,103,114, 97,100, 41, 42,112,111,119, 40,116, 50, 44, 32,102, 97, 99, 41, 59, 10, 10, + 9, 9,105,102, 40,116, 50, 60, 48, 46, 48, 41, 32,102,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,101,108,115,101, 32, +105,102, 40,116, 50, 62, 49, 46, 48, 41, 32,102,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,102,102, + 97, 99, 32, 61, 32,116, 50, 59, 10, 9,125, 10, 10, 9,114,101,116,117,114,110, 32,102,102, 97, 99, 59, 10,125, 10, 10,118,111, +105,100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115,101, 95,102,114,101,115,110,101,108, 40,118,101, 99, 51, 32,118,110, + 44, 32,118,101, 99, 51, 32,108,118, 44, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 95, +105, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105, +115, 32, 61, 32,102,114,101,115,110,101,108, 95,102, 97, 99, 40,108,118, 44, 32,118,110, 44, 32,102, 97, 99, 95,105, 44, 32,102, + 97, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 99,117, 98,105, 99, 40,102,108,111, 97,116, 32,105, +115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,105,115, 41, 10,123, 10, 9,105,102, 40,105,115, 62, 48, 46, 48, + 32, 38, 38, 32,105,115, 60, 49, 46, 48, 41, 10, 9, 9,111,117,116,105,115, 61, 32,115,109,111,111,116,104,115,116,101,112, 40, + 48, 46, 48, 44, 32, 49, 46, 48, 44, 32,105,115, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,105,115, 61, 32,105,115, + 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,118,105,115,105,102, 97, 99, 40,102,108,111, 97,116, 32,105, 44, + 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,102,108,111, 97,116, 32,114,101,102,108, 44, 32,111,117,116, 32, +102,108,111, 97,116, 32,111,117,116,105, 41, 10,123, 10, 9, 47, 42,105,102, 40,105, 32, 62, 32, 48, 46, 48, 41, 42, 47, 10, 9, + 9,111,117,116,105, 32, 61, 32,109, 97,120, 40,105, 42,118,105,115,105,102, 97, 99, 42,114,101,102,108, 44, 32, 48, 46, 48, 41, + 59, 10, 9, 47, 42,101,108,115,101, 10, 9, 9,111,117,116,105, 32, 61, 32,105, 59, 42, 47, 10,125, 10, 10,118,111,105,100, 32, +115,104, 97,100,101, 95,116, 97,110,103,101,110,116, 95,118, 95,115,112,101, 99, 40,118,101, 99, 51, 32,116, 97,110,103, 44, 32, +111,117,116, 32,118,101, 99, 51, 32,118,110, 41, 10,123, 10, 9,118,110, 32, 61, 32,116, 97,110,103, 59, 10,125, 10, 10,118,111, +105,100, 32,115,104, 97,100,101, 95, 97,100,100, 95,116,111, 95,100,105,102,102,117,115,101, 40,102,108,111, 97,116, 32,105, 44, + 32,118,101, 99, 51, 32,108, 97,109,112, 99,111,108, 44, 32,118,101, 99, 51, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, + 51, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,105,102, 40,105, 32, 62, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111, +108, 32, 61, 32,105, 42,108, 97,109,112, 99,111,108, 42, 99,111,108, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111, +108, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, + 32,115,104, 97,100,101, 95,104,101,109,105, 95,115,112,101, 99, 40,118,101, 99, 51, 32,118,110, 44, 32,118,101, 99, 51, 32,108, +118, 44, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,102,108,111, 97,116, 32,115,112,101, 99, 44, 32,102,108,111, 97,116, 32, +104, 97,114,100, 44, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,116, + 41, 10,123, 10, 9,108,118, 32, 43, 61, 32,118,105,101,119, 59, 10, 9,108,118, 32, 61, 32,110,111,114,109, 97,108,105,122,101, + 40,108,118, 41, 59, 10, 10, 9,116, 32, 61, 32,100,111,116, 40,118,110, 44, 32,108,118, 41, 59, 10, 9,116, 32, 61, 32, 48, 46, + 53, 42,116, 32, 43, 32, 48, 46, 53, 59, 10, 10, 9,116, 32, 61, 32,118,105,115,105,102, 97, 99, 42,115,112,101, 99, 42,112,111, +119, 40,116, 44, 32,104, 97,114,100, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,112,104,111,110,103, 95, +115,112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, + 97,116, 32,104, 97,114,100, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,118, +101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108, 32, 43, 32,118, 41, 59, 10, 9,102,108,111, 97,116, + 32,114,115,108,116, 32, 61, 32,109, 97,120, 40,100,111,116, 40,104, 44, 32,110, 41, 44, 32, 48, 46, 48, 41, 59, 10, 10, 9,115, +112,101, 99,102, 97, 99, 32, 61, 32,112,111,119, 40,114,115,108,116, 44, 32,104, 97,114,100, 41, 59, 10,125, 10, 10,118,111,105, +100, 32,115,104, 97,100,101, 95, 99,111,111,107,116,111,114,114, 95,115,112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, + 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,104, 97,114,100, 44, 32,111,117,116, 32,102,108, 111, 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105, -122,101, 40,108, 32, 43, 32,118, 41, 59, 10, 9,102,108,111, 97,116, 32,114,115,108,116, 32, 61, 32,100,111,116, 40,104, 44, 32, -110, 41, 59, 10, 9,102,108,111, 97,116, 32, 97,110,103, 32, 61, 32, 97, 99,111,115, 40,114,115,108,116, 41, 59, 10, 10, 9,105, -102, 40, 97,110,103, 32, 60, 32,115,105,122,101, 41, 32,114,115,108,116, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 32, -105,102, 40, 97,110,103, 32, 62, 61, 32, 40,115,105,122,101, 32, 43, 32,116,115,109,111,111,116,104, 41, 32,124,124, 32,116,115, -109,111,111,116,104, 32, 61, 61, 32, 48, 46, 48, 41, 32,114,115,108,116, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32, -114,115,108,116, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40, 40, 97,110,103, 32, 45, 32,115,105,122,101, 41, 47,116,115,109,111,111, -116,104, 41, 59, 10, 10, 9,115,112,101, 99,102, 97, 99, 32, 61, 32,114,115,108,116, 59, 10,125, 10, 10,118,111,105,100, 32,115, -104, 97,100,101, 95,115,112,101, 99, 95, 97,114,101, 97, 95,105,110,112, 40,102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, - 44, 32,102,108,111, 97,116, 32,105,110,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,112,101, 99,102, 97, - 99, 41, 10,123, 10, 9,111,117,116,115,112,101, 99,102, 97, 99, 32, 61, 32,115,112,101, 99,102, 97, 99, 42,105,110,112, 59, 10, -125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,115,112,101, 99, 95,116, 40,102,108,111, 97,116, 32,115,104, 97,100,102, - 97, 99, 44, 32,102,108,111, 97,116, 32,115,112,101, 99, 44, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,102, -108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,116, 41, 10,123, 10, 9,116, 32, - 61, 32,115,104, 97,100,102, 97, 99, 42,115,112,101, 99, 42,118,105,115,105,102, 97, 99, 42,115,112,101, 99,102, 97, 99, 59, 10, -125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 97,100,100, 95,115,112,101, 99, 40,102,108,111, 97,116, 32,116, 44, 32, -118,101, 99, 51, 32,108, 97,109,112, 99,111,108, 44, 32,118,101, 99, 51, 32,115,112,101, 99, 99,111,108, 44, 32,111,117,116, 32, -118,101, 99, 51, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32,116, 42,108, 97,109,112, 99, -111,108, 42,115,112,101, 99, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 97,100,100, 40,118,101, - 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, - 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 32, 43, 32, 99,111,108, 50, 59, 10,125, 10, - 10,118,111,105,100, 32,115,104, 97,100,101, 95,109, 97,100,100, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,118,101, 99, 52, 32, - 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, - 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 32, 43, 32, 99,111,108, 49, 42, 99,111,108, 50, 59, 10,125, - 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,109, 97,100,100,102, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,102,108,111, - 97,116, 32,102, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, - 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 32, 43, 32,102, 42, 99,111,108, 49, 59, 10,125, 10, 10,118, -111,105,100, 32,115,104, 97,100,101, 95,109,117,108, 40,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111, -108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, - 32, 99,111,108, 49, 42, 99,111,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,109,117,108, 95,118, 97, -108,117,101, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, - 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 42,102, 97, 99, 59, 10,125, - 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,111, 98, 99,111,108,111,114, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,118, -101, 99, 52, 32,111, 98, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111, -117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, 98, 42,111, 98, 99,111,108, 46,114,103, 98, 44, 32, - 99,111,108, 46, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,114, 97,109,112, 95,114,103, 98,116,111, 98,119, 40,118,101, 99, - 51, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117, -116,118, 97,108, 32, 61, 32, 99,111,108,111,114, 46,114, 42, 48, 46, 51, 32, 43, 32, 99,111,108,111,114, 46,103, 42, 48, 46, 53, - 56, 32, 43, 32, 99,111,108,111,114, 46, 98, 42, 48, 46, 49, 50, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, -111,110,108,121, 95,115,104, 97,100,111,119, 40,102,108,111, 97,116, 32,105, 44, 32,102,108,111, 97,116, 32,115,104, 97,100,102, - 97, 99, 44, 32,102,108,111, 97,116, 32,101,110,101,114,103,121, 44, 32,118,101, 99, 51, 32,114,103, 98, 44, 32,118,101, 99, 51, - 32,115,112,101, 99,114,103, 98, 44, 32,118,101, 99, 52, 32,100,105,102,102, 44, 32,118,101, 99, 52, 32,115,112,101, 99, 44, 32, -111,117,116, 32,118,101, 99, 52, 32,111,117,116,100,105,102,102, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,115,112, -101, 99, 41, 10,123, 10, 9,115,104, 97,100,102, 97, 99, 32, 61, 32,105, 42,101,110,101,114,103,121, 42, 40, 49, 46, 48, 32, 45, - 32,115,104, 97,100,102, 97, 99, 41, 59, 10, 10, 9,111,117,116,100,105,102,102, 32, 61, 32,100,105,102,102, 32, 45, 32,118,101, - 99, 52, 40,114,103, 98, 42,115,104, 97,100,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10, 9,111,117,116,115,112,101, 99, 32, 61, +122,101, 40,118, 32, 43, 32,108, 41, 59, 10, 9,102,108,111, 97,116, 32,110,104, 32, 61, 32,100,111,116, 40,110, 44, 32,104, 41, + 59, 10, 10, 9,105,102, 40,110,104, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, + 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40, +100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9, 9,102,108,111, 97,116, 32,105, 32, 61, 32,112,111,119, + 40,110,104, 44, 32,104, 97,114,100, 41, 59, 10, 10, 9, 9,105, 32, 61, 32,105, 47, 40, 48, 46, 49, 43,110,118, 41, 59, 10, 9, + 9,115,112,101, 99,102, 97, 99, 32, 61, 32,105, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 98, +108,105,110,110, 95,115,112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, + 44, 32,102,108,111, 97,116, 32,114,101,102,114, 97, 99, 44, 32,102,108,111, 97,116, 32,115,112,101, 99, 95,112,111,119,101,114, + 44, 32,111,117,116, 32,102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,105,102, 40,114,101,102,114, 97, + 99, 32, 60, 32, 49, 46, 48, 41, 32,123, 10, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9, +101,108,115,101, 32,105,102, 40,115,112,101, 99, 95,112,111,119,101,114, 32, 61, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,115, +112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,105,102, 40,115,112, +101, 99, 95,112,111,119,101,114, 60, 49, 48, 48, 46, 48, 41, 10, 9, 9, 9,115,112,101, 99, 95,112,111,119,101,114, 61, 32,115, +113,114,116, 40, 49, 46, 48, 47,115,112,101, 99, 95,112,111,119,101,114, 41, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,115, +112,101, 99, 95,112,111,119,101,114, 61, 32, 49, 48, 46, 48, 47,115,112,101, 99, 95,112,111,119,101,114, 59, 10, 10, 9, 9,118, +101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 32, 43, 32,108, 41, 59, 10, 9, 9,102,108,111, 97, +116, 32,110,104, 32, 61, 32,100,111,116, 40,110, 44, 32,104, 41, 59, 10, 9, 9,105,102, 40,110,104, 32, 60, 32, 48, 46, 48, 41, + 32,123, 10, 9, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,125, 10, 9, 9,101,108,115,101, 32, +123, 10, 9, 9, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, + 46, 48, 49, 41, 59, 10, 9, 9, 9,102,108,111, 97,116, 32,110,108, 32, 61, 32,100,111,116, 40,110, 44, 32,108, 41, 59, 10, 9, + 9, 9,105,102, 40,110,108, 32, 60, 61, 32, 48, 46, 48, 49, 41, 32,123, 10, 9, 9, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, + 32, 48, 46, 48, 59, 10, 9, 9, 9,125, 10, 9, 9, 9,101,108,115,101, 32,123, 10, 9, 9, 9, 9,102,108,111, 97,116, 32,118, +104, 32, 61, 32,109, 97,120, 40,100,111,116, 40,118, 44, 32,104, 41, 44, 32, 48, 46, 48, 49, 41, 59, 10, 10, 9, 9, 9, 9,102, +108,111, 97,116, 32, 97, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9, 9, 9,102,108,111, 97,116, 32, 98, 32, 61, 32, 40, 50, 46, 48, + 42,110,104, 42,110,118, 41, 47,118,104, 59, 10, 9, 9, 9, 9,102,108,111, 97,116, 32, 99, 32, 61, 32, 40, 50, 46, 48, 42,110, +104, 42,110,108, 41, 47,118,104, 59, 10, 10, 9, 9, 9, 9,102,108,111, 97,116, 32,103, 59, 10, 10, 9, 9, 9, 9,105,102, 40, + 97, 32, 60, 32, 98, 32, 38, 38, 32, 97, 32, 60, 32, 99, 41, 32,103, 32, 61, 32, 97, 59, 10, 9, 9, 9, 9,101,108,115,101, 32, +105,102, 40, 98, 32, 60, 32, 97, 32, 38, 38, 32, 98, 32, 60, 32, 99, 41, 32,103, 32, 61, 32, 98, 59, 10, 9, 9, 9, 9,101,108, +115,101, 32,105,102, 40, 99, 32, 60, 32, 97, 32, 38, 38, 32, 99, 32, 60, 32, 98, 41, 32,103, 32, 61, 32, 99, 59, 10, 10, 9, 9, + 9, 9,102,108,111, 97,116, 32,112, 32, 61, 32,115,113,114,116, 40, 40, 40,114,101,102,114, 97, 99, 32, 42, 32,114,101,102,114, + 97, 99, 41, 43, 40,118,104, 42,118,104, 41, 45, 49, 46, 48, 41, 41, 59, 10, 9, 9, 9, 9,102,108,111, 97,116, 32,102, 32, 61, + 32, 40, 40, 40,112, 45,118,104, 41, 42, 40,112, 45,118,104, 41, 41, 47, 40, 40,112, 43,118,104, 41, 42, 40,112, 43,118,104, 41, + 41, 41, 42, 40, 49, 46, 48, 43, 40, 40, 40, 40,118,104, 42, 40,112, 43,118,104, 41, 41, 45, 49, 46, 48, 41, 42, 40, 40,118,104, + 42, 40,112, 43,118,104, 41, 41, 45, 49, 46, 48, 41, 41, 47, 40, 40, 40,118,104, 42, 40,112, 45,118,104, 41, 41, 43, 49, 46, 48, + 41, 42, 40, 40,118,104, 42, 40,112, 45,118,104, 41, 41, 43, 49, 46, 48, 41, 41, 41, 41, 59, 10, 9, 9, 9, 9,102,108,111, 97, +116, 32, 97,110,103, 32, 61, 32, 97, 99,111,115, 40,110,104, 41, 59, 10, 10, 9, 9, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, + 32,109, 97,120, 40,102, 42,103, 42,101,120,112, 95, 98,108,101,110,100,101,114, 40, 40, 45, 40, 97,110,103, 42, 97,110,103, 41, + 47, 40, 50, 46, 48, 42,115,112,101, 99, 95,112,111,119,101,114, 42,115,112,101, 99, 95,112,111,119,101,114, 41, 41, 41, 44, 32, + 48, 46, 48, 41, 59, 10, 9, 9, 9,125, 10, 9, 9,125, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, +119, 97,114,100,105,115,111, 95,115,112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, + 51, 32,118, 44, 32,102,108,111, 97,116, 32,114,109,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,115,112,101, 99,102, 97, + 99, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108, 32, 43, 32,118, 41, 59, + 10, 9,102,108,111, 97,116, 32,110,104, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,104, 41, 44, 32, 48, 46, 48, 48, + 49, 41, 59, 10, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, + 46, 48, 48, 49, 41, 59, 10, 9,102,108,111, 97,116, 32,110,108, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,108, 41, + 44, 32, 48, 46, 48, 48, 49, 41, 59, 10, 9,102,108,111, 97,116, 32, 97,110,103,108,101, 32, 61, 32,116, 97,110, 40, 97, 99,111, +115, 40,110,104, 41, 41, 59, 10, 9,102,108,111, 97,116, 32, 97,108,112,104, 97, 32, 61, 32,109, 97,120, 40,114,109,115, 44, 32, + 48, 46, 48, 48, 49, 41, 59, 10, 10, 9,115,112,101, 99,102, 97, 99, 61, 32,110,108, 32, 42, 32, 40, 49, 46, 48, 47, 40, 52, 46, + 48, 42, 77, 95, 80, 73, 42, 97,108,112,104, 97, 42, 97,108,112,104, 97, 41, 41, 42, 40,101,120,112, 95, 98,108,101,110,100,101, +114, 40, 45, 40, 97,110,103,108,101, 42, 97,110,103,108,101, 41, 47, 40, 97,108,112,104, 97, 42, 97,108,112,104, 97, 41, 41, 47, + 40,115,113,114,116, 40,110,118, 42,110,108, 41, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,116,111, +111,110, 95,115,112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32, +102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,115,109,111,111,116,104, 44, 32,111,117,116, 32,102, +108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108, +105,122,101, 40,108, 32, 43, 32,118, 41, 59, 10, 9,102,108,111, 97,116, 32,114,115,108,116, 32, 61, 32,100,111,116, 40,104, 44, + 32,110, 41, 59, 10, 9,102,108,111, 97,116, 32, 97,110,103, 32, 61, 32, 97, 99,111,115, 40,114,115,108,116, 41, 59, 10, 10, 9, +105,102, 40, 97,110,103, 32, 60, 32,115,105,122,101, 41, 32,114,115,108,116, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, + 32,105,102, 40, 97,110,103, 32, 62, 61, 32, 40,115,105,122,101, 32, 43, 32,116,115,109,111,111,116,104, 41, 32,124,124, 32,116, +115,109,111,111,116,104, 32, 61, 61, 32, 48, 46, 48, 41, 32,114,115,108,116, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, + 32,114,115,108,116, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40, 40, 97,110,103, 32, 45, 32,115,105,122,101, 41, 47,116,115,109,111, +111,116,104, 41, 59, 10, 10, 9,115,112,101, 99,102, 97, 99, 32, 61, 32,114,115,108,116, 59, 10,125, 10, 10,118,111,105,100, 32, +115,104, 97,100,101, 95,115,112,101, 99, 95, 97,114,101, 97, 95,105,110,112, 40,102,108,111, 97,116, 32,115,112,101, 99,102, 97, + 99, 44, 32,102,108,111, 97,116, 32,105,110,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,112,101, 99,102, + 97, 99, 41, 10,123, 10, 9,111,117,116,115,112,101, 99,102, 97, 99, 32, 61, 32,115,112,101, 99,102, 97, 99, 42,105,110,112, 59, + 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,115,112,101, 99, 95,116, 40,102,108,111, 97,116, 32,115,104, 97,100, +102, 97, 99, 44, 32,102,108,111, 97,116, 32,115,112,101, 99, 44, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32, +102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,116, 41, 10,123, 10, 9,116, + 32, 61, 32,115,104, 97,100,102, 97, 99, 42,115,112,101, 99, 42,118,105,115,105,102, 97, 99, 42,115,112,101, 99,102, 97, 99, 59, + 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 97,100,100, 95,115,112,101, 99, 40,102,108,111, 97,116, 32,116, 44, + 32,118,101, 99, 51, 32,108, 97,109,112, 99,111,108, 44, 32,118,101, 99, 51, 32,115,112,101, 99, 99,111,108, 44, 32,111,117,116, + 32,118,101, 99, 51, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32,116, 42,108, 97,109,112, + 99,111,108, 42,115,112,101, 99, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 97,100,100, 40,118, +101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117, +116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 32, 43, 32, 99,111,108, 50, 59, 10,125, + 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,109, 97,100,100, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,118,101, 99, 52, + 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111, +108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 32, 43, 32, 99,111,108, 49, 42, 99,111,108, 50, 59, 10, +125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,109, 97,100,100,102, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,102,108, +111, 97,116, 32,102, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111, +108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 32, 43, 32,102, 42, 99,111,108, 49, 59, 10,125, 10, 10, +118,111,105,100, 32,115,104, 97,100,101, 95,109,117,108, 40,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99, +111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, + 61, 32, 99,111,108, 49, 42, 99,111,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,109,117,108, 95,118, + 97,108,117,101, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, + 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 42,102, 97, 99, 59, 10, +125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,111, 98, 99,111,108,111,114, 40,118,101, 99, 52, 32, 99,111,108, 44, 32, +118,101, 99, 52, 32,111, 98, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9, +111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, 98, 42,111, 98, 99,111,108, 46,114,103, 98, 44, + 32, 99,111,108, 46, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,114, 97,109,112, 95,114,103, 98,116,111, 98,119, 40,118,101, + 99, 51, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111, +117,116,118, 97,108, 32, 61, 32, 99,111,108,111,114, 46,114, 42, 48, 46, 51, 32, 43, 32, 99,111,108,111,114, 46,103, 42, 48, 46, + 53, 56, 32, 43, 32, 99,111,108,111,114, 46, 98, 42, 48, 46, 49, 50, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, + 95,111,110,108,121, 95,115,104, 97,100,111,119, 40,102,108,111, 97,116, 32,105, 44, 32,102,108,111, 97,116, 32,115,104, 97,100, +102, 97, 99, 44, 32,102,108,111, 97,116, 32,101,110,101,114,103,121, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, +115,104, 97,100,102, 97, 99, 41, 10,123, 10, 9,111,117,116,115,104, 97,100,102, 97, 99, 32, 61, 32,105, 42,101,110,101,114,103, +121, 42, 40, 49, 46, 48, 32, 45, 32,115,104, 97,100,102, 97, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, + 95,111,110,108,121, 95,115,104, 97,100,111,119, 95,100,105,102,102,117,115,101, 40,102,108,111, 97,116, 32,115,104, 97,100,102, + 97, 99, 44, 32,118,101, 99, 51, 32,114,103, 98, 44, 32,118,101, 99, 52, 32,100,105,102,102, 44, 32,111,117,116, 32,118,101, 99, + 52, 32,111,117,116,100,105,102,102, 41, 10,123, 10, 9,111,117,116,100,105,102,102, 32, 61, 32,100,105,102,102, 32, 45, 32,118, +101, 99, 52, 40,114,103, 98, 42,115,104, 97,100,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115, +104, 97,100,101, 95,111,110,108,121, 95,115,104, 97,100,111,119, 95,115,112,101, 99,117,108, 97,114, 40,102,108,111, 97,116, 32, +115,104, 97,100,102, 97, 99, 44, 32,118,101, 99, 51, 32,115,112,101, 99,114,103, 98, 44, 32,118,101, 99, 52, 32,115,112,101, 99, + 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,115,112,101, 99, 41, 10,123, 10, 9,111,117,116,115,112,101, 99, 32, 61, 32,115,112,101, 99, 32, 45, 32,118,101, 99, 52, 40,115,112,101, 99,114,103, 98, 42,115,104, 97,100,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,115,116, 95,115,104, 97,100,111,119, 98,117,102, 40,118,101, 99, 51, 32, 114, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 83,104, 97,100,111,119, 32,115,104, 97,100,111,119,109, 97,112, 44, 32, From 5eab0da6335b57cc3508d85277592e0f789c7ebd Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 5 Sep 2008 16:22:14 +0000 Subject: [PATCH 12/66] BGE set visible actuator, option to set visibility recursively to make managing visibility for collections of objects a lot easier. BGE Python api's ob.setVisible() also takes an optional recursive arg thats off by default --- source/blender/makesdna/DNA_actuator_types.h | 4 +- source/blender/src/buttons_logic.c | 2 +- .../Converter/KX_ConvertActuators.cpp | 5 +- source/gameengine/Ketsji/KX_GameObject.cpp | 67 +++++++++++++++---- source/gameengine/Ketsji/KX_GameObject.h | 6 +- source/gameengine/Ketsji/KX_Scene.cpp | 8 +-- .../Ketsji/KX_VisibilityActuator.cpp | 8 ++- .../gameengine/Ketsji/KX_VisibilityActuator.h | 2 + 8 files changed, 74 insertions(+), 28 deletions(-) diff --git a/source/blender/makesdna/DNA_actuator_types.h b/source/blender/makesdna/DNA_actuator_types.h index d08cf42867d..ca0ad06eac3 100644 --- a/source/blender/makesdna/DNA_actuator_types.h +++ b/source/blender/makesdna/DNA_actuator_types.h @@ -193,7 +193,8 @@ typedef struct bGameActuator { } bGameActuator; typedef struct bVisibilityActuator { - /** bit 0: Is this object visible? */ + /** bit 0: Is this object visible? + ** bit 1: Apply recursively */ int flag; } bVisibilityActuator; @@ -448,6 +449,7 @@ typedef struct FreeCamera { /* visibilityact->flag */ /* Set means the object will become invisible */ #define ACT_VISIBILITY_INVISIBLE (1 << 0) +#define ACT_VISIBILITY_RECURSIVE (1 << 1) /* twodfilter->type */ #define ACT_2DFILTER_ENABLED -2 diff --git a/source/blender/src/buttons_logic.c b/source/blender/src/buttons_logic.c index 9c66b7831bb..df76534f3f5 100644 --- a/source/blender/src/buttons_logic.c +++ b/source/blender/src/buttons_logic.c @@ -2350,7 +2350,7 @@ static short draw_actuatorbuttons(Object *ob, bActuator *act, uiBlock *block, sh visAct = act->data; - str= "Visibility %t|Visible %x0|Invisible %x1"; + str= "Visibility %t|Visible %x0|Invisible %x1|Visible Recursive %x2|Invisible Recursive %x3"; uiDefButI(block, MENU, B_REDR, str, xco + 10, yco - 24, width - 20, 19, &visAct->flag, diff --git a/source/gameengine/Converter/KX_ConvertActuators.cpp b/source/gameengine/Converter/KX_ConvertActuators.cpp index 321fc325bb8..3142f7652de 100644 --- a/source/gameengine/Converter/KX_ConvertActuators.cpp +++ b/source/gameengine/Converter/KX_ConvertActuators.cpp @@ -962,10 +962,9 @@ void BL_ConvertActuators(char* maggiename, bVisibilityActuator *vis_act = (bVisibilityActuator *) bact->data; KX_VisibilityActuator * tmp_vis_act = NULL; bool v = ((vis_act->flag & ACT_VISIBILITY_INVISIBLE) != 0); + bool recursive = ((vis_act->flag & ACT_VISIBILITY_RECURSIVE) != 0); - tmp_vis_act = - new KX_VisibilityActuator(gameobj, - !v); + tmp_vis_act = new KX_VisibilityActuator(gameobj, !v, recursive); baseact = tmp_vis_act; } diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index bec5d188f06..204eed9fa92 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -364,15 +364,36 @@ void KX_GameObject::AddMeshUser() for (size_t i=0;iAddMeshUser(this); - UpdateBuckets(); + UpdateBuckets(false); } -void KX_GameObject::UpdateBuckets() +static void UpdateBuckets_recursive(SG_Node* node) +{ + NodeList& children = node->GetSGChildren(); + + for (NodeList::iterator childit = children.begin();!(childit==children.end());++childit) + { + SG_Node* childnode = (*childit); + KX_GameObject *clientgameobj = static_cast( (*childit)->GetSGClientObject()); + if (clientgameobj != NULL) // This is a GameObject + clientgameobj->UpdateBuckets(0); + + // if the childobj is NULL then this may be an inverse parent link + // so a non recursive search should still look down this node. + UpdateBuckets_recursive(childnode); + } +} + +void KX_GameObject::UpdateBuckets( bool recursive ) { double* fl = GetOpenGLMatrix(); for (size_t i=0;iUpdateBuckets(this, fl, m_bUseObjectColor, m_objectColor, m_bVisible, m_bCulled); + + if (recursive) { + UpdateBuckets_recursive(m_pSGNode); + } } void KX_GameObject::RemoveMeshes() @@ -502,12 +523,33 @@ KX_GameObject::GetVisible( return m_bVisible; } +static void setVisible_recursive(SG_Node* node, bool v) +{ + NodeList& children = node->GetSGChildren(); + + for (NodeList::iterator childit = children.begin();!(childit==children.end());++childit) + { + SG_Node* childnode = (*childit); + KX_GameObject *clientgameobj = static_cast( (*childit)->GetSGClientObject()); + if (clientgameobj != NULL) // This is a GameObject + clientgameobj->SetVisible(v, 0); + + // if the childobj is NULL then this may be an inverse parent link + // so a non recursive search should still look down this node. + setVisible_recursive(childnode, v); + } +} + + void KX_GameObject::SetVisible( - bool v + bool v, + bool recursive ) { m_bVisible = v; + if (recursive) + setVisible_recursive(m_pSGNode, v); } bool @@ -880,7 +922,7 @@ PyMethodDef KX_GameObject::Methods[] = { {"getOrientation", (PyCFunction) KX_GameObject::sPyGetOrientation, METH_NOARGS}, {"setOrientation", (PyCFunction) KX_GameObject::sPySetOrientation, METH_O}, {"getVisible",(PyCFunction) KX_GameObject::sPyGetVisible, METH_NOARGS}, - {"setVisible",(PyCFunction) KX_GameObject::sPySetVisible, METH_O}, + {"setVisible",(PyCFunction) KX_GameObject::sPySetVisible, METH_VARARGS}, {"getState",(PyCFunction) KX_GameObject::sPyGetState, METH_NOARGS}, {"setState",(PyCFunction) KX_GameObject::sPySetState, METH_O}, {"alignAxisToVect",(PyCFunction) KX_GameObject::sPyAlignAxisToVect, METH_VARARGS}, @@ -1036,8 +1078,8 @@ int KX_GameObject::_setattr(const STR_String& attr, PyObject *value) // _setattr int val = PyInt_AsLong(value); if (attr == "visible") { - SetVisible(val != 0); - UpdateBuckets(); + SetVisible(val != 0, false); + UpdateBuckets(false); return 0; } } @@ -1198,17 +1240,14 @@ PyObject* KX_GameObject::PySetAngularVelocity(PyObject* self, PyObject* args) return NULL; } -PyObject* KX_GameObject::PySetVisible(PyObject* self, PyObject* value) +PyObject* KX_GameObject::PySetVisible(PyObject* self, PyObject* args) { - int visible = PyInt_AsLong(value); - - if (visible==-1 && PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError, "expected 0 or 1"); + int visible, recursive = 0; + if (!PyArg_ParseTuple(args,"i|i",&visible, &recursive)) return NULL; - } - SetVisible(visible != 0); - UpdateBuckets(); + SetVisible(visible ? true:false, recursive ? true:false); + UpdateBuckets(recursive ? true:false); Py_RETURN_NONE; } diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index 9dcf6526448..98b3f3b4c3f 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -566,6 +566,7 @@ public: */ void UpdateBuckets( + bool recursive ); /** @@ -640,7 +641,8 @@ public: */ void SetVisible( - bool b + bool b, + bool recursive ); /** @@ -762,7 +764,7 @@ public: KX_PYMETHOD_NOARGS(KX_GameObject,GetOrientation); KX_PYMETHOD_O(KX_GameObject,SetOrientation); KX_PYMETHOD_NOARGS(KX_GameObject,GetVisible); - KX_PYMETHOD_O(KX_GameObject,SetVisible); + KX_PYMETHOD_VARARGS(KX_GameObject,SetVisible); KX_PYMETHOD_NOARGS(KX_GameObject,GetState); KX_PYMETHOD_O(KX_GameObject,SetState); KX_PYMETHOD_VARARGS(KX_GameObject,AlignAxisToVect); diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 2ad0412f1bf..72875bbc039 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -1235,7 +1235,7 @@ void KX_Scene::MarkSubTreeVisible(SG_Tree *node, RAS_IRasterizer* rasty, bool vi } gameobj->SetCulled(!visible); - gameobj->UpdateBuckets(); + gameobj->UpdateBuckets(false); } } if (node->Left()) @@ -1253,7 +1253,7 @@ void KX_Scene::MarkVisible(RAS_IRasterizer* rasty, KX_GameObject* gameobj,KX_Cam // Shadow lamp layers if(layer && !(gameobj->GetLayer() & layer)) { gameobj->SetCulled(true); - gameobj->UpdateBuckets(); + gameobj->UpdateBuckets(false); return; } @@ -1300,10 +1300,10 @@ void KX_Scene::MarkVisible(RAS_IRasterizer* rasty, KX_GameObject* gameobj,KX_Cam // Visibility/ non-visibility are marked // elsewhere now. gameobj->SetCulled(false); - gameobj->UpdateBuckets(); + gameobj->UpdateBuckets(false); } else { gameobj->SetCulled(true); - gameobj->UpdateBuckets(); + gameobj->UpdateBuckets(false); } } diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp index 5a0cadcbcfe..60ea6ace53b 100644 --- a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp +++ b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp @@ -38,10 +38,12 @@ KX_VisibilityActuator::KX_VisibilityActuator( SCA_IObject* gameobj, bool visible, + bool recursive, PyTypeObject* T ) : SCA_IActuator(gameobj,T), - m_visible(visible) + m_visible(visible), + m_recursive(recursive) { // intentionally empty } @@ -75,8 +77,8 @@ KX_VisibilityActuator::Update() KX_GameObject *obj = (KX_GameObject*) GetParent(); - obj->SetVisible(m_visible); - obj->UpdateBuckets(); + obj->SetVisible(m_visible, m_recursive); + obj->UpdateBuckets(m_recursive); return true; } diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.h b/source/gameengine/Ketsji/KX_VisibilityActuator.h index 9b4753033fb..d1b85ab998c 100644 --- a/source/gameengine/Ketsji/KX_VisibilityActuator.h +++ b/source/gameengine/Ketsji/KX_VisibilityActuator.h @@ -39,12 +39,14 @@ class KX_VisibilityActuator : public SCA_IActuator /** Make visible? */ bool m_visible; + bool m_recursive; public: KX_VisibilityActuator( SCA_IObject* gameobj, bool visible, + bool recursive, PyTypeObject* T=&Type ); From d8b9ca34a0022742e8641ce587c41d0b1a3e8919 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 5 Sep 2008 20:34:35 +0000 Subject: [PATCH 13/66] GLSL: small optimization if Use Alpha is disabled for textures. --- source/blender/gpu/intern/gpu_material.c | 11 +- .../gpu/intern/gpu_shader_material.glsl | 7 +- .../gpu/intern/gpu_shader_material.glsl.c | 1760 +++++++++-------- 3 files changed, 896 insertions(+), 882 deletions(-) diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index 1bbf21488ea..d4da2866d96 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -958,10 +958,15 @@ static void do_material_tex(GPUShadeInput *shi) if(ofs[0] != 0.0f || ofs[1] != 0.0f || ofs[2] != 0.0f) GPU_link(mat, "mtex_mapping_ofs", texco, GPU_uniform(ofs), &texco); + talpha = 0; + rgbnor = 0; + if(tex && tex->type == TEX_IMAGE && tex->ima) { GPU_link(mat, "mtex_image", texco, GPU_image(tex->ima, NULL), &tin, &trgb, &tnor); rgbnor= TEX_RGB; - talpha= 1; + + if(tex->imaflag & TEX_USEALPHA) + talpha= 1; } else continue; @@ -1001,8 +1006,10 @@ static void do_material_tex(GPUShadeInput *shi) if(mtex->mapto & MAP_ALPHA) GPU_link(mat, "set_value", stencil, &tin); - else + else if(talpha) GPU_link(mat, "mtex_alpha_from_col", trgb, &tin); + else + GPU_link(mat, "set_value_one", &tin); } if(mtex->mapto & MAP_COL) diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl b/source/blender/gpu/intern/gpu_shader_material.glsl index 66b7124504b..16ed38cb47d 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl +++ b/source/blender/gpu/intern/gpu_shader_material.glsl @@ -311,6 +311,11 @@ void set_value_zero(out float outval) outval = 0.0; } +void set_value_one(out float outval) +{ + outval = 1.0; +} + void set_rgb_zero(out vec3 outval) { outval = vec3(0.0); @@ -1392,7 +1397,7 @@ void shade_blinn_spec(vec3 n, vec3 l, vec3 v, float refrac, float spec_power, ou float b = (2.0*nh*nv)/vh; float c = (2.0*nh*nl)/vh; - float g; + float g = 0.0; if(a < b && a < c) g = a; else if(b < a && b < c) g = b; diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl.c b/source/blender/gpu/intern/gpu_shader_material.glsl.c index 8592ff5baf2..8287efe84ea 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl.c +++ b/source/blender/gpu/intern/gpu_shader_material.glsl.c @@ -1,916 +1,918 @@ /* DataToC output of file */ -int datatoc_gpu_shader_material_glsl_size= 32765; +int datatoc_gpu_shader_material_glsl_size= 32828; char datatoc_gpu_shader_material_glsl[]= { - 10,102,108,111, 97,116, 32,101,120,112, 95, 98,108,101,110,100,101,114, 40,102,108,111, 97,116, 32,102, 41, 10,123, - 10, 9,114,101,116,117,114,110, 32,112,111,119, 40, 50, 46, 55, 49, 56, 50, 56, 49, 56, 50, 56, 52, 54, 44, 32,102, 41, 59, 10, -125, 10, 10,118,111,105,100, 32,114,103, 98, 95,116,111, 95,104,115,118, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, - 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, 99,109, 97,120, 44, 32, 99,109,105, -110, 44, 32,104, 44, 32,115, 44, 32,118, 44, 32, 99,100,101,108,116, 97, 59, 10, 9,118,101, 99, 51, 32, 99, 59, 10, 10, 9, 99, -109, 97,120, 32, 61, 32,109, 97,120, 40,114,103, 98, 91, 48, 93, 44, 32,109, 97,120, 40,114,103, 98, 91, 49, 93, 44, 32,114,103, - 98, 91, 50, 93, 41, 41, 59, 10, 9, 99,109,105,110, 32, 61, 32,109,105,110, 40,114,103, 98, 91, 48, 93, 44, 32,109,105,110, 40, -114,103, 98, 91, 49, 93, 44, 32,114,103, 98, 91, 50, 93, 41, 41, 59, 10, 9, 99,100,101,108,116, 97, 32, 61, 32, 99,109, 97,120, - 45, 99,109,105,110, 59, 10, 10, 9,118, 32, 61, 32, 99,109, 97,120, 59, 10, 9,105,102, 32, 40, 99,109, 97,120, 33, 61, 48, 46, - 48, 41, 10, 9, 9,115, 32, 61, 32, 99,100,101,108,116, 97, 47, 99,109, 97,120, 59, 10, 9,101,108,115,101, 32,123, 10, 9, 9, -115, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 10, 9,105,102, 32, 40,115, 32, 61, - 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, - 9, 99, 32, 61, 32, 40,118,101, 99, 51, 40, 99,109, 97,120, 44, 32, 99,109, 97,120, 44, 32, 99,109, 97,120, 41, 32, 45, 32,114, -103, 98, 46,120,121,122, 41, 47, 99,100,101,108,116, 97, 59, 10, 10, 9, 9,105,102, 32, 40,114,103, 98, 46,120, 61, 61, 99,109, - 97,120, 41, 32,104, 32, 61, 32, 99, 91, 50, 93, 32, 45, 32, 99, 91, 49, 93, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40, -114,103, 98, 46,121, 61, 61, 99,109, 97,120, 41, 32,104, 32, 61, 32, 50, 46, 48, 32, 43, 32, 99, 91, 48, 93, 32, 45, 32, 32, 99, - 91, 50, 93, 59, 10, 9, 9,101,108,115,101, 32,104, 32, 61, 32, 52, 46, 48, 32, 43, 32, 99, 91, 49, 93, 32, 45, 32, 99, 91, 48, - 93, 59, 10, 10, 9, 9,104, 32, 47, 61, 32, 54, 46, 48, 59, 10, 10, 9, 9,105,102, 32, 40,104, 60, 48, 46, 48, 41, 10, 9, 9, - 9,104, 32, 43, 61, 32, 49, 46, 48, 59, 10, 9,125, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,104, 44, - 32,115, 44, 32,118, 44, 32,114,103, 98, 46,119, 41, 59, 10,125, 10, 10,118,111,105,100, 32,104,115,118, 95,116,111, 95,114,103, - 98, 40,118,101, 99, 52, 32,104,115,118, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9, -102,108,111, 97,116, 32,105, 44, 32,102, 44, 32,112, 44, 32,113, 44, 32,116, 44, 32,104, 44, 32,115, 44, 32,118, 59, 10, 9,118, -101, 99, 51, 32,114,103, 98, 59, 10, 10, 9,104, 32, 61, 32,104,115,118, 91, 48, 93, 59, 10, 9,115, 32, 61, 32,104,115,118, 91, - 49, 93, 59, 10, 9,118, 32, 61, 32,104,115,118, 91, 50, 93, 59, 10, 10, 9,105,102, 40,115, 61, 61, 48, 46, 48, 41, 32,123, 10, - 9, 9,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32,118, 44, 32,118, 41, 59, 10, 9,125, 10, 9,101,108,115,101, 32, -123, 10, 9, 9,105,102, 40,104, 61, 61, 49, 46, 48, 41, 10, 9, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9, 10, 9, 9, -104, 32, 42, 61, 32, 54, 46, 48, 59, 10, 9, 9,105, 32, 61, 32,102,108,111,111,114, 40,104, 41, 59, 10, 9, 9,102, 32, 61, 32, -104, 32, 45, 32,105, 59, 10, 9, 9,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,102, 44, 32,102, 44, 32,102, 41, 59, 10, 9, 9, -112, 32, 61, 32,118, 42, 40, 49, 46, 48, 45,115, 41, 59, 10, 9, 9,113, 32, 61, 32,118, 42, 40, 49, 46, 48, 45, 40,115, 42,102, - 41, 41, 59, 10, 9, 9,116, 32, 61, 32,118, 42, 40, 49, 46, 48, 45, 40,115, 42, 40, 49, 46, 48, 45,102, 41, 41, 41, 59, 10, 9, - 9, 10, 9, 9,105,102, 32, 40,105, 32, 61, 61, 32, 48, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32, -116, 44, 32,112, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 49, 46, 48, 41, 32,114,103, 98, 32, - 61, 32,118,101, 99, 51, 40,113, 44, 32,118, 44, 32,112, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, - 32, 50, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,112, 44, 32,118, 44, 32,116, 41, 59, 10, 9, 9,101,108,115, -101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 51, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,112, 44, 32,113, 44, - 32,118, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 52, 46, 48, 41, 32,114,103, 98, 32, 61, 32, -118,101, 99, 51, 40,116, 44, 32,112, 44, 32,118, 41, 59, 10, 9, 9,101,108,115,101, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, - 40,118, 44, 32,112, 44, 32,113, 41, 59, 10, 9,125, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,114,103, - 98, 44, 32,104,115,118, 46,119, 41, 59, 10,125, 10, 10, 35,100,101,102,105,110,101, 32, 77, 95, 80, 73, 32, 51, 46, 49, 52, 49, - 53, 57, 50, 54, 53, 51, 53, 56, 57, 55, 57, 51, 50, 51, 56, 52, 54, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, - 83, 72, 65, 68, 69, 82, 32, 78, 79, 68, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,118, -111,105,100, 32,118, 99,111,108, 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 52, 32, 97,116,116,118, 99,111,108, 44, - 32,111,117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 41, 10,123, 10, 9,118, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 97, -116,116,118, 99,111,108, 46,120, 47, 50, 53, 53, 46, 48, 44, 32, 97,116,116,118, 99,111,108, 46,121, 47, 50, 53, 53, 46, 48, 44, - 32, 97,116,116,118, 99,111,108, 46,122, 47, 50, 53, 53, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32, -117,118, 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32,111,117,116, 32,118,101, 99, - 51, 32,117,118, 41, 10,123, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32,118, -101, 99, 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, 41, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,103,101,111, -109, 40,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,109, 97,116, 52, 32,118,105,101,119,105,110, -118,109, 97,116, 44, 32,118,101, 99, 51, 32, 97,116,116,111,114, 99,111, 44, 32,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32, -118,101, 99, 52, 32, 97,116,116,118, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108, 44, 32,111, -117,116, 32,118,101, 99, 51, 32,108,111, 99, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,111,117, -116, 32,118,101, 99, 51, 32,111,114, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 44, 32,111,117,116, 32,118,101, - 99, 51, 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 44, 32,111,117,116, 32,102,108, -111, 97,116, 32,102,114,111,110,116, 98, 97, 99,107, 41, 10,123, 10, 9,108,111, 99, 97,108, 32, 61, 32, 99,111, 59, 10, 9,118, -105,101,119, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108,111, 99, 97,108, 41, 59, 10, 9,103,108,111, 98, 97,108, 32, - 61, 32, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40,108,111, 99, 97,108, 44, 32, 49, 46, 48, 41, 41, 46, -120,121,122, 59, 10, 9,111,114, 99,111, 32, 61, 32, 97,116,116,111,114, 99,111, 59, 10, 9,117,118, 95, 97,116,116,114,105, 98, -117,116,101, 40, 97,116,116,117,118, 44, 32,117,118, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, 97, -108,105,122,101, 40,110,111,114, 41, 59, 9, 47, 42, 32, 98,108,101,110,100,101,114, 32,114,101,110,100,101,114, 32,110,111,114, -109, 97,108, 32,105,115, 32,110,101,103, 97,116,101,100, 32, 42, 47, 10, 9,118, 99,111,108, 95, 97,116,116,114,105, 98,117,116, -101, 40, 97,116,116,118, 99,111,108, 44, 32,118, 99,111,108, 41, 59, 10, 9,102,114,111,110,116, 98, 97, 99,107, 32, 61, 32, 49, - 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,112,112,105,110,103, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,109, 97, -116, 52, 32,109, 97,116, 44, 32,118,101, 99, 51, 32,109,105,110,118,101, 99, 44, 32,118,101, 99, 51, 32,109, 97,120,118,101, 99, - 44, 32,102,108,111, 97,116, 32,100,111,109,105,110, 44, 32,102,108,111, 97,116, 32,100,111,109, 97,120, 44, 32,111,117,116, 32, -118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32, 40,109, 97,116, 32, 42, 32, -118,101, 99, 52, 40,118,101, 99, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9,105,102, 40,100,111,109,105,110, 32, 61, - 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, 99, 32, 61, 32,109, 97,120, 40,111,117,116,118,101, 99, 44, 32,109,105, -110,118,101, 99, 41, 59, 10, 9,105,102, 40,100,111,109, 97,120, 32, 61, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, - 99, 32, 61, 32,109,105,110, 40,111,117,116,118,101, 99, 44, 32,109, 97,120,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, - 32, 99, 97,109,101,114, 97, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,105,101, -119, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,100,101,112,116,104, 44, 32,111,117,116, 32,102,108,111, 97,116, - 32,111,117,116,100,105,115,116, 41, 10,123, 10, 9,111,117,116,100,101,112,116,104, 32, 61, 32, 97, 98,115, 40, 99,111, 46,122, - 41, 59, 10, 9,111,117,116,100,105,115,116, 32, 61, 32,108,101,110,103,116,104, 40, 99,111, 41, 59, 10, 9,111,117,116,118,105, -101,119, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, - 95, 97,100,100, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, - 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, - 43, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,115,117, 98,116,114, 97, 99,116, 40,102,108, -111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, -111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 45, 32,118, 97,108, 50, 59, - 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109,117,108,116,105,112,108,121, 40,102,108,111, 97,116, 32,118, 97,108, - 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, - 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 42, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105, -100, 32,109, 97,116,104, 95,100,105,118,105,100,101, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32, -118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, - 97,108, 50, 32, 61, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115, -101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 47, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105, -100, 32,109, 97,116,104, 95,115,105,110,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, - 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,115,105,110, 40,118, 97,108, 41, 59, 10,125, - 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 99,111,115,105,110,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117, -116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 99,111,115, 40, -118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,116, 97,110,103,101,110,116, 40,102,108,111, 97,116, - 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97, -108, 32, 61, 32,116, 97,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,115,105,110, 40, -102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9, -105,102, 32, 40,118, 97,108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38, 32,118, 97,108, 32, 62, 61, 32, 45, 49, 46, 48, 41, 10, 9, - 9,111,117,116,118, 97,108, 32, 61, 32, 97,115,105,110, 40,118, 97,108, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, -118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97, 99,111,115, 40,102,108,111, - 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, - 40,118, 97,108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38, 32,118, 97,108, 32, 62, 61, 32, 45, 49, 46, 48, 41, 10, 9, 9,111,117, -116,118, 97,108, 32, 61, 32, 97, 99,111,115, 40,118, 97,108, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, - 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,116, 97,110, 40,102,108,111, 97,116, 32, -118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, - 32, 61, 32, 97,116, 97,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,112,111,119, 40,102, + 10,102,108,111, 97,116, 32,101,120,112, 95, 98,108,101,110,100,101,114, 40,102,108,111, 97,116, 32,102, 41, 10, +123, 10, 9,114,101,116,117,114,110, 32,112,111,119, 40, 50, 46, 55, 49, 56, 50, 56, 49, 56, 50, 56, 52, 54, 44, 32,102, 41, 59, + 10,125, 10, 10,118,111,105,100, 32,114,103, 98, 95,116,111, 95,104,115,118, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117, +116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, 99,109, 97,120, 44, 32, 99,109, +105,110, 44, 32,104, 44, 32,115, 44, 32,118, 44, 32, 99,100,101,108,116, 97, 59, 10, 9,118,101, 99, 51, 32, 99, 59, 10, 10, 9, + 99,109, 97,120, 32, 61, 32,109, 97,120, 40,114,103, 98, 91, 48, 93, 44, 32,109, 97,120, 40,114,103, 98, 91, 49, 93, 44, 32,114, +103, 98, 91, 50, 93, 41, 41, 59, 10, 9, 99,109,105,110, 32, 61, 32,109,105,110, 40,114,103, 98, 91, 48, 93, 44, 32,109,105,110, + 40,114,103, 98, 91, 49, 93, 44, 32,114,103, 98, 91, 50, 93, 41, 41, 59, 10, 9, 99,100,101,108,116, 97, 32, 61, 32, 99,109, 97, +120, 45, 99,109,105,110, 59, 10, 10, 9,118, 32, 61, 32, 99,109, 97,120, 59, 10, 9,105,102, 32, 40, 99,109, 97,120, 33, 61, 48, + 46, 48, 41, 10, 9, 9,115, 32, 61, 32, 99,100,101,108,116, 97, 47, 99,109, 97,120, 59, 10, 9,101,108,115,101, 32,123, 10, 9, + 9,115, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 10, 9,105,102, 32, 40,115, 32, + 61, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, + 9, 9, 99, 32, 61, 32, 40,118,101, 99, 51, 40, 99,109, 97,120, 44, 32, 99,109, 97,120, 44, 32, 99,109, 97,120, 41, 32, 45, 32, +114,103, 98, 46,120,121,122, 41, 47, 99,100,101,108,116, 97, 59, 10, 10, 9, 9,105,102, 32, 40,114,103, 98, 46,120, 61, 61, 99, +109, 97,120, 41, 32,104, 32, 61, 32, 99, 91, 50, 93, 32, 45, 32, 99, 91, 49, 93, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, + 40,114,103, 98, 46,121, 61, 61, 99,109, 97,120, 41, 32,104, 32, 61, 32, 50, 46, 48, 32, 43, 32, 99, 91, 48, 93, 32, 45, 32, 32, + 99, 91, 50, 93, 59, 10, 9, 9,101,108,115,101, 32,104, 32, 61, 32, 52, 46, 48, 32, 43, 32, 99, 91, 49, 93, 32, 45, 32, 99, 91, + 48, 93, 59, 10, 10, 9, 9,104, 32, 47, 61, 32, 54, 46, 48, 59, 10, 10, 9, 9,105,102, 32, 40,104, 60, 48, 46, 48, 41, 10, 9, + 9, 9,104, 32, 43, 61, 32, 49, 46, 48, 59, 10, 9,125, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,104, + 44, 32,115, 44, 32,118, 44, 32,114,103, 98, 46,119, 41, 59, 10,125, 10, 10,118,111,105,100, 32,104,115,118, 95,116,111, 95,114, +103, 98, 40,118,101, 99, 52, 32,104,115,118, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, + 9,102,108,111, 97,116, 32,105, 44, 32,102, 44, 32,112, 44, 32,113, 44, 32,116, 44, 32,104, 44, 32,115, 44, 32,118, 59, 10, 9, +118,101, 99, 51, 32,114,103, 98, 59, 10, 10, 9,104, 32, 61, 32,104,115,118, 91, 48, 93, 59, 10, 9,115, 32, 61, 32,104,115,118, + 91, 49, 93, 59, 10, 9,118, 32, 61, 32,104,115,118, 91, 50, 93, 59, 10, 10, 9,105,102, 40,115, 61, 61, 48, 46, 48, 41, 32,123, + 10, 9, 9,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32,118, 44, 32,118, 41, 59, 10, 9,125, 10, 9,101,108,115,101, + 32,123, 10, 9, 9,105,102, 40,104, 61, 61, 49, 46, 48, 41, 10, 9, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9, 10, 9, + 9,104, 32, 42, 61, 32, 54, 46, 48, 59, 10, 9, 9,105, 32, 61, 32,102,108,111,111,114, 40,104, 41, 59, 10, 9, 9,102, 32, 61, + 32,104, 32, 45, 32,105, 59, 10, 9, 9,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,102, 44, 32,102, 44, 32,102, 41, 59, 10, 9, + 9,112, 32, 61, 32,118, 42, 40, 49, 46, 48, 45,115, 41, 59, 10, 9, 9,113, 32, 61, 32,118, 42, 40, 49, 46, 48, 45, 40,115, 42, +102, 41, 41, 59, 10, 9, 9,116, 32, 61, 32,118, 42, 40, 49, 46, 48, 45, 40,115, 42, 40, 49, 46, 48, 45,102, 41, 41, 41, 59, 10, + 9, 9, 10, 9, 9,105,102, 32, 40,105, 32, 61, 61, 32, 48, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, + 32,116, 44, 32,112, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 49, 46, 48, 41, 32,114,103, 98, + 32, 61, 32,118,101, 99, 51, 40,113, 44, 32,118, 44, 32,112, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, + 61, 32, 50, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,112, 44, 32,118, 44, 32,116, 41, 59, 10, 9, 9,101,108, +115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 51, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,112, 44, 32,113, + 44, 32,118, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 52, 46, 48, 41, 32,114,103, 98, 32, 61, + 32,118,101, 99, 51, 40,116, 44, 32,112, 44, 32,118, 41, 59, 10, 9, 9,101,108,115,101, 32,114,103, 98, 32, 61, 32,118,101, 99, + 51, 40,118, 44, 32,112, 44, 32,113, 41, 59, 10, 9,125, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,114, +103, 98, 44, 32,104,115,118, 46,119, 41, 59, 10,125, 10, 10, 35,100,101,102,105,110,101, 32, 77, 95, 80, 73, 32, 51, 46, 49, 52, + 49, 53, 57, 50, 54, 53, 51, 53, 56, 57, 55, 57, 51, 50, 51, 56, 52, 54, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 32, 83, 72, 65, 68, 69, 82, 32, 78, 79, 68, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10, +118,111,105,100, 32,118, 99,111,108, 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 52, 32, 97,116,116,118, 99,111,108, + 44, 32,111,117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 41, 10,123, 10, 9,118, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, + 97,116,116,118, 99,111,108, 46,120, 47, 50, 53, 53, 46, 48, 44, 32, 97,116,116,118, 99,111,108, 46,121, 47, 50, 53, 53, 46, 48, + 44, 32, 97,116,116,118, 99,111,108, 46,122, 47, 50, 53, 53, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, + 32,117,118, 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32,111,117,116, 32,118,101, + 99, 51, 32,117,118, 41, 10,123, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32, +118,101, 99, 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, 41, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,103,101, +111,109, 40,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,109, 97,116, 52, 32,118,105,101,119,105, +110,118,109, 97,116, 44, 32,118,101, 99, 51, 32, 97,116,116,111,114, 99,111, 44, 32,118,101, 99, 50, 32, 97,116,116,117,118, 44, + 32,118,101, 99, 52, 32, 97,116,116,118, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108, 44, 32, +111,117,116, 32,118,101, 99, 51, 32,108,111, 99, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,111, +117,116, 32,118,101, 99, 51, 32,111,114, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 44, 32,111,117,116, 32,118, +101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 44, 32,111,117,116, 32,102, +108,111, 97,116, 32,102,114,111,110,116, 98, 97, 99,107, 41, 10,123, 10, 9,108,111, 99, 97,108, 32, 61, 32, 99,111, 59, 10, 9, +118,105,101,119, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108,111, 99, 97,108, 41, 59, 10, 9,103,108,111, 98, 97,108, + 32, 61, 32, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40,108,111, 99, 97,108, 44, 32, 49, 46, 48, 41, 41, + 46,120,121,122, 59, 10, 9,111,114, 99,111, 32, 61, 32, 97,116,116,111,114, 99,111, 59, 10, 9,117,118, 95, 97,116,116,114,105, + 98,117,116,101, 40, 97,116,116,117,118, 44, 32,117,118, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, + 97,108,105,122,101, 40,110,111,114, 41, 59, 9, 47, 42, 32, 98,108,101,110,100,101,114, 32,114,101,110,100,101,114, 32,110,111, +114,109, 97,108, 32,105,115, 32,110,101,103, 97,116,101,100, 32, 42, 47, 10, 9,118, 99,111,108, 95, 97,116,116,114,105, 98,117, +116,101, 40, 97,116,116,118, 99,111,108, 44, 32,118, 99,111,108, 41, 59, 10, 9,102,114,111,110,116, 98, 97, 99,107, 32, 61, 32, + 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,112,112,105,110,103, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,109, + 97,116, 52, 32,109, 97,116, 44, 32,118,101, 99, 51, 32,109,105,110,118,101, 99, 44, 32,118,101, 99, 51, 32,109, 97,120,118,101, + 99, 44, 32,102,108,111, 97,116, 32,100,111,109,105,110, 44, 32,102,108,111, 97,116, 32,100,111,109, 97,120, 44, 32,111,117,116, + 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32, 40,109, 97,116, 32, 42, + 32,118,101, 99, 52, 40,118,101, 99, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9,105,102, 40,100,111,109,105,110, 32, + 61, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, 99, 32, 61, 32,109, 97,120, 40,111,117,116,118,101, 99, 44, 32,109, +105,110,118,101, 99, 41, 59, 10, 9,105,102, 40,100,111,109, 97,120, 32, 61, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118, +101, 99, 32, 61, 32,109,105,110, 40,111,117,116,118,101, 99, 44, 32,109, 97,120,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105, +100, 32, 99, 97,109,101,114, 97, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,105, +101,119, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,100,101,112,116,104, 44, 32,111,117,116, 32,102,108,111, 97, +116, 32,111,117,116,100,105,115,116, 41, 10,123, 10, 9,111,117,116,100,101,112,116,104, 32, 61, 32, 97, 98,115, 40, 99,111, 46, +122, 41, 59, 10, 9,111,117,116,100,105,115,116, 32, 61, 32,108,101,110,103,116,104, 40, 99,111, 41, 59, 10, 9,111,117,116,118, +105,101,119, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116, +104, 95, 97,100,100, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117, +116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, + 32, 43, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,115,117, 98,116,114, 97, 99,116, 40,102, 108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, - 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 49, 32, 62, 61, 32, 48, 46, 48, 41, 10, 9, 9,111, -117,116,118, 97,108, 32, 61, 32,112,111,119, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10, 9,101,108,115,101, 10, 9, - 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,108,111,103, 40, + 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 45, 32,118, 97,108, 50, + 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109,117,108,116,105,112,108,121, 40,102,108,111, 97,116, 32,118, 97, +108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, + 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 42, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111, +105,100, 32,109, 97,116,104, 95,100,105,118,105,100,101, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, + 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40, +118, 97,108, 50, 32, 61, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108, +115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 47, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111, +105,100, 32,109, 97,116,104, 95,115,105,110,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97, +116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,115,105,110, 40,118, 97,108, 41, 59, 10, +125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 99,111,115,105,110,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111, +117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 99,111,115, + 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,116, 97,110,103,101,110,116, 40,102,108,111, 97, +116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, + 97,108, 32, 61, 32,116, 97,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,115,105,110, + 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, + 9,105,102, 32, 40,118, 97,108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38, 32,118, 97,108, 32, 62, 61, 32, 45, 49, 46, 48, 41, 10, + 9, 9,111,117,116,118, 97,108, 32, 61, 32, 97,115,105,110, 40,118, 97,108, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117, +116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97, 99,111,115, 40,102,108, +111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, + 32, 40,118, 97,108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38, 32,118, 97,108, 32, 62, 61, 32, 45, 49, 46, 48, 41, 10, 9, 9,111, +117,116,118, 97,108, 32, 61, 32, 97, 99,111,115, 40,118, 97,108, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97, +108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,116, 97,110, 40,102,108,111, 97,116, + 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97, +108, 32, 61, 32, 97,116, 97,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,112,111,119, 40, 102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97, -116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 62, 32, 48, 46, 48, 32, 32, 38, 38, 32,118, - 97,108, 50, 32, 62, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 61, 32,108,111,103, 50, 40,118, 97,108, 49, 41, 32, - 47, 32,108,111,103, 50, 40,118, 97,108, 50, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 61, 32, 48, 46, - 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109, 97,120, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32, -102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, - 9,111,117,116,118, 97,108, 32, 61, 32,109, 97,120, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10,125, 10, 10,118,111, -105,100, 32,109, 97,116,104, 95,109,105,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97, -108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, - 61, 32,109,105,110, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, -114,111,117,110,100, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97, -108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 61, 32,102,108,111,111,114, 40,118, 97,108, 32, 43, 32, 48, 46, 53, 41, 59, 10, -125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,108,101,115,115, 95,116,104, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, - 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, - 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 60, 32,118, 97,108, 50, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 49, - 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105, -100, 32,109, 97,116,104, 95,103,114,101, 97,116,101,114, 95,116,104, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32, -102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, - 9,105,102, 40,118, 97,108, 49, 32, 62, 32,118, 97,108, 50, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 59, - 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115, -113,117,101,101,122,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,102,108,111, 97,116, 32,119,105,100,116,104, 44, 32,102, -108,111, 97,116, 32, 99,101,110,116,101,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, - 10, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 47, 40, 49, 46, 48, 32, 43, 32,112,111,119, 40, 50, 46, 55, 49, 56, 50, - 56, 49, 56, 51, 44, 32, 45, 40, 40,118, 97,108, 45, 99,101,110,116,101,114, 41, 42,119,105,100,116,104, 41, 41, 41, 59, 10,125, - 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 97,100,100, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, - 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, - 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 43, 32,118, 50, 59, 10, 9,111, -117,116,118, 97,108, 32, 61, 32, 40, 97, 98,115, 40,111,117,116,118,101, 99, 91, 48, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117, -116,118,101, 99, 91, 49, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 50, 93, 41, 41, 47, 51, 46, 48, 59, 10, -125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,115,117, 98, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, +116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 49, 32, 62, 61, 32, 48, 46, 48, 41, 10, 9, 9, +111,117,116,118, 97,108, 32, 61, 32,112,111,119, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10, 9,101,108,115,101, 10, + 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,108,111,103, + 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, + 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 62, 32, 48, 46, 48, 32, 32, 38, 38, 32, +118, 97,108, 50, 32, 62, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 61, 32,108,111,103, 50, 40,118, 97,108, 49, 41, + 32, 47, 32,108,111,103, 50, 40,118, 97,108, 50, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 61, 32, 48, + 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109, 97,120, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, + 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, + 10, 9,111,117,116,118, 97,108, 32, 61, 32,109, 97,120, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10,125, 10, 10,118, +111,105,100, 32,109, 97,116,104, 95,109,105,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, + 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, + 32, 61, 32,109,105,110, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, + 95,114,111,117,110,100, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, + 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 61, 32,102,108,111,111,114, 40,118, 97,108, 32, 43, 32, 48, 46, 53, 41, 59, + 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,108,101,115,115, 95,116,104, 97,110, 40,102,108,111, 97,116, 32,118, 97, +108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, + 41, 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 60, 32,118, 97,108, 50, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, + 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111, +105,100, 32,109, 97,116,104, 95,103,114,101, 97,116,101,114, 95,116,104, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, + 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, + 10, 9,105,102, 40,118, 97,108, 49, 32, 62, 32,118, 97,108, 50, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, + 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32, +115,113,117,101,101,122,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,102,108,111, 97,116, 32,119,105,100,116,104, 44, 32, +102,108,111, 97,116, 32, 99,101,110,116,101,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10, +123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 47, 40, 49, 46, 48, 32, 43, 32,112,111,119, 40, 50, 46, 55, 49, 56, + 50, 56, 49, 56, 51, 44, 32, 45, 40, 40,118, 97,108, 45, 99,101,110,116,101,114, 41, 42,119,105,100,116,104, 41, 41, 41, 59, 10, +125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 97,100,100, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97, -116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 45, 32,118, 50, 59, 10, 9, +116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 43, 32,118, 50, 59, 10, 9, 111,117,116,118, 97,108, 32, 61, 32, 40, 97, 98,115, 40,111,117,116,118,101, 99, 91, 48, 93, 41, 32, 43, 32, 97, 98,115, 40,111, 117,116,118,101, 99, 91, 49, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 50, 93, 41, 41, 47, 51, 46, 48, 59, - 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 97,118,101,114, 97,103,101, 40,118,101, 99, 51, 32,118, - 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, - 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 43, 32, -118, 50, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,111,117,116,118,101, 99, 41, 59, 10, 9,111, -117,116,118,101, 99, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,117,116,118,101, 99, 41, 59, 10,125, 10, 10,118,111, -105,100, 32,118,101, 99, 95,109, 97,116,104, 95,100,111,116, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, - 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, -118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101, 99, 51, 40, 48, 44, 32, 48, 44, 32, 48, 41, 59, 10, - 9,111,117,116,118, 97,108, 32, 61, 32,100,111,116, 40,118, 49, 44, 32,118, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118, -101, 99, 95,109, 97,116,104, 95, 99,114,111,115,115, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32, -111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97, -108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32, 99,114,111,115,115, 40,118, 49, 44, 32,118, 50, 41, 59, 10, 9,111, -117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,111,117,116,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32, -118,101, 99, 95,109, 97,116,104, 95,110,111,114,109, 97,108,105,122,101, 40,118,101, 99, 51, 32,118, 44, 32,111,117,116, 32,118, -101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, - 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,118, 41, 59, 10, 9,111,117,116,118,101, 99, 32, 61, 32,110, -111,114,109, 97,108,105,122,101, 40,118, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,110,101, -103, 97,116,101, 40,118,101, 99, 51, 32,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118, 41, 10,123, 10, 9,111, -117,116,118, 32, 61, 32, 45,118, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,114,109, 97,108, 40,118,101, 99, 51, 32,100,105, -114, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114, 44, 32,111,117, -116, 32,102,108,111, 97,116, 32,111,117,116,100,111,116, 41, 10,123, 10, 9,111,117,116,110,111,114, 32, 61, 32,100,105,114, 59, - 10, 9,111,117,116,100,111,116, 32, 61, 32, 45,100,111,116, 40,100,105,114, 44, 32,110,111,114, 41, 59, 10,125, 10, 10,118,111, -105,100, 32, 99,117,114,118,101,115, 95,118,101, 99, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 49, - 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9, -111,117,116,118,101, 99, 46,120, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40, -118,101, 99, 46,120, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,120, 59, 10, 9,111,117,116,118,101, 99, 46,121, 32, 61, - 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,121, 32, 43, 32, 49, 46, - 48, 41, 42, 48, 46, 53, 41, 46,121, 59, 10, 9,111,117,116,118,101, 99, 46,122, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, - 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,122, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,122, 59, - 10,125, 10, 10,118,111,105,100, 32, 99,117,114,118,101,115, 95,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,115, 97, -109,112,108,101,114, 49, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111, -108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101, -109, 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,114, 41, 46, - 97, 41, 46,114, 59, 10, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118, -101,109, 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,103, 41, - 46, 97, 41, 46,103, 59, 10, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114, -118,101,109, 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46, 98, - 41, 46, 97, 41, 46, 98, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111, -105,100, 32,115,101,116, 95,118, 97,108,117,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97, -116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 59, 10,125, 10, 10,118,111, -105,100, 32,115,101,116, 95,114,103, 98, 40,118,101, 99, 51, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117, -116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115, -101,116, 95,114,103, 98, 97, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111, -108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95, -118, 97,108,117,101, 95,122,101,114,111, 40,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9, -111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 95,122,101, -114,111, 40,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, -118,101, 99, 51, 40, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 97, 95,122,101,114,111, - 40,111,117,116, 32,118,101, 99, 52, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118,101, - 99, 52, 40, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 98,108,101,110,100, 40,102,108,111, 97,116, - 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32, -118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, - 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, - 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10, -125, 10, 10,118,111,105,100, 32,109,105,120, 95, 97,100,100, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, - 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, - 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, - 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 43, 32, 99,111,108, 50, - 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118, -111,105,100, 32,109,105,120, 95,109,117,108,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, - 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, - 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111, -117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 42, 32, 99,111,108, 50, 44, 32,102, - 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, - 32,109,105,120, 95,115, 99,114,101,101,110, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, - 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, - 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108, -111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, - 32,118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 40,118,101, 99, 52, 40,102, 97, 99,109, 41, 32, 43, 32,102, 97, 99, 42, 40, -118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 99,111,108, 50, 41, 41, 42, 40,118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, - 99,111,108, 49, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111, -105,100, 32,109,105,120, 95,111,118,101,114,108, 97,121, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99, -111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, - 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, - 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111, -108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 60, 32, 48, 46, 53, 41, 10, 9, - 9,111,117,116, 99,111,108, 46,114, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 99,111,108, 50, - 46,114, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, - 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46,114, 41, 41, 42, 40, 49, 46, - 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 60, 32, 48, - 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, - 42, 99,111,108, 50, 46,103, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 32, - 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46,103, 41, - 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, - 98, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, - 48, 42,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, - 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111, -108, 50, 46, 98, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41, 59, 10,125, 10, 10,118,111,105,100, - 32,109,105,120, 95,115,117, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118, -101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, - 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111, -108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 45, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, + 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,115,117, 98, 40,118,101, 99, 51, 32,118, 49, 44, 32,118, +101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, + 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 45, 32,118, 50, 59, 10, + 9,111,117,116,118, 97,108, 32, 61, 32, 40, 97, 98,115, 40,111,117,116,118,101, 99, 91, 48, 93, 41, 32, 43, 32, 97, 98,115, 40, +111,117,116,118,101, 99, 91, 49, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 50, 93, 41, 41, 47, 51, 46, 48, + 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 97,118,101,114, 97,103,101, 40,118,101, 99, 51, 32, +118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117, +116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 43, + 32,118, 50, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,111,117,116,118,101, 99, 41, 59, 10, 9, +111,117,116,118,101, 99, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,117,116,118,101, 99, 41, 59, 10,125, 10, 10,118, +111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,100,111,116, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, + 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117, +116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101, 99, 51, 40, 48, 44, 32, 48, 44, 32, 48, 41, 59, + 10, 9,111,117,116,118, 97,108, 32, 61, 32,100,111,116, 40,118, 49, 44, 32,118, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32, +118,101, 99, 95,109, 97,116,104, 95, 99,114,111,115,115, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, + 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, + 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32, 99,114,111,115,115, 40,118, 49, 44, 32,118, 50, 41, 59, 10, 9, +111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,111,117,116,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, + 32,118,101, 99, 95,109, 97,116,104, 95,110,111,114,109, 97,108,105,122,101, 40,118,101, 99, 51, 32,118, 44, 32,111,117,116, 32, +118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, + 10, 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,118, 41, 59, 10, 9,111,117,116,118,101, 99, 32, 61, 32, +110,111,114,109, 97,108,105,122,101, 40,118, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,110, +101,103, 97,116,101, 40,118,101, 99, 51, 32,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118, 41, 10,123, 10, 9, +111,117,116,118, 32, 61, 32, 45,118, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,114,109, 97,108, 40,118,101, 99, 51, 32,100, +105,114, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114, 44, 32,111, +117,116, 32,102,108,111, 97,116, 32,111,117,116,100,111,116, 41, 10,123, 10, 9,111,117,116,110,111,114, 32, 61, 32,100,105,114, + 59, 10, 9,111,117,116,100,111,116, 32, 61, 32, 45,100,111,116, 40,100,105,114, 44, 32,110,111,114, 41, 59, 10,125, 10, 10,118, +111,105,100, 32, 99,117,114,118,101,115, 95,118,101, 99, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, + 49, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, + 9,111,117,116,118,101, 99, 46,120, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, + 40,118,101, 99, 46,120, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,120, 59, 10, 9,111,117,116,118,101, 99, 46,121, 32, + 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,121, 32, 43, 32, 49, + 46, 48, 41, 42, 48, 46, 53, 41, 46,121, 59, 10, 9,111,117,116,118,101, 99, 46,122, 32, 61, 32,116,101,120,116,117,114,101, 49, + 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,122, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,122, + 59, 10,125, 10, 10,118,111,105,100, 32, 99,117,114,118,101,115, 95,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,115, + 97,109,112,108,101,114, 49, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99, +111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118, +101,109, 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,114, 41, + 46, 97, 41, 46,114, 59, 10, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114, +118,101,109, 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,103, + 41, 46, 97, 41, 46,103, 59, 10, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117, +114,118,101,109, 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46, + 98, 41, 46, 97, 41, 46, 98, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 46, 97, 59, 10,125, 10, 10,118, +111,105,100, 32,115,101,116, 95,118, 97,108,117,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, + 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 59, 10,125, 10, 10,118, +111,105,100, 32,115,101,116, 95,114,103, 98, 40,118,101, 99, 51, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111, +117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32, +115,101,116, 95,114,103, 98, 97, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99, +111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, + 95,118, 97,108,117,101, 95,122,101,114,111, 40,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, + 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,118, 97,108,117,101, + 95,111,110,101, 40,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, + 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 95,122,101,114,111, 40,111,117,116, + 32,118,101, 99, 51, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118,101, 99, 51, 40, 48, + 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 97, 95,122,101,114,111, 40,111,117,116, 32,118, +101, 99, 52, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118,101, 99, 52, 40, 48, 46, 48, + 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 98,108,101,110,100, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32, +118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111, +117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, + 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 50, 44, 32, +102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105, +100, 32,109,105,120, 95, 97,100,100, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32, +118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, + 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99, +111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 43, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, + 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105, +120, 95,109,117,108,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, + 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, + 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, + 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 42, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9, +111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,115, + 99,114,101,101,110, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, + 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, + 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, + 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, + 49, 46, 48, 41, 32, 45, 32, 40,118,101, 99, 52, 40,102, 97, 99,109, 41, 32, 43, 32,102, 97, 99, 42, 40,118,101, 99, 52, 40, 49, + 46, 48, 41, 32, 45, 32, 99,111,108, 50, 41, 41, 42, 40,118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 99,111,108, 49, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, - 95,100,105,118, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, - 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, - 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99, -109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, - 10, 9,105,102, 40, 99,111,108, 50, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46,114, 32, 61, 32,102, - 97, 99,109, 42,111,117,116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46,114, 47, 99,111,108, 50, - 46,114, 59, 10, 9,105,102, 40, 99,111,108, 50, 46,103, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46,103, 32, - 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,103, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46,103, 47, 99, -111,108, 50, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 50, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, - 46, 98, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46, 98, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46, - 98, 47, 99,111,108, 50, 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,105,102,102, 40,102,108,111, 97,116, - 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32, -118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, - 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, - 97, 98,115, 40, 99,111,108, 49, 32, 45, 32, 99,111,108, 50, 41, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, - 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100, 97,114,107, 40,102,108,111, - 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117, -116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, - 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 46,114,103, 98, 32, 61, 32,109,105,110, 40, - 99,111,108, 49, 46,114,103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98, 42,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, - 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,108,105,103,104,116, 40,102, + 95,111,118,101,114,108, 97,121, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118, +101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, + 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, + 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111, +108, 49, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111, +108, 46,114, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9,101, +108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, + 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46,114, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117, +116, 99,111,108, 46,114, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9, +111,117,116, 99,111,108, 46,103, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 99,111,108, 50, 46, +103, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99, +109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46,103, 41, 41, 42, 40, 49, 46, 48, + 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 60, 32, 48, 46, + 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, + 99,111,108, 50, 46, 98, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 32, 45, + 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46, 98, 41, 41, + 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,115, +117, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111, +108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, + 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105, +120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 45, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99, +111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,105,118, 40,102, 108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32, 111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40, -102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 46,114,103, 98, 32, 61, 32,109, 97, -120, 40, 99,111,108, 49, 46,114,103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98, 42,102, 97, 99, 41, 59, 10, 9,111,117,116, 99, -111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,111,100,103,101, +102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, + 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40, 99, +111,108, 50, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46,114, 32, 61, 32,102, 97, 99,109, 42,111,117, +116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46,114, 47, 99,111,108, 50, 46,114, 59, 10, 9,105, +102, 40, 99,111,108, 50, 46,103, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46,103, 32, 61, 32,102, 97, 99,109, + 42,111,117,116, 99,111,108, 46,103, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46,103, 47, 99,111,108, 50, 46,103, 59, + 10, 9,105,102, 40, 99,111,108, 50, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46, 98, 32, 61, 32,102, + 97, 99,109, 42,111,117,116, 99,111,108, 46, 98, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46, 98, 47, 99,111,108, 50, + 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,105,102,102, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32, +118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111, +117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, + 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 97, 98,115, 40, 99,111, +108, 49, 32, 45, 32, 99,111,108, 50, 41, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111, +108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100, 97,114,107, 40,102,108,111, 97,116, 32,102, 97, 99, + 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, + 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, + 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 46,114,103, 98, 32, 61, 32,109,105,110, 40, 99,111,108, 49, 46,114, +103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98, 42,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99, +111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,108,105,103,104,116, 40,102,108,111, 97,116, 32,102, + 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, + 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, + 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 46,114,103, 98, 32, 61, 32,109, 97,120, 40, 99,111,108, 49, + 46,114,103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98, 42,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, + 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,111,100,103,101, 40,102,108,111, 97,116, + 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32, +118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, + 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, + 40,111,117,116, 99,111,108, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, + 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9, 9,105,102, 40,116,109,112, 32, 60, 61, 32, + 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105, +102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46,114, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9, + 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116, 99,111, +108, 46,114, 32, 61, 32,116,109,112, 59, 10, 9,125, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 33, 61, 32, 48, 46, + 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, + 50, 46,103, 59, 10, 9, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46, +103, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, + 46,103, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, + 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,109,112, 59, 10, 9,125, 10, 9, +105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109, +112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, 9, 9,105,102, 40,116,109,112, 32, 60, + 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, + 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, + 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116, + 99,111,108, 46, 98, 32, 61, 32,116,109,112, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 98,117,114,110, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109, -112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, - 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97, -116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9, 9,105,102, 40,116, -109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9, -101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46,114, 47,116,109,112, 41, 32, 62, 32, 49, - 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, - 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,109,112, 59, 10, 9,125, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, - 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, - 97, 99, 42, 99,111,108, 50, 46,103, 59, 10, 9, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111, -117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, -111,117,116, 99,111,108, 46,103, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, - 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,109,112, - 59, 10, 9,125, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108, -111, 97,116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, 9, 9,105,102, - 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, - 9, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 47,116,109,112, 41, 32, 62, - 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, - 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,116,109,112, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105, -120, 95, 98,117,114,110, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, - 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, - 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,116, -109,112, 44, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, - 32, 99,111,108, 49, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46,114, - 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 48, - 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, - 45, 32,111,117,116, 99,111,108, 46,114, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111, -108, 46,114, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, - 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, -114, 32, 61, 32,116,109,112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, - 46,103, 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, - 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, - 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, - 99,111,108, 46,103, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, - 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111, -108, 46,103, 32, 61, 32,116,109,112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111, -108, 50, 46, 98, 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, - 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, - 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111, -117,116, 99,111,108, 46, 98, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, - 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, - 99,111,108, 46, 98, 32, 61, 32,116,109,112, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,104,117,101, 40,102,108,111, - 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117, -116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, - 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, - 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104, -115,118, 44, 32,104,115,118, 50, 44, 32,116,109,112, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, - 32,104,115,118, 50, 41, 59, 10, 10, 9,105,102, 40,104,115,118, 50, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9, -114,103, 98, 95,116,111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 9, 9,104,115,118, 46,120, - 32, 61, 32,104,115,118, 50, 46,120, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,116,109,112, - 41, 59, 32, 10, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40,111,117,116, 99,111,108, 44, 32,116,109,112, 44, - 32,102, 97, 99, 41, 59, 10, 9, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10, 9,125, 10,125, - 10, 10,118,111,105,100, 32,109,105,120, 95,115, 97,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99, -111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, - 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, - 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111, -108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 59, 10, 9,114,103, 98, - 95,116,111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 10, 9,105,102, 40,104,115,118, 46,121, - 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115, -118, 50, 41, 59, 10, 10, 9, 9,104,115,118, 46,121, 32, 61, 32,102, 97, 99,109, 42,104,115,118, 46,121, 32, 43, 32,102, 97, 99, - 42,104,115,118, 50, 46,121, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111, -108, 41, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,118, 97,108, 40,102,108,111, 97,116, 32,102, 97, 99, +112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,116,109,112, 44, 32,102, 97, + 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, + 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9,105,102, 40, +116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 48, 46, 48, 59, 10, 9,101, +108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99, +111,108, 46,114, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, + 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116, 99,111, +108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,109, +112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46,103, 59, 10, 9,105, +102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 48, 46, 48, 59, 10, + 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, 45, 32,111,117, +116, 99,111,108, 46,103, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, + 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116, + 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, +116,109,112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, + 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 48, 46, 48, + 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, 45, 32, +111,117,116, 99,111,108, 46, 98, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46, + 98, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9,111, +117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, + 61, 32,116,109,112, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,104,117,101, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, - 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99, -111,108, 49, 44, 32,104,115,118, 41, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, - 50, 41, 59, 10, 10, 9,104,115,118, 46,122, 32, 61, 32,102, 97, 99,109, 42,104,115,118, 46,122, 32, 43, 32,102, 97, 99, 42,104, -115,118, 50, 46,122, 59, 10, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, - 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 99,111,108,111,114, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, - 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, - 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, - 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111, -117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 44, 32, -116,109,112, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9, -105,102, 40,104,115,118, 50, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118, - 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 9, 9,104,115,118, 46,120, 32, 61, 32,104,115,118, 50, 46,120, 59, - 10, 9, 9,104,115,118, 46,121, 32, 61, 32,104,115,118, 50, 46,121, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40, -104,115,118, 44, 32,116,109,112, 41, 59, 32, 10, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40,111,117,116, 99, -111,108, 44, 32,116,109,112, 44, 32,102, 97, 99, 41, 59, 10, 9, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, - 46, 97, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,118, 97,108,116,111,114,103, 98, 40,102,108,111, 97,116, 32,102, 97, - 99, 44, 32,115, 97,109,112,108,101,114, 49, 68, 32, 99,111,108,111,114,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 52, 32, -111,117,116, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, 97,108,112,104, 97, 41, 10,123, 10, 9,111, -117,116, 99,111,108, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,111,108,111,114,109, 97,112, 44, 32,102, 97, 99, 41, - 59, 10, 9,111,117,116, 97,108,112,104, 97, 32, 61, 32,111,117,116, 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32, -114,103, 98,116,111, 98,119, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117, -116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 99,111,108,111,114, 46,114, 42, 48, 46, 51, 53, 32, 43, - 32, 99,111,108,111,114, 46,103, 42, 48, 46, 52, 53, 32, 43, 32, 99,111,108,111,114, 46, 98, 42, 48, 46, 50, 59, 10,125, 10, 10, -118,111,105,100, 32,105,110,118,101,114,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, - 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 46,120,121,122, 32, - 61, 32,109,105,120, 40, 99,111,108, 46,120,121,122, 44, 32,118,101, 99, 51, 40, 49, 46, 48, 44, 32, 49, 46, 48, 44, 32, 49, 46, - 48, 41, 32, 45, 32, 99,111,108, 46,120,121,122, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46,119, 32, 61, 32, - 99,111,108, 46,119, 59, 10,125, 10, 10,118,111,105,100, 32,104,117,101, 95,115, 97,116, 40,102,108,111, 97,116, 32,104,117,101, - 44, 32,102,108,111, 97,116, 32,115, 97,116, 44, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,102,108,111, 97,116, 32, -102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10, -123, 10, 9,118,101, 99, 52, 32,104,115,118, 59, 10, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 44, 32,104, -115,118, 41, 59, 10, 10, 9,104,115,118, 91, 48, 93, 32, 43, 61, 32, 40,104,117,101, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9,105, -102, 40,104,115,118, 91, 48, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 48, 93, 45, 61, 49, 46, 48, 59, 32,101,108,115,101, 32, -105,102, 40,104,115,118, 91, 48, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 48, 93, 43, 61, 32, 49, 46, 48, 59, 10, 9,104,115, -118, 91, 49, 93, 32, 42, 61, 32,115, 97,116, 59, 10, 9,105,102, 40,104,115,118, 91, 49, 93, 62, 49, 46, 48, 41, 32,104,115,118, - 91, 49, 93, 61, 32, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,115,118, 91, 49, 93, 60, 48, 46, 48, 41, 32,104,115, -118, 91, 49, 93, 61, 32, 48, 46, 48, 59, 10, 9,104,115,118, 91, 50, 93, 32, 42, 61, 32,118, 97,108,117,101, 59, 10, 9,105,102, - 40,104,115,118, 91, 50, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 49, 46, 48, 59, 32,101,108,115,101, 32,105, -102, 40,104,115,118, 91, 50, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 48, 46, 48, 59, 10, 10, 9,104,115,118, - 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, - 32,109,105,120, 40, 99,111,108, 44, 32,111,117,116, 99,111,108, 44, 32,102, 97, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32, -115,101,112, 97,114, 97,116,101, 95,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, - 32,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 98, 41, 10,123, 10, - 9,114, 32, 61, 32, 99,111,108, 46,114, 59, 10, 9,103, 32, 61, 32, 99,111,108, 46,103, 59, 10, 9, 98, 32, 61, 32, 99,111,108, - 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32, 99,111,109, 98,105,110,101, 95,114,103, 98, 40,102,108,111, 97,116, 32,114, 44, - 32,102,108,111, 97,116, 32,103, 44, 32,102,108,111, 97,116, 32, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108, 41, - 10,123, 10, 9, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,114, 44, 32,103, 44, 32, 98, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, - 10,118,111,105,100, 32,111,117,116,112,117,116, 95,110,111,100,101, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,102,108,111, 97, -116, 32, 97,108,112,104, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,111,117,116, -114,103, 98, 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 46,114,103, 98, 44, 32, 97,108,112,104, 97, 41, 59, 10,125, 10, 10, 47, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 84, 69, 88, 84, 85, 82, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 47, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,102,108,105,112, 95, 98,108,101,110,100, 40,118, -101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116, -118,101, 99, 32, 61, 32,118,101, 99, 46,121,120,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95, 98, -108,101,110,100, 95,108,105,110, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, -118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, - 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95, 98,108,101,110,100, 95,113,117, 97,100, 40,118,101, 99, - 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, - 97,108, 32, 61, 32,109, 97,120, 40, 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10, - 9,111,117,116,118, 97,108, 32, 42, 61, 32,111,117,116,118, 97,108, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117, -114,101, 95,119,111,111,100, 95,115,105,110, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, -118, 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32, -110,111,114,109, 97,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, 97, 32, 61, 32,115,113,114,116, 40,118,101, 99, 46,120, 42, -118,101, 99, 46,120, 32, 43, 32,118,101, 99, 46,121, 42,118,101, 99, 46,121, 32, 43, 32,118,101, 99, 46,122, 42,118,101, 99, 46, -122, 41, 42, 50, 48, 46, 48, 59, 10, 9,102,108,111, 97,116, 32,119,105, 32, 61, 32, 48, 46, 53, 32, 43, 32, 48, 46, 53, 42,115, -105,110, 40, 97, 41, 59, 10, 10, 9,118, 97,108,117,101, 32, 61, 32,119,105, 59, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, - 99, 52, 40,119,105, 44, 32,119,105, 44, 32,119,105, 44, 32, 49, 46, 48, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32,118, -101, 99, 51, 40, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116, -117,114,101, 95,105,109, 97,103,101, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, - 97, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108, -111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32, -116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 40,118,101, 99, 46,120,121, 32, 43, 32,118,101, 99, 50, 40, 49, 46, - 48, 44, 32, 49, 46, 48, 41, 41, 42, 48, 46, 53, 41, 59, 10, 9,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 59, 10, 10, 9,110, -111,114,109, 97,108, 46,120, 32, 61, 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46,114, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9, -110,111,114,109, 97,108, 46,121, 32, 61, 32, 50, 46, 48, 42, 40, 48, 46, 53, 32, 45, 32, 99,111,108,111,114, 46,103, 41, 59, 10, - 9,110,111,114,109, 97,108, 46,122, 32, 61, 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46, 98, 32, 45, 32, 48, 46, 53, 41, 59, - 10,125, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 77, 84, 69, 88, 32, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111,114, 99,111, 40,118,101, 99, 51, - 32, 97,116,116,111,114, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,114, 99,111, 41, 10,123, 10, 9,111,114, 99,111, - 32, 61, 32, 97,116,116,111,114, 99,111, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,117,118, 40,118,101, 99, - 50, 32, 97,116,116,117,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 41, 10,123, 10, 9, 47, 42, 32,100,105,115, 97, - 98,108,101,100, 32,102,111,114, 32,110,111,119, 44, 32,119,111,114,107,115, 32,116,111,103,101,116,104,101,114, 32,119,105,116, -104, 32,108,101, 97,118,105,110,103, 32,111,117,116, 32,109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 10, 9, 32, - 32, 32,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32,118,101, 99, 50, 40, 49, 46, 48, - 44, 32, 49, 46, 48, 41, 44, 32, 48, 46, 48, 41, 59, 32, 42, 47, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117, -118, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,110,111,114,109, 40,118,101, 99, 51, - 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, - 47, 42, 32, 99,111,114,114,101,115,112,111,110,100,115, 32,116,111, 32,115,104,105, 45, 62,111,114,110, 44, 32,119,104,105, 99, -104, 32,105,115, 32,110,101,103, 97,116,101,100, 32,115,111, 32, 99, 97,110, 99,101,108,115, 10, 9, 32, 32, 32,111,117,116, 32, - 98,108,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,110,101,103, 97,116,105,111,110, 32, 42, 47, 10, 9,111,117,116,110, -111,114,109, 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,110,111,114,109, 97,108, 41, 59, 10,125, 10, 10,118,111, -105,100, 32,116,101,120, 99,111, 95,116, 97,110,103,101,110,116, 40,118,101, 99, 51, 32,116, 97,110,103,101,110,116, 44, 32,111, -117,116, 32,118,101, 99, 51, 32,111,117,116,116, 97,110,103,101,110,116, 41, 10,123, 10, 9,111,117,116,116, 97,110,103,101,110, -116, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,116, 97,110,103,101,110,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32, -116,101,120, 99,111, 95,103,108,111, 98, 97,108, 40,109, 97,116, 52, 32,118,105,101,119,105,110,118,109, 97,116, 44, 32,118,101, - 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108, 41, 10,123, 10, 9,103,108,111, 98, 97, -108, 32, 61, 32, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49, 46, 48, 41, 41, 46,120, -121,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111, 98,106,101, 99,116, 40,109, 97,116, 52, 32,118,105, -101,119,105,110,118,109, 97,116, 44, 32,109, 97,116, 52, 32,111, 98,105,110,118,109, 97,116, 44, 32,118,101, 99, 51, 32, 99,111, - 44, 32,111,117,116, 32,118,101, 99, 51, 32,111, 98,106,101, 99,116, 41, 10,123, 10, 9,111, 98,106,101, 99,116, 32, 61, 32, 40, -111, 98,105,110,118,109, 97,116, 42, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49, 46, - 48, 41, 41, 41, 46,120,121,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,114,101,102,108, 40,118,101, 99, - 51, 32,118,110, 44, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,111,117,116, 32,118,101, 99, 51, 32,114,101,102, 41, 10,123, - 10, 9,114,101,102, 32, 61, 32,118,105,101,119, 32, 45, 32, 50, 46, 48, 42,100,111,116, 40,118,110, 44, 32,118,105,101,119, 41, - 42,118,110, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,110,111,114,109, 40,118,101, 99, 51, 32,110,111,114, -109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 42, 32, 98, -108,101,110,100,101,114, 32,114,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,105,115, 32,110,101,103, 97,116,101,100, 32, - 42, 47, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, 97,108,105,122,101, 40,110,111,114,109, 97, -108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 98,108,101,110,100, 40,118,101, 99, 51, 32, -111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, - 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9, -102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99, -109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, - 99,111,108, 32, 43, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, -114,103, 98, 95,109,117,108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, - 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, - 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, - 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99, -111,108, 32, 61, 32, 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 41, 42,111,117,116, 99,111,108, - 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 99,114,101,101,110, 40,118,101, 99, 51, 32,111, -117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32, -102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102, -108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, - 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,118,101, 99, 51, 40, 49, 46, 48, 41, - 32, 45, 32, 40,118,101, 99, 51, 40,102, 97, 99,109, 41, 32, 43, 32,102, 97, 99,116, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41, - 32, 45, 32,116,101,120, 99,111,108, 41, 41, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,111,117,116, 99,111,108, 41, - 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,111,118,101,114,108, 97,121, 40,118,101, 99, 51, 32, -111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, - 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9, -102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99, -109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 60, 32, 48, 46, - 53, 41, 10, 9, 9,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 42, 40,102, 97, 99,109, 32, 43, 32, - 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111, -108, 46,114, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, - 48, 32, 45, 32,116,101,120, 99,111,108, 46,114, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41, 59, - 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46,103, 32, - 61, 32,111,117,116, 99,111,108, 46,103, 42, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99, -111,108, 46,103, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40, -102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46,103, 41, - 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, - 98, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 42, 40,102, - 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46, 98, 41, 59, 10, 9,101,108,115,101, 10, - 9, 9,105,110, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, - 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46, 98, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99, -111,108, 46, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115,117, 98, 40,118,101, 99, 51, - 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, - 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, - 9,105,110, 99,111,108, 32, 61, 32, 45,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, - 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 97,100,100, 40,118,101, 99, 51, 32,111, -117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32, -102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,105, -110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108, - 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,118, 40,118,101, 99, 51, 32,111,117,116, 99, -111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, - 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97, -116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, - 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32, -105,110, 99,111,108, 46,114, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99,116, 42,111, -117,116, 99,111,108, 46,114, 47,116,101,120, 99,111,108, 46,114, 59, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,103, 32, 33, - 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,103, 32, 43, - 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46,103, 47,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40,116,101,120, - 99,111,108, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,102, 97, 99,109, 42,111,117,116, - 99,111,108, 46, 98, 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46, 98, 47,116,101,120, 99,111,108, 46, 98, 59, 10, -125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,102,102, 40,118,101, 99, 51, 32,111,117,116, 99,111, + 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115, +118, 50, 44, 32,116,109,112, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, + 59, 10, 10, 9,105,102, 40,104,115,118, 50, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, + 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 9, 9,104,115,118, 46,120, 32, 61, 32,104,115,118, + 50, 46,120, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,116,109,112, 41, 59, 32, 10, 10, 9, + 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40,111,117,116, 99,111,108, 44, 32,116,109,112, 44, 32,102, 97, 99, 41, 59, + 10, 9, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, + 32,109,105,120, 95,115, 97,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118, +101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, + 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, + 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111, +108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115, +118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 10, 9,105,102, 40,104,115,118, 46,121, 32, 33, 61, 32, 48, 46, + 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, + 9, 9,104,115,118, 46,121, 32, 61, 32,102, 97, 99,109, 42,104,115,118, 46,121, 32, 43, 32,102, 97, 99, 42,104,115,118, 50, 46, +121, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10, 9,125, + 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,118, 97,108, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, + 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111, +108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, + 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,118,101, 99, + 52, 32,104,115,118, 44, 32,104,115,118, 50, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 49, 44, 32,104, +115,118, 41, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9, +104,115,118, 46,122, 32, 61, 32,102, 97, 99,109, 42,104,115,118, 46,122, 32, 43, 32,102, 97, 99, 42,104,115,118, 50, 46,122, 59, + 10, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111, +105,100, 32,109,105,120, 95, 99,111,108,111,114, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, + 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, + 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102, +108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, + 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 44, 32,116,109,112, 59, 10, 9, +114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9,105,102, 40,104,115,118, + 50, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118, 40,111,117,116, 99,111, +108, 44, 32,104,115,118, 41, 59, 10, 9, 9,104,115,118, 46,120, 32, 61, 32,104,115,118, 50, 46,120, 59, 10, 9, 9,104,115,118, + 46,121, 32, 61, 32,104,115,118, 50, 46,121, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,116, +109,112, 41, 59, 32, 10, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40,111,117,116, 99,111,108, 44, 32,116,109, +112, 44, 32,102, 97, 99, 41, 59, 10, 9, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10, 9,125, + 10,125, 10, 10,118,111,105,100, 32,118, 97,108,116,111,114,103, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,115, 97,109, +112,108,101,114, 49, 68, 32, 99,111,108,111,114,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, + 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, 97,108,112,104, 97, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, + 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,111,108,111,114,109, 97,112, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, + 97,108,112,104, 97, 32, 61, 32,111,117,116, 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,114,103, 98,116,111, 98, +119, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10, +123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 99,111,108,111,114, 46,114, 42, 48, 46, 51, 53, 32, 43, 32, 99,111,108,111,114, + 46,103, 42, 48, 46, 52, 53, 32, 43, 32, 99,111,108,111,114, 46, 98, 42, 48, 46, 50, 59, 10,125, 10, 10,118,111,105,100, 32,105, +110,118,101,114,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118, +101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 46,120,121,122, 32, 61, 32,109,105,120, 40, + 99,111,108, 46,120,121,122, 44, 32,118,101, 99, 51, 40, 49, 46, 48, 44, 32, 49, 46, 48, 44, 32, 49, 46, 48, 41, 32, 45, 32, 99, +111,108, 46,120,121,122, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46,119, 32, 61, 32, 99,111,108, 46,119, 59, + 10,125, 10, 10,118,111,105,100, 32,104,117,101, 95,115, 97,116, 40,102,108,111, 97,116, 32,104,117,101, 44, 32,102,108,111, 97, +116, 32,115, 97,116, 44, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118, +101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,118,101, 99, + 52, 32,104,115,118, 59, 10, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 10, + 9,104,115,118, 91, 48, 93, 32, 43, 61, 32, 40,104,117,101, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9,105,102, 40,104,115,118, 91, + 48, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 48, 93, 45, 61, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,115,118, + 91, 48, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 48, 93, 43, 61, 32, 49, 46, 48, 59, 10, 9,104,115,118, 91, 49, 93, 32, 42, + 61, 32,115, 97,116, 59, 10, 9,105,102, 40,104,115,118, 91, 49, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 49, 93, 61, 32, 49, + 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,115,118, 91, 49, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 49, 93, 61, 32, + 48, 46, 48, 59, 10, 9,104,115,118, 91, 50, 93, 32, 42, 61, 32,118, 97,108,117,101, 59, 10, 9,105,102, 40,104,115,118, 91, 50, + 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,115,118, 91, + 50, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 48, 46, 48, 59, 10, 10, 9,104,115,118, 95,116,111, 95,114,103, + 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99, +111,108, 44, 32,111,117,116, 99,111,108, 44, 32,102, 97, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,112, 97,114, 97, +116,101, 95,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,114, 44, 32,111,117, +116, 32,102,108,111, 97,116, 32,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 98, 41, 10,123, 10, 9,114, 32, 61, 32, 99, +111,108, 46,114, 59, 10, 9,103, 32, 61, 32, 99,111,108, 46,103, 59, 10, 9, 98, 32, 61, 32, 99,111,108, 46, 98, 59, 10,125, 10, + 10,118,111,105,100, 32, 99,111,109, 98,105,110,101, 95,114,103, 98, 40,102,108,111, 97,116, 32,114, 44, 32,102,108,111, 97,116, + 32,103, 44, 32,102,108,111, 97,116, 32, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108, 41, 10,123, 10, 9, 99,111, +108, 32, 61, 32,118,101, 99, 52, 40,114, 44, 32,103, 44, 32, 98, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32, +111,117,116,112,117,116, 95,110,111,100,101, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,102,108,111, 97,116, 32, 97,108,112,104, + 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,111,117,116,114,103, 98, 32, 61, 32, +118,101, 99, 52, 40,114,103, 98, 46,114,103, 98, 44, 32, 97,108,112,104, 97, 41, 59, 10,125, 10, 10, 47, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 32, 84, 69, 88, 84, 85, 82, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, + 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,102,108,105,112, 95, 98,108,101,110,100, 40,118,101, 99, 51, 32,118,101, + 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32, +118,101, 99, 46,121,120,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95, 98,108,101,110,100, 95,108, +105,110, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, + 10, 9,111,117,116,118, 97,108, 32, 61, 32, 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, 59, 10,125, 10, 10,118, +111,105,100, 32,116,101,120,116,117,114,101, 95, 98,108,101,110,100, 95,113,117, 97,100, 40,118,101, 99, 51, 32,118,101, 99, 44, + 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,109, + 97,120, 40, 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10, 9,111,117,116,118, 97, +108, 32, 42, 61, 32,111,117,116,118, 97,108, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,119,111,111, +100, 95,115,105,110, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, + 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, + 41, 10,123, 10, 9,102,108,111, 97,116, 32, 97, 32, 61, 32,115,113,114,116, 40,118,101, 99, 46,120, 42,118,101, 99, 46,120, 32, + 43, 32,118,101, 99, 46,121, 42,118,101, 99, 46,121, 32, 43, 32,118,101, 99, 46,122, 42,118,101, 99, 46,122, 41, 42, 50, 48, 46, + 48, 59, 10, 9,102,108,111, 97,116, 32,119,105, 32, 61, 32, 48, 46, 53, 32, 43, 32, 48, 46, 53, 42,115,105,110, 40, 97, 41, 59, + 10, 10, 9,118, 97,108,117,101, 32, 61, 32,119,105, 59, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40,119,105, 44, + 32,119,105, 44, 32,119,105, 44, 32, 49, 46, 48, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32,118,101, 99, 51, 40, 48, 46, + 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,105,109, + 97,103,101, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, + 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117, +116, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,116,101,120,116,117,114, +101, 50, 68, 40,105,109, 97, 44, 32, 40,118,101, 99, 46,120,121, 32, 43, 32,118,101, 99, 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, + 41, 41, 42, 48, 46, 53, 41, 59, 10, 9,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 59, 10, 10, 9,110,111,114,109, 97,108, 46, +120, 32, 61, 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46,114, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9,110,111,114,109, 97,108, + 46,121, 32, 61, 32, 50, 46, 48, 42, 40, 48, 46, 53, 32, 45, 32, 99,111,108,111,114, 46,103, 41, 59, 10, 9,110,111,114,109, 97, +108, 46,122, 32, 61, 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46, 98, 32, 45, 32, 48, 46, 53, 41, 59, 10,125, 10, 10, 47, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 77, 84, 69, 88, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 47, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111,114, 99,111, 40,118,101, 99, 51, 32, 97,116,116,111,114, + 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,114, 99,111, 41, 10,123, 10, 9,111,114, 99,111, 32, 61, 32, 97,116,116, +111,114, 99,111, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,117,118, 40,118,101, 99, 50, 32, 97,116,116,117, +118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 41, 10,123, 10, 9, 47, 42, 32,100,105,115, 97, 98,108,101,100, 32,102, +111,114, 32,110,111,119, 44, 32,119,111,114,107,115, 32,116,111,103,101,116,104,101,114, 32,119,105,116,104, 32,108,101, 97,118, +105,110,103, 32,111,117,116, 32,109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 10, 9, 32, 32, 32,117,118, 32, 61, + 32,118,101, 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32,118,101, 99, 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, 41, + 44, 32, 48, 46, 48, 41, 59, 32, 42, 47, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 44, 32, 48, 46, 48, + 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,110,111,114,109, 40,118,101, 99, 51, 32,110,111,114,109, 97, +108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 42, 32, 99,111,114, +114,101,115,112,111,110,100,115, 32,116,111, 32,115,104,105, 45, 62,111,114,110, 44, 32,119,104,105, 99,104, 32,105,115, 32,110, +101,103, 97,116,101,100, 32,115,111, 32, 99, 97,110, 99,101,108,115, 10, 9, 32, 32, 32,111,117,116, 32, 98,108,101,110,100,101, +114, 32,110,111,114,109, 97,108, 32,110,101,103, 97,116,105,111,110, 32, 42, 47, 10, 9,111,117,116,110,111,114,109, 97,108, 32, + 61, 32,110,111,114,109, 97,108,105,122,101, 40,110,111,114,109, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, + 99,111, 95,116, 97,110,103,101,110,116, 40,118,101, 99, 51, 32,116, 97,110,103,101,110,116, 44, 32,111,117,116, 32,118,101, 99, + 51, 32,111,117,116,116, 97,110,103,101,110,116, 41, 10,123, 10, 9,111,117,116,116, 97,110,103,101,110,116, 32, 61, 32,110,111, +114,109, 97,108,105,122,101, 40,116, 97,110,103,101,110,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95, +103,108,111, 98, 97,108, 40,109, 97,116, 52, 32,118,105,101,119,105,110,118,109, 97,116, 44, 32,118,101, 99, 51, 32, 99,111, 44, + 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108, 41, 10,123, 10, 9,103,108,111, 98, 97,108, 32, 61, 32, 40,118, +105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10,125, 10, + 10,118,111,105,100, 32,116,101,120, 99,111, 95,111, 98,106,101, 99,116, 40,109, 97,116, 52, 32,118,105,101,119,105,110,118,109, + 97,116, 44, 32,109, 97,116, 52, 32,111, 98,105,110,118,109, 97,116, 44, 32,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32, +118,101, 99, 51, 32,111, 98,106,101, 99,116, 41, 10,123, 10, 9,111, 98,106,101, 99,116, 32, 61, 32, 40,111, 98,105,110,118,109, + 97,116, 42, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49, 46, 48, 41, 41, 41, 46,120, +121,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,114,101,102,108, 40,118,101, 99, 51, 32,118,110, 44, 32, +118,101, 99, 51, 32,118,105,101,119, 44, 32,111,117,116, 32,118,101, 99, 51, 32,114,101,102, 41, 10,123, 10, 9,114,101,102, 32, + 61, 32,118,105,101,119, 32, 45, 32, 50, 46, 48, 42,100,111,116, 40,118,110, 44, 32,118,105,101,119, 41, 42,118,110, 59, 10,125, + 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,110,111,114,109, 40,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,111, +117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 42, 32, 98,108,101,110,100,101,114, + 32,114,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,105,115, 32,110,101,103, 97,116,101,100, 32, 42, 47, 10, 9,111,117, +116,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, 97,108,105,122,101, 40,110,111,114,109, 97,108, 41, 59, 10,125, 10, + 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 98,108,101,110,100, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, + 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, + 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, +102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, + 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32, +102, 97, 99,109, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,109,117, +108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97, +116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99, +111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99, +103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32, 40, +102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 41, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118, +111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 99,114,101,101,110, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, + 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32, +102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, + 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, + 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32, 40,118,101, + 99, 51, 40,102, 97, 99,109, 41, 32, 43, 32,102, 97, 99,116, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,116,101,120, + 99,111,108, 41, 41, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118, +111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,111,118,101,114,108, 97,121, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, + 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, + 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, +102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, + 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105, +110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 42, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, + 99,116, 42,116,101,120, 99,111,108, 46,114, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 46,114, 32, 61, 32, + 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101, +120, 99,111,108, 46,114, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41, 59, 10, 10, 9,105,102, 40, +111,117,116, 99,111,108, 46,103, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46,103, 32, 61, 32,111,117,116, 99, +111,108, 46,103, 42, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 41, 59, + 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, + 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46,103, 41, 41, 42, 40, 49, 46, 48, + 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 60, 32, 48, 46, + 53, 41, 10, 9, 9,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 42, 40,102, 97, 99,109, 32, 43, 32, + 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46, 98, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111, +108, 46, 98, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, + 48, 32, 45, 32,116,101,120, 99,111,108, 46, 98, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41, 59, + 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115,117, 98, 40,118,101, 99, 51, 32,111,117,116, 99,111, 108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97, -116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, - 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, - 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, - 32,102, 97, 99,116, 42, 97, 98,115, 40,116,101,120, 99,111,108, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118, -111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100, 97,114,107, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118, +116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,105,110, 99,111,108, + 32, 61, 32, 45,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, + 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 97,100,100, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, + 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32, +102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,105,110, 99,111,108, 32, 61, + 32,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118, +111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,118, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, + 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99, +103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, + 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, + 99,116, 59, 10, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46, +114, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46, +114, 47,116,101,120, 99,111,108, 46,114, 59, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,103, 32, 33, 61, 32, 48, 46, 48, 41, + 32,105,110, 99,111,108, 46,103, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,103, 32, 43, 32,102, 97, 99,116, 42, +111,117,116, 99,111,108, 46,103, 47,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40,116,101,120, 99,111,108, 46, 98, 32, + 33, 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46, 98, 32, + 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46, 98, 47,116,101,120, 99,111,108, 46, 98, 59, 10,125, 10, 10,118,111,105, +100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,102,102, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, + 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, + 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, + 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99, +116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116, 42, + 97, 98,115, 40,116,101,120, 99,111,108, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116, +101,120, 95,114,103, 98, 95,100, 97,114,107, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101, +120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117, +116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 44, 32, 99,111,108, + 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, + 99,116, 59, 10, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114, 59, 10, 9,105,102, 40, 99, +111,108, 32, 60, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,108, 46,114, 32, 61, 32, 99,111,108, 59, 32,101,108, +115,101, 32,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, + 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46,103, 41, + 32,105,110, 99,111,108, 46,103, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,103, 32, 61, 32,111, +117,116, 99,111,108, 46,103, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46, 98, 59, 10, 9, +105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46, 98, 41, 32,105,110, 99,111,108, 46, 98, 32, 61, 32, 99,111,108, + 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 59, 10,125, 10, 10,118,111, +105,100, 32,109,116,101,120, 95,114,103, 98, 95,108,105,103,104,116, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118, 101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99, 109, 44, 32, 99,111,108, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114, 59, - 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,108, 46,114, 32, 61, 32, 99, + 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,108, 46,114, 32, 61, 32, 99, 111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 59, 10, 9, 99,111, -108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, +108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46,103, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,103, 32, 61, 32,111,117,116, 99,111,108, 46,103, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111, -108, 46, 98, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46, 98, 41, 32,105,110, 99,111,108, 46, 98, +108, 46, 98, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46, 98, 41, 32,105,110, 99,111,108, 46, 98, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 59, - 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,108,105,103,104,116, 40,118,101, 99, 51, 32,111,117,116, - 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108, -111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, - 97,116, 32,102, 97, 99,109, 44, 32, 99,111,108, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, - 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, - 99,111,108, 46,114, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,108, - 46,114, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46, -114, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,108, - 32, 62, 32,111,117,116, 99,111,108, 46,103, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, - 32,105,110, 99,111,108, 46,103, 32, 61, 32,111,117,116, 99,111,108, 46,103, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, - 42,116,101,120, 99,111,108, 46, 98, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46, 98, 41, 32,105, -110, 99,111,108, 46, 98, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, - 99,111,108, 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,104,117,101, 40,118,101, 99, 51, - 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, - 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, - 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95,104,117,101, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32, -118,101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, - 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, - 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 97,116, 40,118,101, 99, 51, 32,111,117,116, 99, -111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, - 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, - 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95,115, 97,116, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40, -111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, - 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10, -118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,118, 97,108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118, -101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, - 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, - 10, 10, 9,109,105,120, 95,118, 97,108, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111, -108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41, - 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32, -109,116,101,120, 95,114,103, 98, 95, 99,111,108,111,114, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, - 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, - 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9, -109,105,120, 95, 99,111,108,111,114, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,108, + 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,104,117,101, 40,118,101, 99, 51, 32,111,117,116, 99,111, +108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97, +116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, + 99,111,108, 59, 10, 10, 9,109,105,120, 95,104,117,101, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111, +117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, + 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118, +111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 97,116, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, + 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99, +103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, + 10, 9,109,105,120, 95,115, 97,116, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109, -116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,105,110,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, - 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,109, 44, 32,102,108,111, - 97,116, 32,102,108,105,112, 41, 10,123, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, - 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,102, 40,102,108,105,112, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, - 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32,102, 97, 99,116, 59, 10, 9, 9,102, 97, 99,116, 32, 61, 32,102, 97, 99, -109, 59, 10, 9, 9,102, 97, 99,109, 32, 61, 32,116,109,112, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, - 95,118, 97,108,117,101, 95, 98,108,101,110,100, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, +116,101,120, 95,114,103, 98, 95,118, 97,108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101, +120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117, +116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9,109,105,120, + 95,118, 97,108, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48, + 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99, +111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114, +103, 98, 95, 99,111,108,111,114, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111, +108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118, +101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95, 99,111, +108,111,114, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, + 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111, +108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97, +108,117,101, 95,118, 97,114,115, 40,105,110,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, + 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,109, 44, 32,102,108,111, 97,116, 32,102,108,105, +112, 41, 10,123, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45, +102, 97, 99,116, 59, 10, 10, 9,105,102, 40,102,108,105,112, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97, +116, 32,116,109,112, 32, 61, 32,102, 97, 99,116, 59, 10, 9, 9,102, 97, 99,116, 32, 61, 32,102, 97, 99,109, 59, 10, 9, 9,102, + 97, 99,109, 32, 61, 32,116,109,112, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, + 95, 98,108,101,110,100, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111, +108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, + 32,102,108,105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, + 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, + 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42, +116,101,120, 99,111,108, 32, 43, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116, +101,120, 95,118, 97,108,117,101, 95,109,117,108, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, - 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, - 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118, -111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,109,117,108, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, - 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, - 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99, -111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, - 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,102, - 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,103, 59, 10, 9,105,110, 99,111,108, 32, 61, 32, 40,102, 97, 99,109, - 32, 43, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 41, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32, -109,116,101,120, 95,118, 97,108,117,101, 95,115, 99,114,101,101,110, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32, -102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32, -102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111, -108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97, -114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,102, 97, - 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,103, 59, 10, 9,105,110, 99,111,108, 32, 61, 32, 49, 46, 48, 32, 45, 32, - 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 41, 41, 42, 40, 49, 46, - 48, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, -115,117, 98, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32, -102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108, -105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, - 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, - 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,102, 97, 99,116, 32, 61, 32, 45,102, 97, 99,116, 59, 10, 9,105, -110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10, -118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 97,100,100, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, + 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,102, 97, 99,109, 32, 61, 32, + 49, 46, 48, 32, 45, 32,102, 97, 99,103, 59, 10, 9,105,110, 99,111,108, 32, 61, 32, 40,102, 97, 99,109, 32, 43, 32,102, 97, 99, +116, 42,116,101,120, 99,111,108, 41, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, + 97,108,117,101, 95,115, 99,114,101,101,110, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32, +116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32, +102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9, +102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99, +116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,102, 97, 99,109, 32, 61, 32, 49, + 46, 48, 32, 45, 32,102, 97, 99,103, 59, 10, 9,105,110, 99,111,108, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, + 43, 32,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117, +116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,115,117, 98, 40,102,108, +111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32, +102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117, +116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109, +116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, + 32,102,108,105,112, 41, 59, 10, 10, 9,102, 97, 99,116, 32, 61, 32, 45,102, 97, 99,116, 59, 10, 9,105,110, 99,111,108, 32, 61, + 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109, +116,101,120, 95,118, 97,108,117,101, 95, 97,100,100, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97, +116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, + 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, + 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, + 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,102, 97, 99,116, 32, 61, + 32,102, 97, 99,116, 59, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,111,117, +116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100,105,118, 40,102,108,111, + 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, + 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, + 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116, +101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32, +102,108,105,112, 41, 59, 10, 10, 9,105,102, 40,116,101,120, 99,111,108, 32, 33, 61, 32, 48, 46, 48, 41, 10, 9, 9,105,110, 99, +111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 47,116, +101,120, 99,111,108, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118, +111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100,105,102,102, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97, 116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95, 118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9, -102, 97, 99,116, 32, 61, 32,102, 97, 99,116, 59, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111, -108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100, -105,118, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102, -108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105, -112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99, -109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32, -102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,105,102, 40,116,101,120, 99,111,108, 32, 33, 61, 32, 48, 46, 48, 41, - 10, 9, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116, 42,111,117, -116, 99,111,108, 47,116,101,120, 99,111,108, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 32, 61, 32, 48, 46, 48, - 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100,105,102,102, 40,102,108,111, 97,116, 32, -111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, - 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108, -111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95, -118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105, -112, 41, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116, - 42, 97, 98,115, 40,116,101,120, 99,111,108, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, -116,101,120, 95,118, 97,108,117,101, 95,100, 97,114,107, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, - 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99, -103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10, -123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40, -102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,102,108,111, 97,116, - 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117, -116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 32, 61, 32, -111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,108,105,103,104,116, - 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, - 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, - 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, - 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, - 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,102,108,111, 97,116, 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101, -120, 99,111,108, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32, - 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 32, 61, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105, -100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 99,108, 97,109,112, 95,112,111,115,105,116,105,118,101, 40,102,108,111, 97, -116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,111,117,116,102, - 97, 99, 32, 61, 32,109, 97,120, 40,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, - 95,118, 97,108,117,101, 95, 99,108, 97,109,112, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97, -116, 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,111,117,116,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, - 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,104, 97,114, 95,100,105,118, -105,100,101, 40,102,108,111, 97,116, 32,104, 97,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,104, 97,114, 41, - 10,123, 10, 9,111,117,116,104, 97,114, 32, 61, 32,104, 97,114, 47, 49, 50, 56, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32, -109,116,101,120, 95,104, 97,114, 95,109,117,108,116,105,112,108,121, 95, 99,108, 97,109,112, 40,102,108,111, 97,116, 32,104, 97, -114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,104, 97,114, 41, 10,123, 10, 9,104, 97,114, 32, 42, 61, 32, 49, - 50, 56, 46, 48, 59, 10, 10, 9,105,102, 40,104, 97,114, 32, 60, 32, 49, 46, 48, 41, 32,111,117,116,104, 97,114, 32, 61, 32, 49, - 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,104, 97,114, 32, 62, 32, 53, 49, 49, 46, 48, 41, 32,111,117,116,104, 97,114, - 32, 61, 32, 53, 49, 49, 46, 48, 59, 10, 9,101,108,115,101, 32,111,117,116,104, 97,114, 32, 61, 32,104, 97,114, 59, 10,125, 10, - 10,118,111,105,100, 32,109,116,101,120, 95, 97,108,112,104, 97, 95,102,114,111,109, 95, 99,111,108, 40,118,101, 99, 52, 32, 99, -111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 97,108,112,104, 97, 41, 10,123, 10, 9, 97,108,112,104, 97, 32, 61, 32, - 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 97,108,112,104, 97, 95,116,111, 95, 99,111,108, - 40,118,101, 99, 52, 32, 99,111,108, 44, 32,102,108,111, 97,116, 32, 97,108,112,104, 97, 44, 32,111,117,116, 32,118,101, 99, 52, - 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, - 98, 44, 32, 97,108,112,104, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98,116,111,105,110,116, - 40,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,116,101,110,115,105,116,121, 41, 10, -123, 10, 9,105,110,116,101,110,115,105,116,121, 32, 61, 32,100,111,116, 40,118,101, 99, 51, 40, 48, 46, 51, 53, 44, 32, 48, 46, - 52, 53, 44, 32, 48, 46, 50, 41, 44, 32,114,103, 98, 46,114,103, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, - 95,118, 97,108,117,101, 95,105,110,118,101,114,116, 40,102,108,111, 97,116, 32,105,110,118, 97,108,117,101, 44, 32,111,117,116, - 32,102,108,111, 97,116, 32,111,117,116,118, 97,108,117,101, 41, 10,123, 10, 9,111,117,116,118, 97,108,117,101, 32, 61, 32, 49, - 46, 48, 32, 45, 32,105,110,118, 97,108,117,101, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,105, -110,118,101,114,116, 40,118,101, 99, 52, 32,105,110,114,103, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, - 98, 41, 10,123, 10, 9,111,117,116,114,103, 98, 32, 61, 32,118,101, 99, 52, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32, -105,110,114,103, 98, 46,114,103, 98, 44, 32,105,110,114,103, 98, 46, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101, -120, 95,118, 97,108,117,101, 95,115,116,101,110, 99,105,108, 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,102, -108,111, 97,116, 32,105,110,116,101,110,115,105,116,121, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,116,101, -110, 99,105,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,105,110,116,101,110,115,105,116,121, 41, 10,123, 10, - 9,102,108,111, 97,116, 32,102, 97, 99,116, 32, 61, 32,105,110,116,101,110,115,105,116,121, 59, 10, 9,111,117,116,105,110,116, -101,110,115,105,116,121, 32, 61, 32,105,110,116,101,110,115,105,116,121, 42,115,116,101,110, 99,105,108, 59, 10, 9,111,117,116, -115,116,101,110, 99,105,108, 32, 61, 32,115,116,101,110, 99,105,108, 42,102, 97, 99,116, 59, 10,125, 10, 10,118,111,105,100, 32, -109,116,101,120, 95,114,103, 98, 95,115,116,101,110, 99,105,108, 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32, -118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,116,101,110, 99,105,108, 44, 32, -111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,116, 32, 61, - 32,114,103, 98, 46, 97, 59, 10, 9,111,117,116,114,103, 98, 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 46,114,103, 98, 44, 32, -114,103, 98, 46, 97, 42,115,116,101,110, 99,105,108, 41, 59, 10, 9,111,117,116,115,116,101,110, 99,105,108, 32, 61, 32,115,116, -101,110, 99,105,108, 42,102, 97, 99,116, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, - 95,111,102,115, 40,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,118,101, 99, 51, 32,111,102,115, 44, 32,111,117,116, 32,118, -101, 99, 51, 32,111,117,116,116,101,120, 99,111, 41, 10,123, 10, 9,111,117,116,116,101,120, 99,111, 32, 61, 32,116,101,120, 99, -111, 32, 43, 32,111,102,115, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, 95,115,105, -122,101, 40,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,118,101, 99, 51, 32,115,105,122,101, 44, 32,111,117,116, 32,118,101, - 99, 51, 32,111,117,116,116,101,120, 99,111, 41, 10,123, 10, 9,111,117,116,116,101,120, 99,111, 32, 61, 32,115,105,122,101, 42, -116,101,120, 99,111, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 40,118, -101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116, -118,101, 99, 32, 61, 32,118,101, 99, 51, 40,118,101, 99, 46,120,121, 42, 48, 46, 53, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53, - 44, 32, 48, 46, 53, 41, 44, 32,118,101, 99, 46,122, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,105,109, 97, -103,101, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32, -102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, - 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,116,101,120,116,117,114,101, - 50, 68, 40,105,109, 97, 44, 32,118,101, 99, 46,120,121, 41, 59, 10, 9,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 59, 10, 9, - 10, 9,110,111,114,109, 97,108, 32, 61, 32, 50, 46, 48, 42, 40,118,101, 99, 51, 40, 99,111,108,111,114, 46,114, 44, 32, 45, 99, -111,108,111,114, 46,103, 44, 32, 99,111,108,111,114, 46, 98, 41, 32, 45, 32,118,101, 99, 51, 40, 48, 46, 53, 44, 32, 45, 48, 46, - 53, 44, 32, 48, 46, 53, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,110,101,103, 97,116,101, 95,116,101, -120,110,111,114,109, 97,108, 40,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117, -116,110,111,114,109, 97,108, 41, 10,123, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32,118,101, 99, 51, 40, 45,110,111, -114,109, 97,108, 46,120, 44, 32, 45,110,111,114,109, 97,108, 46,121, 44, 32,110,111,114,109, 97,108, 46,122, 41, 59, 10,125, 10, - 10,118,111,105,100, 32,109,116,101,120, 95,110,115,112, 97, 99,101, 95,116, 97,110,103,101,110,116, 40,118,101, 99, 51, 32,116, - 97,110,103,101,110,116, 44, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,118,101, 99, 51, 32,116,101,120,110,111,114, -109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9,116, 97,110,103, -101,110,116, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,116, 97,110,103,101,110,116, 41, 59, 10, 9,118,101, 99, 51, 32, - 66, 32, 61, 32, 99,114,111,115,115, 40,110,111,114,109, 97,108, 44, 32,116, 97,110,103,101,110,116, 41, 59, 10, 10, 9,111,117, -116,110,111,114,109, 97,108, 32, 61, 32,116,101,120,110,111,114,109, 97,108, 46,120, 42,116, 97,110,103,101,110,116, 32, 43, 32, -116,101,120,110,111,114,109, 97,108, 46,121, 42, 66, 32, 43, 32,116,101,120,110,111,114,109, 97,108, 46,122, 42,110,111,114,109, - 97,108, 59, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,117,116,110,111, -114,109, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,108,101,110,100, 95,110,111,114,109, 97,108, - 40,102,108,111, 97,116, 32,110,111,114,102, 97, 99, 44, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,118,101, 99, 51, - 32,110,101,119,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10, -123, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32,110,111,114,102, 97, 99, 41, 42,110,111, -114,109, 97,108, 32, 43, 32,110,111,114,102, 97, 99, 42,110,101,119,110,111,114,109, 97,108, 59, 10, 9,111,117,116,110,111,114, -109, 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,117,116,110,111,114,109, 97,108, 41, 59, 10,125, 10, 10, 47, - 42, 42, 42, 42, 42, 42, 42, 32, 77, 65, 84, 69, 82, 73, 65, 76, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,118,111,105, -100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,115,117,110, 95,104,101,109,105, 40,118,101, 99, 51, 32, -108, 97,109,112,118,101, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, -100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,108,118, 32, 61, - 32,108, 97,109,112,118,101, 99, 59, 10, 9,100,105,115,116, 32, 61, 32, 49, 46, 48, 59, 10, 9,118,105,115,105,102, 97, 99, 32, - 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,111, -116,104,101,114, 40,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,108, 97,109,112, 99,111, 44, 32,111,117,116, 32,118, -101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97, -116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,108,118, 32, 61, 32, 99,111, 32, 45, 32,108, 97,109,112, 99,111, 59, 10, - 9,100,105,115,116, 32, 61, 32,108,101,110,103,116,104, 40,108,118, 41, 59, 10, 9,108,118, 32, 61, 32,110,111,114,109, 97,108, -105,122,101, 40,108,118, 41, 59, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, - 32,108, 97,109,112, 95,102, 97,108,108,111,102,102, 95,105,110,118,108,105,110,101, 97,114, 40,102,108,111, 97,116, 32,108, 97, -109,112,100,105,115,116, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105, -115,105,102, 97, 99, 41, 10,123, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32,108, 97,109,112,100,105,115,116, 47, 40,108, 97, -109,112,100,105,115,116, 32, 43, 32,100,105,115,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,102, 97,108, -108,111,102,102, 95,105,110,118,115,113,117, 97,114,101, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,102, -108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, - 9,118,105,115,105,102, 97, 99, 32, 61, 32,108, 97,109,112,100,105,115,116, 47, 40,108, 97,109,112,100,105,115,116, 32, 43, 32, -100,105,115,116, 42,100,105,115,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,102, 97,108,108,111,102,102, - 95,115,108,105,100,101,114,115, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,102,108,111, 97,116, 32,108, -100, 49, 44, 32,102,108,111, 97,116, 32,108,100, 50, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102, -108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116,107, -119, 32, 61, 32,108, 97,109,112,100,105,115,116, 42,108, 97,109,112,100,105,115,116, 59, 10, 10, 9,118,105,115,105,102, 97, 99, - 32, 61, 32,108, 97,109,112,100,105,115,116, 47, 40,108, 97,109,112,100,105,115,116, 32, 43, 32,108,100, 49, 42,100,105,115,116, - 41, 59, 10, 9,118,105,115,105,102, 97, 99, 32, 42, 61, 32,108, 97,109,112,100,105,115,116,107,119, 47, 40,108, 97,109,112,100, -105,115,116,107,119, 32, 43, 32,108,100, 50, 42,100,105,115,116, 42,100,105,115,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32, -108, 97,109,112, 95,102, 97,108,108,111,102,102, 95, 99,117,114,118,101, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115, -116, 44, 32,115, 97,109,112,108,101,114, 49, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,102,108,111, 97,116, 32,100,105,115, -116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,118,105,115,105,102, 97, 99, - 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,100,105,115,116, 47,108, 97,109,112, -100,105,115,116, 41, 46,120, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, - 95,115,112,104,101,114,101, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,102,108,111, 97,116, 32,100,105, -115,116, 44, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, -118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,116, 61, 32,108, 97,109,112,100,105,115,116, 32, 45, 32, -100,105,115,116, 59, 10, 10, 9,111,117,116,118,105,115,105,102, 97, 99, 61, 32,118,105,115,105,102, 97, 99, 42,109, 97,120, 40, -116, 44, 32, 48, 46, 48, 41, 47,108, 97,109,112,100,105,115,116, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118, -105,115,105, 98,105,108,105,116,121, 95,115,112,111,116, 95,115,113,117, 97,114,101, 40,118,101, 99, 51, 32,108, 97,109,112,118, -101, 99, 44, 32,109, 97,116, 52, 32,108, 97,109,112,105,109, 97,116, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32, -102,108,111, 97,116, 32,105,110,112,114, 41, 10,123, 10, 9,105,102, 40,100,111,116, 40,108,118, 44, 32,108, 97,109,112,118,101, - 99, 41, 32, 62, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,118,101, 99, 51, 32,108,118,114,111,116, 32, 61, 32, 40,108, 97,109,112, -105,109, 97,116, 42,118,101, 99, 52, 40,108,118, 44, 32, 48, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9, 9,102,108,111, 97,116, - 32,120, 32, 61, 32,109, 97,120, 40, 97, 98,115, 40,108,118,114,111,116, 46,120, 47,108,118,114,111,116, 46,122, 41, 44, 32, 97, - 98,115, 40,108,118,114,111,116, 46,121, 47,108,118,114,111,116, 46,122, 41, 41, 59, 10, 10, 9, 9,105,110,112,114, 32, 61, 32, - 49, 46, 48, 47,115,113,114,116, 40, 49, 46, 48, 32, 43, 32,120, 42,120, 41, 59, 10, 9,125, 10, 9,101,108,115,101, 10, 9, 9, -105,110,112,114, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108, -105,116,121, 95,115,112,111,116, 95, 99,105,114, 99,108,101, 40,118,101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,118,101, - 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,112,114, 41, 10,123, 10, 9,105,110,112,114, 32, 61, - 32,100,111,116, 40,108,118, 44, 32,108, 97,109,112,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95, -118,105,115,105, 98,105,108,105,116,121, 95,115,112,111,116, 40,102,108,111, 97,116, 32,115,112,111,116,115,105, 44, 32,102,108, -111, 97,116, 32,115,112,111,116, 98,108, 44, 32,102,108,111, 97,116, 32,105,110,112,114, 44, 32,102,108,111, 97,116, 32,118,105, -115,105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9, -102,108,111, 97,116, 32,116, 32, 61, 32,115,112,111,116,115,105, 59, 10, 10, 9,105,102, 40,105,110,112,114, 32, 60, 61, 32,116, - 41, 32,123, 10, 9, 9,111,117,116,118,105,115,105,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, - 32,123, 10, 9, 9,116, 32, 61, 32,105,110,112,114, 32, 45, 32,116, 59, 10, 10, 9, 9, 47, 42, 32,115,111,102,116, 32, 97,114, -101, 97, 32, 42, 47, 10, 9, 9,105,102, 40,115,112,111,116, 98,108, 32, 33, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,105,110,112, -114, 32, 42, 61, 32,115,109,111,111,116,104,115,116,101,112, 40, 48, 46, 48, 44, 32, 49, 46, 48, 44, 32,116, 47,115,112,111,116, - 98,108, 41, 59, 10, 10, 9, 9,111,117,116,118,105,115,105,102, 97, 99, 32, 61, 32,118,105,115,105,102, 97, 99, 42,105,110,112, -114, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95, 99,108, - 97,109,112, 40,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, -118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,111,117,116,118,105,115,105,102, 97, 99, 32, 61, 32, 40,118,105,115,105,102, 97, - 99, 32, 60, 32, 48, 46, 48, 48, 49, 41, 63, 32, 48, 46, 48, 58, 32,118,105,115,105,102, 97, 99, 59, 10,125, 10, 10,118,111,105, -100, 32,115,104, 97,100,101, 95,118,105,101,119, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, -105,101,119, 41, 10,123, 10, 9, 47, 42, 32,104, 97,110,100,108,101, 32,112,101,114,115,112,101, 99,116,105,118,101, 47,111,114, -116,104,111,103,114, 97,112,104,105, 99, 32, 42, 47, 10, 9,118,105,101,119, 32, 61, 32, 40,103,108, 95, 80,114,111,106,101, 99, -116,105,111,110, 77, 97,116,114,105,120, 91, 51, 93, 91, 51, 93, 32, 61, 61, 32, 48, 46, 48, 41, 63, 32,110,111,114,109, 97,108, -105,122,101, 40, 99,111, 41, 58, 32,118,101, 99, 51, 40, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 45, 49, 46, 48, 41, 59, 10,125, - 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,116, 97,110,103,101,110,116, 95,118, 40,118,101, 99, 51, 32,108,118, 44, 32, -118,101, 99, 51, 32,116, 97,110,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,110, 41, 10,123, 10, 9,118,101, 99, 51, 32, - 99, 32, 61, 32, 99,114,111,115,115, 40,108,118, 44, 32,116, 97,110,103, 41, 59, 10, 9,118,101, 99, 51, 32,118,110,111,114, 32, - 61, 32, 99,114,111,115,115, 40, 99, 44, 32,116, 97,110,103, 41, 59, 10, 10, 9,118,110, 32, 61, 32, 45,110,111,114,109, 97,108, -105,122,101, 40,118,110,111,114, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,105,110,112, 40,118,101, 99, - 51, 32,118,110, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,112, 41, 10,123, 10, - 9,105,110,112, 32, 61, 32,100,111,116, 40,118,110, 44, 32,108,118, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100, -101, 95,105,115, 95,110,111, 95,100,105,102,102,117,115,101, 40,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, - 9,105,115, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,105,115, 95,104,101,109,105, - 40,102,108,111, 97,116, 32,105,110,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105,115, 32, - 61, 32, 48, 46, 53, 42,105,110,112, 32, 43, 32, 48, 46, 53, 59, 10,125, 10, 10,102,108,111, 97,116, 32, 97,114,101, 97, 95,108, - 97,109,112, 95,101,110,101,114,103,121, 40,109, 97,116, 52, 32, 97,114,101, 97, 44, 32,118,101, 99, 51, 32, 99,111, 44, 32,118, -101, 99, 51, 32,118,110, 41, 10,123, 10, 9,118,101, 99, 51, 32,118,101, 99, 91, 52, 93, 44, 32, 99, 91, 52, 93, 59, 10, 9,102, -108,111, 97,116, 32,114, 97,100, 91, 52, 93, 44, 32,102, 97, 99, 59, 10, 9, 10, 9,118,101, 99, 91, 48, 93, 32, 61, 32,110,111, -114,109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,101, 97, 91, 48, 93, 46,120,121,122, 41, 59, 10, 9,118,101, 99, 91, - 49, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,101, 97, 91, 49, 93, 46,120,121,122, 41, - 59, 10, 9,118,101, 99, 91, 50, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,101, 97, 91, - 50, 93, 46,120,121,122, 41, 59, 10, 9,118,101, 99, 91, 51, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 32, - 45, 32, 97,114,101, 97, 91, 51, 93, 46,120,121,122, 41, 59, 10, 10, 9, 99, 91, 48, 93, 32, 61, 32,110,111,114,109, 97,108,105, -122,101, 40, 99,114,111,115,115, 40,118,101, 99, 91, 48, 93, 44, 32,118,101, 99, 91, 49, 93, 41, 41, 59, 10, 9, 99, 91, 49, 93, - 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,114,111,115,115, 40,118,101, 99, 91, 49, 93, 44, 32,118,101, 99, 91, 50, - 93, 41, 41, 59, 10, 9, 99, 91, 50, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,114,111,115,115, 40,118,101, 99, - 91, 50, 93, 44, 32,118,101, 99, 91, 51, 93, 41, 41, 59, 10, 9, 99, 91, 51, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, - 40, 99,114,111,115,115, 40,118,101, 99, 91, 51, 93, 44, 32,118,101, 99, 91, 48, 93, 41, 41, 59, 10, 10, 9,114, 97,100, 91, 48, - 93, 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 48, 93, 44, 32,118,101, 99, 91, 49, 93, 41, 41, 59, 10, 9, -114, 97,100, 91, 49, 93, 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 49, 93, 44, 32,118,101, 99, 91, 50, 93, - 41, 41, 59, 10, 9,114, 97,100, 91, 50, 93, 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 50, 93, 44, 32,118, -101, 99, 91, 51, 93, 41, 41, 59, 10, 9,114, 97,100, 91, 51, 93, 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101, 99, 91, - 51, 93, 44, 32,118,101, 99, 91, 48, 93, 41, 41, 59, 10, 10, 9,102, 97, 99, 61, 32, 32,114, 97,100, 91, 48, 93, 42,100,111,116, - 40,118,110, 44, 32, 99, 91, 48, 93, 41, 59, 10, 9,102, 97, 99, 43, 61, 32,114, 97,100, 91, 49, 93, 42,100,111,116, 40,118,110, - 44, 32, 99, 91, 49, 93, 41, 59, 10, 9,102, 97, 99, 43, 61, 32,114, 97,100, 91, 50, 93, 42,100,111,116, 40,118,110, 44, 32, 99, - 91, 50, 93, 41, 59, 10, 9,102, 97, 99, 43, 61, 32,114, 97,100, 91, 51, 93, 42,100,111,116, 40,118,110, 44, 32, 99, 91, 51, 93, - 41, 59, 10, 10, 9,114,101,116,117,114,110, 32,109, 97,120, 40,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111, -105,100, 32,115,104, 97,100,101, 95,105,110,112, 95, 97,114,101, 97, 40,118,101, 99, 51, 32,112,111,115,105,116,105,111,110, 44, - 32,118,101, 99, 51, 32,108, 97,109,112, 99,111, 44, 32,118,101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,118,101, 99, 51, - 32,118,110, 44, 32,109, 97,116, 52, 32, 97,114,101, 97, 44, 32,102,108,111, 97,116, 32, 97,114,101, 97,115,105,122,101, 44, 32, -102,108,111, 97,116, 32,107, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,112, 41, 10,123, 10, 9,118,101, 99, 51, 32, - 99,111, 32, 61, 32,112,111,115,105,116,105,111,110, 59, 10, 9,118,101, 99, 51, 32,118,101, 99, 32, 61, 32, 99,111, 32, 45, 32, -108, 97,109,112, 99,111, 59, 10, 10, 9,105,102, 40,100,111,116, 40,118,101, 99, 44, 32,108, 97,109,112,118,101, 99, 41, 32, 60, - 32, 48, 46, 48, 41, 32,123, 10, 9, 9,105,110,112, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, - 9, 9,102,108,111, 97,116, 32,105,110,116,101,110,115, 32, 61, 32, 97,114,101, 97, 95,108, 97,109,112, 95,101,110,101,114,103, -121, 40, 97,114,101, 97, 44, 32, 99,111, 44, 32,118,110, 41, 59, 10, 10, 9, 9,105,110,112, 32, 61, 32,112,111,119, 40,105,110, -116,101,110,115, 42, 97,114,101, 97,115,105,122,101, 44, 32,107, 41, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, - 97,100,101, 95,100,105,102,102,117,115,101, 95,111,114,101,110, 95,110, 97,121,101,114, 40,102,108,111, 97,116, 32,110,108, 44, - 32,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,114, -111,117,103,104, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32, -110,111,114,109, 97,108,105,122,101, 40,118, 32, 43, 32,108, 41, 59, 10, 9,102,108,111, 97,116, 32,110,104, 32, 61, 32,109, 97, -120, 40,100,111,116, 40,110, 44, 32,104, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, - 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,114,101, 97,108,110, -108, 32, 61, 32,100,111,116, 40,110, 44, 32,108, 41, 59, 10, 10, 9,105,102, 40,114,101, 97,108,110,108, 32, 60, 32, 48, 46, 48, - 41, 32,123, 10, 9, 9,105,115, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,105,102, 40,110,108, 32, 60, - 32, 48, 46, 48, 41, 32,123, 10, 9, 9,105,115, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, - 9,102,108,111, 97,116, 32,118,104, 32, 61, 32,109, 97,120, 40,100,111,116, 40,118, 44, 32,104, 41, 44, 32, 48, 46, 48, 41, 59, - 10, 9, 9,102,108,111, 97,116, 32, 76,105,116, 95, 65, 32, 61, 32, 97, 99,111,115, 40,114,101, 97,108,110,108, 41, 59, 10, 9, - 9,102,108,111, 97,116, 32, 86,105,101,119, 95, 65, 32, 61, 32, 97, 99,111,115, 40,110,118, 41, 59, 10, 10, 9, 9,118,101, 99, - 51, 32, 76,105,116, 95, 66, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108, 32, 45, 32,114,101, 97,108,110,108, 42,110, - 41, 59, 10, 9, 9,118,101, 99, 51, 32, 86,105,101,119, 95, 66, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 32, 45, - 32,110,118, 42,110, 41, 59, 10, 10, 9, 9,102,108,111, 97,116, 32,116, 32, 61, 32,109, 97,120, 40,100,111,116, 40, 76,105,116, - 95, 66, 44, 32, 86,105,101,119, 95, 66, 41, 44, 32, 48, 46, 48, 41, 59, 10, 10, 9, 9,102,108,111, 97,116, 32, 97, 44, 32, 98, - 59, 10, 10, 9, 9,105,102, 40, 76,105,116, 95, 65, 32, 62, 32, 86,105,101,119, 95, 65, 41, 32,123, 10, 9, 9, 9, 97, 32, 61, - 32, 76,105,116, 95, 65, 59, 10, 9, 9, 9, 98, 32, 61, 32, 86,105,101,119, 95, 65, 59, 10, 9, 9,125, 10, 9, 9,101,108,115, -101, 32,123, 10, 9, 9, 9, 97, 32, 61, 32, 86,105,101,119, 95, 65, 59, 10, 9, 9, 9, 98, 32, 61, 32, 76,105,116, 95, 65, 59, - 10, 9, 9,125, 10, 10, 9, 9,102,108,111, 97,116, 32, 65, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40, 48, 46, 53, 42, 40, 40,114, -111,117,103,104, 42,114,111,117,103,104, 41, 47, 40, 40,114,111,117,103,104, 42,114,111,117,103,104, 41, 32, 43, 32, 48, 46, 51, - 51, 41, 41, 41, 59, 10, 9, 9,102,108,111, 97,116, 32, 66, 32, 61, 32, 48, 46, 52, 53, 42, 40, 40,114,111,117,103,104, 42,114, -111,117,103,104, 41, 47, 40, 40,114,111,117,103,104, 42,114,111,117,103,104, 41, 32, 43, 32, 48, 46, 48, 57, 41, 41, 59, 10, 10, - 9, 9, 98, 32, 42, 61, 32, 48, 46, 57, 53, 59, 10, 9, 9,105,115, 32, 61, 32,110,108, 42, 40, 65, 32, 43, 32, 40, 66, 32, 42, - 32,116, 32, 42, 32,115,105,110, 40, 97, 41, 32, 42, 32,116, 97,110, 40, 98, 41, 41, 41, 59, 10, 9,125, 10,125, 10, 10,118,111, -105,100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115,101, 95,116,111,111,110, 40,118,101, 99, 51, 32,110, 44, 32,118,101, - 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32, -116,115,109,111,111,116,104, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,102,108,111, 97,116, 32, -114,115,108,116, 32, 61, 32,100,111,116, 40,110, 44, 32,108, 41, 59, 10, 9,102,108,111, 97,116, 32, 97,110,103, 32, 61, 32, 97, - 99,111,115, 40,114,115,108,116, 41, 59, 10, 10, 9,105,102, 40, 97,110,103, 32, 60, 32,115,105,122,101, 41, 32,105,115, 32, 61, - 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 97,110,103, 32, 62, 32, 40,115,105,122,101, 32, 43, 32,116,115,109, -111,111,116,104, 41, 32,124,124, 32,116,115,109,111,111,116,104, 32, 61, 61, 32, 48, 46, 48, 41, 32,105,115, 32, 61, 32, 48, 46, - 48, 59, 10, 9,101,108,115,101, 32,105,115, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40, 40, 97,110,103, 32, 45, 32,115,105,122,101, - 41, 47,116,115,109,111,111,116,104, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115, -101, 95,109,105,110,110, 97,101,114,116, 40,102,108,111, 97,116, 32,110,108, 44, 32,118,101, 99, 51, 32,110, 44, 32,118,101, 99, - 51, 32,118, 44, 32,102,108,111, 97,116, 32,100, 97,114,107,110,101,115,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105, -115, 41, 10,123, 10, 9,105,102, 40,110,108, 32, 60, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,105,115, 32, 61, 32, 48, 46, 48, - 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111, -116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 41, 59, 10, 10, 9, 9,105,102, 40,100, 97,114,107,110,101,115,115, 32, 60, 61, - 32, 49, 46, 48, 41, 10, 9, 9, 9,105,115, 32, 61, 32,110,108, 42,112,111,119, 40,109, 97,120, 40,110,118, 42,110,108, 44, 32, - 48, 46, 49, 41, 44, 32,100, 97,114,107,110,101,115,115, 32, 45, 32, 49, 46, 48, 41, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, - 9,105,115, 32, 61, 32,110,108, 42,112,111,119, 40, 49, 46, 48, 48, 48, 49, 32, 45, 32,110,118, 44, 32,100, 97,114,107,110,101, -115,115, 32, 45, 32, 49, 46, 48, 41, 59, 10, 9,125, 10,125, 10, 10,102,108,111, 97,116, 32,102,114,101,115,110,101,108, 95,102, - 97, 99, 40,118,101, 99, 51, 32,118,105,101,119, 44, 32,118,101, 99, 51, 32,118,110, 44, 32,102,108,111, 97,116, 32,103,114, 97, -100, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,116, 49, 44, 32,116, 50, 59, 10, 9, -102,108,111, 97,116, 32,102,102, 97, 99, 59, 10, 10, 9,105,102, 40,102, 97, 99, 61, 61, 48, 46, 48, 41, 32,123, 10, 9, 9,102, -102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,116, 49, 61, 32,100,111,116, 40, -118,105,101,119, 44, 32,118,110, 41, 59, 10, 9, 9,105,102, 40,116, 49, 62, 48, 46, 48, 41, 32, 32,116, 50, 61, 32, 49, 46, 48, - 43,116, 49, 59, 10, 9, 9,101,108,115,101, 32,116, 50, 61, 32, 49, 46, 48, 45,116, 49, 59, 10, 10, 9, 9,116, 50, 61, 32,103, -114, 97,100, 32, 43, 32, 40, 49, 46, 48, 45,103,114, 97,100, 41, 42,112,111,119, 40,116, 50, 44, 32,102, 97, 99, 41, 59, 10, 10, - 9, 9,105,102, 40,116, 50, 60, 48, 46, 48, 41, 32,102,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,101,108,115,101, 32, -105,102, 40,116, 50, 62, 49, 46, 48, 41, 32,102,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,102,102, - 97, 99, 32, 61, 32,116, 50, 59, 10, 9,125, 10, 10, 9,114,101,116,117,114,110, 32,102,102, 97, 99, 59, 10,125, 10, 10,118,111, -105,100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115,101, 95,102,114,101,115,110,101,108, 40,118,101, 99, 51, 32,118,110, - 44, 32,118,101, 99, 51, 32,108,118, 44, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 95, -105, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105, -115, 32, 61, 32,102,114,101,115,110,101,108, 95,102, 97, 99, 40,108,118, 44, 32,118,110, 44, 32,102, 97, 99, 95,105, 44, 32,102, - 97, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 99,117, 98,105, 99, 40,102,108,111, 97,116, 32,105, -115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,105,115, 41, 10,123, 10, 9,105,102, 40,105,115, 62, 48, 46, 48, - 32, 38, 38, 32,105,115, 60, 49, 46, 48, 41, 10, 9, 9,111,117,116,105,115, 61, 32,115,109,111,111,116,104,115,116,101,112, 40, - 48, 46, 48, 44, 32, 49, 46, 48, 44, 32,105,115, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,105,115, 61, 32,105,115, - 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,118,105,115,105,102, 97, 99, 40,102,108,111, 97,116, 32,105, 44, - 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,102,108,111, 97,116, 32,114,101,102,108, 44, 32,111,117,116, 32, -102,108,111, 97,116, 32,111,117,116,105, 41, 10,123, 10, 9, 47, 42,105,102, 40,105, 32, 62, 32, 48, 46, 48, 41, 42, 47, 10, 9, - 9,111,117,116,105, 32, 61, 32,109, 97,120, 40,105, 42,118,105,115,105,102, 97, 99, 42,114,101,102,108, 44, 32, 48, 46, 48, 41, - 59, 10, 9, 47, 42,101,108,115,101, 10, 9, 9,111,117,116,105, 32, 61, 32,105, 59, 42, 47, 10,125, 10, 10,118,111,105,100, 32, -115,104, 97,100,101, 95,116, 97,110,103,101,110,116, 95,118, 95,115,112,101, 99, 40,118,101, 99, 51, 32,116, 97,110,103, 44, 32, -111,117,116, 32,118,101, 99, 51, 32,118,110, 41, 10,123, 10, 9,118,110, 32, 61, 32,116, 97,110,103, 59, 10,125, 10, 10,118,111, -105,100, 32,115,104, 97,100,101, 95, 97,100,100, 95,116,111, 95,100,105,102,102,117,115,101, 40,102,108,111, 97,116, 32,105, 44, - 32,118,101, 99, 51, 32,108, 97,109,112, 99,111,108, 44, 32,118,101, 99, 51, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, - 51, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,105,102, 40,105, 32, 62, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111, -108, 32, 61, 32,105, 42,108, 97,109,112, 99,111,108, 42, 99,111,108, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111, -108, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, - 32,115,104, 97,100,101, 95,104,101,109,105, 95,115,112,101, 99, 40,118,101, 99, 51, 32,118,110, 44, 32,118,101, 99, 51, 32,108, -118, 44, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,102,108,111, 97,116, 32,115,112,101, 99, 44, 32,102,108,111, 97,116, 32, -104, 97,114,100, 44, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,116, - 41, 10,123, 10, 9,108,118, 32, 43, 61, 32,118,105,101,119, 59, 10, 9,108,118, 32, 61, 32,110,111,114,109, 97,108,105,122,101, - 40,108,118, 41, 59, 10, 10, 9,116, 32, 61, 32,100,111,116, 40,118,110, 44, 32,108,118, 41, 59, 10, 9,116, 32, 61, 32, 48, 46, - 53, 42,116, 32, 43, 32, 48, 46, 53, 59, 10, 10, 9,116, 32, 61, 32,118,105,115,105,102, 97, 99, 42,115,112,101, 99, 42,112,111, -119, 40,116, 44, 32,104, 97,114,100, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,112,104,111,110,103, 95, -115,112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, - 97,116, 32,104, 97,114,100, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,118, -101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108, 32, 43, 32,118, 41, 59, 10, 9,102,108,111, 97,116, - 32,114,115,108,116, 32, 61, 32,109, 97,120, 40,100,111,116, 40,104, 44, 32,110, 41, 44, 32, 48, 46, 48, 41, 59, 10, 10, 9,115, -112,101, 99,102, 97, 99, 32, 61, 32,112,111,119, 40,114,115,108,116, 44, 32,104, 97,114,100, 41, 59, 10,125, 10, 10,118,111,105, -100, 32,115,104, 97,100,101, 95, 99,111,111,107,116,111,114,114, 95,115,112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, - 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,104, 97,114,100, 44, 32,111,117,116, 32,102,108, -111, 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105, -122,101, 40,118, 32, 43, 32,108, 41, 59, 10, 9,102,108,111, 97,116, 32,110,104, 32, 61, 32,100,111,116, 40,110, 44, 32,104, 41, - 59, 10, 10, 9,105,102, 40,110,104, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, - 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40, -100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9, 9,102,108,111, 97,116, 32,105, 32, 61, 32,112,111,119, - 40,110,104, 44, 32,104, 97,114,100, 41, 59, 10, 10, 9, 9,105, 32, 61, 32,105, 47, 40, 48, 46, 49, 43,110,118, 41, 59, 10, 9, - 9,115,112,101, 99,102, 97, 99, 32, 61, 32,105, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 98, -108,105,110,110, 95,115,112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, - 44, 32,102,108,111, 97,116, 32,114,101,102,114, 97, 99, 44, 32,102,108,111, 97,116, 32,115,112,101, 99, 95,112,111,119,101,114, - 44, 32,111,117,116, 32,102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,105,102, 40,114,101,102,114, 97, - 99, 32, 60, 32, 49, 46, 48, 41, 32,123, 10, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9, -101,108,115,101, 32,105,102, 40,115,112,101, 99, 95,112,111,119,101,114, 32, 61, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,115, -112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,105,102, 40,115,112, -101, 99, 95,112,111,119,101,114, 60, 49, 48, 48, 46, 48, 41, 10, 9, 9, 9,115,112,101, 99, 95,112,111,119,101,114, 61, 32,115, -113,114,116, 40, 49, 46, 48, 47,115,112,101, 99, 95,112,111,119,101,114, 41, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,115, -112,101, 99, 95,112,111,119,101,114, 61, 32, 49, 48, 46, 48, 47,115,112,101, 99, 95,112,111,119,101,114, 59, 10, 10, 9, 9,118, -101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 32, 43, 32,108, 41, 59, 10, 9, 9,102,108,111, 97, -116, 32,110,104, 32, 61, 32,100,111,116, 40,110, 44, 32,104, 41, 59, 10, 9, 9,105,102, 40,110,104, 32, 60, 32, 48, 46, 48, 41, - 32,123, 10, 9, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,125, 10, 9, 9,101,108,115,101, 32, -123, 10, 9, 9, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, - 46, 48, 49, 41, 59, 10, 9, 9, 9,102,108,111, 97,116, 32,110,108, 32, 61, 32,100,111,116, 40,110, 44, 32,108, 41, 59, 10, 9, - 9, 9,105,102, 40,110,108, 32, 60, 61, 32, 48, 46, 48, 49, 41, 32,123, 10, 9, 9, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, - 32, 48, 46, 48, 59, 10, 9, 9, 9,125, 10, 9, 9, 9,101,108,115,101, 32,123, 10, 9, 9, 9, 9,102,108,111, 97,116, 32,118, -104, 32, 61, 32,109, 97,120, 40,100,111,116, 40,118, 44, 32,104, 41, 44, 32, 48, 46, 48, 49, 41, 59, 10, 10, 9, 9, 9, 9,102, -108,111, 97,116, 32, 97, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9, 9, 9,102,108,111, 97,116, 32, 98, 32, 61, 32, 40, 50, 46, 48, - 42,110,104, 42,110,118, 41, 47,118,104, 59, 10, 9, 9, 9, 9,102,108,111, 97,116, 32, 99, 32, 61, 32, 40, 50, 46, 48, 42,110, -104, 42,110,108, 41, 47,118,104, 59, 10, 10, 9, 9, 9, 9,102,108,111, 97,116, 32,103, 59, 10, 10, 9, 9, 9, 9,105,102, 40, +105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116, 42, 97, 98,115, 40,116, +101,120, 99,111,108, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97, +108,117,101, 95,100, 97,114,107, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, + 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,102,108,111, + 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, + 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32, +102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108,105,112, 41, 59, 10, 10, 9,102,108,111, 97,116, 32, 99,111,108, 32, 61, + 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 41, 32, +105,110, 99,111,108, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 32, 61, 32,111,117,116, 99,111,108, + 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,108,105,103,104,116, 40,102,108,111, 97,116, + 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99, +116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,102,108,111, 97,116, 32,102,108,105,112, 44, 32,111,117,116, 32,102, +108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, + 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 44, 32,102,108, +105,112, 41, 59, 10, 10, 9,102,108,111, 97,116, 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 59, 10, + 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32, 99,111,108, 59, 32,101, +108,115,101, 32,105,110, 99,111,108, 32, 61, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, + 95,118, 97,108,117,101, 95, 99,108, 97,109,112, 95,112,111,115,105,116,105,118,101, 40,102,108,111, 97,116, 32,102, 97, 99, 44, + 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,111,117,116,102, 97, 99, 32, 61, 32,109, + 97,120, 40,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, + 95, 99,108, 97,109,112, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,102, + 97, 99, 41, 10,123, 10, 9,111,117,116,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, + 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,104, 97,114, 95,100,105,118,105,100,101, 40,102,108, +111, 97,116, 32,104, 97,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,104, 97,114, 41, 10,123, 10, 9,111,117, +116,104, 97,114, 32, 61, 32,104, 97,114, 47, 49, 50, 56, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,104, + 97,114, 95,109,117,108,116,105,112,108,121, 95, 99,108, 97,109,112, 40,102,108,111, 97,116, 32,104, 97,114, 44, 32,111,117,116, + 32,102,108,111, 97,116, 32,111,117,116,104, 97,114, 41, 10,123, 10, 9,104, 97,114, 32, 42, 61, 32, 49, 50, 56, 46, 48, 59, 10, + 10, 9,105,102, 40,104, 97,114, 32, 60, 32, 49, 46, 48, 41, 32,111,117,116,104, 97,114, 32, 61, 32, 49, 46, 48, 59, 10, 9,101, +108,115,101, 32,105,102, 40,104, 97,114, 32, 62, 32, 53, 49, 49, 46, 48, 41, 32,111,117,116,104, 97,114, 32, 61, 32, 53, 49, 49, + 46, 48, 59, 10, 9,101,108,115,101, 32,111,117,116,104, 97,114, 32, 61, 32,104, 97,114, 59, 10,125, 10, 10,118,111,105,100, 32, +109,116,101,120, 95, 97,108,112,104, 97, 95,102,114,111,109, 95, 99,111,108, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117, +116, 32,102,108,111, 97,116, 32, 97,108,112,104, 97, 41, 10,123, 10, 9, 97,108,112,104, 97, 32, 61, 32, 99,111,108, 46, 97, 59, + 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 97,108,112,104, 97, 95,116,111, 95, 99,111,108, 40,118,101, 99, 52, 32, + 99,111,108, 44, 32,102,108,111, 97,116, 32, 97,108,112,104, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111, +108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, 98, 44, 32, 97,108,112, +104, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98,116,111,105,110,116, 40,118,101, 99, 52, 32, +114,103, 98, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,116,101,110,115,105,116,121, 41, 10,123, 10, 9,105,110,116, +101,110,115,105,116,121, 32, 61, 32,100,111,116, 40,118,101, 99, 51, 40, 48, 46, 51, 53, 44, 32, 48, 46, 52, 53, 44, 32, 48, 46, + 50, 41, 44, 32,114,103, 98, 46,114,103, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, + 95,105,110,118,101,114,116, 40,102,108,111, 97,116, 32,105,110,118, 97,108,117,101, 44, 32,111,117,116, 32,102,108,111, 97,116, + 32,111,117,116,118, 97,108,117,101, 41, 10,123, 10, 9,111,117,116,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 32, 45, 32,105, +110,118, 97,108,117,101, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,105,110,118,101,114,116, 40, +118,101, 99, 52, 32,105,110,114,103, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9, +111,117,116,114,103, 98, 32, 61, 32,118,101, 99, 52, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,105,110,114,103, 98, 46, +114,103, 98, 44, 32,105,110,114,103, 98, 46, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117, +101, 95,115,116,101,110, 99,105,108, 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,102,108,111, 97,116, 32,105, +110,116,101,110,115,105,116,121, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,116,101,110, 99,105,108, 44, 32, +111,117,116, 32,102,108,111, 97,116, 32,111,117,116,105,110,116,101,110,115,105,116,121, 41, 10,123, 10, 9,102,108,111, 97,116, + 32,102, 97, 99,116, 32, 61, 32,105,110,116,101,110,115,105,116,121, 59, 10, 9,111,117,116,105,110,116,101,110,115,105,116,121, + 32, 61, 32,105,110,116,101,110,115,105,116,121, 42,115,116,101,110, 99,105,108, 59, 10, 9,111,117,116,115,116,101,110, 99,105, +108, 32, 61, 32,115,116,101,110, 99,105,108, 42,102, 97, 99,116, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114, +103, 98, 95,115,116,101,110, 99,105,108, 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,118,101, 99, 52, 32,114, +103, 98, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,116,101,110, 99,105,108, 44, 32,111,117,116, 32,118,101, + 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,116, 32, 61, 32,114,103, 98, 46, 97, + 59, 10, 9,111,117,116,114,103, 98, 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 46,114,103, 98, 44, 32,114,103, 98, 46, 97, 42, +115,116,101,110, 99,105,108, 41, 59, 10, 9,111,117,116,115,116,101,110, 99,105,108, 32, 61, 32,115,116,101,110, 99,105,108, 42, +102, 97, 99,116, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, 95,111,102,115, 40,118, +101, 99, 51, 32,116,101,120, 99,111, 44, 32,118,101, 99, 51, 32,111,102,115, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117, +116,116,101,120, 99,111, 41, 10,123, 10, 9,111,117,116,116,101,120, 99,111, 32, 61, 32,116,101,120, 99,111, 32, 43, 32,111,102, +115, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, 95,115,105,122,101, 40,118,101, 99, + 51, 32,116,101,120, 99,111, 44, 32,118,101, 99, 51, 32,115,105,122,101, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116, +116,101,120, 99,111, 41, 10,123, 10, 9,111,117,116,116,101,120, 99,111, 32, 61, 32,115,105,122,101, 42,116,101,120, 99,111, 59, + 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 40,118,101, 99, 51, 32,118,101, + 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32, +118,101, 99, 51, 40,118,101, 99, 46,120,121, 42, 48, 46, 53, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53, 44, 32, 48, 46, 53, 41, + 44, 32,118,101, 99, 46,122, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,105,109, 97,103,101, 40,118,101, 99, + 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, +118, 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32, +110,111,114,109, 97,108, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, + 44, 32,118,101, 99, 46,120,121, 41, 59, 10, 9,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 59, 10, 9, 10, 9,110,111,114,109, + 97,108, 32, 61, 32, 50, 46, 48, 42, 40,118,101, 99, 51, 40, 99,111,108,111,114, 46,114, 44, 32, 45, 99,111,108,111,114, 46,103, + 44, 32, 99,111,108,111,114, 46, 98, 41, 32, 45, 32,118,101, 99, 51, 40, 48, 46, 53, 44, 32, 45, 48, 46, 53, 44, 32, 48, 46, 53, + 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,110,101,103, 97,116,101, 95,116,101,120,110,111,114,109, 97, +108, 40,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97, +108, 41, 10,123, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32,118,101, 99, 51, 40, 45,110,111,114,109, 97,108, 46,120, + 44, 32, 45,110,111,114,109, 97,108, 46,121, 44, 32,110,111,114,109, 97,108, 46,122, 41, 59, 10,125, 10, 10,118,111,105,100, 32, +109,116,101,120, 95,110,115,112, 97, 99,101, 95,116, 97,110,103,101,110,116, 40,118,101, 99, 51, 32,116, 97,110,103,101,110,116, + 44, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,118,101, 99, 51, 32,116,101,120,110,111,114,109, 97,108, 44, 32,111, +117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9,116, 97,110,103,101,110,116, 32, 61, 32, +110,111,114,109, 97,108,105,122,101, 40,116, 97,110,103,101,110,116, 41, 59, 10, 9,118,101, 99, 51, 32, 66, 32, 61, 32, 99,114, +111,115,115, 40,110,111,114,109, 97,108, 44, 32,116, 97,110,103,101,110,116, 41, 59, 10, 10, 9,111,117,116,110,111,114,109, 97, +108, 32, 61, 32,116,101,120,110,111,114,109, 97,108, 46,120, 42,116, 97,110,103,101,110,116, 32, 43, 32,116,101,120,110,111,114, +109, 97,108, 46,121, 42, 66, 32, 43, 32,116,101,120,110,111,114,109, 97,108, 46,122, 42,110,111,114,109, 97,108, 59, 10, 9,111, +117,116,110,111,114,109, 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,117,116,110,111,114,109, 97,108, 41, 59, + 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,108,101,110,100, 95,110,111,114,109, 97,108, 40,102,108,111, 97,116, + 32,110,111,114,102, 97, 99, 44, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,118,101, 99, 51, 32,110,101,119,110,111, +114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9,111,117,116, +110,111,114,109, 97,108, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32,110,111,114,102, 97, 99, 41, 42,110,111,114,109, 97,108, 32, 43, + 32,110,111,114,102, 97, 99, 42,110,101,119,110,111,114,109, 97,108, 59, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32, +110,111,114,109, 97,108,105,122,101, 40,111,117,116,110,111,114,109, 97,108, 41, 59, 10,125, 10, 10, 47, 42, 42, 42, 42, 42, 42, + 42, 32, 77, 65, 84, 69, 82, 73, 65, 76, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,118,111,105,100, 32,108, 97,109,112, + 95,118,105,115,105, 98,105,108,105,116,121, 95,115,117,110, 95,104,101,109,105, 40,118,101, 99, 51, 32,108, 97,109,112,118,101, + 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32, +111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,108,118, 32, 61, 32,108, 97,109,112,118, +101, 99, 59, 10, 9,100,105,115,116, 32, 61, 32, 49, 46, 48, 59, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, + 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,111,116,104,101,114, 40,118, +101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,108, 97,109,112, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,108,118, + 44, 32,111,117,116, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105, +102, 97, 99, 41, 10,123, 10, 9,108,118, 32, 61, 32, 99,111, 32, 45, 32,108, 97,109,112, 99,111, 59, 10, 9,100,105,115,116, 32, + 61, 32,108,101,110,103,116,104, 40,108,118, 41, 59, 10, 9,108,118, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108,118, + 41, 59, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95, +102, 97,108,108,111,102,102, 95,105,110,118,108,105,110,101, 97,114, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116, + 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, + 10,123, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32,108, 97,109,112,100,105,115,116, 47, 40,108, 97,109,112,100,105,115,116, + 32, 43, 32,100,105,115,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,102, 97,108,108,111,102,102, 95,105, +110,118,115,113,117, 97,114,101, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,102,108,111, 97,116, 32,100, +105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,118,105,115,105,102, + 97, 99, 32, 61, 32,108, 97,109,112,100,105,115,116, 47, 40,108, 97,109,112,100,105,115,116, 32, 43, 32,100,105,115,116, 42,100, +105,115,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,102, 97,108,108,111,102,102, 95,115,108,105,100,101, +114,115, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,102,108,111, 97,116, 32,108,100, 49, 44, 32,102,108, +111, 97,116, 32,108,100, 50, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118, +105,115,105,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116,107,119, 32, 61, 32,108, 97, +109,112,100,105,115,116, 42,108, 97,109,112,100,105,115,116, 59, 10, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32,108, 97,109, +112,100,105,115,116, 47, 40,108, 97,109,112,100,105,115,116, 32, 43, 32,108,100, 49, 42,100,105,115,116, 41, 59, 10, 9,118,105, +115,105,102, 97, 99, 32, 42, 61, 32,108, 97,109,112,100,105,115,116,107,119, 47, 40,108, 97,109,112,100,105,115,116,107,119, 32, + 43, 32,108,100, 50, 42,100,105,115,116, 42,100,105,115,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,102, + 97,108,108,111,102,102, 95, 99,117,114,118,101, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,115, 97,109, +112,108,101,114, 49, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, + 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32,116,101,120, +116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,100,105,115,116, 47,108, 97,109,112,100,105,115,116, 41, 46, +120, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,115,112,104,101,114, +101, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,102,108, +111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118,105,115,105,102, 97, + 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,116, 61, 32,108, 97,109,112,100,105,115,116, 32, 45, 32,100,105,115,116, 59, 10, + 10, 9,111,117,116,118,105,115,105,102, 97, 99, 61, 32,118,105,115,105,102, 97, 99, 42,109, 97,120, 40,116, 44, 32, 48, 46, 48, + 41, 47,108, 97,109,112,100,105,115,116, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108, +105,116,121, 95,115,112,111,116, 95,115,113,117, 97,114,101, 40,118,101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,109, 97, +116, 52, 32,108, 97,109,112,105,109, 97,116, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, +105,110,112,114, 41, 10,123, 10, 9,105,102, 40,100,111,116, 40,108,118, 44, 32,108, 97,109,112,118,101, 99, 41, 32, 62, 32, 48, + 46, 48, 41, 32,123, 10, 9, 9,118,101, 99, 51, 32,108,118,114,111,116, 32, 61, 32, 40,108, 97,109,112,105,109, 97,116, 42,118, +101, 99, 52, 40,108,118, 44, 32, 48, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9, 9,102,108,111, 97,116, 32,120, 32, 61, 32,109, + 97,120, 40, 97, 98,115, 40,108,118,114,111,116, 46,120, 47,108,118,114,111,116, 46,122, 41, 44, 32, 97, 98,115, 40,108,118,114, +111,116, 46,121, 47,108,118,114,111,116, 46,122, 41, 41, 59, 10, 10, 9, 9,105,110,112,114, 32, 61, 32, 49, 46, 48, 47,115,113, +114,116, 40, 49, 46, 48, 32, 43, 32,120, 42,120, 41, 59, 10, 9,125, 10, 9,101,108,115,101, 10, 9, 9,105,110,112,114, 32, 61, + 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,115,112, +111,116, 95, 99,105,114, 99,108,101, 40,118,101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,118,101, 99, 51, 32,108,118, 44, + 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,112,114, 41, 10,123, 10, 9,105,110,112,114, 32, 61, 32,100,111,116, 40,108, +118, 44, 32,108, 97,109,112,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105, +108,105,116,121, 95,115,112,111,116, 40,102,108,111, 97,116, 32,115,112,111,116,115,105, 44, 32,102,108,111, 97,116, 32,115,112, +111,116, 98,108, 44, 32,102,108,111, 97,116, 32,105,110,112,114, 44, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, + 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32, +116, 32, 61, 32,115,112,111,116,115,105, 59, 10, 10, 9,105,102, 40,105,110,112,114, 32, 60, 61, 32,116, 41, 32,123, 10, 9, 9, +111,117,116,118,105,115,105,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,116, + 32, 61, 32,105,110,112,114, 32, 45, 32,116, 59, 10, 10, 9, 9, 47, 42, 32,115,111,102,116, 32, 97,114,101, 97, 32, 42, 47, 10, + 9, 9,105,102, 40,115,112,111,116, 98,108, 32, 33, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,105,110,112,114, 32, 42, 61, 32,115, +109,111,111,116,104,115,116,101,112, 40, 48, 46, 48, 44, 32, 49, 46, 48, 44, 32,116, 47,115,112,111,116, 98,108, 41, 59, 10, 10, + 9, 9,111,117,116,118,105,115,105,102, 97, 99, 32, 61, 32,118,105,115,105,102, 97, 99, 42,105,110,112,114, 59, 10, 9,125, 10, +125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95, 99,108, 97,109,112, 40,102,108, +111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118,105,115,105,102, 97, + 99, 41, 10,123, 10, 9,111,117,116,118,105,115,105,102, 97, 99, 32, 61, 32, 40,118,105,115,105,102, 97, 99, 32, 60, 32, 48, 46, + 48, 48, 49, 41, 63, 32, 48, 46, 48, 58, 32,118,105,115,105,102, 97, 99, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100, +101, 95,118,105,101,119, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,105,101,119, 41, 10,123, + 10, 9, 47, 42, 32,104, 97,110,100,108,101, 32,112,101,114,115,112,101, 99,116,105,118,101, 47,111,114,116,104,111,103,114, 97, +112,104,105, 99, 32, 42, 47, 10, 9,118,105,101,119, 32, 61, 32, 40,103,108, 95, 80,114,111,106,101, 99,116,105,111,110, 77, 97, +116,114,105,120, 91, 51, 93, 91, 51, 93, 32, 61, 61, 32, 48, 46, 48, 41, 63, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, + 41, 58, 32,118,101, 99, 51, 40, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 45, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, + 32,115,104, 97,100,101, 95,116, 97,110,103,101,110,116, 95,118, 40,118,101, 99, 51, 32,108,118, 44, 32,118,101, 99, 51, 32,116, + 97,110,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,110, 41, 10,123, 10, 9,118,101, 99, 51, 32, 99, 32, 61, 32, 99,114, +111,115,115, 40,108,118, 44, 32,116, 97,110,103, 41, 59, 10, 9,118,101, 99, 51, 32,118,110,111,114, 32, 61, 32, 99,114,111,115, +115, 40, 99, 44, 32,116, 97,110,103, 41, 59, 10, 10, 9,118,110, 32, 61, 32, 45,110,111,114,109, 97,108,105,122,101, 40,118,110, +111,114, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,105,110,112, 40,118,101, 99, 51, 32,118,110, 44, 32, +118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,112, 41, 10,123, 10, 9,105,110,112, 32, 61, + 32,100,111,116, 40,118,110, 44, 32,108,118, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,105,115, 95,110, +111, 95,100,105,102,102,117,115,101, 40,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105,115, 32, 61, 32, + 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,105,115, 95,104,101,109,105, 40,102,108,111, 97,116, + 32,105,110,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105,115, 32, 61, 32, 48, 46, 53, 42, +105,110,112, 32, 43, 32, 48, 46, 53, 59, 10,125, 10, 10,102,108,111, 97,116, 32, 97,114,101, 97, 95,108, 97,109,112, 95,101,110, +101,114,103,121, 40,109, 97,116, 52, 32, 97,114,101, 97, 44, 32,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,118,110, + 41, 10,123, 10, 9,118,101, 99, 51, 32,118,101, 99, 91, 52, 93, 44, 32, 99, 91, 52, 93, 59, 10, 9,102,108,111, 97,116, 32,114, + 97,100, 91, 52, 93, 44, 32,102, 97, 99, 59, 10, 9, 10, 9,118,101, 99, 91, 48, 93, 32, 61, 32,110,111,114,109, 97,108,105,122, +101, 40, 99,111, 32, 45, 32, 97,114,101, 97, 91, 48, 93, 46,120,121,122, 41, 59, 10, 9,118,101, 99, 91, 49, 93, 32, 61, 32,110, +111,114,109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,101, 97, 91, 49, 93, 46,120,121,122, 41, 59, 10, 9,118,101, 99, + 91, 50, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,101, 97, 91, 50, 93, 46,120,121,122, + 41, 59, 10, 9,118,101, 99, 91, 51, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,101, 97, + 91, 51, 93, 46,120,121,122, 41, 59, 10, 10, 9, 99, 91, 48, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,114,111, +115,115, 40,118,101, 99, 91, 48, 93, 44, 32,118,101, 99, 91, 49, 93, 41, 41, 59, 10, 9, 99, 91, 49, 93, 32, 61, 32,110,111,114, +109, 97,108,105,122,101, 40, 99,114,111,115,115, 40,118,101, 99, 91, 49, 93, 44, 32,118,101, 99, 91, 50, 93, 41, 41, 59, 10, 9, + 99, 91, 50, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,114,111,115,115, 40,118,101, 99, 91, 50, 93, 44, 32,118, +101, 99, 91, 51, 93, 41, 41, 59, 10, 9, 99, 91, 51, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,114,111,115,115, + 40,118,101, 99, 91, 51, 93, 44, 32,118,101, 99, 91, 48, 93, 41, 41, 59, 10, 10, 9,114, 97,100, 91, 48, 93, 32, 61, 32, 97, 99, +111,115, 40,100,111,116, 40,118,101, 99, 91, 48, 93, 44, 32,118,101, 99, 91, 49, 93, 41, 41, 59, 10, 9,114, 97,100, 91, 49, 93, + 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 49, 93, 44, 32,118,101, 99, 91, 50, 93, 41, 41, 59, 10, 9,114, + 97,100, 91, 50, 93, 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 50, 93, 44, 32,118,101, 99, 91, 51, 93, 41, + 41, 59, 10, 9,114, 97,100, 91, 51, 93, 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 51, 93, 44, 32,118,101, + 99, 91, 48, 93, 41, 41, 59, 10, 10, 9,102, 97, 99, 61, 32, 32,114, 97,100, 91, 48, 93, 42,100,111,116, 40,118,110, 44, 32, 99, + 91, 48, 93, 41, 59, 10, 9,102, 97, 99, 43, 61, 32,114, 97,100, 91, 49, 93, 42,100,111,116, 40,118,110, 44, 32, 99, 91, 49, 93, + 41, 59, 10, 9,102, 97, 99, 43, 61, 32,114, 97,100, 91, 50, 93, 42,100,111,116, 40,118,110, 44, 32, 99, 91, 50, 93, 41, 59, 10, + 9,102, 97, 99, 43, 61, 32,114, 97,100, 91, 51, 93, 42,100,111,116, 40,118,110, 44, 32, 99, 91, 51, 93, 41, 59, 10, 10, 9,114, +101,116,117,114,110, 32,109, 97,120, 40,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97, +100,101, 95,105,110,112, 95, 97,114,101, 97, 40,118,101, 99, 51, 32,112,111,115,105,116,105,111,110, 44, 32,118,101, 99, 51, 32, +108, 97,109,112, 99,111, 44, 32,118,101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,118,101, 99, 51, 32,118,110, 44, 32,109, + 97,116, 52, 32, 97,114,101, 97, 44, 32,102,108,111, 97,116, 32, 97,114,101, 97,115,105,122,101, 44, 32,102,108,111, 97,116, 32, +107, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,112, 41, 10,123, 10, 9,118,101, 99, 51, 32, 99,111, 32, 61, 32,112, +111,115,105,116,105,111,110, 59, 10, 9,118,101, 99, 51, 32,118,101, 99, 32, 61, 32, 99,111, 32, 45, 32,108, 97,109,112, 99,111, + 59, 10, 10, 9,105,102, 40,100,111,116, 40,118,101, 99, 44, 32,108, 97,109,112,118,101, 99, 41, 32, 60, 32, 48, 46, 48, 41, 32, +123, 10, 9, 9,105,110,112, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,102,108,111, 97, +116, 32,105,110,116,101,110,115, 32, 61, 32, 97,114,101, 97, 95,108, 97,109,112, 95,101,110,101,114,103,121, 40, 97,114,101, 97, + 44, 32, 99,111, 44, 32,118,110, 41, 59, 10, 10, 9, 9,105,110,112, 32, 61, 32,112,111,119, 40,105,110,116,101,110,115, 42, 97, +114,101, 97,115,105,122,101, 44, 32,107, 41, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,100,105, +102,102,117,115,101, 95,111,114,101,110, 95,110, 97,121,101,114, 40,102,108,111, 97,116, 32,110,108, 44, 32,118,101, 99, 51, 32, +110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,114,111,117,103,104, 44, 32, +111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108, +105,122,101, 40,118, 32, 43, 32,108, 41, 59, 10, 9,102,108,111, 97,116, 32,110,104, 32, 61, 32,109, 97,120, 40,100,111,116, 40, +110, 44, 32,104, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, + 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,114,101, 97,108,110,108, 32, 61, 32,100,111, +116, 40,110, 44, 32,108, 41, 59, 10, 10, 9,105,102, 40,114,101, 97,108,110,108, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9, +105,115, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,105,102, 40,110,108, 32, 60, 32, 48, 46, 48, 41, 32, +123, 10, 9, 9,105,115, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,102,108,111, 97,116, + 32,118,104, 32, 61, 32,109, 97,120, 40,100,111,116, 40,118, 44, 32,104, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9, 9,102,108,111, + 97,116, 32, 76,105,116, 95, 65, 32, 61, 32, 97, 99,111,115, 40,114,101, 97,108,110,108, 41, 59, 10, 9, 9,102,108,111, 97,116, + 32, 86,105,101,119, 95, 65, 32, 61, 32, 97, 99,111,115, 40,110,118, 41, 59, 10, 10, 9, 9,118,101, 99, 51, 32, 76,105,116, 95, + 66, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108, 32, 45, 32,114,101, 97,108,110,108, 42,110, 41, 59, 10, 9, 9,118, +101, 99, 51, 32, 86,105,101,119, 95, 66, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 32, 45, 32,110,118, 42,110, 41, + 59, 10, 10, 9, 9,102,108,111, 97,116, 32,116, 32, 61, 32,109, 97,120, 40,100,111,116, 40, 76,105,116, 95, 66, 44, 32, 86,105, +101,119, 95, 66, 41, 44, 32, 48, 46, 48, 41, 59, 10, 10, 9, 9,102,108,111, 97,116, 32, 97, 44, 32, 98, 59, 10, 10, 9, 9,105, +102, 40, 76,105,116, 95, 65, 32, 62, 32, 86,105,101,119, 95, 65, 41, 32,123, 10, 9, 9, 9, 97, 32, 61, 32, 76,105,116, 95, 65, + 59, 10, 9, 9, 9, 98, 32, 61, 32, 86,105,101,119, 95, 65, 59, 10, 9, 9,125, 10, 9, 9,101,108,115,101, 32,123, 10, 9, 9, + 9, 97, 32, 61, 32, 86,105,101,119, 95, 65, 59, 10, 9, 9, 9, 98, 32, 61, 32, 76,105,116, 95, 65, 59, 10, 9, 9,125, 10, 10, + 9, 9,102,108,111, 97,116, 32, 65, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40, 48, 46, 53, 42, 40, 40,114,111,117,103,104, 42,114, +111,117,103,104, 41, 47, 40, 40,114,111,117,103,104, 42,114,111,117,103,104, 41, 32, 43, 32, 48, 46, 51, 51, 41, 41, 41, 59, 10, + 9, 9,102,108,111, 97,116, 32, 66, 32, 61, 32, 48, 46, 52, 53, 42, 40, 40,114,111,117,103,104, 42,114,111,117,103,104, 41, 47, + 40, 40,114,111,117,103,104, 42,114,111,117,103,104, 41, 32, 43, 32, 48, 46, 48, 57, 41, 41, 59, 10, 10, 9, 9, 98, 32, 42, 61, + 32, 48, 46, 57, 53, 59, 10, 9, 9,105,115, 32, 61, 32,110,108, 42, 40, 65, 32, 43, 32, 40, 66, 32, 42, 32,116, 32, 42, 32,115, +105,110, 40, 97, 41, 32, 42, 32,116, 97,110, 40, 98, 41, 41, 41, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97, +100,101, 95,100,105,102,102,117,115,101, 95,116,111,111,110, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32, +118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,115,109,111,111,116, +104, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,102,108,111, 97,116, 32,114,115,108,116, 32, 61, + 32,100,111,116, 40,110, 44, 32,108, 41, 59, 10, 9,102,108,111, 97,116, 32, 97,110,103, 32, 61, 32, 97, 99,111,115, 40,114,115, +108,116, 41, 59, 10, 10, 9,105,102, 40, 97,110,103, 32, 60, 32,115,105,122,101, 41, 32,105,115, 32, 61, 32, 49, 46, 48, 59, 10, + 9,101,108,115,101, 32,105,102, 40, 97,110,103, 32, 62, 32, 40,115,105,122,101, 32, 43, 32,116,115,109,111,111,116,104, 41, 32, +124,124, 32,116,115,109,111,111,116,104, 32, 61, 61, 32, 48, 46, 48, 41, 32,105,115, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108, +115,101, 32,105,115, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40, 40, 97,110,103, 32, 45, 32,115,105,122,101, 41, 47,116,115,109,111, +111,116,104, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115,101, 95,109,105,110,110, + 97,101,114,116, 40,102,108,111, 97,116, 32,110,108, 44, 32,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,118, 44, 32,102, +108,111, 97,116, 32,100, 97,114,107,110,101,115,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9, +105,102, 40,110,108, 32, 60, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,105,115, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9, +101,108,115,101, 32,123, 10, 9, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, + 41, 44, 32, 48, 46, 48, 41, 59, 10, 10, 9, 9,105,102, 40,100, 97,114,107,110,101,115,115, 32, 60, 61, 32, 49, 46, 48, 41, 10, + 9, 9, 9,105,115, 32, 61, 32,110,108, 42,112,111,119, 40,109, 97,120, 40,110,118, 42,110,108, 44, 32, 48, 46, 49, 41, 44, 32, +100, 97,114,107,110,101,115,115, 32, 45, 32, 49, 46, 48, 41, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,105,115, 32, 61, 32, +110,108, 42,112,111,119, 40, 49, 46, 48, 48, 48, 49, 32, 45, 32,110,118, 44, 32,100, 97,114,107,110,101,115,115, 32, 45, 32, 49, + 46, 48, 41, 59, 10, 9,125, 10,125, 10, 10,102,108,111, 97,116, 32,102,114,101,115,110,101,108, 95,102, 97, 99, 40,118,101, 99, + 51, 32,118,105,101,119, 44, 32,118,101, 99, 51, 32,118,110, 44, 32,102,108,111, 97,116, 32,103,114, 97,100, 44, 32,102,108,111, + 97,116, 32,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,116, 49, 44, 32,116, 50, 59, 10, 9,102,108,111, 97,116, 32, +102,102, 97, 99, 59, 10, 10, 9,105,102, 40,102, 97, 99, 61, 61, 48, 46, 48, 41, 32,123, 10, 9, 9,102,102, 97, 99, 32, 61, 32, + 49, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,116, 49, 61, 32,100,111,116, 40,118,105,101,119, 44, 32, +118,110, 41, 59, 10, 9, 9,105,102, 40,116, 49, 62, 48, 46, 48, 41, 32, 32,116, 50, 61, 32, 49, 46, 48, 43,116, 49, 59, 10, 9, + 9,101,108,115,101, 32,116, 50, 61, 32, 49, 46, 48, 45,116, 49, 59, 10, 10, 9, 9,116, 50, 61, 32,103,114, 97,100, 32, 43, 32, + 40, 49, 46, 48, 45,103,114, 97,100, 41, 42,112,111,119, 40,116, 50, 44, 32,102, 97, 99, 41, 59, 10, 10, 9, 9,105,102, 40,116, + 50, 60, 48, 46, 48, 41, 32,102,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40,116, 50, 62, + 49, 46, 48, 41, 32,102,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,102,102, 97, 99, 32, 61, 32,116, + 50, 59, 10, 9,125, 10, 10, 9,114,101,116,117,114,110, 32,102,102, 97, 99, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97, +100,101, 95,100,105,102,102,117,115,101, 95,102,114,101,115,110,101,108, 40,118,101, 99, 51, 32,118,110, 44, 32,118,101, 99, 51, + 32,108,118, 44, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 95,105, 44, 32,102,108,111, + 97,116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105,115, 32, 61, 32,102,114, +101,115,110,101,108, 95,102, 97, 99, 40,108,118, 44, 32,118,110, 44, 32,102, 97, 99, 95,105, 44, 32,102, 97, 99, 41, 59, 10,125, + 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 99,117, 98,105, 99, 40,102,108,111, 97,116, 32,105,115, 44, 32,111,117,116, + 32,102,108,111, 97,116, 32,111,117,116,105,115, 41, 10,123, 10, 9,105,102, 40,105,115, 62, 48, 46, 48, 32, 38, 38, 32,105,115, + 60, 49, 46, 48, 41, 10, 9, 9,111,117,116,105,115, 61, 32,115,109,111,111,116,104,115,116,101,112, 40, 48, 46, 48, 44, 32, 49, + 46, 48, 44, 32,105,115, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,105,115, 61, 32,105,115, 59, 10,125, 10, 10,118, +111,105,100, 32,115,104, 97,100,101, 95,118,105,115,105,102, 97, 99, 40,102,108,111, 97,116, 32,105, 44, 32,102,108,111, 97,116, + 32,118,105,115,105,102, 97, 99, 44, 32,102,108,111, 97,116, 32,114,101,102,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, +111,117,116,105, 41, 10,123, 10, 9, 47, 42,105,102, 40,105, 32, 62, 32, 48, 46, 48, 41, 42, 47, 10, 9, 9,111,117,116,105, 32, + 61, 32,109, 97,120, 40,105, 42,118,105,115,105,102, 97, 99, 42,114,101,102,108, 44, 32, 48, 46, 48, 41, 59, 10, 9, 47, 42,101, +108,115,101, 10, 9, 9,111,117,116,105, 32, 61, 32,105, 59, 42, 47, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, +116, 97,110,103,101,110,116, 95,118, 95,115,112,101, 99, 40,118,101, 99, 51, 32,116, 97,110,103, 44, 32,111,117,116, 32,118,101, + 99, 51, 32,118,110, 41, 10,123, 10, 9,118,110, 32, 61, 32,116, 97,110,103, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97, +100,101, 95, 97,100,100, 95,116,111, 95,100,105,102,102,117,115,101, 40,102,108,111, 97,116, 32,105, 44, 32,118,101, 99, 51, 32, +108, 97,109,112, 99,111,108, 44, 32,118,101, 99, 51, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116, 99, +111,108, 41, 10,123, 10, 9,105,102, 40,105, 32, 62, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,105, 42, +108, 97,109,112, 99,111,108, 42, 99,111,108, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, + 99, 51, 40, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, + 95,104,101,109,105, 95,115,112,101, 99, 40,118,101, 99, 51, 32,118,110, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,118,101, 99, + 51, 32,118,105,101,119, 44, 32,102,108,111, 97,116, 32,115,112,101, 99, 44, 32,102,108,111, 97,116, 32,104, 97,114,100, 44, 32, +102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,116, 41, 10,123, 10, 9,108, +118, 32, 43, 61, 32,118,105,101,119, 59, 10, 9,108,118, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108,118, 41, 59, 10, + 10, 9,116, 32, 61, 32,100,111,116, 40,118,110, 44, 32,108,118, 41, 59, 10, 9,116, 32, 61, 32, 48, 46, 53, 42,116, 32, 43, 32, + 48, 46, 53, 59, 10, 10, 9,116, 32, 61, 32,118,105,115,105,102, 97, 99, 42,115,112,101, 99, 42,112,111,119, 40,116, 44, 32,104, + 97,114,100, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,112,104,111,110,103, 95,115,112,101, 99, 40,118, +101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,104, 97,114, +100, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, + 61, 32,110,111,114,109, 97,108,105,122,101, 40,108, 32, 43, 32,118, 41, 59, 10, 9,102,108,111, 97,116, 32,114,115,108,116, 32, + 61, 32,109, 97,120, 40,100,111,116, 40,104, 44, 32,110, 41, 44, 32, 48, 46, 48, 41, 59, 10, 10, 9,115,112,101, 99,102, 97, 99, + 32, 61, 32,112,111,119, 40,114,115,108,116, 44, 32,104, 97,114,100, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100, +101, 95, 99,111,111,107,116,111,114,114, 95,115,112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32, +118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,104, 97,114,100, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,115,112, +101, 99,102, 97, 99, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 32, 43, + 32,108, 41, 59, 10, 9,102,108,111, 97,116, 32,110,104, 32, 61, 32,100,111,116, 40,110, 44, 32,104, 41, 59, 10, 10, 9,105,102, + 40,110,104, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, + 10, 9,101,108,115,101, 32,123, 10, 9, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, + 32,118, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9, 9,102,108,111, 97,116, 32,105, 32, 61, 32,112,111,119, 40,110,104, 44, 32,104, + 97,114,100, 41, 59, 10, 10, 9, 9,105, 32, 61, 32,105, 47, 40, 48, 46, 49, 43,110,118, 41, 59, 10, 9, 9,115,112,101, 99,102, + 97, 99, 32, 61, 32,105, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 98,108,105,110,110, 95,115, +112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97, +116, 32,114,101,102,114, 97, 99, 44, 32,102,108,111, 97,116, 32,115,112,101, 99, 95,112,111,119,101,114, 44, 32,111,117,116, 32, +102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,105,102, 40,114,101,102,114, 97, 99, 32, 60, 32, 49, 46, + 48, 41, 32,123, 10, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,105, +102, 40,115,112,101, 99, 95,112,111,119,101,114, 32, 61, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,115,112,101, 99,102, 97, 99, + 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,105,102, 40,115,112,101, 99, 95,112,111,119, +101,114, 60, 49, 48, 48, 46, 48, 41, 10, 9, 9, 9,115,112,101, 99, 95,112,111,119,101,114, 61, 32,115,113,114,116, 40, 49, 46, + 48, 47,115,112,101, 99, 95,112,111,119,101,114, 41, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,115,112,101, 99, 95,112,111, +119,101,114, 61, 32, 49, 48, 46, 48, 47,115,112,101, 99, 95,112,111,119,101,114, 59, 10, 10, 9, 9,118,101, 99, 51, 32,104, 32, + 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 32, 43, 32,108, 41, 59, 10, 9, 9,102,108,111, 97,116, 32,110,104, 32, 61, + 32,100,111,116, 40,110, 44, 32,104, 41, 59, 10, 9, 9,105,102, 40,110,104, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9, 9, +115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,125, 10, 9, 9,101,108,115,101, 32,123, 10, 9, 9, 9,102, +108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 49, 41, 59, 10, + 9, 9, 9,102,108,111, 97,116, 32,110,108, 32, 61, 32,100,111,116, 40,110, 44, 32,108, 41, 59, 10, 9, 9, 9,105,102, 40,110, +108, 32, 60, 61, 32, 48, 46, 48, 49, 41, 32,123, 10, 9, 9, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, + 9, 9, 9,125, 10, 9, 9, 9,101,108,115,101, 32,123, 10, 9, 9, 9, 9,102,108,111, 97,116, 32,118,104, 32, 61, 32,109, 97, +120, 40,100,111,116, 40,118, 44, 32,104, 41, 44, 32, 48, 46, 48, 49, 41, 59, 10, 10, 9, 9, 9, 9,102,108,111, 97,116, 32, 97, + 32, 61, 32, 49, 46, 48, 59, 10, 9, 9, 9, 9,102,108,111, 97,116, 32, 98, 32, 61, 32, 40, 50, 46, 48, 42,110,104, 42,110,118, + 41, 47,118,104, 59, 10, 9, 9, 9, 9,102,108,111, 97,116, 32, 99, 32, 61, 32, 40, 50, 46, 48, 42,110,104, 42,110,108, 41, 47, +118,104, 59, 10, 10, 9, 9, 9, 9,102,108,111, 97,116, 32,103, 32, 61, 32, 48, 46, 48, 59, 10, 10, 9, 9, 9, 9,105,102, 40, 97, 32, 60, 32, 98, 32, 38, 38, 32, 97, 32, 60, 32, 99, 41, 32,103, 32, 61, 32, 97, 59, 10, 9, 9, 9, 9,101,108,115,101, 32, 105,102, 40, 98, 32, 60, 32, 97, 32, 38, 38, 32, 98, 32, 60, 32, 99, 41, 32,103, 32, 61, 32, 98, 59, 10, 9, 9, 9, 9,101,108, 115,101, 32,105,102, 40, 99, 32, 60, 32, 97, 32, 38, 38, 32, 99, 32, 60, 32, 98, 41, 32,103, 32, 61, 32, 99, 59, 10, 10, 9, 9, From 3f9d32783adf96a2247d5c20a212bef4765f0248 Mon Sep 17 00:00:00 2001 From: Ken Hughes Date: Fri, 5 Sep 2008 20:41:09 +0000 Subject: [PATCH 14/66] Python API ---------- Add missing Textures.ExtendModes.CHECKER constant. --- source/blender/python/api2_2x/Texture.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/blender/python/api2_2x/Texture.c b/source/blender/python/api2_2x/Texture.c index 7ba8ad88ea6..cc394801d88 100644 --- a/source/blender/python/api2_2x/Texture.c +++ b/source/blender/python/api2_2x/Texture.c @@ -1195,6 +1195,7 @@ static PyObject *M_Texture_ExtendModesDict( void ) PyConstant_Insert(d, "CLIP", PyInt_FromLong(TEX_CLIP)); PyConstant_Insert(d, "CLIPCUBE", PyInt_FromLong(TEX_CLIPCUBE)); PyConstant_Insert(d, "REPEAT", PyInt_FromLong(TEX_REPEAT)); + PyConstant_Insert(d, "CHECKER", PyInt_FromLong(TEX_CHECKER)); } return ExtendModes; } From af42ff6aa2e5c840f5247efae868bdb563f7e45f Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 5 Sep 2008 21:57:34 +0000 Subject: [PATCH 15/66] Fix: compiling with cmake 2.4 didn't work anymore due to a compatibility fix for cmake 2.6. --- CMake/macros.cmake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CMake/macros.cmake b/CMake/macros.cmake index e3dd46eb5ea..95799a2c1fd 100644 --- a/CMake/macros.cmake +++ b/CMake/macros.cmake @@ -39,7 +39,9 @@ ENDMACRO(BLENDERLIB) MACRO(SETUP_LIBDIRS) # see "cmake --help-policy CMP0003" - CMAKE_POLICY(SET CMP0003 NEW) + if(COMMAND cmake_policy) + CMAKE_POLICY(SET CMP0003 NEW) + endif(COMMAND cmake_policy) LINK_DIRECTORIES(${PYTHON_LIBPATH} ${SDL_LIBPATH} ${JPEG_LIBPATH} ${PNG_LIBPATH} ${ZLIB_LIBPATH} ${ICONV_LIBPATH} ${OPENEXR_LIBPATH} ${QUICKTIME_LIBPATH} ${FFMPEG_LIBPATH}) IF(WITH_INTERNATIONAL) LINK_DIRECTORIES(${GETTEXT_LIBPATH}) From 61e628365741089967db17f0cfc02cf059dfb9e4 Mon Sep 17 00:00:00 2001 From: Jens Ole Wund Date: Fri, 5 Sep 2008 23:28:28 +0000 Subject: [PATCH 16/66] treaded soft bodies final (hopefully) bug fix [17428] /*backward compatibility note: G.rt==16 still activates 'old' code fixing bug [17428] which forces adaptive step size to tiny steps in some situations .. keeping G.rt==17 0x11 option for old files 'needing' the bug*/ --- source/blender/blenkernel/intern/softbody.c | 76 +++++++++++++-------- 1 file changed, 49 insertions(+), 27 deletions(-) diff --git a/source/blender/blenkernel/intern/softbody.c b/source/blender/blenkernel/intern/softbody.c index d465c058d30..508b2233536 100644 --- a/source/blender/blenkernel/intern/softbody.c +++ b/source/blender/blenkernel/intern/softbody.c @@ -1622,23 +1622,23 @@ void *exec_scan_for_ext_spring_forces(void *data) void sb_sfesf_threads_run(struct Object *ob, float timenow,int totsprings,int *ptr_to_break_func()) { - ListBase *do_effector = NULL; + ListBase *do_effector = NULL; ListBase threads; SB_thread_context *sb_threads; int i, totthread,left,dec; - int lowsprings =10; /* wild guess .. may increase with better thread management 'above' or even be UI option sb->spawn_cf_threads_nopts */ + int lowsprings =100; /* wild guess .. may increase with better thread management 'above' or even be UI option sb->spawn_cf_threads_nopts */ do_effector= pdInitEffectors(ob,NULL); /* figure the number of threads while preventing pretty pointless threading overhead */ - if(totsprings < lowsprings) {totthread=1;} - else{ - if(G.scene->r.mode & R_FIXED_THREADS) - totthread= G.scene->r.threads; - else - totthread= BLI_system_thread_count(); + if(G.scene->r.mode & R_FIXED_THREADS) + totthread= G.scene->r.threads; + else + totthread= BLI_system_thread_count(); + /* what if we got zillions of CPUs running but less to spread*/ + while ((totsprings/totthread < lowsprings) && (totthread > 1)) { + totthread--; } - /*left to do--> what if we got zillions of CPUs running but 'totsprings' tasks to spread*/ sb_threads= MEM_callocN(sizeof(SB_thread_context)*totthread, "SBSpringsThread"); memset(sb_threads, 0, sizeof(SB_thread_context)*totthread); @@ -2279,6 +2279,11 @@ int _softbody_calc_forces_slice_in_a_thread(Object *ob, float forcetime, float t float kd = 1.0f; if (sb_deflect_face(ob,bp->pos,facenormal,defforce,&cf,timenow,vel,&intrusion)){ + if (intrusion < 0.0f){ + sb->scratch->flag |= SBF_DOFUZZY; + bp->flag |= SBF_DOFUZZY; + bp->choke = sb->choke*0.01f; + } VECSUB(cfforce,bp->vec,vel); Vec3PlusStVec(bp->force,-cf*50.0f,cfforce); @@ -2326,17 +2331,19 @@ void sb_cf_threads_run(struct Object *ob, float forcetime, float timenow,int tot ListBase threads; SB_thread_context *sb_threads; int i, totthread,left,dec; - int lowpoints =10; /* wild guess .. may increase with better thread management 'above' or even be UI option sb->spawn_cf_threads_nopts */ + int lowpoints =100; /* wild guess .. may increase with better thread management 'above' or even be UI option sb->spawn_cf_threads_nopts */ /* figure the number of threads while preventing pretty pointless threading overhead */ - if(totpoint < lowpoints) {totthread=1;} - else{ - if(G.scene->r.mode & R_FIXED_THREADS) - totthread= G.scene->r.threads; - else - totthread= BLI_system_thread_count(); + if(G.scene->r.mode & R_FIXED_THREADS) + totthread= G.scene->r.threads; + else + totthread= BLI_system_thread_count(); + /* what if we got zillions of CPUs running but less to spread*/ + while ((totpoint/totthread < lowpoints) && (totthread > 1)) { + totthread--; } - /*left to do--> what if we got zillions of CPUs running but 'totpoint' tasks to spread*/ + + /* printf("sb_cf_threads_run spawning %d threads \n",totthread); */ sb_threads= MEM_callocN(sizeof(SB_thread_context)*totthread, "SBThread"); memset(sb_threads, 0, sizeof(SB_thread_context)*totthread); @@ -2425,7 +2432,7 @@ static void softbody_calc_forcesEx(Object *ob, float forcetime, float timenow, i static void softbody_calc_forces(Object *ob, float forcetime, float timenow, int nl_flags) { /* redirection to the new threaded Version */ - if (G.rt !=16){ + if (!(G.rt & 0x10)){ // 16 softbody_calc_forcesEx(ob, forcetime, timenow, nl_flags); return; } @@ -2433,6 +2440,10 @@ static void softbody_calc_forces(Object *ob, float forcetime, float timenow, int /* so the following will die */ /* |||||||||||||||||||||||||| */ /* VVVVVVVVVVVVVVVVVVVVVVVVVV */ + /*backward compatibility note: + fixing bug [17428] which forces adaptive step size to tiny steps + in some situations + .. keeping G.rt==17 0x11 option for old files 'needing' the bug*/ /* rule we never alter free variables :bp->vec bp->pos in here ! * this will ruin adaptive stepsize AKA heun! (BM) @@ -2681,14 +2692,25 @@ static void softbody_calc_forces(Object *ob, float forcetime, float timenow, int if (sb_deflect_face(ob,bp->pos,facenormal,defforce,&cf,timenow,vel,&intrusion)){ if ((!nl_flags)&&(intrusion < 0.0f)){ - /*bjornmose: uugh.. what an evil hack - violation of the 'don't touch bp->pos in here' rule - but works nice, like this--> - we predict the solution beeing out of the collider - in heun step No1 and leave the heun step No2 adapt to it - so we kind of introduced a implicit solver for this case - */ - Vec3PlusStVec(bp->pos,-intrusion,facenormal); + if(G.rt & 0x01){ // 17 we did check for bit 0x10 before + /*fixing bug [17428] this forces adaptive step size to tiny steps + in some situations .. keeping G.rt==17 option for old files 'needing' the bug + */ + /*bjornmose: uugh.. what an evil hack + violation of the 'don't touch bp->pos in here' rule + but works nice, like this--> + we predict the solution beeing out of the collider + in heun step No1 and leave the heun step No2 adapt to it + so we kind of introduced a implicit solver for this case + */ + Vec3PlusStVec(bp->pos,-intrusion,facenormal); + } + else{ + + VECSUB(cfforce,bp->vec,vel); + Vec3PlusStVec(bp->force,-cf*50.0f,cfforce); + } + sb->scratch->flag |= SBF_DOFUZZY; bp->flag |= SBF_DOFUZZY; @@ -4040,7 +4062,7 @@ static void softbody_step(Object *ob, SoftBody *sb, float dtime) if(sb->solverflags & SBSO_MONITOR ){ sct=PIL_check_seconds_timer(); - if (sct-sst > 0.5f) printf(" solver time %f sec %s \n",sct-sst,ob->id.name); + if ((sct-sst > 0.5f) || (G.f & G_DEBUG)) printf(" solver time %f sec %s \n",sct-sst,ob->id.name); } } From e279aadb9721d881167bd978a44a3408c8578def Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 6 Sep 2008 01:18:53 +0000 Subject: [PATCH 17/66] Bugfix: game engine could crash with empty display arrays on windows (caused by invisible faces for example). --- .../Rasterizer/RAS_MaterialBucket.cpp | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp index e003cdc9368..69a8271d3e8 100644 --- a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp +++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp @@ -131,19 +131,29 @@ void RAS_MeshSlot::begin(RAS_MeshSlot::iterator& it) int startvertex, endvertex; int startindex, endindex; - it.array = m_displayArrays[m_startarray]; + it.array = (m_displayArrays.size() > 0)? m_displayArrays[m_startarray]: NULL; - startvertex = m_startvertex; - endvertex = (m_startarray == m_endarray)? m_endvertex: it.array->m_vertex.size(); - startindex = m_startindex; - endindex = (m_startarray == m_endarray)? m_endindex: it.array->m_index.size(); + if(it.array == NULL || it.array->m_index.size() == 0 || it.array->m_vertex.size() == 0) { + it.array = NULL; + it.vertex = NULL; + it.index = NULL; + it.startvertex = 0; + it.endvertex = 0; + it.totindex = 0; + } + else { + startvertex = m_startvertex; + endvertex = (m_startarray == m_endarray)? m_endvertex: it.array->m_vertex.size(); + startindex = m_startindex; + endindex = (m_startarray == m_endarray)? m_endindex: it.array->m_index.size(); - it.vertex = &it.array->m_vertex[0]; - it.index = &it.array->m_index[startindex]; - it.startvertex = startvertex; - it.endvertex = endvertex; - it.totindex = endindex-startindex; - it.arraynum = m_startarray; + it.vertex = &it.array->m_vertex[0]; + it.index = &it.array->m_index[startindex]; + it.startvertex = startvertex; + it.endvertex = endvertex; + it.totindex = endindex-startindex; + it.arraynum = m_startarray; + } } void RAS_MeshSlot::next(RAS_MeshSlot::iterator& it) From 8675ff6d1dc4d5b9967aa825e5dc23620a0179bb Mon Sep 17 00:00:00 2001 From: Kent Mein Date: Sat, 6 Sep 2008 02:46:11 +0000 Subject: [PATCH 18/66] Trying to keep things compiling on my imac (10.4.11) I'm getting this error now: GPG_Application.cpp: In member function 'void GPG_Application::stopEngine()': /System/Library/Frameworks/Python.framework/Versions/2.3/include/python2.3/marshal.h:12: error: too many arguments to function 'PyObject* PyMarshal_WriteObjectToString(PyObject*)' GPG_Application.cpp:720: error: at this point in file Are we offically not supporint older versions of python now? :) Kent --- source/gameengine/Converter/BL_ActionActuator.cpp | 1 + source/gameengine/Converter/BL_ShapeActionActuator.cpp | 2 ++ source/gameengine/Converter/Makefile | 1 + source/gameengine/Expressions/Makefile | 2 ++ source/gameengine/Expressions/PyObjectPlus.cpp | 1 + source/gameengine/GameLogic/Makefile | 2 ++ source/gameengine/GameLogic/SCA_ILogicBrick.cpp | 1 + source/gameengine/GameLogic/SCA_JoystickSensor.cpp | 2 ++ source/gameengine/GameLogic/SCA_PythonController.cpp | 2 ++ source/gameengine/Ketsji/BL_Shader.cpp | 2 ++ source/gameengine/Ketsji/KX_CameraActuator.cpp | 2 ++ source/gameengine/Ketsji/KX_ConstraintWrapper.cpp | 1 + source/gameengine/Ketsji/KX_GameObject.cpp | 2 ++ source/gameengine/Ketsji/KX_MeshProxy.cpp | 2 ++ source/gameengine/Ketsji/KX_ParentActuator.cpp | 2 ++ source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp | 2 ++ source/gameengine/Ketsji/KX_PyConstraintBinding.cpp | 2 ++ source/gameengine/Ketsji/KX_PythonInit.cpp | 2 ++ source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp | 2 ++ source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp | 2 ++ source/gameengine/Ketsji/KX_TrackToActuator.cpp | 2 ++ source/gameengine/Ketsji/KX_VehicleWrapper.cpp | 2 ++ 22 files changed, 39 insertions(+) diff --git a/source/gameengine/Converter/BL_ActionActuator.cpp b/source/gameengine/Converter/BL_ActionActuator.cpp index d8b2e063a9d..13c25188753 100644 --- a/source/gameengine/Converter/BL_ActionActuator.cpp +++ b/source/gameengine/Converter/BL_ActionActuator.cpp @@ -50,6 +50,7 @@ #include "MT_Matrix4x4.h" #include "BKE_utildefines.h" #include "FloatValue.h" +#include "gen_utils.h" /* Python stuff */ #ifdef HAVE_CONFIG_H #include diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.cpp b/source/gameengine/Converter/BL_ShapeActionActuator.cpp index 799b6b74b66..06a9db866d4 100644 --- a/source/gameengine/Converter/BL_ShapeActionActuator.cpp +++ b/source/gameengine/Converter/BL_ShapeActionActuator.cpp @@ -50,6 +50,8 @@ #include "MT_Matrix4x4.h" #include "BKE_utildefines.h" +#include "gen_utils.h" /* python stuff */ + #ifdef HAVE_CONFIG_H #include #endif diff --git a/source/gameengine/Converter/Makefile b/source/gameengine/Converter/Makefile index 4dd63e428bd..9bd8ae4fc7b 100644 --- a/source/gameengine/Converter/Makefile +++ b/source/gameengine/Converter/Makefile @@ -39,6 +39,7 @@ CPPFLAGS += -I$(OPENGL_HEADERS) CPPFLAGS += -I$(NAN_STRING)/include CPPFLAGS += -I$(NAN_SOUNDSYSTEM)/include CPPFLAGS += -I$(NAN_PYTHON)/include/python$(NAN_PYTHON_VERSION) +CPPFLAGS += -I../../blender/python/api2_2x CPPFLAGS += -I$(NAN_FUZZICS)/include -I$(NAN_SUMO) -I$(NAN_MOTO)/include CPPFLAGS += -I$(NAN_SOLID)/include CPPFLAGS += -I$(NAN_BULLET2)/include diff --git a/source/gameengine/Expressions/Makefile b/source/gameengine/Expressions/Makefile index e9c02eedcf2..f333de68be0 100644 --- a/source/gameengine/Expressions/Makefile +++ b/source/gameengine/Expressions/Makefile @@ -36,6 +36,8 @@ include nan_compile.mk CCFLAGS += $(LEVEL_1_CPP_WARNINGS) CPPFLAGS += -I$(NAN_PYTHON)/include/python$(NAN_PYTHON_VERSION) +CPPFLAGS += -I../../blender/python/api2_2x +CPPFLAGS += -I../../blender/makesdna CPPFLAGS += -I$(NAN_STRING)/include CPPFLAGS += -I$(NAN_MOTO)/include diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp index 1eca527151a..3dfa1b0da3d 100644 --- a/source/gameengine/Expressions/PyObjectPlus.cpp +++ b/source/gameengine/Expressions/PyObjectPlus.cpp @@ -50,6 +50,7 @@ #include "stdlib.h" #include "PyObjectPlus.h" #include "STR_String.h" +#include "gen_utils.h" /*------------------------------ * PyObjectPlus Type -- Every class, even the abstract one should have a Type ------------------------------*/ diff --git a/source/gameengine/GameLogic/Makefile b/source/gameengine/GameLogic/Makefile index b3eae5d67dc..564e9b16b55 100644 --- a/source/gameengine/GameLogic/Makefile +++ b/source/gameengine/GameLogic/Makefile @@ -42,7 +42,9 @@ CPPFLAGS += -I../Expressions CPPFLAGS += -I../Rasterizer CPPFLAGS += -I$(NAN_STRING)/include CPPFLAGS += -I$(NAN_MOTO)/include +CPPFLAGS += -I../../blender/makesdna CPPFLAGS += -I$(NAN_PYTHON)/include/python$(NAN_PYTHON_VERSION) +CPPFLAGS += -I../../blender/python/api2_2x CPPFLAGS += $(NAN_SDLCFLAGS) CPPFLAGS += -I../../kernel/gen_system diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp index f5512664d8f..1c446bc87c4 100644 --- a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp +++ b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp @@ -27,6 +27,7 @@ */ #include "SCA_ILogicBrick.h" +#include "gen_utils.h" /* python stuff */ #ifdef HAVE_CONFIG_H #include diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp index 645afc8964b..2d42d64abe3 100644 --- a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp +++ b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp @@ -32,6 +32,8 @@ #include +#include "gen_utils.h" /* python stuff */ + #ifdef HAVE_CONFIG_H #include #endif diff --git a/source/gameengine/GameLogic/SCA_PythonController.cpp b/source/gameengine/GameLogic/SCA_PythonController.cpp index e6f7b1dd143..6ba4456bddd 100644 --- a/source/gameengine/GameLogic/SCA_PythonController.cpp +++ b/source/gameengine/GameLogic/SCA_PythonController.cpp @@ -37,6 +37,8 @@ #include "eval.h" #include +#include "gen_utils.h" /* python stuff */ + #ifdef HAVE_CONFIG_H #include #endif diff --git a/source/gameengine/Ketsji/BL_Shader.cpp b/source/gameengine/Ketsji/BL_Shader.cpp index f28d3fa2912..f4a4194edfe 100644 --- a/source/gameengine/Ketsji/BL_Shader.cpp +++ b/source/gameengine/Ketsji/BL_Shader.cpp @@ -15,6 +15,8 @@ #include "RAS_MeshObject.h" #include "RAS_IRasterizer.h" +#include "gen_utils.h" /* python stuff */ + #define spit(x) std::cout << x << std::endl; #define SORT_UNIFORMS 1 diff --git a/source/gameengine/Ketsji/KX_CameraActuator.cpp b/source/gameengine/Ketsji/KX_CameraActuator.cpp index 42b909927fd..8f037a93f6a 100644 --- a/source/gameengine/Ketsji/KX_CameraActuator.cpp +++ b/source/gameengine/Ketsji/KX_CameraActuator.cpp @@ -35,6 +35,8 @@ #include #include "KX_GameObject.h" +#include "gen_utils.h" /* Python stuff */ + STR_String KX_CameraActuator::X_AXIS_STRING = "x"; STR_String KX_CameraActuator::Y_AXIS_STRING = "y"; diff --git a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp index b54da6eb753..9cb859be30d 100644 --- a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp +++ b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp @@ -27,6 +27,7 @@ * ***** END GPL LICENSE BLOCK ***** */ #include +#include "gen_utils.h" #include "KX_ConstraintWrapper.h" #include "PHY_IPhysicsEnvironment.h" diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 204eed9fa92..0ca823e148f 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -65,6 +65,8 @@ typedef unsigned long uint_ptr; #include "SCA_IActuator.h" #include "SCA_ISensor.h" +#include "gen_utils.h" /* python stuff */ + // This file defines relationships between parents and children // in the game engine. diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp index 5bfe8c70cba..e420a208ffd 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.cpp +++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp @@ -43,6 +43,8 @@ #include "KX_PyMath.h" #include "KX_ConvertPhysicsObject.h" +#include "gen_utils.h" /* Python stuff */ + PyTypeObject KX_MeshProxy::Type = { PyObject_HEAD_INIT(&PyType_Type) 0, diff --git a/source/gameengine/Ketsji/KX_ParentActuator.cpp b/source/gameengine/Ketsji/KX_ParentActuator.cpp index 344e0fccc35..58000062dcf 100644 --- a/source/gameengine/Ketsji/KX_ParentActuator.cpp +++ b/source/gameengine/Ketsji/KX_ParentActuator.cpp @@ -36,6 +36,8 @@ #include "KX_GameObject.h" #include "KX_PythonInit.h" +#include "gen_utils.h" /* Python stuff */ + #ifdef HAVE_CONFIG_H #include #endif diff --git a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp index 9291199d859..cd76e00a2e3 100644 --- a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp +++ b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp @@ -27,6 +27,8 @@ * ***** END GPL LICENSE BLOCK ***** */ #include +#include "gen_utils.h" + #include "KX_PhysicsObjectWrapper.h" #include "PHY_IPhysicsEnvironment.h" #include "PHY_IPhysicsController.h" diff --git a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp index 26243c7dba1..83695a9f4c3 100644 --- a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp +++ b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp @@ -34,6 +34,8 @@ #include "PHY_IPhysicsController.h" #include "PHY_IVehicle.h" +#include "gen_utils.h" /* Python stuff */ + #ifdef HAVE_CONFIG_H #include #endif diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index f2902d0ef01..c89e4cbd831 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -68,6 +68,8 @@ #include "KX_PyMath.h" +#include "gen_utils.h" /* Python stuff */ + extern "C" { #include "Mathutils.h" // Blender.Mathutils module copied here so the blenderlayer can use. } diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp index a7330b9a20a..579ad94206b 100644 --- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp @@ -39,6 +39,8 @@ #include "KX_GameObject.h" #include "KX_IPhysicsController.h" +#include "gen_utils.h" /* Python stuff */ + #ifdef HAVE_CONFIG_H #include #endif diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp index 18a297d6c92..383347684cb 100644 --- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp @@ -37,6 +37,8 @@ #include "KX_SCA_ReplaceMeshActuator.h" +#include "gen_utils.h" /* Python stuff */ + #ifdef HAVE_CONFIG_H #include #endif diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.cpp b/source/gameengine/Ketsji/KX_TrackToActuator.cpp index 67937d5c579..962ca93c018 100644 --- a/source/gameengine/Ketsji/KX_TrackToActuator.cpp +++ b/source/gameengine/Ketsji/KX_TrackToActuator.cpp @@ -42,6 +42,8 @@ #include #include "KX_GameObject.h" +#include "gen_utils.h" /* Python stuff */ + #ifdef HAVE_CONFIG_H #include #endif diff --git a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp index f5a2b5e02fe..9131afda5dd 100644 --- a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp +++ b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp @@ -1,6 +1,8 @@ #include +#include "gen_utils.h" + #include "KX_VehicleWrapper.h" #include "PHY_IPhysicsEnvironment.h" #include "PHY_IVehicle.h" From 742e917c6acd4c7a4fbbc438607df6b9b5401602 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 6 Sep 2008 10:39:19 +0000 Subject: [PATCH 19/66] added ALPHASORT flag to the bpython api --- source/blender/python/api2_2x/Mesh.c | 5 +++-- source/blender/python/api2_2x/doc/Mesh.py | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/source/blender/python/api2_2x/Mesh.c b/source/blender/python/api2_2x/Mesh.c index b3e8fefdb7b..6471fb16e92 100644 --- a/source/blender/python/api2_2x/Mesh.c +++ b/source/blender/python/api2_2x/Mesh.c @@ -4163,6 +4163,7 @@ static int MFace_setMode( BPy_MFace *self, PyObject *value ) { int param; static short bitmask = TF_DYNAMIC + | TF_ALPHASORT | TF_TEX | TF_SHAREDVERT | TF_LIGHT @@ -8696,11 +8697,11 @@ static PyObject *M_Mesh_FaceModesDict( void ) if( FM ) { BPy_constant *d = ( BPy_constant * ) FM; - PyConstant_Insert( d, "BILLBOARD", - PyInt_FromLong( TF_BILLBOARD2 ) ); + PyConstant_Insert( d, "BILLBOARD", PyInt_FromLong( TF_BILLBOARD2 ) ); PyConstant_Insert( d, "ALL", PyInt_FromLong( 0xffff ) ); PyConstant_Insert( d, "HALO", PyInt_FromLong( TF_BILLBOARD ) ); PyConstant_Insert( d, "DYNAMIC", PyInt_FromLong( TF_DYNAMIC ) ); + PyConstant_Insert( d, "ALPHASORT", PyInt_FromLong( TF_ALPHASORT ) ); PyConstant_Insert( d, "INVISIBLE", PyInt_FromLong( TF_INVISIBLE ) ); PyConstant_Insert( d, "LIGHT", PyInt_FromLong( TF_LIGHT ) ); PyConstant_Insert( d, "OBCOL", PyInt_FromLong( TF_OBCOL ) ); diff --git a/source/blender/python/api2_2x/doc/Mesh.py b/source/blender/python/api2_2x/doc/Mesh.py index 4a53f869283..d463376efbe 100644 --- a/source/blender/python/api2_2x/doc/Mesh.py +++ b/source/blender/python/api2_2x/doc/Mesh.py @@ -69,6 +69,7 @@ done once. - BILLBOARD - always orient after camera. - HALO - halo face, always point to camera. - DYNAMIC - respond to collisions. + - ALPHASORT - game engine sorts these faces only. - INVISIBLE - invisible face. - LIGHT - dynamic lighting. - OBCOL - use object color instead of vertex colors. From 1bd365e1121e85761eb30312987f4aad5c2601ce Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 6 Sep 2008 12:50:22 +0000 Subject: [PATCH 20/66] find objects by texture name raised a python error --- release/scripts/object_find.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/release/scripts/object_find.py b/release/scripts/object_find.py index 0cfd6ad1d92..8332eab84fb 100644 --- a/release/scripts/object_find.py +++ b/release/scripts/object_find.py @@ -195,11 +195,13 @@ def main(): activate(ob, scn) return if NAME_TEXTURE: - for tex in mat.getTextures(): - if tex: - if name_cmp(NAME_MATERIAL, tex.name): - activate(ob, scn) - return + for mtex in mat.getTextures(): + if mtex: + tex = mtex.tex + if tex: + if name_cmp(NAME_TEXTURE, tex.name): + activate(ob, scn) + return Draw.PupMenu('No Objects Found') From 810f79966049f126f23dc39bc7703c81bd5f8748 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 6 Sep 2008 13:24:42 +0000 Subject: [PATCH 21/66] Revert a commit from 5 years ago that added a glFinish call before swapping on Windows. This is really bad for performance and especially showed in the game engine. The purpose was to disable FSAA and fix some UI issue on Geforce 2 graphics cards, hopefully the drivers have been fixed by now? I have no way to test this, so we'll see if an issue pops up on those older cards, and a lot of code changed since then anyway so it might not even be needed anymore. --- intern/ghost/intern/GHOST_WindowWin32.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/intern/ghost/intern/GHOST_WindowWin32.cpp b/intern/ghost/intern/GHOST_WindowWin32.cpp index fef58d071a4..c30b915c019 100644 --- a/intern/ghost/intern/GHOST_WindowWin32.cpp +++ b/intern/ghost/intern/GHOST_WindowWin32.cpp @@ -437,7 +437,13 @@ GHOST_TSuccess GHOST_WindowWin32::swapBuffers() // adding a glFinish() here is to prevent Geforce in 'full scene antialias' mode // from antialising the Blender window. Officially a swapbuffers does a glFinish // itself, so this feels really like a hack... but it won't harm. (ton) - glFinish(); + // + // disabled this because it is a performance killer for the game engine, glFinish + // forces synchronization with the graphics card and calling it is strongly + // discouraged for good performance. (brecht) + // + // glFinish(); + return ::SwapBuffers(m_hDC) == TRUE ? GHOST_kSuccess : GHOST_kFailure; } From 115cf18bed42d590545d83c73438dc826120313a Mon Sep 17 00:00:00 2001 From: Kent Mein Date: Sat, 6 Sep 2008 14:13:31 +0000 Subject: [PATCH 22/66] converted my gen_utils.h fix to PyObjectPlus.h Also added a fix for PyMarshal_WriteObjectToString Now I just need to figure out linking of the gameengine on my imac. Kent --- source/blender/python/api2_2x/gen_utils.h | 1 + .../Converter/BL_ActionActuator.cpp | 2 +- .../Converter/BL_ShapeActionActuator.cpp | 3 +-- source/gameengine/Converter/Makefile | 1 - source/gameengine/Expressions/Makefile | 1 - .../gameengine/Expressions/PyObjectPlus.cpp | 1 - source/gameengine/Expressions/PyObjectPlus.h | 27 +++++++++++++++++++ source/gameengine/GameLogic/Makefile | 1 - .../gameengine/GameLogic/SCA_ILogicBrick.cpp | 2 +- .../GameLogic/SCA_JoystickSensor.cpp | 3 ++- .../GameLogic/SCA_PythonController.cpp | 2 +- .../GamePlayer/ghost/GPG_Application.cpp | 4 +++ source/gameengine/Ketsji/BL_Shader.cpp | 2 -- .../gameengine/Ketsji/KX_CameraActuator.cpp | 2 +- .../Ketsji/KX_ConstraintWrapper.cpp | 2 +- source/gameengine/Ketsji/KX_GameObject.cpp | 2 +- source/gameengine/Ketsji/KX_MeshProxy.cpp | 2 +- .../gameengine/Ketsji/KX_ParentActuator.cpp | 2 +- .../Ketsji/KX_PhysicsObjectWrapper.cpp | 2 +- .../Ketsji/KX_PyConstraintBinding.cpp | 2 +- source/gameengine/Ketsji/KX_PythonInit.cpp | 2 +- .../Ketsji/KX_SCA_AddObjectActuator.cpp | 2 +- .../Ketsji/KX_SCA_ReplaceMeshActuator.cpp | 2 +- .../gameengine/Ketsji/KX_TrackToActuator.cpp | 2 +- .../gameengine/Ketsji/KX_VehicleWrapper.cpp | 2 +- 25 files changed, 50 insertions(+), 24 deletions(-) diff --git a/source/blender/python/api2_2x/gen_utils.h b/source/blender/python/api2_2x/gen_utils.h index 1f2fd55cf1b..f33dc69d703 100644 --- a/source/blender/python/api2_2x/gen_utils.h +++ b/source/blender/python/api2_2x/gen_utils.h @@ -45,6 +45,7 @@ Py_RETURN_NONE Python 2.4 macro. defined here until we switch to 2.4 + also in PyObjectPlus.h for gameengine */ #ifndef Py_RETURN_NONE #define Py_RETURN_NONE return Py_BuildValue("O", Py_None) diff --git a/source/gameengine/Converter/BL_ActionActuator.cpp b/source/gameengine/Converter/BL_ActionActuator.cpp index 13c25188753..119465c8726 100644 --- a/source/gameengine/Converter/BL_ActionActuator.cpp +++ b/source/gameengine/Converter/BL_ActionActuator.cpp @@ -50,7 +50,7 @@ #include "MT_Matrix4x4.h" #include "BKE_utildefines.h" #include "FloatValue.h" -#include "gen_utils.h" /* Python stuff */ +#include "PyObjectPlus.h" #ifdef HAVE_CONFIG_H #include diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.cpp b/source/gameengine/Converter/BL_ShapeActionActuator.cpp index 06a9db866d4..679b0df7ec6 100644 --- a/source/gameengine/Converter/BL_ShapeActionActuator.cpp +++ b/source/gameengine/Converter/BL_ShapeActionActuator.cpp @@ -49,8 +49,7 @@ #include "BLI_arithb.h" #include "MT_Matrix4x4.h" #include "BKE_utildefines.h" - -#include "gen_utils.h" /* python stuff */ +#include "PyObjectPlus.h" #ifdef HAVE_CONFIG_H #include diff --git a/source/gameengine/Converter/Makefile b/source/gameengine/Converter/Makefile index 9bd8ae4fc7b..4dd63e428bd 100644 --- a/source/gameengine/Converter/Makefile +++ b/source/gameengine/Converter/Makefile @@ -39,7 +39,6 @@ CPPFLAGS += -I$(OPENGL_HEADERS) CPPFLAGS += -I$(NAN_STRING)/include CPPFLAGS += -I$(NAN_SOUNDSYSTEM)/include CPPFLAGS += -I$(NAN_PYTHON)/include/python$(NAN_PYTHON_VERSION) -CPPFLAGS += -I../../blender/python/api2_2x CPPFLAGS += -I$(NAN_FUZZICS)/include -I$(NAN_SUMO) -I$(NAN_MOTO)/include CPPFLAGS += -I$(NAN_SOLID)/include CPPFLAGS += -I$(NAN_BULLET2)/include diff --git a/source/gameengine/Expressions/Makefile b/source/gameengine/Expressions/Makefile index f333de68be0..6736149bbcd 100644 --- a/source/gameengine/Expressions/Makefile +++ b/source/gameengine/Expressions/Makefile @@ -36,7 +36,6 @@ include nan_compile.mk CCFLAGS += $(LEVEL_1_CPP_WARNINGS) CPPFLAGS += -I$(NAN_PYTHON)/include/python$(NAN_PYTHON_VERSION) -CPPFLAGS += -I../../blender/python/api2_2x CPPFLAGS += -I../../blender/makesdna CPPFLAGS += -I$(NAN_STRING)/include diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp index 3dfa1b0da3d..1eca527151a 100644 --- a/source/gameengine/Expressions/PyObjectPlus.cpp +++ b/source/gameengine/Expressions/PyObjectPlus.cpp @@ -50,7 +50,6 @@ #include "stdlib.h" #include "PyObjectPlus.h" #include "STR_String.h" -#include "gen_utils.h" /*------------------------------ * PyObjectPlus Type -- Every class, even the abstract one should have a Type ------------------------------*/ diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h index 65cd4e890f7..ccc9af2ed79 100644 --- a/source/gameengine/Expressions/PyObjectPlus.h +++ b/source/gameengine/Expressions/PyObjectPlus.h @@ -43,6 +43,33 @@ * Python defines ------------------------------*/ +/* + Py_RETURN_NONE + Python 2.4 macro. + defined here until we switch to 2.4 + also in api2_2x/gen_utils.h +*/ +#ifndef Py_RETURN_NONE +#define Py_RETURN_NONE return Py_BuildValue("O", Py_None) +#endif +#ifndef Py_RETURN_FALSE +#define Py_RETURN_FALSE return PyBool_FromLong(0) +#endif +#ifndef Py_RETURN_TRUE +#define Py_RETURN_TRUE return PyBool_FromLong(1) +#endif + +/* for pre Py 2.5 */ +#if PY_VERSION_HEX < 0x02050000 +typedef int Py_ssize_t; +#define PY_SSIZE_T_MAX INT_MAX +#define PY_SSIZE_T_MIN INT_MIN +#else +/* Py 2.5 and later */ +#define intargfunc ssizeargfunc +#define intintargfunc ssizessizeargfunc +#endif + // some basic python macros #define Py_Return { Py_INCREF(Py_None); return Py_None;} diff --git a/source/gameengine/GameLogic/Makefile b/source/gameengine/GameLogic/Makefile index 564e9b16b55..355ece6e8bd 100644 --- a/source/gameengine/GameLogic/Makefile +++ b/source/gameengine/GameLogic/Makefile @@ -44,7 +44,6 @@ CPPFLAGS += -I$(NAN_STRING)/include CPPFLAGS += -I$(NAN_MOTO)/include CPPFLAGS += -I../../blender/makesdna CPPFLAGS += -I$(NAN_PYTHON)/include/python$(NAN_PYTHON_VERSION) -CPPFLAGS += -I../../blender/python/api2_2x CPPFLAGS += $(NAN_SDLCFLAGS) CPPFLAGS += -I../../kernel/gen_system diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp index 1c446bc87c4..abd049e9d64 100644 --- a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp +++ b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp @@ -27,7 +27,7 @@ */ #include "SCA_ILogicBrick.h" -#include "gen_utils.h" /* python stuff */ +#include "PyObjectPlus.h" #ifdef HAVE_CONFIG_H #include diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp index 2d42d64abe3..403fbfe6f4c 100644 --- a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp +++ b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp @@ -30,9 +30,10 @@ #include "SCA_EventManager.h" #include "SCA_LogicManager.h" +#include "PyObjectPlus.h" + #include -#include "gen_utils.h" /* python stuff */ #ifdef HAVE_CONFIG_H #include diff --git a/source/gameengine/GameLogic/SCA_PythonController.cpp b/source/gameengine/GameLogic/SCA_PythonController.cpp index 6ba4456bddd..6e9a0a7c6b6 100644 --- a/source/gameengine/GameLogic/SCA_PythonController.cpp +++ b/source/gameengine/GameLogic/SCA_PythonController.cpp @@ -33,11 +33,11 @@ #include "SCA_LogicManager.h" #include "SCA_ISensor.h" #include "SCA_IActuator.h" +#include "PyObjectPlus.h" #include "compile.h" #include "eval.h" #include -#include "gen_utils.h" /* python stuff */ #ifdef HAVE_CONFIG_H #include diff --git a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp index a690beb9f38..806216e05bb 100644 --- a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp +++ b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp @@ -717,7 +717,11 @@ void GPG_Application::stopEngine() if (gameLogic) { PyObject* pyGlobalDict = PyDict_GetItemString(PyModule_GetDict(gameLogic), "globalDict"); // Same as importing the module if (pyGlobalDict) { +#ifdef Py_MARSHAL_VERSION PyObject* pyGlobalDictMarshal = PyMarshal_WriteObjectToString( pyGlobalDict, 2); // Py_MARSHAL_VERSION == 2 as of Py2.5 +#else + PyObject* pyGlobalDictMarshal = PyMarshal_WriteObjectToString( pyGlobalDict ); +#endif if (pyGlobalDictMarshal) { m_pyGlobalDictString_Length = PyString_Size(pyGlobalDictMarshal); PyObject_Print(pyGlobalDictMarshal, stderr, 0); diff --git a/source/gameengine/Ketsji/BL_Shader.cpp b/source/gameengine/Ketsji/BL_Shader.cpp index f4a4194edfe..f28d3fa2912 100644 --- a/source/gameengine/Ketsji/BL_Shader.cpp +++ b/source/gameengine/Ketsji/BL_Shader.cpp @@ -15,8 +15,6 @@ #include "RAS_MeshObject.h" #include "RAS_IRasterizer.h" -#include "gen_utils.h" /* python stuff */ - #define spit(x) std::cout << x << std::endl; #define SORT_UNIFORMS 1 diff --git a/source/gameengine/Ketsji/KX_CameraActuator.cpp b/source/gameengine/Ketsji/KX_CameraActuator.cpp index 8f037a93f6a..4948c0ea174 100644 --- a/source/gameengine/Ketsji/KX_CameraActuator.cpp +++ b/source/gameengine/Ketsji/KX_CameraActuator.cpp @@ -35,7 +35,7 @@ #include #include "KX_GameObject.h" -#include "gen_utils.h" /* Python stuff */ +#include "PyObjectPlus.h" STR_String KX_CameraActuator::X_AXIS_STRING = "x"; STR_String KX_CameraActuator::Y_AXIS_STRING = "y"; diff --git a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp index 9cb859be30d..c9095ff34f6 100644 --- a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp +++ b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp @@ -27,7 +27,7 @@ * ***** END GPL LICENSE BLOCK ***** */ #include -#include "gen_utils.h" +#include "PyObjectPlus.h" #include "KX_ConstraintWrapper.h" #include "PHY_IPhysicsEnvironment.h" diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 0ca823e148f..27a955b3105 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -65,7 +65,7 @@ typedef unsigned long uint_ptr; #include "SCA_IActuator.h" #include "SCA_ISensor.h" -#include "gen_utils.h" /* python stuff */ +#include "PyObjectPlus.h" /* python stuff */ // This file defines relationships between parents and children // in the game engine. diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp index e420a208ffd..5cc102248f2 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.cpp +++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp @@ -43,7 +43,7 @@ #include "KX_PyMath.h" #include "KX_ConvertPhysicsObject.h" -#include "gen_utils.h" /* Python stuff */ +#include "PyObjectPlus.h" PyTypeObject KX_MeshProxy::Type = { PyObject_HEAD_INIT(&PyType_Type) diff --git a/source/gameengine/Ketsji/KX_ParentActuator.cpp b/source/gameengine/Ketsji/KX_ParentActuator.cpp index 58000062dcf..3ca121f63f8 100644 --- a/source/gameengine/Ketsji/KX_ParentActuator.cpp +++ b/source/gameengine/Ketsji/KX_ParentActuator.cpp @@ -36,7 +36,7 @@ #include "KX_GameObject.h" #include "KX_PythonInit.h" -#include "gen_utils.h" /* Python stuff */ +#include "PyObjectPlus.h" #ifdef HAVE_CONFIG_H #include diff --git a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp index cd76e00a2e3..da4f05ced7c 100644 --- a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp +++ b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp @@ -27,7 +27,7 @@ * ***** END GPL LICENSE BLOCK ***** */ #include -#include "gen_utils.h" +#include "PyObjectPlus.h" #include "KX_PhysicsObjectWrapper.h" #include "PHY_IPhysicsEnvironment.h" diff --git a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp index 83695a9f4c3..ac63e3fade5 100644 --- a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp +++ b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp @@ -34,7 +34,7 @@ #include "PHY_IPhysicsController.h" #include "PHY_IVehicle.h" -#include "gen_utils.h" /* Python stuff */ +#include "PyObjectPlus.h" #ifdef HAVE_CONFIG_H #include diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index c89e4cbd831..fe6294e7626 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -68,7 +68,7 @@ #include "KX_PyMath.h" -#include "gen_utils.h" /* Python stuff */ +#include "PyObjectPlus.h" extern "C" { #include "Mathutils.h" // Blender.Mathutils module copied here so the blenderlayer can use. diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp index 579ad94206b..c4c190e9fa1 100644 --- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp @@ -39,7 +39,7 @@ #include "KX_GameObject.h" #include "KX_IPhysicsController.h" -#include "gen_utils.h" /* Python stuff */ +#include "PyObjectPlus.h" #ifdef HAVE_CONFIG_H #include diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp index 383347684cb..e1f11732085 100644 --- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp @@ -37,7 +37,7 @@ #include "KX_SCA_ReplaceMeshActuator.h" -#include "gen_utils.h" /* Python stuff */ +#include "PyObjectPlus.h" #ifdef HAVE_CONFIG_H #include diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.cpp b/source/gameengine/Ketsji/KX_TrackToActuator.cpp index 962ca93c018..8b09cd4e953 100644 --- a/source/gameengine/Ketsji/KX_TrackToActuator.cpp +++ b/source/gameengine/Ketsji/KX_TrackToActuator.cpp @@ -42,7 +42,7 @@ #include #include "KX_GameObject.h" -#include "gen_utils.h" /* Python stuff */ +#include "PyObjectPlus.h" #ifdef HAVE_CONFIG_H #include diff --git a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp index 9131afda5dd..342e71c5093 100644 --- a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp +++ b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp @@ -1,7 +1,7 @@ #include -#include "gen_utils.h" +#include "PyObjectPlus.h" #include "KX_VehicleWrapper.h" #include "PHY_IPhysicsEnvironment.h" From 601979fc15ccbc69b96f62563638c8b755152942 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Sat, 6 Sep 2008 16:53:44 +0000 Subject: [PATCH 23/66] Fix Windows compile error. Update MSVC project files --- .../blender/BPY_python/BPY_python.vcproj | 8 +- projectfiles_vc7/blender/blender.sln | 22 ++ projectfiles_vc7/blender/blender.vcproj | 4 +- .../blender/blenkernel/BKE_blenkernel.vcproj | 12 +- projectfiles_vc7/blender/gpu/BL_gpu.vcproj | 372 ++++++++++++++++++ projectfiles_vc7/blender/nodes/nodes.vcproj | 8 +- .../blender/radiosity/BRA_radiosity.vcproj | 4 +- projectfiles_vc7/blender/src/BL_src.vcproj | 4 +- .../blenderhook/KX_blenderhook.vcproj | 4 +- .../gameengine/converter/KX_converter.vcproj | 12 +- .../expression/EXP_expressions.vcproj | 12 +- .../gameengine/gamelogic/SCA_GameLogic.vcproj | 12 +- .../gameengine/ketsji/KX_ketsji.vcproj | 12 +- .../PHY_Physics/PHY_Bullet/PHY_Bullet.vcproj | 10 +- .../RAS_openglrasterizer.vcproj | 12 +- source/blender/gpu/intern/gpu_codegen.c | 4 +- 16 files changed, 454 insertions(+), 58 deletions(-) create mode 100644 projectfiles_vc7/blender/gpu/BL_gpu.vcproj diff --git a/projectfiles_vc7/blender/BPY_python/BPY_python.vcproj b/projectfiles_vc7/blender/BPY_python/BPY_python.vcproj index 97f70a26db4..01a29d2d24e 100644 --- a/projectfiles_vc7/blender/BPY_python/BPY_python.vcproj +++ b/projectfiles_vc7/blender/BPY_python/BPY_python.vcproj @@ -21,7 +21,7 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projectfiles_vc7/blender/nodes/nodes.vcproj b/projectfiles_vc7/blender/nodes/nodes.vcproj index 3e19417de9f..e08a2e04f98 100644 --- a/projectfiles_vc7/blender/nodes/nodes.vcproj +++ b/projectfiles_vc7/blender/nodes/nodes.vcproj @@ -19,7 +19,7 @@ @@ -57,7 +59,7 @@ #ifdef _WIN32 #ifndef vsnprintf -#define _vsnprintf vsnprintf +#define vsnprintf _vsnprintf #endif #ifndef snprintf #define snprintf _snprintf From c7fe2199a736eff39fba5e5400a150511815525d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 6 Sep 2008 17:04:54 +0000 Subject: [PATCH 24/66] object_find, didnt get images from an objects material textures KX_PythonInit.cpp - own error in recent commit. --- release/scripts/object_find.py | 14 +++++++++++++- source/gameengine/Ketsji/KX_PythonInit.cpp | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/release/scripts/object_find.py b/release/scripts/object_find.py index 8332eab84fb..f12af07e3e4 100644 --- a/release/scripts/object_find.py +++ b/release/scripts/object_find.py @@ -61,8 +61,20 @@ def get_object_images(ob): me.activeUVLayer = orig_uvlayer + + # Now get material images + for mat in me.materials: + if mat: + for mtex in mat.getTextures(): + if mtex: + tex = mtex.tex + i = tex.getImage() + if i: unique_images[i.name] = i + return unique_images.values() + + # Todo, support other object types, materials return [] @@ -118,7 +130,7 @@ def main(): def activate(ob, scn): bpy.data.scenes.active = scn scn.objects.selected = [] - scn.Layers = ob.Layers + scn.Layers = ob.Layers & (1<<20)-1 ob.sel = 1 def name_cmp(name_search, name_found): diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index fe6294e7626..eb0052d71ff 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -696,7 +696,7 @@ static PyObject* gPySetGLSLMaterialSetting(PyObject*, char *setting; int enable, flag; - if (PyArg_ParseTuple(args,"si",&setting,&enable)) + if (!PyArg_ParseTuple(args,"si",&setting,&enable)) return NULL; flag = getGLSLSettingFlag(setting); From 667c8d83fb5ec719ac9d8944f37ed796f06ae2f0 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Sat, 6 Sep 2008 22:06:01 +0000 Subject: [PATCH 25/66] BGE patch: break parent relationship when child and parent are not active/inactive at the same time. This unusual situation is used in Apricot for test purposes. --- .../Converter/BL_BlenderDataConversion.cpp | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp index def4938b053..15e65ac9fe5 100644 --- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp +++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp @@ -2144,7 +2144,6 @@ void BL_ConvertBlenderObjects(struct Main* maggie, gameobj->NodeUpdateGS(0,true); gameobj->AddMeshUser(); - } else { @@ -2209,6 +2208,24 @@ void BL_ConvertBlenderObjects(struct Main* maggie, { struct Object* blenderchild = pcit->m_blenderchild; + struct Object* blenderparent = blenderchild->parent; + KX_GameObject* parentobj = converter->FindGameObject(blenderparent); + KX_GameObject* childobj = converter->FindGameObject(blenderchild); + + assert(childobj); + + if (!parentobj || objectlist->SearchValue(childobj) != objectlist->SearchValue(parentobj)) + { + // special case: the parent and child object are not in the same layer. + // This weird situation is used in Apricot for test purposes. + // Resolve it by breaking the parent relationship + childobj->GetSGNode()->DisconnectFromParent(); + delete pcit->m_gamechildnode; + // This leave the child object is an incorrect position: its local position becomes + // the global position but we don't care: the child should be in an invisble layer + continue; + } + switch (blenderchild->partype) { case PARVERT1: @@ -2248,12 +2265,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie, break; } - struct Object* blenderparent = blenderchild->parent; - KX_GameObject* parentobj = converter->FindGameObject(blenderparent); - if (parentobj) - { - parentobj-> GetSGNode()->AddChild(pcit->m_gamechildnode); - } + parentobj-> GetSGNode()->AddChild(pcit->m_gamechildnode); } vec_parent_child.clear(); From eb9f4461eaf645d5122a1d16b12d0946973cccf4 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 7 Sep 2008 04:43:31 +0000 Subject: [PATCH 26/66] Constraints - Space Conversions Code Tidyup: Finished verifying that all possible combinations of space conversions were accounted for. --- source/blender/blenkernel/intern/constraint.c | 108 ++++++++---------- 1 file changed, 49 insertions(+), 59 deletions(-) diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index f13fd5f9963..efb03b71438 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -367,19 +367,12 @@ void constraint_mat_convertspace (Object *ob, bPoseChannel *pchan, float mat[][4 case CONSTRAINT_SPACE_WORLD: /* ---------- FROM WORLDSPACE ---------- */ { /* world to pose */ - if (to==CONSTRAINT_SPACE_POSE || to==CONSTRAINT_SPACE_LOCAL || to==CONSTRAINT_SPACE_PARLOCAL) { - Mat4Invert(imat, ob->obmat); - Mat4CpyMat4(tempmat, mat); - Mat4MulMat4(mat, tempmat, imat); - } + Mat4Invert(imat, ob->obmat); + Mat4CpyMat4(tempmat, mat); + Mat4MulMat4(mat, tempmat, imat); - /* pose to local */ - if (to == CONSTRAINT_SPACE_LOCAL) { - /* call self with slightly different values */ - constraint_mat_convertspace(ob, pchan, mat, CONSTRAINT_SPACE_POSE, to); - } - /* pose to local + parent */ - else if (to == CONSTRAINT_SPACE_PARLOCAL) { + /* use pose-space as stepping stone for other spaces... */ + if (ELEM(to, CONSTRAINT_SPACE_LOCAL, CONSTRAINT_SPACE_PARLOCAL)) { /* call self with slightly different values */ constraint_mat_convertspace(ob, pchan, mat, CONSTRAINT_SPACE_POSE, to); } @@ -445,69 +438,66 @@ void constraint_mat_convertspace (Object *ob, bPoseChannel *pchan, float mat[][4 break; case CONSTRAINT_SPACE_LOCAL: /* ------------ FROM LOCALSPACE --------- */ { - /* local to pose */ - if (to==CONSTRAINT_SPACE_POSE || to==CONSTRAINT_SPACE_WORLD) { - /* do inverse procedure that was done for pose to local */ - if (pchan->bone) { - /* we need the posespace_matrix = local_matrix + (parent_posespace_matrix + restpos) */ - if (pchan->parent) { - float offs_bone[4][4]; + /* local to pose - do inverse procedure that was done for pose to local */ + if (pchan->bone) { + /* we need the posespace_matrix = local_matrix + (parent_posespace_matrix + restpos) */ + if (pchan->parent) { + float offs_bone[4][4]; + + /* construct offs_bone the same way it is done in armature.c */ + Mat4CpyMat3(offs_bone, pchan->bone->bone_mat); + VECCOPY(offs_bone[3], pchan->bone->head); + offs_bone[3][1]+= pchan->bone->parent->length; + + if (pchan->bone->flag & BONE_HINGE) { + /* pose_mat = par_pose-space_location * chan_mat */ + float tmat[4][4]; - /* construct offs_bone the same way it is done in armature.c */ - Mat4CpyMat3(offs_bone, pchan->bone->bone_mat); - VECCOPY(offs_bone[3], pchan->bone->head); - offs_bone[3][1]+= pchan->bone->parent->length; + /* the rotation of the parent restposition */ + Mat4CpyMat4(tmat, pchan->bone->parent->arm_mat); - if (pchan->bone->flag & BONE_HINGE) { - /* pose_mat = par_pose-space_location * chan_mat */ - float tmat[4][4]; - - /* the rotation of the parent restposition */ - Mat4CpyMat4(tmat, pchan->bone->parent->arm_mat); - - /* the location of actual parent transform */ - VECCOPY(tmat[3], offs_bone[3]); - offs_bone[3][0]= offs_bone[3][1]= offs_bone[3][2]= 0.0f; - Mat4MulVecfl(pchan->parent->pose_mat, tmat[3]); - - Mat4MulMat4(diff_mat, offs_bone, tmat); - Mat4CpyMat4(tempmat, mat); - Mat4MulMat4(mat, tempmat, diff_mat); - } - else { - /* pose_mat = par_pose_mat * bone_mat * chan_mat */ - Mat4MulMat4(diff_mat, offs_bone, pchan->parent->pose_mat); - Mat4CpyMat4(tempmat, mat); - Mat4MulMat4(mat, tempmat, diff_mat); - } + /* the location of actual parent transform */ + VECCOPY(tmat[3], offs_bone[3]); + offs_bone[3][0]= offs_bone[3][1]= offs_bone[3][2]= 0.0f; + Mat4MulVecfl(pchan->parent->pose_mat, tmat[3]); + + Mat4MulMat4(diff_mat, offs_bone, tmat); + Mat4CpyMat4(tempmat, mat); + Mat4MulMat4(mat, tempmat, diff_mat); } else { - Mat4CpyMat4(diff_mat, pchan->bone->arm_mat); - + /* pose_mat = par_pose_mat * bone_mat * chan_mat */ + Mat4MulMat4(diff_mat, offs_bone, pchan->parent->pose_mat); Mat4CpyMat4(tempmat, mat); Mat4MulMat4(mat, tempmat, diff_mat); } } + else { + Mat4CpyMat4(diff_mat, pchan->bone->arm_mat); + + Mat4CpyMat4(tempmat, mat); + Mat4MulMat4(mat, tempmat, diff_mat); + } } - /* local to world */ - if (to == CONSTRAINT_SPACE_WORLD) { + + /* use pose-space as stepping stone for other spaces */ + if (ELEM(to, CONSTRAINT_SPACE_WORLD, CONSTRAINT_SPACE_PARLOCAL)) { /* call self with slightly different values */ constraint_mat_convertspace(ob, pchan, mat, CONSTRAINT_SPACE_POSE, to); - } + } } break; case CONSTRAINT_SPACE_PARLOCAL: /* -------------- FROM LOCAL WITH PARENT ---------- */ { - /* local to pose */ - if (to==CONSTRAINT_SPACE_POSE || to==CONSTRAINT_SPACE_WORLD) { - if (pchan->bone) { - Mat4CpyMat4(diff_mat, pchan->bone->arm_mat); - Mat4CpyMat4(tempmat, mat); - Mat4MulMat4(mat, diff_mat, tempmat); - } + /* local + parent to pose */ + if (pchan->bone) { + Mat4CpyMat4(diff_mat, pchan->bone->arm_mat); + Mat4CpyMat4(tempmat, mat); + Mat4MulMat4(mat, diff_mat, tempmat); } - /* local to world */ - if (to == CONSTRAINT_SPACE_WORLD) { + + /* use pose-space as stepping stone for other spaces */ + if (ELEM(to, CONSTRAINT_SPACE_WORLD, CONSTRAINT_SPACE_LOCAL)) { /* call self with slightly different values */ constraint_mat_convertspace(ob, pchan, mat, CONSTRAINT_SPACE_POSE, to); } From 7666666992d312143a4ca44aaa334daf6ff26040 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sun, 7 Sep 2008 10:24:02 +0000 Subject: [PATCH 27/66] Bugfix #17490 Camera feature "DOF Object" was drawing the cross marker on wrong location when camera scales. Simple fix by using Mat4Ortho() --- source/blender/blenkernel/intern/object.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 8879b498ad9..3ed169ff77d 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -697,9 +697,11 @@ float dof_camera(Object *ob) if (cam->dof_ob) { /* too simple, better to return the distance on the view axis only * return VecLenf(ob->obmat[3], cam->dof_ob->obmat[3]); */ + float mat[4][4], obmat[4][4]; - float mat[4][4]; - Mat4Invert(ob->imat, ob->obmat); + Mat4CpyMat4(obmat, ob->obmat); + Mat4Ortho(obmat); + Mat4Invert(ob->imat, obmat); Mat4MulMat4(mat, cam->dof_ob->obmat, ob->imat); return fabs(mat[3][2]); } From 0bf03ef2f16870aa7a86c33accb4ba69de50c256 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Sun, 7 Sep 2008 10:47:33 +0000 Subject: [PATCH 28/66] BGE patch: Simulate dupligroup operation when parent and child are not active/inactive at the same time: don't convert the child. This unusual situation is used in Apricot for testing. --- .../Converter/BL_BlenderDataConversion.cpp | 23 ++++++++++++++++--- .../Converter/KX_BlenderSceneConverter.cpp | 12 +++++++++- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp index 15e65ac9fe5..05d4f45b634 100644 --- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp +++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp @@ -2218,11 +2218,28 @@ void BL_ConvertBlenderObjects(struct Main* maggie, { // special case: the parent and child object are not in the same layer. // This weird situation is used in Apricot for test purposes. - // Resolve it by breaking the parent relationship + // Resolve it by not converting the child childobj->GetSGNode()->DisconnectFromParent(); delete pcit->m_gamechildnode; - // This leave the child object is an incorrect position: its local position becomes - // the global position but we don't care: the child should be in an invisble layer + // Now destroy the child object but also all its descendent that may already be linked + // Remove the child reference in the local list! + // Note: there may be descendents already if the children of the child were processed + // by this loop before the child. In that case, we must remove the children also + CListValue* childrenlist = (CListValue*)childobj->PyGetChildrenRecursive(childobj); + childrenlist->Add(childobj->AddRef()); + for ( i=0;iGetCount();i++) + { + KX_GameObject* obj = static_cast(childrenlist->GetValue(i)); + if (templist->RemoveValue(obj)) + obj->Release(); + if (sumolist->RemoveValue(obj)) + obj->Release(); + if (logicbrick_conversionlist->RemoveValue(obj)) + obj->Release(); + } + childrenlist->Release(); + // now destroy recursively + kxscene->RemoveObject(childobj); continue; } diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp index 1f5b578d441..4734b84de54 100644 --- a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp +++ b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp @@ -496,7 +496,17 @@ void KX_BlenderSceneConverter::RegisterGameObject( void KX_BlenderSceneConverter::UnregisterGameObject( KX_GameObject *gameobject) { - m_map_gameobject_to_blender.remove(CHashedPtr(gameobject)); + CHashedPtr gptr(gameobject); + struct Object **bobp= m_map_gameobject_to_blender[gptr]; + if (bobp) { + CHashedPtr bptr(*bobp); + KX_GameObject **gobp= m_map_blender_to_gameobject[bptr]; + if (gobp && *gobp == gameobject) + // also maintain m_map_blender_to_gameobject if the gameobject + // being removed is matching the blender object + m_map_blender_to_gameobject.remove(bptr); + m_map_gameobject_to_blender.remove(gptr); + } } From e0fad0e6a1844f06f41866f4499aa9aedb5ec307 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 7 Sep 2008 11:36:52 +0000 Subject: [PATCH 29/66] Grease Pencil - Stick to View for Sequencer: The 'Stick to View' feature now works in the sequencer (image previews) --- source/blender/include/BIF_drawseq.h | 2 + source/blender/src/drawgpencil.c | 68 ++++++++++++++++++++------- source/blender/src/drawseq.c | 17 +++---- source/blender/src/gpencil.c | 70 ++++++++++++++++++++++------ 4 files changed, 116 insertions(+), 41 deletions(-) diff --git a/source/blender/include/BIF_drawseq.h b/source/blender/include/BIF_drawseq.h index 462075cdf3d..85a6c7a9e2d 100644 --- a/source/blender/include/BIF_drawseq.h +++ b/source/blender/include/BIF_drawseq.h @@ -33,6 +33,8 @@ struct ScrArea; struct Sequence; +#define SEQ_ZOOM_FAC(szoom) (szoom > 0)? (szoom) : (szoom == 0)? (1.0) : (-1.0/szoom) + void drawprefetchseqspace(struct ScrArea *sa, void *spacedata); void drawseqspace(struct ScrArea *sa, void *spacedata); void set_special_seq_update(int val); diff --git a/source/blender/src/drawgpencil.c b/source/blender/src/drawgpencil.c index d1c1e4a5ac6..6e897052218 100644 --- a/source/blender/src/drawgpencil.c +++ b/source/blender/src/drawgpencil.c @@ -60,6 +60,7 @@ #include "BIF_gl.h" #include "BIF_glutil.h" #include "BIF_butspace.h" +#include "BIF_drawseq.h" #include "BIF_graphics.h" #include "BIF_interface.h" #include "BIF_mywindow.h" @@ -310,7 +311,7 @@ short draw_gpencil_panel (uiBlock *block, bGPdata *gpd, ScrArea *sa) /* 'view align' button (naming depends on context) */ if (sa->spacetype == SPACE_VIEW3D) uiDefButBitI(block, TOG, GP_DATA_VIEWALIGN, B_REDR, "Sketch in 3D", 170, 205, 150, 20, &gpd->flag, 0, 0, 0, 0, "New strokes are added in 3D-space"); - else if (sa->spacetype != SPACE_SEQ) /* not available for sequencer yet */ + else uiDefButBitI(block, TOG, GP_DATA_VIEWALIGN, B_REDR, "Stick to View", 170, 205, 150, 20, &gpd->flag, 0, 0, 0, 0, "New strokes are added on 2d-canvas"); } @@ -411,8 +412,8 @@ static void gp_draw_stroke_point (bGPDspoint *points, short thickness, short sfl co[1]= points->y; } else if (sflag & GP_STROKE_2DIMAGE) { - co[0]= points->x; - co[1]= points->y; + co[0]= (points->x * winx) + offsx; + co[1]= (points->y * winy) + offsy; } else { co[0]= (points->x / 1000 * winx); @@ -480,8 +481,12 @@ static void gp_draw_stroke_3d (bGPDspoint *points, int totpoints, short thicknes static void gp_draw_stroke (bGPDspoint *points, int totpoints, short thickness, short dflag, short sflag, short debug, int offsx, int offsy, int winx, int winy) { - /* if thickness is less than GP_DRAWTHICKNESS_SPECIAL, 'smooth' opengl lines look better */ - if ((thickness < GP_DRAWTHICKNESS_SPECIAL) || (dflag & GP_DRAWDATA_ONLYI2D)) { + /* if thickness is less than GP_DRAWTHICKNESS_SPECIAL, 'smooth' opengl lines look better + * - but NOT if Image Editor 'image-based' stroke + */ + if ( (thickness < GP_DRAWTHICKNESS_SPECIAL) || + ((curarea->spacetype==SPACE_IMAGE) && (dflag & GP_DRAWDATA_ONLYV2D)) ) + { bGPDspoint *pt; int i; @@ -491,8 +496,8 @@ static void gp_draw_stroke (bGPDspoint *points, int totpoints, short thickness, glVertex2f(pt->x, pt->y); } else if (sflag & GP_STROKE_2DIMAGE) { - const float x= pt->x; - const float y= pt->y; + const float x= (pt->x * winx) + offsx; + const float y= (pt->y * winy) + offsy; glVertex2f(x, y); } @@ -505,7 +510,10 @@ static void gp_draw_stroke (bGPDspoint *points, int totpoints, short thickness, } glEnd(); } - else { /* tesselation code: currently only enabled with rt != 0 */ + + /* tesselation code: currently only enabled with rt != 0 */ + else + { bGPDspoint *pt1, *pt2; float pm[2]; int i; @@ -526,8 +534,10 @@ static void gp_draw_stroke (bGPDspoint *points, int totpoints, short thickness, s1[0]= pt2->x; s1[1]= pt2->y; } else if (sflag & GP_STROKE_2DIMAGE) { - s0[0]= pt1->x; s0[1]= pt1->y; - s1[0]= pt2->x; s1[1]= pt2->y; + s0[0]= (pt1->x * winx) + offsx; + s0[1]= (pt1->y * winy) + offsy; + s1[0]= (pt2->x * winx) + offsx; + s1[1]= (pt2->y * winy) + offsy; } else { s0[0]= (pt1->x / 1000 * winx); @@ -672,9 +682,8 @@ static void gp_draw_stroke (bGPDspoint *points, int totpoints, short thickness, glVertex2f(pt->x, pt->y); } else if (sflag & GP_STROKE_2DIMAGE) { - // fixme - const float x= pt->x; - const float y= pt->y; + const float x= (pt->x * winx) + offsx; + const float y= (pt->y * winy) + offsy; glVertex2f(x, y); } @@ -889,7 +898,7 @@ void draw_gpencil_2dimage (ScrArea *sa, ImBuf *ibuf) { bGPdata *gpd; int offsx, offsy, sizex, sizey; - int dflag = 0; + int dflag = GP_DRAWDATA_NOSTATUS; /* check that we have grease-pencil stuff to draw */ if (ELEM(NULL, sa, ibuf)) return; @@ -902,13 +911,39 @@ void draw_gpencil_2dimage (ScrArea *sa, ImBuf *ibuf) { SpaceImage *sima= (SpaceImage *)sa->spacedata.first; - // fixme... are these settings still needed? + /* just draw using standard scaling (settings here are currently ignored anyways) */ + // FIXME: the opengl poly-strokes don't draw at right thickness when done this way, so disabled offsx= 0; offsy= 0; sizex= sa->winx; sizey= sa->winy; myortho2(sima->v2d.cur.xmin, sima->v2d.cur.xmax, sima->v2d.cur.ymin, sima->v2d.cur.ymax); + + dflag |= GP_DRAWDATA_ONLYV2D; + } + break; + + case SPACE_SEQ: /* sequence */ + { + SpaceSeq *sseq= (SpaceSeq *)sa->spacedata.first; + float zoom, zoomx, zoomy; + + /* calculate accessory values */ + zoom= SEQ_ZOOM_FAC(sseq->zoom); + if (sseq->mainb == SEQ_DRAW_IMG_IMBUF) { + zoomx = zoom * ((float)G.scene->r.xasp / (float)G.scene->r.yasp); + zoomy = zoom; + } + else + zoomx = zoomy = zoom; + + sizex= zoomx * ibuf->x; + sizey= zoomy * ibuf->y; + offsx= (sa->winx-sizex)/2 + sseq->xof; + offsy= (sa->winy-sizey)/2 + sseq->yof; + + dflag |= GP_DRAWDATA_ONLYI2D; } break; @@ -917,12 +952,13 @@ void draw_gpencil_2dimage (ScrArea *sa, ImBuf *ibuf) offsy= 0; sizex= sa->winx; sizey= sa->winy; + + dflag |= GP_DRAWDATA_ONLYI2D; break; } /* draw it! */ - dflag = (GP_DRAWDATA_ONLYI2D|GP_DRAWDATA_NOSTATUS); gp_draw_data(gpd, offsx, offsy, sizex, sizey, dflag); } diff --git a/source/blender/src/drawseq.c b/source/blender/src/drawseq.c index 71a777c9056..d7346a1ed21 100644 --- a/source/blender/src/drawseq.c +++ b/source/blender/src/drawseq.c @@ -922,17 +922,11 @@ static void draw_image_seq(ScrArea *sa) if(ibuf->rect_float && ibuf->rect==NULL) IMB_rect_from_float(ibuf); - - if (sseq->zoom > 0) { - zoom = sseq->zoom; - } else if (sseq->zoom == 0) { - zoom = 1.0; - } else { - zoom = -1.0/sseq->zoom; - } - + /* needed for gla draw */ glaDefine2DArea(&curarea->winrct); + + zoom= SEQ_ZOOM_FAC(sseq->zoom); if (sseq->mainb == SEQ_DRAW_IMG_IMBUF) { zoomx = zoom * ((float)G.scene->r.xasp / (float)G.scene->r.yasp); zoomy = zoom; @@ -976,7 +970,10 @@ static void draw_image_seq(ScrArea *sa) setlinestyle(0); glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); } - + + /* draw grease-pencil (image aligned) */ + if (sseq->flag & SEQ_DRAW_GPENCIL) + draw_gpencil_2dimage(sa, ibuf); if (free_ibuf) { IMB_freeImBuf(ibuf); diff --git a/source/blender/src/gpencil.c b/source/blender/src/gpencil.c index 9a2988e6e6d..fa3ada89a3a 100644 --- a/source/blender/src/gpencil.c +++ b/source/blender/src/gpencil.c @@ -67,6 +67,7 @@ #include "BIF_gl.h" #include "BIF_glutil.h" #include "BIF_butspace.h" +#include "BIF_drawseq.h" #include "BIF_editarmature.h" #include "BIF_editview.h" #include "BIF_graphics.h" @@ -694,7 +695,6 @@ static void gp_strokepoint_convertcoords (bGPDstroke *gps, bGPDspoint *pt, float { if (gps->flag & GP_STROKE_3DSPACE) { /* directly use 3d-coordinates */ - // FIXME: maybe we need to counterotate this for object rotation? VecCopyf(p3d, &pt->x); } else { @@ -1246,17 +1246,45 @@ static void gp_stroke_convertcoords (tGPsdata *p, short mval[], float out[]) out[1]= y; } - /* 2d - on image 'canvas' (asume that p->v2d is set) */ - else if ( (gpd->sbuffer_sflag & GP_STROKE_2DIMAGE) && - (p->v2d) && (p->ibuf) ) + /* 2d - on image 'canvas' (assume that p->v2d is set) */ + else if ( (gpd->sbuffer_sflag & GP_STROKE_2DIMAGE) && (p->v2d) ) { - float x, y; - - /* convert to 'canvas' coordinates (not need to adjust to canvas) */ - areamouseco_to_ipoco(p->v2d, mval, &x, &y); - - out[0]= x; - out[1]= y; + /* for now - space specific */ + switch (p->sa->spacetype) { + case SPACE_SEQ: /* sequencer */ + { + SpaceSeq *sseq= (SpaceSeq *)p->sa->spacedata.first; + int sizex, sizey, offsx, offsy, rectx, recty; + float zoom, zoomx, zoomy; + + /* calculate zoom factor */ + zoom= SEQ_ZOOM_FAC(sseq->zoom); + if (sseq->mainb == SEQ_DRAW_IMG_IMBUF) { + zoomx = zoom * ((float)G.scene->r.xasp / (float)G.scene->r.yasp); + zoomy = zoom; + } + else + zoomx = zoomy = zoom; + + /* calculate rect size */ + rectx= (G.scene->r.size*G.scene->r.xsch)/100; + recty= (G.scene->r.size*G.scene->r.ysch)/100; + sizex= zoomx * rectx; + sizey= zoomy * recty; + offsx= (p->sa->winx-sizex)/2 + sseq->xof; + offsy= (p->sa->winy-sizey)/2 + sseq->yof; + + /* calculate new points */ + out[0]= (float)(mval[0] - offsx) / (float)sizex; + out[1]= (float)(mval[1] - offsy) / (float)sizey; + } + break; + + default: /* just use raw mouse coordinates - BAD! */ + out[0]= mval[0]; + out[1]= mval[1]; + break; + } } /* 2d - relative to screen (viewport area) */ @@ -1487,6 +1515,11 @@ static void gp_stroke_eraser_dostroke (tGPsdata *p, short mval[], short mvalo[], x0= xyval[0]; y0= xyval[1]; } + else if (gps->flag & GP_STROKE_2DIMAGE) { + ipoco_to_areaco_noclip(p->v2d, &gps->points->x, xyval); + x0= xyval[0]; + y0= xyval[1]; + } else { x0= (gps->points->x / 1000 * p->sa->winx); y0= (gps->points->y / 1000 * p->sa->winy); @@ -1530,6 +1563,15 @@ static void gp_stroke_eraser_dostroke (tGPsdata *p, short mval[], short mvalo[], x1= xyval[0]; y1= xyval[1]; } + else if (gps->flag & GP_STROKE_2DIMAGE) { + ipoco_to_areaco_noclip(p->v2d, &pt1->x, xyval); + x0= xyval[0]; + y0= xyval[1]; + + ipoco_to_areaco_noclip(p->v2d, &pt2->x, xyval); + x1= xyval[0]; + y1= xyval[1]; + } else { x0= (pt1->x / 1000 * p->sa->winx); y0= (pt1->y / 1000 * p->sa->winy); @@ -1553,8 +1595,6 @@ static void gp_stroke_eraser_dostroke (tGPsdata *p, short mval[], short mvalo[], } } -/* -------- */ - /* erase strokes which fall under the eraser strokes */ static void gp_stroke_doeraser (tGPsdata *p) { @@ -1626,14 +1666,14 @@ static void gp_paint_initstroke (tGPsdata *p, short paintmode) case SPACE_SEQ: { /* for now, this is not applicable here... */ - //p->gpd->sbuffer_sflag |= GP_STROKE_2DIMAGE; + p->gpd->sbuffer_sflag |= GP_STROKE_2DIMAGE; } break; case SPACE_IMAGE: { /* check if any ibuf available */ if (p->ibuf) - p->gpd->sbuffer_sflag |= GP_STROKE_2DIMAGE; + p->gpd->sbuffer_sflag |= GP_STROKE_2DSPACE; } break; } From a14d7c9b7dd7141bf8477f22c3c0e41cbb08e27a Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sun, 7 Sep 2008 13:15:44 +0000 Subject: [PATCH 30/66] Bugfix #17497 FSA didn't support "key alpha", fixed it. Also noticed edge-enhance didnt work for FSA, added warning for that, fixing it is too clumsy, this option belongs in compositor. --- .../blender/render/intern/source/pipeline.c | 6 ++++ .../blender/render/intern/source/rendercore.c | 28 +++++++++++-------- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 1ebd0fda6c9..1be65fa7134 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -2346,6 +2346,12 @@ static int is_rendering_allowed(Render *re) if(re->osa==0) re->r.scemode &= ~R_FULL_SAMPLE; + /* no fullsample and edge */ + if((re->r.scemode & R_FULL_SAMPLE) && (re->r.mode & R_EDGE)) { + re->error("Full Sample doesn't support Edge Enhance"); + return 0; + } + } else re->r.scemode &= ~R_FULL_SAMPLE; /* clear to be sure */ diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index 4a2ad995b39..5b8cedfce78 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -931,17 +931,23 @@ static void edge_enhance_add(RenderPart *pa, float *rectf, float *arect) } } - -static void convert_to_key_alpha(RenderPart *pa, float *rectf) +static void convert_to_key_alpha(RenderPart *pa, RenderLayer *rl) { - int y; + RenderLayer *rlpp[RE_MAX_OSA]; + int y, sample, totsample; - for(y= pa->rectx*pa->recty; y>0; y--, rectf+=4) { - if(rectf[3] >= 1.0f); - else if(rectf[3] > 0.0f) { - rectf[0] /= rectf[3]; - rectf[1] /= rectf[3]; - rectf[2] /= rectf[3]; + totsample= get_sample_layers(pa, rl, rlpp); + + for(sample= 0; samplerectf; + + for(y= pa->rectx*pa->recty; y>0; y--, rectf+=4) { + if(rectf[3] >= 1.0f); + else if(rectf[3] > 0.0f) { + rectf[0] /= rectf[3]; + rectf[1] /= rectf[3]; + rectf[2] /= rectf[3]; + } } } } @@ -1229,7 +1235,7 @@ void zbufshadeDA_tile(RenderPart *pa) /* de-premul alpha */ if(R.r.alphamode & R_ALPHAKEY) - convert_to_key_alpha(pa, rl->rectf); + convert_to_key_alpha(pa, rl); /* free stuff within loop! */ MEM_freeN(pa->rectdaps); pa->rectdaps= NULL; @@ -1393,7 +1399,7 @@ void zbufshade_tile(RenderPart *pa) /* de-premul alpha */ if(R.r.alphamode & R_ALPHAKEY) - convert_to_key_alpha(pa, rl->rectf); + convert_to_key_alpha(pa, rl); if(edgerect) MEM_freeN(edgerect); edgerect= NULL; From 91c8eea3257675a26987814e734d64c8f861a5f0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 7 Sep 2008 14:02:58 +0000 Subject: [PATCH 31/66] [#17579] Added support to VSE Python API for adding movie and audio HD sequences from Rob Scott (spamagnet) --- source/blender/python/api2_2x/sceneSequence.c | 115 +++++++++++++++--- 1 file changed, 99 insertions(+), 16 deletions(-) diff --git a/source/blender/python/api2_2x/sceneSequence.c b/source/blender/python/api2_2x/sceneSequence.c index 0d3ad3fcb44..ddc4eb6aea8 100644 --- a/source/blender/python/api2_2x/sceneSequence.c +++ b/source/blender/python/api2_2x/sceneSequence.c @@ -33,12 +33,14 @@ #include "DNA_scene_types.h" /* for Base */ #include "BKE_mesh.h" +#include "BKE_image.h" // RFS: openanim #include "BKE_library.h" #include "BKE_global.h" #include "BKE_main.h" #include "BKE_scene.h" #include "BIF_editseq.h" /* get_last_seq */ +#include "BIF_editsound.h" // RFS: sound_open_hdaudio #include "BLI_blenlib.h" #include "BSE_sequence.h" #include "Ipo.h" @@ -48,6 +50,9 @@ #include "Sound.h" #include "gen_utils.h" +#include "IMB_imbuf_types.h" // RFS: IB_rect +#include "IMB_imbuf.h" // RFS: IMB_anim_get_duration + enum seq_consts { EXPP_SEQ_ATTR_TYPE = 0, EXPP_SEQ_ATTR_CHAN, @@ -145,7 +150,6 @@ static PyObject *NewSeq_internal(ListBase *seqbase, PyObject * args, Scene *sce) seq->len = PyList_Size( list ); - /* strip and stripdata */ seq->strip= strip= MEM_callocN(sizeof(Strip), "strip"); strip->len= seq->len; @@ -185,12 +189,103 @@ static PyObject *NewSeq_internal(ListBase *seqbase, PyObject * args, Scene *sce) strip->us= 1; strip->stripdata= se= MEM_callocN(seq->len*sizeof(StripElem), "stripelem"); + } else if (PyTuple_Check(py_data) && PyTuple_GET_SIZE(py_data) == 4) { + // MOVIE or AUDIO_HD + char *filename; + char *dir; + char *fullpath; + char *type; + int totframe; + + if (!PyArg_ParseTuple( py_data, "ssss", &filename, &dir, &fullpath, &type )) { + BLI_remlink(seqbase, seq); + MEM_freeN(seq); + + return EXPP_ReturnPyObjError( PyExc_ValueError, + "movie/audio hd data needs to be a tuple of a string and a list of images - (filename, dir, fullpath, type)" ); + } + + // RFS - Attempting to support Movie and Audio (HD) strips +#define RFS +#ifdef RFS + // Movie strips + if( strcmp( type, "movie" ) == 0 ) + { + /* open it as an animation */ + struct anim * an = openanim(fullpath, IB_rect); + if(an==0) { + BLI_remlink(seqbase, seq); + MEM_freeN(seq); + + return EXPP_ReturnPyObjError( PyExc_ValueError, + "invalid movie strip" ); + } + + /* get the length in frames */ + totframe = IMB_anim_get_duration( an ); + + /* set up sequence */ + seq->type= SEQ_MOVIE; + seq->len= totframe; + seq->anim= an; + seq->anim_preseek = IMB_anim_get_preseek(an); + + calc_sequence(seq); + + /* strip and stripdata */ + seq->strip= strip= MEM_callocN(sizeof(Strip), "strip"); + strip->len= totframe; + strip->us= 1; + strncpy(strip->dir, dir, FILE_MAXDIR-1); // ???? + strip->stripdata= se= MEM_callocN(sizeof(StripElem), "stripelem"); + + /* name movie in first strip */ + strncpy(se->name, filename, FILE_MAXFILE-1); // ???? + } + + // Audio (HD) strips + if( strcmp( type, "audio_hd" ) == 0 ) + { + struct hdaudio *hdaudio; + + totframe= 0; + + /* is it a sound file? */ + hdaudio = sound_open_hdaudio( fullpath ); + if(hdaudio==0) { + BLI_remlink(seqbase, seq); + MEM_freeN(seq); + + return EXPP_ReturnPyObjError( PyExc_ValueError, + fullpath ); + } + + totframe= sound_hdaudio_get_duration(hdaudio, FPS); + + /* set up sequence */ + seq->type= SEQ_HD_SOUND; + seq->len= totframe; + seq->hdaudio= hdaudio; + + calc_sequence(seq); + + /* strip and stripdata - same as for MOVIE */ + seq->strip= strip= MEM_callocN(sizeof(Strip), "strip"); + strip->len= totframe; + strip->us= 1; + strncpy(strip->dir, dir, FILE_MAXDIR-1); // ???? + strip->stripdata= se= MEM_callocN(sizeof(StripElem), "stripelem"); + + /* name movie in first strip */ + strncpy(se->name, filename, FILE_MAXFILE-1); // ???? + } +#endif + } else if (BPy_Sound_Check(py_data)) { - /* sound */ + /* RAM sound */ int totframe; bSound *sound = (( BPy_Sound * )py_data)->sound; - seq->type= SEQ_RAM_SOUND; seq->sound = sound; @@ -198,7 +293,6 @@ static PyObject *NewSeq_internal(ListBase *seqbase, PyObject * args, Scene *sce) sound->flags |= SOUND_FLAGS_SEQUENCE; - /* strip and stripdata */ seq->strip= strip= MEM_callocN(sizeof(Strip), "strip"); strip->len= totframe; @@ -225,18 +319,7 @@ static PyObject *NewSeq_internal(ListBase *seqbase, PyObject * args, Scene *sce) strip->len= seq->len; strip->us= 1; } else { - /* movie, pydata is a path to a movie file */ - char *name = PyString_AsString ( py_data ); - if (!name) { - /* only free these 2 because other stuff isnt set */ - BLI_remlink(seqbase, seq); - MEM_freeN(seq); - - return EXPP_ReturnPyObjError( PyExc_TypeError, - "expects a string for chan/bone name and an int for the frame where to put the new key" ); - } - - seq->type= SEQ_MOVIE; + // RFS: REMOVED MOVIE FROM HERE } strncpy(seq->name+2, "Untitled", 21); intern_pos_update(seq); From d0b3ce3c48f0ba2425c1cd425f3ebc79a42a724d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 7 Sep 2008 16:37:55 +0000 Subject: [PATCH 32/66] Draw icons in the layer button to show used layers as well as layer of active object, this is a feature from apricot but used button color instead which was confusing. --- release/datafiles/blenderbuttons | Bin 68088 -> 68242 bytes source/blender/include/BIF_resources.h | 4 +- source/blender/makesdna/DNA_view3d_types.h | 3 +- source/blender/src/blenderbuttons.c | 4263 ++++++++++---------- source/blender/src/drawview.c | 7 +- source/blender/src/header_view3d.c | 33 +- 6 files changed, 2166 insertions(+), 2144 deletions(-) diff --git a/release/datafiles/blenderbuttons b/release/datafiles/blenderbuttons index 8ae492bcd1facec2ff72e18382550f977d2506a3..6993840e51f093dc0760ad5b4acad14fc33a950f 100644 GIT binary patch delta 50228 zcmXuK1ymLN_dPt9?k?#N>27I6kPr~0yLm_v>6lA*Np}lK3rLp|(jd~^-O}|RzrXig zi^bwzYUa%OoU_l~`&=g=eNIA(dyWBfQJ0qiDn}@H4hV;dLs1dadhzOKQrr<)&JBk_->>x>40uqrGZ*kKfPq6f3Xxf_s%R- zbza{|Ku5p$WiC1^eVEohRzO5<*k^7=sV@%?Z&a}8;u7Hbhn_i1xFWAe?he{UjgIxa z59{X(8taC(*tpZ3Yh{g(U%7fc#{h3UFD{NBe=QCNHgvs+ z*B(A6KnYmcSA#VW{Qsv`vLc5sv!Dq0J~Vxz92sP8@9zSrA$X8 z;z_0qPeag@>r{7u(ILqyn|uduZD|=Q60yj}(wbdwYQ-aK0%jJU1l6TXz#3i?q{}1( zpahPPm_gd9d($GSvY0g&Z6}|>|DSqJVPT;FfbyJ?@lZig@uk>*zYB$$-H#pVgX(TK z5>ziaj9NYB29nq`_ULlTFSva6D;kp9E~fNnYOQhqHrRFyF3#0;C9!D(Qp1e#s)h>S zlE*ssE~&9k-sAoGC{Lp`s5*O!Nh;PH5t}Vi@NB8$NrN<&<`|F}D1MyH2_18nJZ0?+>s9fKP|Nk&F54#YDCn4gt7eEY|16 z5z$!-YIs)%3ElaBCQ`Ck5nDK~?zm#-xS+g zt`Vf%v-~uLrvCTzm*=lAYsel+lpriu9EnO8p zXeo5sAY}CeG%1nOE#g4w{B>=5{{431U~9W5o;3TR?5(bz&fsj6^8?zK5#4AwAX#^k z@(U=b9nDU3xVG1CL;M_W zU%Eq?S9dW#9mcDSJ2Fg7O}Px(yz2XsIrMn}v6RHbznSO5Y}%E7*o|6szJJ_QRK@u5 zj?UTH*>&mfT3OYc4}6IcC7;s~1UloE+AN<@CU%$u625cz6)($;CGBKneryvmsqh;& ze^T%`1m^@kIZU!TY>#ARA`l(FqXw)u{n!{8dqjHIqcp_5pToW;mHj>IIps1E`@mgc zX<`z|YluE%#aHqmKDNjzlcs{I$b!<_{mW13G8MHys)dIs%2$MzP-MqBD&@7P7R-6>hwX`UQpgstArv%l6BW`#1cA2&_y0K%z^k}vkDQq6^v1zgD7?M( zuX3^)XrD{D#5?t_jbw@TC#HNEduJ|Zem9kK8mq~MZ>)!5TW@y0Rl&^6?19p$qWWsWIQ}Phjc^M8W>CGhUFVRd)J|AvU+UnS6YFJU3BKHCwDd z43woe=0%VoAtI`?8c1ZxKi?j0D5lv_@~Z8U2>X;o&O zYh^;q{1!*MQC z8px$!@P!+4k5A659ScRzc=B_GWHL&#K;sw;-!z9sNkVw$$GCc9$F;xk`R|~dqn%5U z36|~lp2HM78c709u25<*Z>7K8b!EQa>FeF83jIkp zg4|14gsHOkUzSHQq1&7uJ(I06^75vs2vH*8xM_42j4Uvg9G#$Y>fk_xcZqvXH79%S zetxkYaBNXxe7t1Li)G&Aaqj_|w74A}6>e=i{k6DQMy*(1!2Np(mvpnu{ZUlW6bCsjQ6K)eZJ=hZpC^%ts57*cZ?u-UgZEItF1C3u04O+Wdi#= zbn9Goe^_UKMik+;HWF*|*v%i(y+Q0ODb7xyTDXhca&!E8oTMWU&jIhw7hGpnj3eR3 z%O5BuZU!9 zhN2D4eRr6jp8xJZ(d;lUI1)@D>UL1#dv{5-(B#7Ov5{keUED`_mBd?I03ydLNFFu~4%g1DnclU54 zGqOJA;T--(loF8jBiLAG|M?}WwAChKK&cKr?&{NBUcALbxg= zII{E{7?TLfqt6?j6Vi7;k5U|9VYiZ^t@~lNCHRr@?Hwr${);Y>c_#A&%Y;$T{i*1H z%82-E|Egn(U*>7eqOy8mxu0;wS!C)ok~ATvr4ehtX?k5eI_+g6NmD(?sZ!nSl(o<2 z@n4>R!M@h9X(@4Wdx2ilUcQgBk1-GcMzXMcVSU9|PJ-zrFZ=6dkYvbu$I*&bU!wBt z-9BgEYIWZa%H^xa=CUbg-@H>}KU;=h1vy?uZjWX-jz*#dDDXgU@LhvDEMt1MSL~J3&r6dT;J^%LnuV*VtNiB4T|E{4ZxTfuoT- zSwIXYK(XkaF8u@%Z<=tUL}O^NC9a3HLE<8tdYFxyR5HwGH{jIB)Y!ZGWyl{n`{ zw%4Em!L8T7P14TbZmvRX`3%)#Zl*5@F(aIYHSJcra4Rtbf62hZ*ogQ}??KLcyH)d1 zpx1g?=zcXIHd=0d6u$j-S9mQ83PFY%pJ1ncDv;RO(&+CkhaikC(SF1*6d20q^>@er z;K06}-s5DYYn=}EQyUc)+Y40PdnVk*(1SJ~|De4Ucil@IeV1_*fbQwpDrU5V$WXPk z^P&CG!?U$jGFhw&9X=to${~g=7R?gd7l=O4F#l>6C-YdFHOU{y7XG;LOCG`BBsC|8 z1`FlqI6i}1D=O`)JT)@vAdG73(DzSieZ-0^;@+3+w-@_;9SLHs^ng*ttF6z>eOaK` zb~n?~z#SpZPUguU4b}e3qs6jSRz80Ix~brR0EFo-BG#mc5A5sW3^3Qtb0=2MGVLnr zHrM^Bjq-AKKuSkvrgnFCSJcPBc-v2v#kG~@!1L0uCWndo7vHqoiQJ8(+vUM*g{7rs zTl1&g08#g&+^=6TfDnhpW=$$GG7s=w>3fMPHRioV#j}IiTBB!35Cr87mdQKa5@JnK zGmb;%iwM&1&elB#l7=Y_V2Ws+HK==~QV=IQB|R(mPh0cXF=5Haf3YTaRXY#Wsbx?hf+P(?hsl!%Da+5&ZAJ z|Maeo7WDzREWLk6hh#(q7@?-F9*~<$OGHe3F;{D?8lql$P^!j^v7a#A;A9M4R8a8Z z@NI+bkBXOsVd{+YY(2WX7OzP{|J%>H;Dk(wmyBzm!IA| zT+TZcK!J(Y0u5W-7>`@eahQwVC@8%1oh%p?Z7&3Fi@sbhkIf@tRJ{(A-e zn?7$-=cO`EP==nKp83vzNhQ&jtrQeQOaNW6=$p~(>FFsNCgv+g$I5j=8XDvE2|OrZX%8a4)Py9Q20Pcnu_>I} zB2IsQ7b%fKAu`+jU4({()eW_zce=W>%md4hAg4x_%2mfiv8sG5wfNlOY%OYoSnDu<_YShiCf#-8b#_XuI?P7q8Uc*J~yiI@EG;EGL|IJ{$8=Wx2imWY=IO( zY9Y7%yq#8D+;EZXxyfAJf4JD_Hq2NkuQ5cEX@2&kwyTrT)OP<|SAa{{2Y8@V}{qTP10mC?JfuwV!wV# zhx>J?fU_eL*ZgMq!NGwMz->3ho|v4x)*DR$>5_GISXx{p6^YT&D7hGCUY6ba2ht} zLT4R%oL!$8mGH>O&;UF%a*Go8R1uf0MDStX_>HP+Uo?e~iC~8Df0JJ|xq*p?Bk#Pt zys+qK&Fzg1HS0|p3W_qnzvJ?!@Z-<(E&d%>h-0qMPmUHA7t14pJIh44tL4{O9YVpV z@aCI8?(O|=IRcZ0D0SUT>$ZoFRxUd4CdE#REeE9#%tX7K|3!KyRUg z>DFZ5g8_50xkE7w-W0)-?9A=^goFfqLc+kA8J*CxV+iD#$F-y2`|s@7?B=}+{jfbk z^~_s^HE96Krk5{Y>g^r2wuL@1uFC-59T%G;v+kg>{4c{;Sy^cb!dJGpL!rDixjEY$ z+x_(B&6{h_&4Hu>5-y|iOEA~ME)J&31Ebudq;>;7DWiILEycyfnNChla%T(+d;Mib zLV!V0XJunEt=FSEuIaasadj2AQ@Of$-oPmY`uMamP}8!rW4(U;8v8}QN*O}qGa3JMaz)zhQ4V0v`YY;to_IxPLR)fr1f@KXjwQmCr`+6 zp>aGh!V+rKL7KOLsJOi=U4fIphuz`ciD40OC8{H+n=f!Q&A&0)?Tb_fmIsU&zRm+L7$xu+X>-! z(Wt>l%3y|Iboe8Xhv`!1gGSph&mU?7k4nk=Qr$Bh+Vb|&Xb;Ey~4R9y`k zB3zYFpb*ySaeV#y6_1DrNm5cWb=XQx(X8^fgM!ZpYoeeWN=b)n}f@NU%z%fZ4MAO8Q#>2+6bcS^ca&q#-#xiU+;CV zZHq*4f6@5>g$U z4fK1Fq+DL2^#h-Q83p+Mr%ub_V^3g&U+U&5)_37-_LeEgASxN=Bml3dHPSO&r<3h#CIJ0yfa^B#n1SsAEC zh%Hi(kO&IW(b3UEt?_!%eVK=p%cwi*8Q+k-IQZiEbEsodE&E<&oj`adEGp_R^SMzs zP@PP+g7puR%j~`NQ3%gH632bUp92wF~O%5+8DI zF8VDHA2Jne#4WEBZ)!yVgHeG(uu&I#h1S!+(!$z$9YO-o9fU$#5Vn498Ra0E;K1KpZ#{MZCS?zxvK<<%dYvEc3S`4h#NfkMwMVmWKzC_) zWf^cZO$1z=-P63j5q%?t2!0{3Wd_~*P;tB@+eL7jVK5kkVXYRFyu6yV&tAMu4=OBt zUM&j%^*QHWi#Jezp9COqNuAabc9ED!G(1_Ry{H#^q^A9wCfNp}k!hi7{6(uw{4(qB z-@gxRTIFO}>FHjyVq%mK7K8Hh2LuO)GDQgWDlYYGZEaJ)lamjHU%q^9Y!p`AXq?If z5zPSGR(<<+B<~}nQ0w0R9+%C%v8Z1DHH?;p74L|uW z3tkXW75y?I%hJA2RT6ei@)8>cn0cej3|ImK1H@*xG_h zTEL<8H>fqa>gbR`2t`%|1>t1^ywnZhgaKXv5CMe%Mpwb<%Ma$(>n@}xwGeiGIVx0i z)=&jBlCsZPr%j)WUpax`acgom7|`ANT3I=YorOh#&-2Wp8KQy6WjljUoGU}2n8XhC z4t7iZ34Svp$CwtCaOO@vM0I`(r3R<~wK2c7?(l#2UuoDfWeH)+Z_sb3oE^QRhLc|y zgs!b8@~Gvh?GO?YrW`J{-5p!iK4WBLj3EPnM&CO@MMXs^7E7?gt*VY)^oa%^e>Kd+ zdensx=2(8OH=%YVb>oelj0CZtWGpN!slv|mTID+a4NG2_GI@9e;oa+GGA#8Y=>nL` z;FEa!!=*m3V?PiS+yel#fP$>_d+o<)M>PS6lR<{CoOU#O%;oX7cLj2#z6NJDH3{%6 zw|$Vg>V6*#X`z);LF&wqrEF(C=#?{PehOjT^Y(`-(IBT$>r4snA?I&7L&ZK;vAa31 zDK;r|x@x_OnPyiu>;LuD+Rbue#7=IkaxJzc&uuCJ?M>aBRwyx}U9@CrZWlr5qMbzr z1YB{o%bp}W=EKSwigAAQg(G$M^!S#%XH5Y8u2(}{%xcIEz5->F5fB8HDV~t#OksHO z;)PV6nuo#4a17T-7YNMHqbOC}E zfdOIPR(jY-IJh;Gwtj7-rM2a3PahPQ#%KNexc%*@%@<<>DHQArWy{j$R-7Nh0j9%+ca^F-AG*YE2zc6U}_}T&F zC#NIAh|kH1O$lf=bFzBDN^=|qLCgUN^|e&C_0MTT`~XVsVUx?Yo9n?${J3rXXDDo( zS65fY#cIrsfRvdTeL`xgO{tO*RC8Qf8anYvN#$WCyT&>9il-J!LvPbowSye`a2%#u zUn2vGEW`+CD$2^OBOOk--&?)GVS*;d+cgIagDQ=!$_Ot-RxEV&Z41L>@x5uR$Pwz_ zVsF^XvVAu02~uA42B8xcwzwZ_F}2!>KHi)p2!GnaD|WjXjM6T`qT5p<<$`iIPbr1d zW~x=>JEOzqLS@2>w_i`!UNACFwxk4zx8$onge;bXtIt*YF-=eTXll}d?Sm0Ih(T?( zciAm4;hK`w=$E@H!)J{3TYveA)D;MePlv33`V_q%MXPTc0#`c>u| z-7GUVZ|U7Ag>$Jz-O3MOJ3n+uB8&cw!}Z|P;~G@jGsQg579r3Fjmx}pd1^N6Yis2f z9O#jek!=ER4TmNS}g2Kkr|w+?ePq@}ZeFj*(x78cJEOj#JVA^|h?kz-0JO#LLo z+f$t8y-_ts%N;q8eEI`QSG(swor7ap-ct>4d|}YoL(DUo2o@5ymYyk#iFSkLf(c=y z&eH6I7Q&C5GAb%K{QBQZB%{)zU=v$X3!G$la|sW+EGEQVdT)6iCv`S_n+YItK$9(L zfILCck_=>Lr}Vh}yIZSR^f68*kGYP`F2sCMfI{3>c_w0VKJEIMwH_9gkiH;4?@fP$ z#314+-ub79CX-O#b59=oMWL91IC^#~a?J4(5={NOGivK^T*ac#r!x4> zj_T43^z?X8OK{2d*c`0+oq{S?>g|U1`U)q{qZNEBA9O1e*p2b&+%6>dfMPFgRE%kp zzD(PF#SAA9GX?R3U@>ww4Pn^iG5T1U=zshSZF!36i(CBc?8;ebY2iad%J&bF#iu*h z9s>e{jR()(*I1Giz9p!^3|36J)gtr_Cf^yyv?w4-1o8}at z1CgBkluyoA(_XL;YgY(2G+#na?dLJU@He;za_@m;j&SurP z4b&pOD5oL#OO4@K8V{bi3(*p;Wt=(j%a)@6<%TUJcGH#hSrmz57Cj;!C$#MzbR>Z} z39n{Ykz}6(3KyEGxU&%NaHf@|0_zf}bSAYLIwj@QCbe!jWe0*P_G1v@h zAyD)AH+n#FErjy+sy)xQz?tK9B0Q+uAj{+2Up-Ny|8gqkB3;?EB)-01&H;w+FrKKE zzw3|m(-^t^rc$QrjuU2aH4}YHxtuk+T+qht!T$}lb6hdw@?P!t!}t-%K}^%`c%d%( zIV=oq;0vRxqN-xs+xb$TRn1+EEE>(ovZ0fwt9fpUsJPY}{D5wP_u;I0RbPW7(Y{uZ zmOkB#f&);i%<@V)?x8e!h}8m6?od6>&{4Re7zLIxW=cD~Xx!Ys>+k;2w#%x&h3@Ql zstccxHQEd4+_`>Gs{qN@lTzrcEpcR@-#Nq)MH2Yw6F&q4B%bcihCv=x(@FVK9Rpb#&1C4c?N?8YSu3QNWGvj8P9(mEzarkI|4dR zYKr<=T3R@m=;&QVN+~Awdd|>5X+Kj9YxBO6v$5G>1B~3?O}Tm@G8a{}aPR)ciH#ym zDa@2E9l>2b<~P5pc{0gfFlOf0VL0GHc0>oN#xg)^*SA-V=UCj7FX=^{&~`t^>*VCy zr@4rr7PpHc7OC$hU39Xd2Ckx#VP)h__Et~TXyXcZR|PjaBq4vcbTMfv2);SfMC+kP z!h<1%1O5nfGO`3?AH^N1#rB+wN!=A6PMpiu#SI>)rGKcKU7=lDJ>@yfMpHmt*N+%JEri9Pv|CR!)3p+Y*aV$mtob$apXv)??;BYvvEm z8nleeoLfaA8&~Qx>8GUX$lovr4QC+I!`MSGGUwBSI@-QS6$=rOHJ-gPxH)`|^hl5z z;j}u$gY8DS6#4syOs2T^_i@3gh=_=_jkjv7Nz#eG>C)2DI$EC|?|h*-o=K2A8kz@f zmRdz14*)MOuM`@-H~BsU9Aa24c^@>(gdZnHWfm^)iIbPuzsWX_$eq&y^59Z3oR>CnDbSlN`7 zooqg4QCn8}jan^={&X8kXCq4C)L_5;b@jOSxhk`E(1r3zL+ z3i@QRt&PB=KNI~7TRjQB&FdVC2I)ql4Huc*ey*CZr`;@II4^CfEFVaeRMj zso1&by^pz;xz&J97o%#py+(u)O+R&>>0xhQK9{xG3eig4y_pGQnA}%kuAcpyTE5ixr z0a8vFiHV70K!@})s2-K;)*e70{R)~>uNkPrkY1tfeth9z_ik$GwKge-!cMihuDk&= zUVfbnzy^z8i^{EN*5>fJDv%fzdrFyJrOWO-daPRAyE@5|CuDwV{sJ&-YsbjsoqQs6 zt$%c={O+`WhU0Nx?5o$HVONU2X2$Vck_HK%S1Jj_uQR|k6MTi#DN|AME%lwFAcEGY z77@ip!)@D35e|FlfM^+=a1Gj=KGNLe3*40sr%xr$Vjj+%vVU=u3kBY@PD)pDB^Sy> z$KgH&&O7z4#!S&rz1=pc*+2j)vuu|wsN4p#NB>ksYfh;>vWK8>^;AnF;1Pes(Z6KZ z_T~!%qbNl_e<>`?ZS>&RtA7c%s<;bK#|SYMMyB7~gf%r;AIcNM3la3hxh=vDmE8nS zdPt=_pXF8otbe6UK0GV_HfebXDFXl?@px?xNO^c%w|(Gq`T7$YIj5^<42gxTk7Eo? zMYkTZPWqX0Ob+Mjp(CoU+T~g+^E2M{NDRaX2%N~Xk$ zHRkmDIkV&=8J3IoC`;|=(ghy1MAXCG)jDLJ`zI={emjk*JyTUu(m<4wlM8vt%Bq;0 zoctv`Dk||yaWMn*QcG92w90J=;g-reKAr+jovUKTLQE()CPW$czgLUtH>* zdMM{l^J8@ebEJQGN7t_P%nQRkl5kF04Y7kq{qooNX!G4^3t!&5C-)3_VysL#>--%C zfF}}^yxS=Oi^p2TZ+@xp^(RXBfs#;qo%tmV0ZJRr*gg>W0)Ka;Yuq@-imZ{T zDZD6N$u0MubEOHVjL)uF$Nv2J6CY9sA*d$cM(ph~omu1e;FTsCe0Y*yVH6E%aW3D2 zjKK$20g9Vr988duvwRczL+GpRb8eR@gUp#abfskW(uBm4W~#`bL<(Lb4xRUP#G3;$yfN)d+e-9q=HG8ll=tM z#%Cv)YY0Xezp;qS)T$a_9TaWHTa?xti(h~E6TZYU%G9sr+@ZP#b*s8Yy|8J-7-fx& zvg6B!DzwXO65@7*+w&V}C5wR+_0hZ&TZIJog}26E0AL`38G)51@KZA0Q?2sG^>cgA zXF)BesyP(#0otUqiIQ|k9ffo0@cnd){N|E(yV|26$EaQ$l{PaU*IeU9{Bdb|5;B{!yHLut zKhAP{KFnuJQ6Fz{sUZ*mWWEN%_udW9fb{A0dJb>{&e+p0QTX`yZ&XxzzhH>7Mq?R0 zoZ1m7+`s$JzS)8P#pRP!@|Op+jP~U<;j4+|w`An4f1D}rhDdoaRQ5x6(~CNzUKfm? z>F`=SMWOJ)AT3kkVwKa-RxUP{9J$UOJt!C!|B&&DoPncF4{N>p9(4Km zky1{d} z>qI*f4OK(7T!c!$GK;MjvdS=PLF>^kL3jfwmo?`PBZ?BxndkeoqxP(b=-@p()Jq9J zTsHRKpdwOKR0Of&|8#Ol*%^Zj5q0*nzcn^>4a2f}Mn^|a%od8jVfUe~?_KcLVG_`O zW$IdAWJb`hV}_ZO$~!^Kp;+OR;5 z?9H%yCYAFiYSayPcZYEw%5zGrE!)Ih>|Z=-wBP3Z3~av!B&n+bEl!61OZEr=4kBS! zeyr`Kv%VOdnB@KXkIj!hElopZp{`ng-BKj$L3d_1&N3SN4ozwPTP47hnX{cDlj-|X zQ2Z{u>EYXl^DjTak1some4HgKs-#=rvl7qzzW3N-hHz_o`TCKtgZ@%Vx(^P(T^`H9 zwmQaebAXlD8lddVc>@7HNh@@Y!DS_e{S!7IVF>Iq>?;8(t>eyQ?FYjXIAT zOQ{zOjV|J7URg*j@g|Qx5q7UP!=lI|5(8~jv}$@lGv}czCZ_p;z4DXDhzPa! z@4I!ML|L!~xRp7I6j{O=6yQV{!CM#8##Q*3onA<-&cTFCT4t`gT2g3NBBC;ALz|m; z^*H{txzBD}h0$qZr~=(*Exi#@yVP}&-<7%T2)&P}%xYep!2EA#zM<*>(#h-JNM*{v z;3Y5<6@yIBd^dOY^(*u3StI^K=<(PK9nh*Al}7*;*?@@owF zSoP}Ed4x>o%VfVYjKGz}{I#hjvI%dOnep_eynH0&5MD@?9p%bhRd0n3{yx|`&&0I_ zv^8hY!P}(=mWyh=zXrZ+16U_11>(>vwCsik2MH_55nuQ{yK%t(CH%2^5a zl@qMl4x2vfGPzU4aUXp6Za-@_h{T+t!6`zs_QH=v<0!REWnKm!!gWv|U-|XuBK$=k z2LYj{o690xbn7FlG4#mM=>B<)PbRf3O*Eqpxh&CP75~jHmueXOWlm$?%+(XOB{E?@ zh}viLtDdvg7u}g(J)HS?AUQ=i42oVP*61SaBbHsCpP$2k;NW1K(N0LUqeLu=rB!jX zo=*Avp&xZ6s;d1~@w?lho`4eYPq44QIR47*6D&(Fy;@(kGu4J#zGaJ7i~M7YW6WpF zgrDLXsoaZ?J;YY67P(pnzvE~*_3Vu3&2xf=vmr?om)nk`qez|A$E6amggGq>fQZEq zTpCWLw{I(4bC@=rs@T}z;*b%J@_N=f=b6)TyP<&9Q0g`>AK#M|H(3PaVyd|QJE2-{ zu&-MBJ^~Qq<>&qOcA;F@puZzOOM>mF|L+3@p<}XLD0U3Bxx+NeJ!nvIf2)o;e@EuL zmeU=L^WkA+U78WN&;?1`nL(}DKk?ilgy=e+XK^S%+Dqn$AI1n&0zYj8e=1hk5EBLY z__DMraBetyE-#V+$5Uo4E~i5LhE?LRo!t5%xwu2bD9&796kd{pwTfZKi0%SXp305;Ch zS%>*OsUMVeDD|d8z(;eMy(ymDf34|_? zC&LbMFy1AoO5DUk&Y}gQ21i2-lZ=liGDL{9Hyiy4uiEFU7STox$0td#9x`HKK*kr+3cdQh9F+~T#Pg@My?4Nv zO~29$W0Q6EJ-_yT(hUiohkv0qoevE#gM#eCTJW}su(jFdk6~@fLfiKphU4@2KCr`A zix4*snuU|J$nEa{NWi4oz7REQ_{EM9oIk#;sY@_M_U)hsu)XwVNE|L+c0FFAI@}&k zs90=J&AN-tp(CxAQM%g_PeS3_>ZnHwfa4u3m2~e;A(@9_pNlwk^q5_GrmpO*ZA-QP zIvInR&~t0!)A2f!yv#22=p#IO@ZYnvQ$ndL}%1 zebmb~uugXlED)-%)S4-OjWBw2!k;#HKNY=9RVHdU#yfa>+1LKyZxV)fH+fidY=U~A;oiBr?m!!ahxMEc zzo%36pzj7$_H})kb-VY;>$#?(rP-UkrrNa7Kk~6VP}-IO{M#ZsKVx}RqvJ-vG`=ja zmi~#K7?5$X$n8%<3$?Zy>4|s*YV3;>pqfn32W>m$#Kty6e(Lwk89CvzH2NqC^RC_H z2RagTIwCYWf_K;G%J6EDppx!539C2Ve!0NQI>c-$ryl>qg~X>#OkIz^HAg#Sa|Acj zoNnm0%h(m7dMEo_9ke1MO-OISR)%B)PMRw9Qa2GQ$#tKh0>_~&hT^TSF5l?zyKKwq z$%?4hCbQ;ZEmXlI)3JC)ign$o*ye6n~_$kF~ zvBE@eQjvxvFsrC|n~#gKRGLqpB)2f;bw z2w^;#YQHvh5{h|lg3eE#<9V%oTKq1eso$OYY59XZZRU?hF{~|*V~9Nd0)^BHs307L z(4XP_+kTtG+61)(E{TfBNE><3X8{K~f{3vubL4@+*TT-<`5>7aNfxO26(u2#wKMw) zKtM5zr|Cur2xD$Xs;i?WL&qd?X@RKs(+ z(vZ!t>0{9?A{1kn8%h(6Wz2@M}v?%1i;C9bHqYbPF9}nkM0xyst zZEwns3lLpAPDh^^cKe2X1ZKT-&4+jv#}Ax-kOTUKYPNEN{Val;dC@IVwlCX)-ezn> z#OH4rh?CN0rKo8!PZet2r4(l|%>xwQ3K9CW`OEUIJ;gGoI?4t+q%{C+Mg#_l!*@*R zC$Dd6A)hj&`@sNOevm)W>zo(OhB2rcq2^7{^2m38DP~!h_$3n5u_)+gT*Q|8Fl5j+ zM$@G$u%zy#q)ah4+;Ly^yAs*5#c8UkS?ek)){iZ6)(x(S0ZpvXmLarOdI~K_C_pG? z-x;1TxLNSg#bwbg_4jY}?Fo()4*d{lt1i|r?h8U@qNFwWMjkssF-U0jc$t7elBd~q zKVrnNCBIx5vEn;|Sq(tfMS%98??tH`Tn7wi)Cc7Kj;gh;buOqT62fFt)8*)5$g_HL zkMwI~pr>H5WxaQp_kFtl2lCvk#YfkyE4P=qoN4X9%qpHB@$Apbjt{FcIjz8v8`GyO zQAhSF89hBPy*ZEKOgURD?dyA1$Q0k0fwQt!YL+AkK=aQZ)`W*<`GU|z)9M;APJI#- zvorEG{T>?fA2aeSj>Dpm4VK*K^FLFIoZ+eC6Dq1vAHbh1pUV@U<-kA!S&EF}fjl*| zcqyd#Fq4fBow-%LNt8UYGWbCxbRlx;VXx`YKqM?F^tzWT*9vryCJ3K*9T30K$6;mN z8|j>_@b&&GMEG7S`G=W+i{A)jshfKH5(`BoqIdG*IOf^WOwG@m$Bi#12#qeMqHN$D z@M{k6c&)Yjb$IYtiro_)VzBtxGSAiVTG|;4i3zmhE6|Ew zIo(JAR0#Gun;RIQLGzM&LB}@~8Hhd`ZTUE``4O^)k@N|!yY?V8vTAFqYU=5wr(^pR zB>sk&#K}g#gBhNBreahjavg#d`yO!Ga>v_4P&q=e*9y>>+Bxn19Dx$gH7()?d7Z_M z+JtgBaXWo4jvH(LQkXro=#)d0qZKNVN}Dz9j&^sc0y97lMaE1ZAN*m`e4Mog zk+G;Tlp^Y{Rz*P|x3Q57+KIL2Wm|TnQZO8y?eMnj*JXz? z=Bko=9gI#)EVpykHO%XiOL(DfLxaeOXndTZ>}sdyzD)k1gsTx_@1bQJHTuV!t zYxLn0Ld;wRQu6?1B&a5QSO1@>+Fdv@cY1lr*O9)9dovqX%Q0JQ<|(aw z9sTfRIz!mTAGZA|s)!%@?qeuR0e!Ee=GL{Ro-dY>tV90V1#Q>@X3sGt<`~|7#}`IpsJ$&JQx_xXHITsR z5bFNpkcvGb5^_ZALPL|4p@WKxpCn;eoD@FPF+=3_R*sKR%aRcOtRVfWs_C;QZgztn}mq6x3c#h&*k@fo`0TmoKxcT z;d8&ob-k|F_{Orar>d@wtCL>y;y6h7)7rp74x{|VL=6psd+!CF8ok{q8PPT5$q!!| zblb$hZE3Wkfq;PJeCp99-Jz+a^#(NWN;w1`Jd{rhQ@9bW*COHZM-$!}Ik(@j?Mpc| zm>qavyAIFoDB2_ke+u&Q1~*zaKpTpMSOpxgBSmSsPW?ZBig-9$ksylCi5>J1<3a(M zSKf~Vhbu|tgN3RfywfZ?0-oKWO07h2BJbo1W*|WF8L6SaMGeHZ!DjuxXA z)|m~TZ+qG{Uc?Y_nlaJP;2R4z!1zajK*1vYrqj?u3S*%>kX7bdT3RGWH!>3#jOW%O z)Z;m9w*U4CTd9|AS@{1ika7Fg&{F}0h~3+`3G7z-`uf6X=oOtA4XO0mCVFr4OJe1W z8pC5dPx!t+CJ(ADTw*>Nox_^6MVJgQLXY-ieT5hLO_J&#t8U_&F)D<45JN{vi+4o& zdw%cam~EZ%$Y#192dao;cAVk6Si(9YVJ#087IenDm*AxGxq3$QB=u`wUO9o?1-~qs zOdvPlk)Xt#P@;V7kvp^K{&E0(zd|Jy6(b<-qeG8-WW+10t5dYHWc^EJtmNaL{@C7r zq7A>u%ad_((+QVRrGolH;qEV9OycgP&uj?zE)j*J1mAr3S~9KTC5Qe+jTog??mz$X zw)16xe-rue2T?fLf>yOi1@6yHH8f7Rl>|t8r7tYE6 z>BGk|`Rc(R`!#2`+va#{-cBG>=wwE%(v>q6PMOE>w+%d!=G1LT0$lAOPm-&=heA=^FGnP?r9j45RBO@ zmvNla9tmqxjKspmlfaw~mYP{Cy;jBa{yx}W^9(@OOmLp*sFL?)X5S`goK)aYLz^-C z;oA1pS3Zzoa1`;)W8DnyZC!F@Q*r;CzWeVF#^uKudE&IrKKEy2tSJmZUNcUFznAWf z*etk;g{T38^a<#g9@?!T$j^kNv)bn}e{_SFPI{-}?;XAq>>p{V(l@maRQgGj@kQo` z1J9IA7(b)ORhb8?coIf9v(Aq;QM)aw(LL3s-*yEeZ|8orA<`yn*#dKGec0=ENGSi? zEFmf?Dpr1OgJ=R)ipWXMOVfWgs1nR5MmveiLmM7e{Kl8-@v3pe<*4CO4K2eT7Q4{g zB^YAeUwNJMqV>n)kn1#Q9vKpvIO)*`Rc-jC-$gv=4s~iUXpmqOF>^# zy&Fmy`FeEm?7HpQT0!e_Q?m+rF{SBjA@1u49Ir=wR(lll0JNS1LDDsolrn%N#d8{5 zLED(IMUAl1rJi;!*z0*VhD7nZ41br1sqc5Zz&L@eIDDh-Y~AT@iSJ0ekF?4;}Xn>b^`m9xMiZ-IS5LGqvHFx_IaBa0TywmbDR$9|@zk7vOiWVUgZ6cBk3)+^4WXyKWg`67DgZU;3D5? z$Cf@1AUz#qxrJ<)g;{(@H77q26k*|9=t#EWV)=nHn-j=J8Qa6pB|m(ui-puC`Ryrn z@$>LR41ci27opQGnYo#x$3#sX3M6;Al78%?+TMac4?67)@6V50A(MzB{;#O4fWv>k zfDG?N145)-ppKJ}kqM>%N9~f`90`MjYcGuEb)(~>~7YjJ9F4yJp#WrkWeW%+P`s~8@zK& zzL%%O=GuhM>^Di}-R5G+vN|ezJAl2sr1=khA)(bQC363d|MiWb1q$oC#k&!w#Hus0 zBI0kp{P)f!I)4X6HxG_q8_DalbiCem5~1tf>zVp;tuhxYTRrc!VaAtEB6|`%M7|dP0*$d{eVA&)nMA551neQ7fdcvAR^&^jdyKQ2K-Qu`Qj-D>YUlq&Jr z7#nnH{>P5yu!v)?nD4Z<##G&~2m`jUt&PO}}5VSKy5$gt5Q-Wf>Pq ze};|XlOjx(i!}lUE7T{Ke@@ffdRiflKa8K~BSvB&K&Fz174i0=7Q>zt7%u(N`&M9a zU}^F@tmHn*FO9oP9eBUX_(jXr)-H3A&1YX@@#ENR*sz$A1M7A1pEyq#WTrpS`{=Xt z@I#(PLj*N%GozwT*Vm`j*aB@_Rv+B+@6CrXqf%^&rXI{!vXFf*U#!4`{=uhF=ASB; zNF?a?Sbdby=bjS`7m#^f^P!UAx1?%ZQqz;ML*koT1)_><-A=J6)ZX1qSV(ME)>_=AZHfh& zNH;(AtW-7~3)$}s+OK->U~pB7p?y%wO#yZDF1>eP$3O8riGdhP-KKp><-)uX@XNSfl zyr%e`gPw>|S?UAJ5z@Zynf>Y8a6rZE(x9gKd6_)8ftEp4HGTwhYgxU=1t>polyRf0m4@rD&Z_bBaubJ1T zryuumF)In!+i$c2J@ODKe4TzA{^F0gE)Ep?jNr%b8uiN(H0YpLGT|7!6&4pg{VmaP z-j*)v(nN`gv5da~mFDlBYfMBKi!V=#t0#J|ZIbe1v$)O#vZ;^Oqs+qZFvXd@O)HyU&_-Bdc?zOc5|pcVz7 zRv&f)?4H|5$hL4N@D#3KRhtXEW1yy<8>qIh00z{n8RFhjyFKT(Ay#`DUp)!ucuHYe z>r=1ZE|ND$xb>`oN?HH@{orCK9;!uNrQjYkP00P>z6?$Z?g)+ox!1v5GNVBG?Cfk< z`x%J6QIMPEdRvtafijhT6DUnSwJGqhj>;y=#8m<)Z=@y1#s+2?^UbA7t324$Ra0vK ze%<*a_1_&%6FnIEHU4~0)Elc-db#t+riJeM0Zn2;ZqXYm*tON4H>8Ii4gdG--6bXK z4HJq>mv(!NN-<@yA$hWQBJIb1)6mtT6gXIH?2N5vVlLnEUlRKX+g+-*AXU3c=;DcG zR{vWU92neNNgjcSeEP@AT4$}y?fv_YDI{=0E$_H=8vkeUPw#4l@~OziJL>!jDjene ziFdp!=_toy;UpQlQr&$6z5gTz2K%76l?Qi(eLq542(P%0KwCfE7*zDFHN#5OhBg)!Nmr5TjyEpGgGUAU_&Oj@Ih`4m0vco7}#;q{_7Zk;>g z%HO#+sna0arIzz*_|Db$?@6`a!RE%{;swNQt03wC&VM8jItT{2{dYq3>$2+c_5c2K zudHm&b-9r^xJ+o%h4WTz^;SDk$`{`~URGw$?_DC{z->cn#{+A=N`AwuGy3*JHj?v& z*?(LmMv<$GQfT{_vNMZ1k;+90|4pjXqhCWT+>_weB5>bADOq5wVeX<=j??3NS$3-&MhK|y+EW{Y~!=p${(UQM=doV+@B)x;;^RRsG# z>l&pu>z1<%#i@jKtu21;pI;09b|Y}1MZus`^vPN;W;_$~XguR(W*ounND8iX>GAHJ zyg=WEzX~{m%Q6~w}FANz4YC=y6IF$kf<=eNgT|QxM5#K7x8ajJa9v`QX zPgU~CO@cv>D*rlnA025}UM?4i3&ZiWN@0+yd0FgH%9~H03^NlF4D7_iAYq?w$Qu$Ws*E-Yilc%usty+ zO(n;9W?AbKp86k;g9sg?0WH*%*r{47z=dudbYKnCLA**;UX}osxvQ!36_@SMd(-P9eY+lORW0j_d?9v6roSt^h`u~^Kwr|R z1UOasbMd@mp&~*MXJ_dmLptLvV$DNcMC%gv+h6*x*a$tbn5D3B<1i99W$Rs~Hf+y8 zXAidkSz}|Af<7BD-qjFiY1gro&(_8zX6()rQdUfVjZJScYSAm`{p~wQO3$R8B(Pt~ z^w=|xm!n*oFpDe*M}O6Q3Tw|oi+9KdaEJ+UF#G%aDR-VfnaqlbA)^y_CJuh~dGph? z0~|jy?CIXuCt8Y8N6bZ%y9Yz=hJP98<2nT26B<4G)6Q%u%QWfzIEPywn}PK8r-#w~ zmnC%)C%!(eZwwqS4f13zBE=h(WY~5d!~5CS_;S`HX2-?)G`}0G3|B26S`WC&+g3#c5z6W4xu9c#TK#@+^E+H z;@tqBN+6xw{Y3f&CwQzN9nOd6ebLj?6Z~(!jg2vay^<1`8AVV|)5U;Q#L3&I^{$r+ z4CBA{+*5eh&nv3({c#9-Typ0Wz7eNZhJV(jYizBE1`GvgQ%-3{0|0@8rpFz%dr|gS3VkYA|dDb z`rf6CELxfJMr)kL9%I+8Ip#?vp-XK>^^Ki&<)|WEJ zXs>%nV}j{YZ^(B(^X!`+n;4xxlkNDQHQ-_0Yqfz>{^tZe#kg*a zJGe6P$th2vPWwk*EDaObf*~GCyBT-yT}sHkA4v9zEF$(P?>i#_gkx?<^;qgqJ-5vB zOrZUir_IR6&$Qy66axRAP5->2GG`|_cxIWEOfgnW?Xe;gt(ojzw(KtDL3}_{HbqQC z6mi*9}R2l8f1E4z|gxbnsEcHO*Em-7V=m&QI+};;3r!@49K(4z4lmN7)QC# z(bK1$425c5^|1Ig-W%`gB{Qfxwdu)zU~Yc)>D$fv>jfWRccE=XeCCzkYyJ%5f4}ax z=!1&;^|xX*+@cz<{HIemG7`E)vkIu`wboa=gJ=0PLe(x@bqDU;0VbI*&K}7`JCyD= zpG;8ZaFyQsDf^M|;g0#KdOBI=ubgJi8Gt<*|32-omAg<-&YGa*9= z*Pn{TkZ*O99*bCEvIgZlsVDQ;-Mu!eX^%Fl+Bw&*2K*_UbWiEZD>++V*TX?8oT5|| zo=rX`pd}z`(Gcx?Cjz^dED~*^XB=r5xq+-IXy*v>wuNGk=<6pf8M2?=-w111Zk)XQ z#J&V4qB?Q^AM~CRX&+v09i7D{xDK?>z3VN{z{xnB3x8Bk<*nC?>m51%N6+Xb`8L<%X?*vV#{ytttE}9J9<+R8Q=|dxA+g_2muU z-ACVFi$+R4p4W0g)E{C?VfOp`eB(4u7M~p5peO&Uv0268r5PHU%k__S#f zy~{{tca14?-qhL}S+Sv+F=q-{HU{B@JNrkbj3d()85tSAUitAZ`olk*tMq3P!k12_ z!TA5^0&vl&s1A>;`PMg-9bCV5x0wZpsJiG17u)^$spUjW*bAS-H$}-G%RhQ~dp?$T z;n>7?tdL70t{3k7V?Vhx*Si#q}1mt-*b2K`aF1IOJC|up+M5h|FQ@Ifzte zrjp1`I2($i#D~I9)}FL|Y-_+TU$gER+?{{>tGvtU_*Gw@&CKFk92ZUJob0yhvQg$AtCu-tXA*EomYNSuX&(1zL@#%@(=&th57Kr@25pfQch^W8ABW3Wym-m9c ztc+pn%z6`t!Fl8oAtB+pnO9Dw6FLTV3)LHNN532yNei}mPWBIqfz64}27yY5vg}vU0&rD9e_tEu6DV4Oi0I|wNpJ0lG zp28XQY=j`=RnWLvP|r+uQ4JmLP>;rg?$@_ng3ZABx7xOStiA-jRXbdcihe4Pb>j+D zeAdL;_jTmy!9zSt#C))Rjt?O_YbAYE&%ZPw{MMs=Ig#|0v38+JG~E2vpFgLTpmA*7 zS(nu)gpZQr_lTFjQ>pS9EzFBA*vjwodBNJbrVjOmBc1 zu_t+@c26Ax4q{?G*IEF~1F6d)p6CN;FJr*uOuDAFmh~bU4&$vDILF9wa@_A1DwrQb zjZLLTN&Z(&FZ*4`*<7;KrI8Co_vtQ7PEAoX&1^WEGh0W zmS((^dgbiktowOjo2sj;(BBlK-2C1y$+6FSho96 z{^^vTKj4)vGRh@mz5liT`sVUPUjB}Y!$yA_`td(YA*(L7uFU+42ogm<#B~)6B-eL$ z#lD^~>Ld2-$o{4NtN0kXjOImD)%tjp`GeC2@j3y<53Bt0jZZr$e-*)s8P46No*TVi zo;vP}kSJ6Yu=YBhd7OQ{7OQT4W~Iv%5_8GAY1rxsu4-Y zij3;>bZgw@NMT<$75yi6&6SCr^s+g-%UIn79_0qcQRUk@*CJ>x>)#n?5ZAF24q#%N|{$sO577;F`sE+^h9m8Gfo>Y$(>Z?Uh0Cz&N@|6;^S^~Tgjs%yNq+= zOjly5vIiGqGcuy4mm@C<>XO04Xw12ZnlSYDQ?Klh=)lq;#>T0Jrr^&zO1fCv>n_AU zi%MBh%I%P}F{-bF*@XkdskI+3IY=s=CTRrTpU(RDQTRx(A^Kuj%iW~)LuKaU+Pu=| zoQjhC$F*fkqskVa-6&<)DJs;^35w0ajl(c28(lIoKZ$~1%}y5`HQn!HRTrAYFSv2- z-{&i>Ggvw{VYcEkGL%qa;7oc@xWDn7rT$nfLUV0Op@6em#bw+7gPceD_=eIAQJVWl zH>%)zV8u~jH~~MeP?wqwm3)nSIwH>23=@(V;n*@irg3tN3})G5JIr>D~s(vuUAm&#LC_7aWe|{!o2C> zq838@Haj@E-x-x$%tCcL5)jc>pQw}-SjZ>)b?2`+e`1zOnNQ}nH( zUv1W%v67LtFbY8AoBbbh1iU_8<4TPCAX}$~F}TFblkT%SaS3Iv`0F)*1Tq?@axUj^ zMSvFifgp0ih`{XKX6eYbwHT(i_st2%AioE^apT;j(bod8ZF>FvL)S*55&^IAgg-0TjYMPON(kjkvf z5aRR~)$otOZ2y+kKDKAs=(p{U$o1oj*rcGM8eoZJMu=5@+N>!;b9hU_UvMzHZTF7y zaZL6x0YW=JrC@4yGUn|}a^)1IJ$?KB{mZ+NfY!l9CY-9ZTR&=$2tSEQw5m@PvFqOB zyE}52qRX9Lg9$vBVvGr`4O7$asHOm;3WWi-^~Q2g(x+z7hKV1#5+ig0x(!Bmzu@P4PB z`pug+iQe(bUiRA?^ISU*D;NRs^8yhLrpWNE?tS4u26&f$n;egQ&_iB6QkNb(NA5w5 zFVxa8p>dItGUh8+4iy+@jf02M=m!|WqR4IJrS6yRzFB5QMs0B8r3P8VJzj0>4GR)1 zG^PEkLj6RAWAf8FS8v5x6%~~T?Z+O)?d@uv`lboNWukJ`&o-NNr|$roe;3+8%~H$S z!&|U+=V1T@o@~gzGiWAfQ?A*v=@xb9MZ3h@vdnNSGykt;b>MIrF0;E4xm=5KmG}D> zmVYUjgONv$ySuxEiV%R5jwQzEOAc&<1=00Q|+vD%6&ILSP@5q>cI{f@NlKJOrp-vR*zsI|?+(5P{HXJl3 z`{$VMFDL#(J+?*wdunRxJ!``#xfhoLd5=zTRjT-irR)ml3q1arN=I}^-~haSkO8(| zWku=kb~QwwZYnGsi|4Z@s;a0+&EHmA_nfp^sq&vIB1?&U>~|;a3mx0cCY;wGE&Tll zj3(R=3D~?~;#gEf0GjdjjSU5T{k{z-<<-DoIc<9KM$X?SWjG4fqt$M-(q3ivz%BOW z-15j?+QHG^KGfy+SQY+GD%qL9sw}VLia9go&WHMFWqy6oW6kg_=Y58%LW(Of2kAXCC^T0d2*)vfuimCuvngQJr- zzAOZo5m^s>`N^ZIdS4kKA#$Y5e@m?OJ~gO!VW{)v%_vBD&+(pnupo+{W}Q}e;F#SU zbN?xR`-DCjk{BDi9{c=$-!lUp5$9yH_`yxE=j5YlcBKUr8h#6$F|1VCj7n6*VN-mJ z(#Fk&l$WPD#C@xEwpzxE$;5U%g~2oAm^%VfD@Cs?X`~J20fjX+$Ed8V>FES7)tgb~(N)TUaot#We#^a+#YdX_gELBV`T6@Qg1#<)#+u?3!zjL=?mrA;CV z?Kni4mM-7_lM2)J6kSMkxo$)Y=44eoiHlC8VNI!ED@R3yOLXDF)ciaiQw%MG( z@ctG3dMM<^3Ys?~Kj6GcDv;C41xRy6K6y0%vFMNsine&^;~Kr!bqrN|G%Gq$?%eBbxxt`hAun2ghrAKR^?IHd3c`8tcY-wrJ zrgZHG{wlG9w(nMtwxmnz@Gdhk>A*W1yo=M@42yVG?w-GmmRrH{O;W`4WZ=o` zL-Q2k^gPH z)_0{-#$!2!0cnk4KGUns5A(6lwKga%89UtFO*J_XS)?Pio<6KndH9e=E6JvbYBCh( zg`gvqgytNYn9F6&`V5v}25AC2L6C4Q&GpNv<1~Hb-f-HXFGkZtSn_3q80VwS)CU$Z`gpdvp#kF10Lcq zOioRG8>>P5+BHxJQ{2@It&trtIU_4YZ4It7Adewg&wwKhN*1hqF zKJLWOwuD{9Z&7-N_Ls*?J4niV^xOZSf3RRlSW#ar4V{kib*&duN`d`X%hI_bf3*3@ zZC^9S<<$Rr{5_3VPsaU=_v41m!oNQ%LG%w+nuVV!ejW`D4PsfL=$QZtm>m@S5|8JJ zfByWbXJJ8HVMgNfG9j1i?~V^#FDi<}PsWNOM=38}gd3n?;Ci{sgv)$XN1aSjkDp28 z-+$fi6Pt7ev_jSh9GCP)tbDD<`qy8wUwd_3Axjb4)`f54!V0b{wZ#;!{own{n_F9i zj`xR5Hz(4BhAhGyw$Y^_GQ@RSWUGS?-j^mV+p{60Nb5whHnqaJpfR+f?bM0On6&dT z?$7@IaNt|zE)KgUWH|&y+`6JSM=dYfpnqA~A*5;Kc{U7ZNH_ZB7^OL) z;&*W*9v<{$$z_>+ycgc(JeVnci*xQ{XU7xb64{?0VsG;&q8c(wQfqvCZKro~a7?04 zuHVMw=H*ej;*wz-dy|p#N#=$Y2;W>WI3L5)sz>yuu!@+?GbV6dHLSA1( zTN^&+8G;v#bIf-1&!<#KE9Vfmv+FWnuN9D^^fGX zrgKW@>Zs(g%xX`K4l`JyxWe^>)zGDM$b&!%h-w}XkG;}{@of%2@p>J^bZr=|g_WHB z%`*J$ra~5x+v|VV)8e&5&=#m_y)si+sn1e+DbXx+9MLQ_JKd> zlBsX(a7700#)OA&_+|3KIkZ&v=+8&9od}MzzC2Z1AoPh|`VmgK6TZ>&1N|}hza#v- zH*attX+W>o5Iz7pR)KLLoR=^w1moirktabcWxjjPVN{iNmjN!X5YzmgDP#WVbI-l+ ze_B&e{;pb9{iDhNO?|2l@NLPhnC0=>ktwm!JXNwzdy&_apF%=I_1V;?pxQ@(L z{Q?=(s+_3&>Nc*j{)@=S>-Bj9*V$5{{gjlHYOoMs7UFW?%769u^~?L$Unnl+HjQ(B z5jDR`NA}`ZpCQk@E-azbF+8pl2G&QH83A1hWe=CFw=GE1|ALQ_E;T1zu_pVQ$q=Z^ zDhiPzMMcFNgW~M|f9L!8nLNT2W4DU{Spt07U`umR5xt}r*ZFv!o3Mt)R0^+XIkteP zdxeKcl&Cu|63cbIMwGAMNG1e4Ru5pcu>&oZTlW*`kj;ttw^t^CU*4m3@F2++fxijM z^f%3uU*O_&K}K2{0v4tXnYRw?uwTW+VeWb&$YlG1CGFu;YCK}vK$oO+L|Ol3E%o_D z4gMkW2-i6J!PdMS7VMz`PAEl_>PuO`6i}{os ztMkEZ*Njf~HZH*vM4dv2mYaZ!#iaQ|%{X#NROL@x&!QnYI1MctBYam+wP#&OlX7LS zv_w(*H)AZnV;45B6@w$FKu1T%f6MEcLp~~KHV4t@BlUXl1xFgHiZtgR7wEhbuvi)U zx_1L6I)o~D6p4w6U{EsehDNE_X5Ll9$6EzI;!p*DR%;l^+;IWgJooEuAhz+@ZFhW2SP@o%mnETqoV{o9mmkTWG1qmbos5m8*d+RFGFoir|JcHv%( zx>jm+l^~Z=8EdqPDjVe@Dqr}nGLxfCmttJ;z)bMY8eN>a5G>*09n)K0N#l(xo%8lr zx$vZe8gI!4R(+(BzgphbVCG;w6@uU3{w3>|h!_tmYokqaF|Nbc*;f9!zOA#Y{(nz< zaNc*;4N`rO`XMuL8D><$S{x(ST_+n-!Qg|J7!Mo#>c3w@5EPc^%ZLafJt|z)#r{}U zMKYE?p<(5Z|aBBW9DzR*>2esAx6A6E*oDl`%p zbZv67NNnY*lj-T;!V*1(MN1JO(@sO(?-4XSP@R(c`5|H9=fT0-p8pO-Pc0LJ0PPwIX3Q@;;&Cp5x5S%#NQdGhE(q>9DDP8ycd4!_!qHZ5lS_ zExqe&S;Muy;#v`b-VZ0?U(P5pn$leA)S*8E4qijwAz$UK@qv(~R~J!^@oG?l&$7;Z zqXX_9cZ*2-EuNinUR|CYTQ)7Wi+vev%KB6=wuizsgK4X(xvccv!xiz6<0utiuj-f_ z53=l?)YaGC=a4tfkq!NR6U+MEiDp|E)oEOK!N;*GN96-D6KWmCtX+(=40(=hDdh!x z8Ki(lRl@z4&^((P;u25DNlm_cP`zpt_*zOx$)T36wq{-$`k)C@(j#@BN`xa(g9Ld2 zh*CHh5zjrWpo1+5y0*COG=aM%2H+bQawD2nKTG(pU1SP!wLAz2D3|pqmjtYXjLq z);dbh8eV8_sckCxTK_*CzV{W;xc8URJ2rK^nWW;5_SVuSRKcOLYdl=5GAT}@kfQ#K z!*(0nF4^-bUV($Zz#8S^t^XL8#ijKqZ@sA!y4gK*{C@;E9-WSFv5?Pkdh=pPOJ&fc8weHq5y*$EgZ_SBeuYuURzX3-hmks>or^IlqaM zt%hBo<1g28*&BM5L=eTT!wDT%Qobt5t&66E_q(X$;G43Ql|S(dWteqcCF{wf3Znns z+{4~5?C_O~#RSHYu!qd;;k|fd?cSp*u*Mv@! z_cHbIeE#pF6VO)lmRiYO-{=p~CT~^@(T;oL{ndBxKW*=Yo-9=WgOsjNKnqcAfjaZ2 ziu|LGQrRl__3%|@X0*r3u#D%LD(J7Ec{Ka#QL+zoFc<+Pjlv!S*9s@S6RRrcS`(J- zu+oVO?)RTQyEpbFtL2^Xjie(RFvgw+3Fr(s97=#c)=fplYv2a(-`uD#=WIv0i(Sqg zHS={`42%vwkso>r&ZOOhpL%LTl54oUy*I4vzwFAzx%Jn* zHzut1SfPV1<#2C}4DSDN`_RD3LlQh}nAdIl$gGanMuL2GBmpfnD0ZFthP%BwMh^#y zv$J!>y*M_);6?;KYAwks%%XtJ3zURI2NuWZVrN%`mM$*L65bvV^WFpRC=h6^uc2r3 z@V}|vzD*6ErgzHIk&|23W#L|sZAxH*rXCNK;GY~8XiHHXU||9HsGu6?JbGuX(b@9-_t)Vkt6a>N~*u`9#vIO z<2Lyg&E*%0oeeZx503Ld+x=@pDn!M z{R4&^sM=&1Zg@OO)Z-eRCU#I&R@R<$|9k^1F&(^9fnie19pBNanQxGBJ;@aWfPUb? zsw`9@aV|oG{gngG^AOb31gn;j;3X%^oj zimL5;AY?xjnW6pQ^Y7y<6#I_AJ>SPxu4FHqnt0G~IPh!@mc^ml)VKOXxaa zz`1O)@T0wa=fHyfzeBeU@#)@|RaNVeG+vO*Q!{R(QENwvjV&Ve5Ibedk=xgC;s zf;&4k0MQb09`%|7yUD&nUFJ-vTK>Mc*jtaDU4zJ)-wy18+hCEBYPWbG!M^cSaRMQvo{`!5kU2ll_* z>Ts7}Soe~KDe)A@6wg-_Oj;?($pZrek#lAgoTEgc7--^PRnMaz{LQm_whsKD3%vK> z!8vUT?4axiiYS7Df+qj{JGamVBw~wP;SNz~#oXCsBlZCRGkpcx^u+XH#DL~Q;^8;w zpP?uH0IhhR+KSS38y3u3L0Sxq z^U)6745?7aZ$3ZIo*`=S_}P~c05n_g)t)XyO_yvOwVYzznccV{V6zE^8ynwn*(|FA zTd&(;kZqqiLc8J7rP6wxb6^|@ykD2*=33l5J$1qMvI(B+dEOjY=CvjKyiirP9m8u< z|D=(f$(SVi1JMNkS!nrnQARYBfyvTq3ODI~7Ug<6`#xudSIgD%va>%C4OcH4yJWx1 zEPFi4ntvXrHVu2fqx|E?MQJe7Y*oADf5*&>uCudq7JiMy?`g)ii6c@*%r&CpVjQGKtPnc8G=&u&74z`Us%K zEHS!JVq|VNp@83qCGY0;L0V3Z8FDCtP54w`pv|t4e-WGjHUY^5L*Pqwb#=8cM-eMF ze29Ab?@don&yaOet&^=pRh~?QxNPa!CsMbcY_T{qj%an+ZU<<8Alv-*?IzeB07=IE4aYG9@V~c^>8VKOzjTryvDtOKl(VxK1W_{1jVG zFw<)AIMhgx=UvyvQBJ+L+Z;N!Eh(M&P#hO2I8Lv|J7e={>GelTtz5)nm3TpK7H9FDK*OKg9z zK;9G-e93U$hcDeQ;&e-#o%${#YN&FNb4zVheBFAWAn$k>|F`sYJp5=b*Ut&xTJB>1 zmqe#$=2dT5nx20V4n?=U)jKfez?Rpx_zpqZ`i^|{bsIiGEZ;2=GbUwyNPbc5O5)cy zF(HU!gDi;dkBcb1L75U{)rruNd~0etmsSuacZI^SX$fP;@WMh)a9)65CGS)RnfC5( z+>WU{)8E$nVq~~sOL(t5$<68*udKsiLs( zsLyuqN%J|x(fjr`?<@)f<2$F)Og(-@I7+E9 z>298vHa?!9!l{8Q;B!%IIw;QNOaRwxw7kRif-Y38#3yj^t#n5M_gX>wy^n^-1aKm3 zAQt68%Lmx8QXEfxH>O+i>cMzB1l;tu&wxu}7iEv!e5BT}jPefu~7PMF}v^V`GA$0zspJELWpZF-MQ!H_$I zLkT}M;ZLq|WD#(d^j-YdSuMx>F7OA3B6$L!T z@{>bKz~fB#e^!y=_`NR<1Zb)ydRb0Pvp!n#XmC*W)>6HI_ZmK)!5aSQ%8#n?s)caW zHL*sD&%y4+;j2cCaMxiVAVKt(?q$)33C+TiQE)D0!{VWZPw&CgI4EgnATaYh3xkwFf<+F{qzyO=g1Y9W6OAqZCz(g}E*m$hRT)7T)Sp(@`tHi*%`^WHR>rqW??(Xo3sGac z2>@RojNE+o8}uwKEzfa@35XT!g9~D`=hG?&2UAE@6(=6CpDFd=jPlC^Yhl9>tQKYT zeu~%@FW#h3uH`N$6FN&6jqVaZJ}k8=H8iRGv( zsypEnju*>jS@GN_d`T<)_cr)~JN;~9Mr&fi`CMFF;OxVuQl0`~E^sK5X{e~$>mifN z4O*d)AL)=JstX}&!-?Wg7iX!Iy_4R&-xtQYiHbNMMo1UA34TuYTne5LJaM4ncR6ZX z{f)YrMSe-hgentC(_E|ifLTq!TAV};+0^4X$p;+2@&)&mZ+ibv5^ z<8&*h2laM2pERDu{k+)hw@qC~cby>E3{U*UF_>M}@R8TJx})MW!qfqcAY_!Ij{AZGJe-nEL=iqSRMf zhf?N4*Ao>WxI2S;Ya$gviSg>eVW$-6w@|SKc z-h#qZ209+VM1$d+$^Q89B9Pgo~abkiQx}qkiIl2`wl@LeSjhf;>zC1yE8WVie zXr_biO`y8#!vWK`YvSPlEPaR->NVm(VyQXt?_C7shg&Kj%Hq?|QEeJf&Ju+7USq@#J{^ zNT=o(6lz*pN&x|~g%FZQ7ljAigmnB*Q}4rVhp=HqrDlTVv9HXD)cNg#HDNJ!$C`T` zc9HwGmMg&l!x|0Ul0IPJA+ZBG?G&_M0c<}fzpm9`Ba1MueKfqz`G!hb9XAk$@HP1t zqRQO&D5Jle-BDP55GVKt@%^*QKzPc_{Rh!Bu3^7s{&hJu)}!P3#pF(3y!DtxHnY7~ zY61=G0KG*Yn|tt$bR-vLE{*>Vxhq;=;rg zkQUi27mi268e~L7H{pr^<l}{J^%E9Kf7_3j*Pe%XhL9J*2*}sK=da+)wvs$RsXW zeD*)`kVI|*9)n2h$2$o^PWfU6cNa7yYvLVSIFn@AT96x?o_3z1#Eq0a{KXTVmPQZw zH4xJU@dJaB zRn;Km*3!z5N`ywb=>^5rC*T(D7svK0Ep4exl^6jSRZA`ZTEbq%lkX`TvaiD`7f|sf zfA{{y?({^9s9R6H0bd`08OGGoQX~}gzBZBi2szu71G^S2p|yZiND zxY89E4?b&~Q7G(BMeQV?_PVpO0F(f%yQ@GNn-UiC#(xVuJDV#fc!C<%o8+k@Q?Ra^ zc@obhFN{)8o~!)4V=F2H1=* zm;?5o8NU041VU>VhW->ZzsX^)dVIWfI2B*N&-y`ysfCclA1eoVle-YyIi2z9^SzFX zmHKk*8uI?LXC~BvcGUl+@7ig9Ct-g`)A_jKTLTY^j`c#LB6mgSf5J4JYqP?q;FZD# zCD(U~Q#SS2clJNw2a+D<8H3J>5KDm^s*5(o&GXFZkPsASt3oBOZ`Hj4&_Cd%;l%&l zw=)4Rp*w}t&*%&$0$;oG8T?SnR5!hXSOdH{05x~GZCiTQYq|TK1Bx7_g#V|lvyO@? z?ArdBp-WOgq#KctP()f9ky1h$RFDt^Y2geY0@5JeB_Jt{)DTJwNJ^)4cYim}`@G*@ zuL~CoW)^GBiTmt(@85M@{;WzY{w<^rMbBk?D>hSk+0btlHr7R(|J!a3vY?`^#JvXl z{!gM02ETs}{r6?cUM#B~WVP!~#sFzjr4OE-TY;GNlp|M|`vnn~*Oe+ZV5GiB7l!dj zY8!zowr2!HRFbJB)-7FliWES7A+;%M$u&(DdMSbesfSC2Sm5nAGeqdgXAFuE+izAi zx7IX+gKnoUE9CJF|I`7q^(C(in|d|?myUq&o(-+JIpnzkdW0#3xN~~dFSn2$&ci% zXQK;$-KVf6_OveQgm#SU-#g3~ZE)iVzojHAP+y*%p9h}$yy11>MEEOo zG6;*n>I>>qyT?=$JJR8!DNlO}Bjk`X?RZwet#j973Eg09HeO*pZMuFNqdz15!3R%F z&f>nb86$$Hdb z(}Jdrkkz1~*9;l~R;cHtAlJgb^DS8R=0G4eqlk!Z11QPN0MZCCssV@ov#rK3pw5Ry zP76Ljiem3mFbY_#B^ZA1^!ikQNR5eVaYf~CC&7U=L}M&7xerh=pn0Iby;dxoYW^z; zbA!~R9&te4xcJVR4Ml`3pT%-b=`d!G+6iUfI5iMRQ}F*zn!Y?-LyA0?Wt2jXYoYo` zV8UCYG#F=2c1}WXMwSHP3%-lTyTAg(?PvZvW+Tcb4y=7m3nzQ_IHHvp4M{}%o7#bo z;&B#;+~kN3+($K7QxtLLfK~wmN0yTpn~V&#>p%~DDE)!w!=J8tW;Qk~fCTLVAo6p3 zCmj%?9)nWZK_Zn8$Q?F104@)>FbuFK&s+MfFnu9IUGbDzWx)A`$+- zLX4Y%nH(D+SQ+I*X}N$zml~vZzXR<9U`D1T0l%FP*#Sw<&-f4rThqn`LspAm26Av& zWx(48is-oTTQ>o;s|333T(2=H7t|oB_wUPF@Ii`6f?NJpTvShtrQ)6uIAGNqK)(;t zmOJ%dzVzT7 znjRMDkwFk+V+4W=3#dv+k?0&=H?Ve)?pXC4wdA4CQW4fw2tQ)fZ9TMKK1HM&M%!&%$?51q07ng_0rbm>a?2+zQ1XBJHEN}j_J?t* zmc<6riIP`BJU&^z-mKEAA&dvun8{D%*jf&T*O(_7FHcqA%TDfMF$XsEtu2|y9mWs7 zCHL@fv3KNo{P@e={_k)t&RDO~j?v~0)cSGP|GovDKY~g0PFSvm$DJ=kR#EIb@FYA7(J{A?WUB~;3)a+fD-TrPvD-jctL3We#v&>sBws;3oDm|A@Qffw- zfv+1MG|FW2RpE)>{b_b0X+s$PPodp13T+$gw=Xe#PZ4x7xZBmjDnUm#@@rCN%S88* z^Rg|w#Lru4rM@m2?0`H^<$~UKU}%%`R8F^=s@$BBtcsbW@+^V>jy8o~ ziV%Rx0t918fNs1M0E&rr*{hZD?4uXe$SfHx~PK zIjy~68AQYXD6NRo*&<^+&;8QZVdmfR(`k=1ozS;@{JKSC1h^m%kx~jMf^Yg1; z0xJY1iHrRK3X5oH&6GkRaQyiK2!g+k4vD0xS~B%B8U0~8v(?*tc~R99ad!A?^Nrh< zjhikLb*;-?BSr3CRnsXi?{1|kUJ9k;=s^b&xh@N_eHHgtA%c7vagpR<~o25)nYhBsF)xF!U*I>NK_PkG$&7rmOanAe`G zIpOT7cb%SSomN`1(9C_(c>KnS?QP8$Bs)8EU@4Jcw?pq%SbR{dX^e*j_IHV+3-_IC zg5Tn|_|nv#SIUyu(!(8C+*GK4`{2MQRuNMMmpydDXY`(-l!nv^9nXu(eFSR!5L2Sh zTW0pTPl_Q*qoq6fLLbpr%t11N3jLc$>Rgj}7%g#T7L2m2sRNT2ft zp22a?M&;4U01ky*4KQEsk->pkz$5-&;Ai6KCt^*fH$pui-C1{6<3ft`#)dF%&-0LzwqK-{P-fXe61-a+Q2utB2%NOZi*5XYjOyDA92eyRt zGCOpd{!PympL^2?@y=#7w$v-T>D$+{WBkp~hd^X;>O=0q)d{5picP z!PejygwPGSxxMDqt#@~N0(zr^RD3i$J8kGZE#H~NA+2G+W5tWRfgMm1JZ>p;xxrv? z|3pDnmc#@85bf7ox$)9v-zoRcTKdp!bqk?psVBL@)ar#JnXE$3{ynX|xVQi#F~)JY z&Q0*Ai${)d|0C}COiV%mJiWO^#fK8#wa~x%u<(}!t~}sFF`N+Kqs67P?6_Esv3yZw z8K%L(>&BY)i#IG2Om^xl4enHj1jTkrYgm$yC=Os^>1;9zlwLiAoG)5Q4S$$VyP!HS z!`d2ftTIfr5xymF z3C}6;`s|!aEj$e+5wmCPRFLo)e?hlNy_zOSqhZdUu34;bklWVBey39oE@t!tPb%WkK)BTa6K)kee4%zJxfq)UUbcGK7{SLy zf$u9G-)U>XN&doQ1Lk-gIemO%dxckul8A7fXuI{H!&5D zL*#uMJe{b;sIR|-0@8ri1UMCmcuf?D|7>k#1RiNx?la(ki1D_*6`~=frfwhqTp@b_ ztP2FU3@c3HB^6$M_yVa7VnA{Z4k=#C>VJQJH-DKe?hdC7w&7%pd(8c*ekU+cVj16D zD%(N@rURcIX-n#VDibL3wCq|1@}iOf0Uh)LZgnC>ZXXXpN(U)g8K2b^QzTN7@g>qm zv+LaJoXAf`<8t=L(SYNPP2J|P%tkqiSEqTUv88e-96qJ;-bPv2v zd7+V{4se7dG@M1?;!{hnn`R0KhGHQL?B90{W5_XNp()+xJ@kt z{HmD5FqD4~lB02u1t(UqpWaQ|p$E1PpuGIw&r6#>++lZ~|(w z&pi5-+ssUB74Wdfobp{1kM+=Vg5g^=@E#LfN!B;hAmTB+vEw`pq~3+MA;lDm;LV09IPp4r&g zJaKZW80+dHV2;2AOq$tuYR$Z7|9DR@wgbo*XHo-!VBii1m;cA#MA7MG8=`DV53P!Z z-9eMI!g`nY4^Ktn`UtrHop{wG3MdO;ukC;LG~C_iZ1LR&J*OJZr0M7J0IwS@$b1&^ zQs9>&q8wq5ff{z`yv?UudlXbeN?|yF^zRjNkyJnW0oOFk>>t>QxNIi1z1$kF;_KBK zX?t;$Q_#t!yNkdjF;N}+Nf0D{_=JjzO6%v-XVazadL z2*-=%_>T(Z)U~#@QbShJ%8R6K07eZYy zwk8yKW{SkHqp-Jh{HxlrAz3-O8u66L@h!BkZKEHs9Fh;C_ne+!P|hypxydLF4(YhN zqETG?h-6!eShgm-lKJco7l*)yxJo6~OPpxsSNb4UcyZmMNbCmh#O<~OtGl49C1eUp zWr7bMJ~)G<-4EY&&u>H7v9YnAGjb2W-&G~w_l6K5>a~`nJKMg)FCA0Lo}fOGoHh0c zJ`nnjyZ=SZh_Zm=9{4kw>gqFJ44#9I9N4abw9T@3*um-Y{3NND!eXINuT1_veEH!3 z&o!_n7mee=qCv=c4PQ-!t_%_7~jtjIdS1R8t;o zy@I;niI@j2Q+pr3wz2kB@bqdZzjmg})>P_Aezf%};eH6{+D>)3*T0P?l9OIgF2Z?` zZZQpmk;XH%cmcT>fVnM&_5n>!SABgw!wwjuHFtG!>#~w5X=!Q60d6eGRv_L)XdW-B zgCghI9k|>TV?XAkxFc2?@T+(uC%oL;aL@=~CBvmAP8y)z7CxSy%-!-JO2pgtmjcLL z@f)LDC!o2^Bq^Cn{O}R0Tj(xLhZ+bT(9j^g%WD=!x2CL|fqVYL7ymL634I%4wgOG> zrxo|^>%~S#=WRs5%F6g)YvLBsxF`-(9k0M7`E7@Jd&)`Us-&gVWzbjUa5yG!eo$w8 zAUjK~8kdHr$y!at{=AO#1(9?ieK?Uw*k0@tKxZ)qL)cfP|J4B?E?4@wCmf| z`+<3qDD5;@M1#qKetNc=?HGL5U57Wugs($W!E^?fkWd!HF=T1x9q~1ulf4HgyM?de z*vtabK?Il@(U&~h`MxB1Soiab76sO4-yuN%)7J`&g8KKLzDIj!r^DKr>NiFXjyBy= z%^xAxjiWvxqJTST#RJmo+=yjH(5eLjrzFwWKLtB(yiAsaQ?6;9lsZr#FbfDoI#hV- zri9+KYm^z?a9kR@82IA~PaDyg6yZZ0yGz$W@i|V_B(dVV#uZjKLB5bp;rr^rl?7P} zSbA+Ut+_F4l=2D;7`Pyl%W-|j@9fqJ3wAq%A{ArcUKtx}w&)!7?AA$PA%OdzZF2m4 z^%W=lE%E1>C6(DGb-sxok6TRkW!$i&UlB<+r3x`3$Bt89owm(pmFyqT->c5SMGo4^inW;N-x1v z@Fg@jZ0gXt<5EP6Eo ziSg{>VuexOGj?Ef-xTrOP_oyp**x#romap=&q^ksWeeoub^=Mv^qB%B8Ciz&!5N{3 zah+@bY+Zl84&NXqc=^nqfH=HIn07f) z=5G)bRwY^0yZn|O?v9S?HyxB!q^H5uI%>yuA{-YasdLz!`~j8Er?zYl8H?CVcU!cj zJ-3D(n|9xK8*kr*W}Mx4ief3q7Jm`OMx(~$f&#deQTh1LtXbYPAD9F-1L3vdbH;Tu za65j)pHxy!qR)x>kCIwf}2^6ryvL4kL3viw=aLsn~T z;or~8fHhl4UUBi3eTe)(nNG10Xja65T-JZxaJ+d+HxV{)#3cfAXc4zvR_FCmM4|S0 z^w&2v>cmeFJIEKvRZlM zX4d0XjvIsPL4>Oa^O2gi&#qnQee`)6@XYygU`g1*Nrq2V) zEO=|2uBuD3(9TDXcClUeDn`Xs%Qu_n4qZI8gOJiVs4;6V`&{Xh!SXk=2fp==OHc6= zKap6gK{};i)wh=VT@)^?Q}X2ooWt7m)3Dv)YP_Hh2$^(mj^ZyKwWRnYusS7_W%Qfdx)kG*Y*Wg`kXVcDCV|5m*py&W+lNH%rGCJ zv9z{J*O$Z)J^I!X8n$=OZFeCKbQC6{&U(zghoy)(y*P`EY2p+@dS$|GG87X(hzy?# zQ=*wZ6(Ej*I;y_RjR753-Jvyp#byTE<`is-DLZu!etQwQSIXJzx}howGkN0 zcSqQ1nOvCg4<*mIrL{28OJOSNwbTqw;NTSjp@A+n0#M#jk&zky9$zYF|EbEzF#FnM zLUM9;HXort-vm0eFlatt_{n$&2NQxP_&ktd9Rr`S9RL+(09}b~u>8Dl$^4~7tyD4( z0<6JLH*7lDP+(5u`Vub$BP%4i;#7|D`GgaRt%efs^0g=p58h`A-#7dec8Ph zciaa%BX1bucKlP)_9=;^F!LJ!{(Qqvw!8`@)AtP_+%eJykf%Rt zjmY#7T&XaHltY-#yth49K-hz~Zz|Mbn1~9$X#Q}6MpiyPt^ZbfzM!VeHC1vE#0+L_e0lV z=0{#b$pCp!wocVuz1IbKBCTx%Gkin_hr8AUtbS}RYC*vs0!lwT2NGUY2oL#Bd>FQw zRQZr1+^l;=7AX5wGjBJJC-X(2wzy>$9|@WyuMdP)iY&+#9);vp-FKF|&}DN_wKs z$GAaM_v6)r*G><8FP*SpU01E(s}Btn+|!e&vPODocXv^@#hYhF#+7y2g%|g{n$?4W zfxKP+O5X?%p!7la13lY9zBBtn#dR()i1qHebXNAs-dxUv|1_Gpz}~fmPE_a|mParG zotMCHLV5+6)b~Q7AeAY$o*peWAlUUTrSTn|y|?;Wcgnl>tmzs_si;OcFWcqsLW0YNh$N$O%YJ)6s;q!q zr_a~c3?Ksa=eOtiQW_N3V|yR~$jZt>TMEtjQNc!OT%R3IAy(tK<8__MGkbp;}0Z#p|6-e-?$hh?sv%C87C;z0-d%Ow8%x9n`~W0|nb@(K+wTFXv3HES=vJ?_bIN8YtrXu6H z>pc&qSv`(6<(!@GFQr5FH_$6U#Iz6KjYxsF+dxo^lsKBN7_eL|`QhWo(>aPQDXZ}rMwhl0t2qZTq04<9P05SC{jVM7tLeDZep67_+? zH8gU?-EJhfJeb<3%4+N1SZQO5h%3H2cWcuxi|<_|?^c$*3@kfdzp8A3mq`X`g8Lqa zDbUl6=1NexjXZG|`+F(Z$FUZEJjEH1L#MFSJ{7P&P|@JYMKHny^K48fZ6*4A^XaFu zpG`cbG!VlsVnd$l-+@3q@-(xNC)JUB`8M=?i2)VXjMt2T;&n=Mf2noM_|0o$I{6i} zR){*R#1^%$9gb>rf*9vDEjp82Ax>+R?#YhxS%rD?qG^$|uj7A6+%P0!-1?=+sY9fk zguSOAYNFTKjHYnpUk~%PS88&^L1B5d6~=V8l;*dO*wvY5iZ$`cBxlZiQAR4>%ueT+y{Y;SVpT>KWPkMkZxBAfmN)KLcamkkX2n@guTaLt{!O`0Km6 z1yXlfq<-LF_E&c|TQ;fNcvx2r8dFPE17I$P-5ODVLNmhsLy0#j%@D|o52VX{zaC>? zyKh|v2V4JB7iJAe(=6_smYRPaD zPgc$ccK33BoK1!9(d0RN$?({}k8yKX=A1-0_jU%hll8N(;yQ(|`^{@%UeIY${Q1(| zq?Jf9>$`XcyFHz&(dG%e-tScqCF_41b4W*nqw_WMsDollHT?M(dP_gMdDj!5xaO@- z^l_jU>c-ctg^E`XeWS$gpNxOTo8j)g^+&)7wr2-XLEOboBz|ofo>Cb6%WsZ9_e?%3 zWXcsJp;nc;d`SL8$h(ZkLk~dU8{?X;Lca*2Qg>xkg{7U?((=BNOogCdrp@p~rp?_C ziIhC3KEGXsx(80qzMIq$zsaOEdg91X3#nN6x>H31)+XK9C% zA7=hi&yVj`pfAi%K0jZU2AZjZigLroS<88q^umumhjU@0d%p^3d@Ezh>O_;BcR#kt z)5l$Hy1&`F)WF@RV(IIp@}qic?$+5Q{DQvJfX&e&);j21r$D#Ay{8crp6qH;DRgTL z{B62Pn?MVj{xoN8d2x|#=jegm&rZ0zyA?S0qz_pEUlDa39UNc=Cm8=k?_;=T=x~L? zzsklgGH9FtUHA6JoCOIzy$@S4$Lx%E>h{5A)b`CPbSj&RPKl`Bp?q=!KC#?E>)1YP z!3P%%J~zSkh`-DN-B1sB7tT=}(a+S86xF{|;aVFg&eN%=9Nx zXgUEgrEla_ZB;|KZLKv$6b~PRpxT;s>}`B}e9^)oD@hthvNE3WPO{@z*LkWZFW2M@ZJDh-c>5i#|= z`YR?RBBP_zwKvZ}YgsdA`)2C%qOem@1dPGPXs6MPXpEiu^6$fO4EKUDUzcT{n(k%i z-r3S`wTL3)#1~rnS}Xtqv>1&lJfM-AYYqIE!Kv^W^{jYgBtSM}qOY&->Cn&+A26ND zXaQ)%o6LS)eQaP`QBm@#ZFnu|5eVSPkx)nD;}R_-U*;Bx-@HYY@%>bB`^x;QUsmRl49H_r70 z|5#m(r!OfATei+$^dD}FPR}n)$p#nR57GGBA-`JW%|kwTy1$TDRqc5KDHOb_k-AKg z^1U^ba2{Vx=NxVVs5}<8pYHWju_T(X>Oi?>@yHdJehh!j$nbdqOgx_h=bLM5=X`4` zDIW8Yil5_ z(zkcqfP-cZz1sq5DX%93{$<^eqS44xTM|;zroi(={7{E1^`aD(yVvuABZQUS$ERh4 zx9zk~h#(%*8#Gh_#wZAf{y!sv<60>*4WuRIPLMtDl(vH*y1T`1(rdx&;6EdTb3sNV z4RVEmWJb#4|Ia1(th;j5QeQJ|%+bx( z^t-oZi$z|#xbss|BPGN(=u02m?0Rmv;0H*f5iVZdug9G#PoI90Nl*KD)(Z>AH}7$` z&$EP8A<^Wv4~JR62Bl6=%+7DUzasKxzYb!ei81uu%C{q)6~y%g2BEXJ7L^(hg& zDB2W?fP&&^-s$(iF^ZLU6W%OpUbi8!P(}$B7?p{>?oAgD2nbg9Me?TnV7z_bMC8x3 z+LF^%PtwD(ekTx(s18OfQc+xxSW>_<>Od*hVl4 z3qRjrRON`Bwo}hBKgNJiiK2ADW1^0xayK74O#EROQCs*+-7z6YmG+U%Iy9{sob3Nq3Nf7Qb16 z&C30=XX;4I34&I*t!V~`>-5EzU@g$*{!~ecQS2FmhCLkvbQoou$R3rDALZwlP=$F%ZEn|{<$^QKp zC8DJp%9USve;mX9aKv$Wq>9)Qne@oQi)g~Lhc^dr3BJcf+vYnbN?-Q62Z=hpx*wRF z0kui0(tE5!4Hw#*8f+#$=jmfvS*)-Ld1-@l$mrzv?PR?xh~LSI-NB*zDk>7c$rbb1 z732Qf3F^$ti$@209cA}&H>8d$Z16H3_^`9Px&`$+y&p-M&hTpcrkb}31aX~4o(Io! zl+lIya1~8m7~L&Y`kvRvrw{6zq^`4f7cV2a78k%GOuuHV)@7~C3L5a$iNglWp4iWTYqA@7FmH51=_S`V+6M#x7$#yUxQqg&-_x(QKA(b^Su4J6y=@F%2;(xvfv~5aI#VFJ zM?vr3LnI0x5AVCm`LLq$J;&~^gFo*}+ND82jUq~jdv*U1{?`oD2p0g<9(X< z{!M1V6PyZuKE$!>&Rc8nhzqVKG;!-y!B$0;Kr=13(2nD%%1iW5{PD%5t!?X6akJ zv9YVibh6K9eEbp)?zPi(3k#?9_1mAk!){RX3}OBHu)D)iSMbZ_sJ9sm`iav_$3f#- zdgnQkdRJkoVzhDnc~vx2WAGICw)NM0xD@DD-Eds`UBC4O;+{JS5R;F&J%xD-rGT)( zfYmV=G0|I4(cIfj|JU9J?|N;j>MIB&nV7sq96_jeV`Ed~4zPY3w8>A+m+20d+;i7j zos&00c|_u%Dh@vb)&%$*7Df1=0T~?quE%lfE_L|c#}gnzdGNQQ46i$8$c~9g-_{P| z`K%%6#;G`iG}#vzoKZ2^Qwn-r3BeM*1-||5lKpz%HlnXhJ&u%wzIY<*Do9<^$n71A zsc-4;$5l*vJ>=UK+E(MYBhnT75>>aUtB7% z-aX;>u=n@sGWU*Oz_H21<9P>Ir`S;`9qeI3$47eDVdyRQ^+jBu`yFXmn{ZYJbl=sf zVu%!WuiL|tdt=eo8@6ujp3pHy0H!@cN&(o;-VxjG{(-qRpRxpUM2vq`Z^zdJ2U(0w zIUo|xYdDbx_Psj06fh11;gu@MN>vA+x0Ay& zu%_3jC7X&;dasb4$(As{dS^ zAf1K(CEOm4y$IOOZ0i2r)zN*9Vn>|=yunQ%k? z4}vuFC;&$kmgD=nc3scg{UEh07E@V8#XN~_Uk*2&+Q*{y6gVc@#CT{T7`3w$UA;Cz z0Y!R{1ss5R%*`;Ux1?lcKPKq$S{4P4z)|*>IoGL(JtS_oFqqI+_6{gvuQqJJsFSazys1f_!+Po zj8FKh&IF;rVU|uZM6ItkpC&`=28hbH4-&qbW*}s4&#rMa1?Qy3)E)dww481bpS;H^ zn>8?qmW5;zr3QX4t%3=LRd?LIthzc{(CQ+hP{^M|B)MP#AB)m|HG8NmZuL`*dHl#C z-MtAnR3;f?Y!@(E_9;+Hg(X&j=uaSY_e!J3mNPGS~N}uK~ZCSf%4Tl(1^x{gdRtKGLZl~B! z_jB4#Mp$lpFWZ{hb5k_u--olp3EsaLs71%bgX+k}WRF1}v+dR!-dRb2cT9^|?8PK} zZ9z45?gghAGb-Ov;m-oT2W#(9+Blh0sBA8-G+B}%D=Vo1c4}43hAD~T{C|AMaY|Q-Xer{O6~XZ|4*~KG7w5 zrk!p-fPAlH6!fQ%0AjF{8Wf994ic6sc8+=&`@kOu)T|Y+PnXjly!g{ZJP0={MAkU- z4sVHv_{}r?DmZFHmtP&hs;fi}?*sLWxlNUjvNichKjv3m7O)gMJD4ilQ*AFEJ+`b> zrxi=`oh2sphfx$ls*KF?eH2(SxKA+o|6l?jYfPEw@S>F1EGq73*mTVhQQS-CJ=({t z?qA(il7qR;1}sw;K@mU)i@vYUAElyX78bsF+!-Pv$883T zY|Xzj^gKK~ewumj7Xt0?gwU;Z9-r9?M4HeY*ePib zC_Xf4bRO_o@-%m|zn!MKHvN3gg8$W!_BxW^>($)=D@1PF$PE0%^kJ@c6X$VRr_IHl zF>)JsedEZ5gBYUn3(Eh`QYnsFT{1g;USE3Jc*>@t_1;#$oLdr3uf8ZCFjnmEu9c?^ z7xW1Hv=oZ$ZJ|67jFE(L5Z-`T%KRjGU(86HnUDMXme8}6Z&HDfqcSNCJ2}Euh#CEW zM1fmvcK17sTz|IN?N~eO*NZXJNL1oY)|XCAW%m)Vyu-?9paUkMp!f)+z}L^6qr~xP z^3N#owP`s%DUZ0!OF0M|38HPby;k`AUUC1(F{#fg0mhPBiQhJkScy^MVQ3(fdpZ1B z1~m8+w&Y3zXS@`@cU4{%R$b|x#!eO|-R_1t5m7o`$Vj~M_-xrJ?tyLl)g@FIF_Lxe zb&b&>J*;1B*o|R=$yf@~&U$vLAA0WhMe5vt<Tmq(rPSiSyziFa;=i|a;7%##9pw`kRk_2nvsqmKt4psy>x%EBbJE#byt z@4|G!Whq?mQTY=ykd6ftO46vmGT1pkFn>W7)J^}MXSL;wMZCfneK$za} z$M?&MuWp+xYzVY;x&Xk)tL}?Q9@nhOA zT0QUg&R%T7U9V!8qh!)u$5g*Jm`@#x80S5ch)hfjnwT)416*J)d8=AY6wTts8-C-v1X}xdZ7-jLH-m*4}@;)>(+VcA7>5c}X56+RVj?WZ5b9j)!jWRtU1N z_|gD-txQ7%wr^A6+7T?IcQuf4v4!y`3k-)(I1GX~VkoHjP)@fju+Z^rzgsk24&*sh z?@nt?S8?%yITuhJx|f{=ZJ5sHr7Z}PGEIj?sWYNz9A&&dBWG|p&O9E5wlUPy)O6oZ z`vwd|D#4bg;pnmP{p|6ns8Wy*pEu|ClYR|DJLT$hi|%66C~ka1?EP}MRMC}vsfA-4 z;F(<`&jE=TE|Z>nTzf=L#ggD~Kx_J6?h-vs#hgy?KL{oyjrbo}6QG;KGgla#0@UuA Tjr~3l_@^ZIRJKUQ#OMD3IO|(& delta 50077 zcmXtf1yogCxa~f4N{4hvcXx__fPi#^gdiX(9sAIwpi5H|lsY z)dmXE>Ue~2@qZ%qR<}ugCqP7U!B?-AI6B){RngzyZy7c@GVnR5na}x^JF&&ao$Oqt zXL=N~d#;Fd3c4Khi$~zD-_Dx@m+1oUmP?Tq8eI`f4CZw3s|llyuUBB|PZ}}GB(mWp z@AYWl@wnW?Y-YT_>F^PPVRxzqEcOiuyB&_ZY#Tdxg9RBsWSLz~xqkqB$gE%Bd3^}7 zXyHHF?P2HI(gsTC&$%=C+;&c_eTXfPE1I4@=EB>}L92GOeKur39fr&-#09T9^>9mX zW@;dxju!kdmMe*lj&28FDJm+?qrq@%3jvPLFC3WQ6QZUWM#UH#_x~KCx6Jt%35!g9ySwA z&7FqR!Ab%Wu0}T^YB3)jzGm<#pEFH(ln9OkAATb#iL0%hr4aT^ui6Ihdu*(3NN6Y{ z0}~VVK!3mM%R}33n2j`+v;ftQxHvg;i%q6zYAzKWWQSx4y%kMS1(%}LMEf#Z4c4Z}goQAp*=)Bqa>c?m8YYCoFV@lB&5e^vly4AO- zlS)NlF3f5*JSX{ls+YN5`X6k8e{*@5L%Fk_E|*7Q0PvCO`HQABpTfW5KoH0#cRSt= zFJ~qkq71z>rGEKSCq|k_=9>;GEvSaJ8IkNPByGpY`?i zJ)K=#`2C?Gy=GJJ8p7PnmpZ!|Bv<$h`Ul+e;n7fLbm!YG=gk!>^TB?J+q~C!&r1~L z=Q|?H9$MC|kyqAgc@XeY0D;>y=q%%P5%0Dgg=TU?#_K4Mt%!f`H}yve$zHYN;LO6Y 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%0Abf^`#uJA1pLmFchyd0_uf&kC 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 diff --git a/source/blender/include/BIF_resources.h b/source/blender/include/BIF_resources.h index 5099c253c79..b6a9882309d 100644 --- a/source/blender/include/BIF_resources.h +++ b/source/blender/include/BIF_resources.h @@ -266,8 +266,8 @@ typedef enum { ICON_WINDOW_WINDOW, ICON_PANEL_CLOSE, ICON_PHYSICS, - ICON_BLANK36, - ICON_BLANK37, + ICON_LAYER_USED, + ICON_LAYER_ACTIVE, ICON_BLANK38, ICON_BLENDER, diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h index 135272b9ac2..b30a7162b93 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -86,7 +86,8 @@ typedef struct View3D { float winmat1[4][4]; // persp(1) storage, for swap matrices float viewmat1[4][4]; - float viewquat[4], dist, zfac, pad0; /* zfac is initgrabz() result */ + float viewquat[4], dist, zfac; /* zfac is initgrabz() result */ + int lay_used; /* used while drawing */ short persp; short view; diff --git a/source/blender/src/blenderbuttons.c b/source/blender/src/blenderbuttons.c index 6b11dfb4baf..f29397b2156 100644 --- a/source/blender/src/blenderbuttons.c +++ b/source/blender/src/blenderbuttons.c @@ -1,2134 +1,2139 @@ /* DataToC output of file */ -int datatoc_blenderbuttons_size= 68088; +int datatoc_blenderbuttons_size= 68242; char datatoc_blenderbuttons[]= { -137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 2, 0, 0, 0, 1, 0, - 8, 6, 0, 0, 0,197,144,206,103, 0, 0, 0, 6, 98, 75, 71, 68, 0,255, 0,255, 0,255,160,189,167,147, 0, 0, 0, 9,112, - 72, 89,115, 0, 0, 11, 19, 0, 0, 11, 19, 1, 0,154,156, 24, 0, 0, 0, 7,116, 73, 77, 69, 7,216, 9, 1, 11, 50, 54,169, -138, 31,255, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236,125,121, 92, 84, 85,255,255,251,220,217,217, 23, 1, 21,133,193,125, 95, -201, 37, 55, 40, 49, 51,205, 52,192,212, 36,219,196,210,180,178,180,111,249, 60,233, 79,159, 12,148,202,212,132,158, 74,179,210, - 18,151,180, 92, 18,116, 80, 83, 82,209, 92,202, 5, 69, 1, 65,145,101, 86,102,187,115,231,222,223, 31, 51,131, 3, 2,179,128, - 73, 61,243,126,113, 95,195, 93,230, 51,231,158,237,253,249,124,206,231,156, 67,250,245,235,199,193, 3, 15, 60,240,192, 3, 15, - 60,248,159, 2,229,201, 2, 15, 60,240,192, 3, 15, 60,248,223,193,153,223,179, 1, 0,196,227, 1,240,192, 3, 15, 60,240,192, - 3,143, 7,192, 3, 15, 60,240,192, 3, 15, 60,240, 40, 0, 30,120,224,129, 7, 30,120,224,129, 71, 1,240,192, 3, 15, 60,240, -192, 3, 15,254, 17,224,219,159,156, 61,123,150,184, 43,168,190, 88, 2,143, 60,143,188,134,144,145,145,193,173, 95,191,254,129, -165,111,234,212,169,220,150, 45, 91,136,167, 60,254,214,242,208, 4,121,240,228,159, 71,222, 63, 89,158,203, 10,192,255, 56,234, -102, 32,105,201,233, 76, 79, 79,199,236,217,179,137,167,216,220, 47,227,184,184,184,154,243,172,172,172,127, 68, 94, 78,124, 42, -185,209,142, 96,215,143, 25,255,232, 58, 35, 9,220, 9,177,161, 19,162, 64,163, 26,251,144,175, 95,220,146,235,162,167,253,122, -208,114, 60, 0,127, 69,101,157, 56,113, 98,204,174, 93,187,100,118,231,177,187,118,237,202,105, 17, 45,146,179,244,157,132,180, -216,118,201, 21, 22, 22, 2, 0,164, 82,233,223,169, 19,113, 90, 59,157, 58,117,170,211,207,110,217,178,197, 21, 69,141,219,186, -117,107,205,201,206,157, 59, 17, 23, 23, 87,235,254,131, 82, 2,242,242,242, 56, 0,136,142,142, 38,205,241,220,174, 31, 51,238, -107,249,133, 71,181, 7, 0,220, 49, 24,192,232,141,150,139, 74, 53, 0, 32, 33, 33, 1,153,153,153, 13,166,111, 96,193, 64,174, -243,237,206, 46,253,248,247,195,191,119,162, 92, 36, 8,124,245, 2, 12,187,118, 66,161,152, 4, 5,128, 1,146,149, 88, 44, 57, -141,246, 98,160,194, 80,128,197,250, 68,151,126, 55, 33, 33, 33, 38, 51, 51, 83, 86,231, 90,108,102,102,102, 78, 11,107, 91,205, - 82,111,255, 38,239,219,236,104, 19, 44, 34, 62, 2,127, 98, 20, 11, 57,163, 82, 79, 85,235,213,172,214,104,250,159,152, 29,231, - 80, 1,176, 18,182,237,179,169, 21,129,219,181,107, 23,150,110, 93, 14,159,246,254,168,190,169,194,251,137,139,101, 45,220,226, -110, 73, 32, 82,169,148, 43, 44, 44, 68, 97, 97, 33,246,239,223,143,217,179,103,183, 84, 37,192,214,128, 72, 70, 70,134, 32, 57, - 57,217,148,154,154,122, 10, 0, 22, 46, 92,248, 80, 99, 95,156, 52,105, 82,205,255, 12, 99, 6,109, 50,130, 54,210,160,105,203, -193, 48, 12, 22, 46, 92,232, 82, 90,236,201,191, 62, 88,149, 1,238, 65,122, 2, 92, 81,126, 30,152,133, 31,224,135,243,215,191, -135, 4,237, 96,198, 49,148,127,113, 6,231, 10,170, 48,249,195, 13, 78,125,189,243,237,206, 78, 18,186, 5,207,252,250,140,195, - 60,145,140, 91,140,160,137, 47,162,244,245, 1,128, 94, 81,115,253,140,254,109,156, 1, 0, 61, 48, 82,146,128,131,129,167, 17, - 0, 96,160, 98,160, 83,117, 38, 51, 51,243,158,139,118, 4, 73, 90, 80, 27,107,142, 62,224,239,240,190,205,138, 97,125,250,145, -103,195,163,248,202,136, 86,188,208,238,225, 20,159,132, 18,157, 74,197,138, 17,102,166,250,183, 51, 63, 55, 97,140,217, 73, 81, -183, 92,248,217,182, 78, 60,179,192, 5,121,105,247, 85, 1,216,181,107,151,108,235,191,222, 69,226,178, 15,100, 77,172, 4,156, -141,248, 1,160, 82, 87, 5, 4, 3,255,119,112, 9,212,215, 21, 88,247,242,234,150, 70,100, 13,117, 60, 15, 58,141, 53, 74,192, -216,177, 99, 81, 88, 88, 8,169, 84,218,226,242, 78, 38,179,244, 27,177,177,177, 28, 0, 42, 35, 35, 35, 60, 57, 57,185, 52, 53, - 53,245,180,179, 66, 24,134, 1, 77,155,106,136,223,158,252,243,242,242, 16, 29, 29,237, 82,162, 18, 19, 19,237,201, 22, 89, 89, - 89,117, 21,128,230,168, 43, 46,151, 67,116,116, 52,153, 58,117, 42, 55,102,204,152,123,238, 29, 56,112,192,230,233,176,121, 61, -156,150,223,156,195, 1,225, 81,237, 81,170, 80, 97,199,236,167, 17, 76,134,161,224,191,111,161,195,164, 14,200,114,129,252,107, - 50,203,234,106, 35,205,224,106, 11,223,122, 12,186,162,106,148, 38, 71, 53,250,220, 5,113, 54,150,246,190,131, 21, 23,222,107, -106,121, 54, 7,233, 54,167, 12, 52,179,172,251,241,190,205,130,164,164, 36, 47, 0, 15, 3,240,177,187,172, 4,112,126,211,166, - 77,114,103,229,124,178,254, 19,138,174, 52, 10,104,163, 65,172,128, 73, 44, 16,240,249,106,131,152, 18, 10,245, 44,207,207,155, -161, 37, 38, 19,191,236,150,241,235, 47, 54, 26,158,123,105,166,217,153,247, 86, 42,149,255,177,253,159,159,159, 95,233,237,237, - 77,105,181, 90,214,254,153, 65,131, 6,125,220,204,196,190,160,169,121,202,119,100,253, 95,186,116, 9,157,125,252,236,189, 1, -238,120, 1,106,200,191, 82, 87,133, 21,143, 46,169,185,241,252,174, 87,129, 80, 96, 82,106, 34,118, 46,220,234, 74, 37,107,172, -115,107,114, 69,189,121,243, 38, 0,160,125,251,246,181,254,135, 11,238,236,102, 84, 68, 72, 67, 74,128,201,196,216,226, 1,154, -197, 10,104,134,188,180, 39,127, 0, 32,201,201,201, 0,112, 43, 35, 35, 35, 48, 57, 57, 89,225, 52,249,155, 76,160,105, 35,140, - 52, 13, 83, 29,242,231, 88,215,138, 33, 49, 49, 17,121,121,121,119, 91, 87, 90, 26,226,227,227,107,206,183,109,219,214,100,101, -199, 78,225,105,114,253,179, 39,254,169, 83,167,162,127,255,254, 54, 5,192, 85,143, 64,179, 84,194,146,235,197,208,238,252, 55, -124, 94, 88,141,240,168,246, 8, 11,150,224,250,206,235, 22,242, 15,240,179, 12, 1, 8,120,206,105,176,205, 52,198,214,229,226, - 53,220,124,127, 57,244,153, 27, 27,247, 16, 72, 36, 48, 24, 12, 40, 40, 40, 64,185,225, 10,186, 32,188,193,103,173,110,240,198, -234, 62,177,181, 19,235,179, 57,110,180, 47, 98,215,174, 57, 55,219, 25,105,132,184,157,174,131,245,189,111,124,124, 60, 71, 8, -177, 13,229, 52,229,125,109,109,153,227,243,249, 77, 42,243,164,164, 36,127, 0,147, 14, 30, 60,248,111,150,101,141,118,117,137, -207,227,241,188,147,146,146, 94,218,180,105,211, 94,135,140,185,104, 1,191,242, 86,133, 88, 32, 16,121, 83,124,226,199,241, 68, - 94, 44,143,199,103, 9, 5,150,240,205, 28,143,103,228,177,196,160,229,153,117,222, 66, 1,249,226,216, 94,195,220,148,153, 44, -138, 29,167, 81,161, 80,168,117, 58, 29, 3, 0, 90,173,150,125,247,221,119,107, 8,255,131, 15, 62,120,163,169,245,125,244,232, -209,179,109,255,103,103,103,167, 55, 71, 27,162, 28, 89,255,203,167,196,195, 80, 81,129,183,122,118,131,253,216,189,211, 86,200, -196,137, 49, 0,106,145,255,196,137, 19, 99, 1,144,137, 19, 39,198,110,152,248,153,197,179,216,181, 85,173,231,157,193,194,117, -249, 88,184, 46, 31,115, 86, 93,194,115,203,254,192,228,255, 59,219,244,142,174,164,196, 41,197,224,175, 34,127,235,152, 63,215, -128, 39, 0, 38,154,198,224, 65,131,154, 67,201,224,182,110,221,138,173, 91,183, 66, 38,147,213, 28, 46, 42, 60,156, 76, 38, 67, -108,108,108, 13,249,219,223, 76, 78, 78, 86, 58,211, 49, 49,140,217, 98,249, 27, 45,174,255,186,228,111, 54,155,161,213,107, 93, -122, 65,155,199,160,174,215, 96,219,182,109,216,182,109, 91, 45,101,192,165,247,205,169,221, 31, 90,207,155,164, 36,218,200,127, -234,212,169, 72, 77, 77,173, 33,127, 1, 95,224, 42,249,219, 58,240,134, 14,167,161, 71, 49,170, 39, 13, 6,151,249, 22, 74,174, - 23,131,155,212,253,110, 38,100,190, 5,126,155, 16, 32, 32,224, 47,213,140,181,149, 5,208,103,110, 4,199,113,184,112,225, 2, - 70,142, 28, 9,137, 68, 82,139,248, 3, 3, 3,161,215,235,161,215,235, 81, 90, 90,138,105,250,121,248, 34,240,245, 6,101, 58, -233,242, 38,117,158,117,149,184,155,203, 88, 33, 13,144,191,211,117,176,238,251,198,199,199,115,219,182,109, 67,102,102, 38, 18, - 18, 18,184,166,190,175,149,252,193, 48,140,219,109, 34, 41, 41, 73, 12,224,229,236,236,236,119,151, 45, 91,118,130, 16, 34,181, - 29, 0,218, 5, 7, 7,123, 29, 58,116,104,125, 82, 82,210,200,198,228,124,150,190,158,199, 35, 2, 17,205,112,126, 70,163, 41, -212,204,178,237,204, 44, 27,101, 38, 36, 2, 60, 94, 48, 33, 36, 0,132,231,199,114, 8,226,104, 54, 64,173, 55,121,135,250, 49, - 60,106,144,198,169, 50,210,233,116, 76, 93,171,191,165,131,106,140,184,187,116,233,130,206, 62,126,208,149,221,198,227,253, 7, -184, 76,208, 54, 37, 98,233,214,229, 0, 80, 67,254, 54, 47,194,174, 93,187,114,108, 74, 64,137,250, 22, 6, 44, 28,226,146,146, -161,213,155,161,213,155,113,187,202,136,210, 10, 3,110,222, 49,184, 69,124,182,198,226,136,252, 31, 20, 26, 81, 2, 96,160,141, - 48, 24, 12, 77, 17,207,201,100, 50,216,198,200, 67, 66, 66,236,173, 89,184,208,153,212,178,132, 27,113, 37, 58,236,244,104,147, -209, 98,249, 27,105,208,166,218,228,111, 50,153,160,213,106,161, 81,107, 30,116,177,112, 91,183,102,214,126, 37,203, 31,172,215, -221,234,240,236,201,223, 70,252, 20, 69, 65, 44, 22,195,219,199,171, 73, 9,158,248, 84, 50,215,208,225,232,187,251,255,111, 9, -130, 49, 12,204,232,215, 0, 0, 62,185,215,112,174,160,202,210,201,143,126, 13,166, 11, 75,129,202, 42,215, 50,208, 10,119,223, -199, 27,149, 0,128,141, 27, 55, 98,215,174, 93, 88,185,114, 37, 78,158, 60, 9,163,209,136,242,242,114,155, 85, 86,243,124,120, -120, 56,244, 0,120,184,241, 64,234, 75, 35,245,158, 52, 65,105, 36,141,120,240, 92,150,105,239, 9,171, 47, 38,192, 29,242, 7, - 0,119,149,128,164,164,164,214, 86,242,159,245,245,215, 95, 95, 92,188,120,241, 83,155, 55,111, 70,151, 46, 93, 0, 0,145,145, -145, 80,169, 84,162,165, 75,151,158, 62,116,232,208,183, 73, 73, 73,210, 6,115,137,229, 8, 88, 70,108, 54, 51, 65,102,198,220, -206,100, 54,117,226, 81,164,173,144, 79, 9,196, 2,158,158,239, 37, 84,122,251,242,212, 60, 49,199,136,121, 60,111, 62, 67,251, -221, 56,243,187,104, 70,200, 39, 14,211,157,159,159, 95,169,213,106,217,250,220,252,125,251,246,189, 66,211,116,179, 85,164,190, -125,251, 54,155, 44,126, 99,196,253,223, 89, 47,222, 37,219,146,155,120,171,103, 55,172,178, 16,180, 75, 90,171,205,250,183,145, -126,157,223,169, 57, 15,238,221,218,165,196, 87,235,205,208,232, 24,168,181, 12, 84,213, 12,148, 26,198,245, 86, 89, 79,228,191, -189,149,111,255,255,245,235,215,161, 84, 42,255,178, 30, 35, 61, 61, 29, 82,169, 20,182,160,191, 58, 99,253, 92,122,122, 58, 12, -122,125, 83, 20, 0,110,195,134, 13, 40, 41, 45,133,128,199, 67, 88,235,214,181,200,255,209, 71, 31,197,193,131, 7,157,237,156, - 72,108,108,108, 93, 37,160,150, 39,195,217, 88, 5,218, 72,131, 54, 26, 97, 50,209, 96, 24,115, 13,249, 27,141, 70,232,116, 58, - 84, 87, 87, 67,163,113, 93, 1,176, 31, 2,176,193, 93,203,127,107,230, 86,128, 3, 42,173, 68, 99, 29,212, 6,225, 56,139, 18, -144,153,137, 68,139, 5,229, 82, 91,169, 75,254, 2,129, 0, 34,145, 8, 98,177, 24, 98,177,184,201,117,170,161, 33,129,250,230, -197,219, 99,114,250,118,112, 79, 70,225,206,208, 1, 8,198, 48, 72,158, 94, 3,230,118, 5, 16,224, 7,126,213, 22,252,252,201, -105,128,199,115, 41, 45, 77, 29, 10,208,242, 44,125,202,138, 21, 43, 80, 81, 81,129,245,235,215,163,111,223,190, 88,182,108, 25, - 6, 12, 24, 0,189, 94, 95,215, 66,179,169,212,127, 53,241, 59, 75,208,238, 14, 7, 52,164, 72,184, 44,199, 58,139,163,166,109, -184, 59, 52,102, 79,254, 53,100, 99, 85, 2, 92, 28, 14,240, 61,127,254,252,167,175,188,242,202,145,222,189,123,251, 1,192,146, - 37, 75,144,159,159, 15, 0, 24, 50,100, 8,118,236,216,129,225,195,135,123, 79,155, 54,173, 32, 39, 39, 39,251,249,231,159,159, -246,251,239,191,223,147,179, 65,193, 65,236,245,235, 5, 76,142,236,224,190, 78,157, 58,231, 68, 69, 74, 47,242,124, 37,229, 60, - 34,212, 82, 34,129,142, 18,123,105,104, 62,143, 6,103,226,177, 98,147,175,166,180,202,231,228,161,179,131, 90, 5,134,237,112, -168,140,218,141,249,239,220,185,243,185, 73,147, 38,125,109,115,251,171,213,106, 74, 40, 20, 54,185, 34,217,220,254,217,217,217, -247,215, 3, 96,179,242,163, 59,118,134,161,162, 2,218, 18, 11, 9,142,180, 90,135,174,122, 1,174,255,113,237, 30,217,245,157, - 87, 93, 40,115, 41,241, 77, 37,127,123,226,231, 56,206, 54,198, 95, 3,147,201, 84,115, 40,149, 74,104,181, 90,200,229,242,191, -172,231,176,205,243,223,191,127,127, 93, 79, 0,151,158,158,142, 62,125,250,192, 96,208,215,116,116,233,233,233, 46,185,235,215, -125,182, 14, 38,147, 9,237,194,195, 97, 50,155, 27, 34,127, 87, 58, 18, 82,143,235,191,102,234, 98, 99,158,140,123, 20, 0,218, - 84, 67,254,167, 78,158,130, 78,175,135, 70,163,129, 74,165,130, 82,169,172,101,217,185, 10,219, 48, 64, 19,198,253, 81, 85, 89, -133,170,170, 74, 84, 86,201, 81, 89, 85,133,170,170, 42, 84, 85, 90, 44,210,110,221,187, 67,110,253,223, 85,235, 31, 0,250,247, -239,127,215,234,247,246,134,143,143, 47,124,125,124,161,209,104, 98,155, 72,254,110, 15, 7, 20,172,156, 5,193,211,107, 16,140, - 97,224,231,174,129,105,251,107, 64,128, 31,118,191, 26,143,162,221, 55, 48, 33,117, 19,192,255,139,151, 21, 49, 20, 65, 18, 46, -129, 86,171,133,193, 96,128, 78,167, 67,110,110, 46, 62,252,240,195,122, 31,247,242,178,121, 80,174,185, 67,222,238, 90,213,246, -249, 75,156, 60,111,138,146,225,106,155,173, 37, 39, 51, 51,147, 36, 36, 36,216,200,223,109,207, 4,159,207, 39, 12,195,212, 85, - 10,224,106, 44,192,166, 77,155,174, 38, 36, 36,244,221,188,121,243,200,163, 71,143,250,142, 30, 61,250,164,141,252,173, 6, 36, - 68, 34, 17, 87, 84, 84, 36,216,183,111, 95,215,192,192,192, 83,195,134, 13, 43,168, 79,214, 51, 83,158, 97, 59, 71,117,209, 12, - 25, 50, 36,254,226,197, 63, 31, 81,107, 53,173, 57,198,196,128,130,137, 49, 82, 70,163,209,168, 87,163, 76,205, 26, 13,154,210, -226, 50,230,231, 61,123, 83, 90, 5,135,148,211,180,206,161,249, 94,159,245,175, 80, 40,248, 0,224,231,231,215, 98,135, 5,168, -134,172,255,173,255,122,215,162, 53,151,221,174,117,207,213, 88,128,137, 19, 39,198,174,123,121, 53, 0, 75,192,223,174, 93,187, -100, 54,210,183,173, 9, 16,247,205, 83, 0,128, 51,169,191,217,226, 3,254, 42,212, 84,198,146,146,146, 26,107,223, 70,250,118, -133, 11,141, 70, 3,131,193, 96,215,137,252,117,105,156, 61,219, 18,251, 97, 98, 24, 92,188,120, 17,191,159, 57,131,190,125,250, -194, 96, 48, 64,175, 55,192,160,215,227,219,111,190,129,237, 57,103, 26,122, 90, 90, 26,122,116,239, 1,147,201,132,171, 87,175, -130, 49,209, 40, 45, 41,109,214, 60,181,157, 91,215, 44,176,173, 93,224,216, 3, 96, 50,130, 49, 91,220,254, 39, 78,252, 6,173, - 94,139,106,141, 26, 42,149, 10, 10,165, 18, 10,133,188, 73,138,152,205, 19,224,166,245, 15, 0, 56,114,228, 8, 52, 26, 13, 52, - 26,181,245, 83,131, 86,193,193,232,214,189, 59, 46, 95,186,132,195, 71,142,184, 44,211,102,253,243,249, 2,120,121,121,193,199, -199, 7,190, 62, 62,240,241,241,130, 92, 33,143, 77, 78, 78,206,113,170,205, 53,193,213,223, 16,206, 21, 84,193,116, 97, 41,170, -112, 12,100,220, 42,144, 97,255, 70,193,202, 89,120, 50,245,107,136, 5, 20, 32,224, 91, 14,119, 88,199,205,161,128,210,241,159, - 33,104,203,120,232,116, 58, 4, 5, 5, 65,161, 80, 64,161, 80,224,248,241,227,184,125,251,118,141,155,184,230,249,210, 82,188, - 26, 40, 65, 43,175,138,198, 44,224, 88,123, 82, 77, 72, 72,136,177,187, 23, 83,231, 94,172,139,237,130,107,132,192,155, 99, 70, -129,203,150,127,125,239,155,153,153, 73,182,109,219, 70,154,248,190,181,148, 0,119,200,223,134,247,222,123,239,252, 83, 79, 61, - 53,109,197,138, 21, 93,207,157, 59, 55, 76, 34,145,240,158,124,242, 73, 34, 18,137,192,178, 44, 25, 55,110,220,249,249,243,231, -247,233,213,171,215,238,151, 94,122,233,185,151, 94,122,169,193,177,168,228, 57,201,236,159,151,174,158,234,213,187,207,179,167, - 78,158,156,188,123,207, 79, 31,228,157, 60,217,250, 98,254,101,241,213,210, 2,238,219,213, 63, 72, 86,164,173,236,145,189,103, - 79, 90,167,142,157,126,246, 9,243, 62,178,105,211, 38,179,179, 57, 58,122,244,104,156, 58,117,170, 95,122,122,250, 82,131,193, - 32, 88,182,108,217, 71,187,119,239,158, 90, 90, 90,250,151, 19,135, 83,101,212,208,141,224, 27,133,144, 3, 53,214,191, 13, 35, - 67, 66,176, 10,151,157,183, 58,172, 46,254,203,167, 47, 34,160,107, 43,196,125,243, 20,118,205,248, 81,102,211,222,108,228,111, -179,254, 93,153,101,176, 99, 69,191,230, 97, 88, 66,112,233,210, 37,216, 42,107, 93,247,178, 64, 32,128, 64, 32, 64, 69, 69, 5, -198,141, 27,247, 32,202,137, 72,165, 82, 46, 61, 61, 29,131, 6, 13,130,193,104,132,222,160,135,193, 26,220,164, 55, 88,134, 1, -214,174, 93,139,185,115,231, 58,234, 76,184,212,212, 84,152,205,102,156, 62,125, 6, 2,190,197,109,219,185,115,103,220, 40, 44, - 68,105,105, 41,182,108,249, 30, 83,167, 62, 3, 0, 92, 29, 79, 64,131, 29, 80, 70, 70,134, 16, 0,147,156,156,204,214,103, 1, -185, 50, 85,209,102,249,231,230,230, 66, 91,173,171, 81,192,212, 26, 53,212,106, 21,212,106,247,134, 0,236,173,255,169, 83,167, -214,120, 0, 92, 85, 4,166, 78,157, 90,235, 60, 74, 42, 69,183,238,150,160,184,203,151, 46,225,134,213,227, 49,117,234, 84,151, -163,246,135, 62, 60, 20, 34,161, 8, 18,137, 4, 98,177, 24, 34,145, 8,101,101,101, 78,147,191,157,181,223,172, 21,112,242,135, - 27,176, 3,192,216, 21, 79,128,203,124, 11, 36, 49, 13,231, 10,170, 64,130, 2,113,173, 68,109,177,254, 93, 28, 2,176,107,127, -196,166, 8,216,159, 59,132, 94, 15,240, 44,198,222, 93,247,190,133,232, 77, 38, 19,190,248,226, 11,140, 28,121, 55, 46,236,224, -204,112,160, 92,135,174,123, 21,232, 23, 18, 89,175,200,122,162,220,237,135, 60,101, 14,158,117,150,176, 73, 19, 60, 10,141,121, - 35, 92, 86, 36,238,247,251, 90,149,128, 38,207, 2, 88,177, 98,197,150,121,243,230,133,156, 61,127, 62, 81,175,215,247,145,201, - 14, 73, 68, 98, 17,159, 34, 20, 14, 29, 58,228,219,163, 71,143, 77, 9, 9, 9,255,158, 60,121,178, 67,107, 61,231,208, 1,118, -194, 83, 19, 14,247,237,219,127, 33,205, 24,199, 94,203,191,250, 1, 91, 88,192, 0,224,196,160, 76,189, 59,117,205, 12, 13, 13, -217,203,227, 11,191,253,207,226, 20,250,147,101, 31, 59, 44,165, 65,131, 6,125, 60,122,244,104, 0, 64, 69, 69, 5,178,179,179, -253,190,250,234,171, 15, 0,224,212,169, 83,131,122,246,236,185,255,111,161, 0,216, 22,254,121,244,219,205,142, 44,123, 87,166, - 4,146,157, 11,183,114, 3, 22, 14, 65,112,239,214, 53,164, 95,227, 78,189, 80,134, 51,169,191,185,234,182,106,174, 57,169, 4, - 0,215,189,123,119, 92,184,112,161, 22,177, 40,149,202, 2, 0, 29, 93,212,230,239,167, 39,224,158,223,252,246,155,111, 97, 48, - 24, 96,164,141,160,105, 26,169,169,169,141, 45,146,195,165,166,166,214,156,176,172, 25, 98,137, 15,244,122, 3, 46, 93,188, 8, -190, 64, 0, 19, 77,195,203,219, 11, 91,182,108, 1,143,199, 67, 98, 98, 34, 30,125,244, 81,174,170,170,225, 0,175,212,212,212, -253,201,201,201,116, 70, 70, 70,168, 45,111,234,172, 3,224,146,107,115,225,194,133, 56,118,236, 24,170,171,171, 81,173,213, 66, -163, 86, 91,201, 95, 13,141, 90,131,106, 77, 53,180,118, 29,190, 51,121, 23, 29, 29,205,229,229,229,213, 88,255,245, 77, 3,116, -118, 17, 32,235, 92,252, 90,101, 97, 35,125,219,216,163, 43,171, 20,218, 86,248, 3, 0, 31, 47, 31,136, 37, 98,104, 52,154, 88, -219,208,142, 27,228,127, 95,230,107,219,148,128, 73, 43,190, 2,183, 29,104, 53, 51, 3, 57,175,199, 99,120,202,119,128, 64, 0, -111,113,211,198, 57,235, 42, 2, 0, 48,245,216, 84, 7,223,186,131,222,251,189, 80,246,147, 14,138,229,119,175,154, 76, 38,140, - 24, 49, 2, 0, 16, 30, 40,193,175, 25,237,177,242,195,155,248,236,140,222,145, 69,108, 63, 45, 14, 13,253,111,247,108,142, 27, -125, 86,115,205,173,111,142, 49,255,251,249,190, 53, 74, 64,115,212,191, 79, 63,253,244,211,231,103, 62,191,239,161,129,209,131, - 52,106,117, 16, 99,102,140, 97, 97, 97, 21,225,225,225,101,106,181,250,220,228,201,147,157,238, 20,126,250,241, 39, 22,192,150, -103,167,191,152, 59,108,248,240, 31, 37, 18,137, 63, 1,199, 18, 66,192,178,156, 74,175, 85,200,174,156, 47,214,120,139,132, 78, -245,243, 54,242, 7, 44,129,212,117, 3,245, 62,252,240,195,127,255, 45, 20, 0, 43,169, 59, 44,176, 93,187,118,185, 92, 89,207, -164,254,198, 1,128, 77, 17,176, 35,254,230, 36,116,183, 27, 82,239,222,189,113,234,212, 41, 84, 84,212,184, 8, 59, 2,128,141, -252,102,204,152,241,160,203,171, 86, 30,165,167,167,115,207,206,120, 22,107,215,174,179,142,153, 51, 88,184,112, 97,163,211,151, - 92, 92, 65,207, 98, 57, 29, 60,232,104,179,137,238,169,169,169, 87,147,147,147,203, 51, 50, 50,120,201,201,201, 53, 1,129,214, -105,129, 78,119,116, 54,139,121,216,176, 97,205,158,119,209,209,209,156,189, 21,111, 31, 3,224,198, 10,128, 4, 0,183,101,203, -150,123,172,124,171,135,192,229,250,188,101,203, 22,226,170,199,192, 25, 52,230,250,119, 85, 89,152,252,225, 6,192,110,225,159, - 81,239,222,157,142,172,109,174,130,178,243, 0, 56, 90, 9,176,116, 88, 41, 74, 1, 12, 88, 25,136,229,167,187, 32, 4, 64, 69, -129, 22,157, 58,117,178,144,198,242, 64, 60,246, 80, 8,162, 30,203,119,214, 34,118,122,120,211,250, 44,113,183,191,105,166, 62, -175, 73,178,254,162,247,109, 54,108,216,184,225, 42,128,171,205, 37,239,219,239,190, 44, 68, 51, 68,133, 54,103, 96,158, 21, 11, -254,138,252,252,171, 55, 3, 34, 19, 39, 78,140,217,149,218, 34,247, 2, 32, 0,184,135, 30,122, 8,123,247,238, 53, 88, 73,159, - 5,224,117,159, 60, 15, 77,134, 45, 72,112,238,220, 57,156,213,242,127, 32,105, 91,184,112, 97,100,125,110, 73,187,105,132,174, - 88, 59,228, 62,151,113, 77,122,154,186,236,111, 67,171,242,185, 74,226,142,214,246,111, 14, 52,101, 72, 96,209,162, 69,184,126, -253,122,179,165,197,153,229,125, 93,197,153,183, 21, 56, 3, 75, 96,232,200, 4, 9,126, 57,209, 5, 97, 94, 62,248, 51,239, 14, -186, 58, 73,254, 78,212,191,150,186, 28, 46,185, 79,223,245, 44,207,238, 28,218, 54,179,188,180,191, 42,225,127,249,110,128,117, - 61, 12,110,120, 18,238,187, 18, 48,110,220, 56,241,223,172, 2,186,101,217, 55,215,111,103,100,100,216, 86,168, 97,146,147,147, -155, 58,149,201,131,230, 39,255, 38,149, 69, 74, 74, 74,179,148,101, 70, 70, 6, 63,121,120,242,125,175, 23, 71, 50,245, 56,146, -153,223,226,219,172,167,102,122,240,192, 43,161,187,251, 8,123,224,129, 7, 30,120,224,129, 7,127, 95, 80,158, 44,240,192, 3, - 15, 60,240,192, 3,143, 2,224,129, 7, 30,120,224,129, 7, 30,120, 20, 0, 15, 60,240,192, 3, 15, 60,240,192,163, 0,120,224, -129, 7, 30,120,224,129, 7,255, 8,212,154, 5,112,246,236, 89,183, 35, 83,235, 11, 38,244,200,243,200,243,200,243,200,115, 82, - 94,163,211, 68, 91,128, 60, 79,249,122,228,213,194, 43,175,188,210, 14,128, 2,128,208,186,213,121,139, 74,159,199, 3,224,129, - 7, 30,192,223,223,159,242,247,247, 39,254,254,254, 2, 0,188,150,150, 62,219,190,243,118,251,207, 55, 21,245,173,143,239, 65, - 11,194, 19, 79, 60, 17,243, 15,120, 13,219,218, 87,146,191,235, 11,120, 20,128,127, 56,154,176,221,186,203,136,139,139,139,177, -118,186, 53,135,245,218, 63, 82, 94, 11, 7,137, 12, 11, 35, 0,160, 82,169, 88,149, 74,197,169, 84, 42, 19, 0,179, 59,194, 94, -126,172,119,201,172,177,189, 39, 2,192,172,177,189,191,121,249,177,222,235, 0, 96,225,164,135,200,194,167,163, 5, 47,143,233, -229,214,154, 34,246, 75,209,102,102,102,214,218,124,167, 41,228,111, 87,239,155,115,173,253,166,202,108, 14,121,220,125, 80,108, -254, 82, 69,233,137, 39,158,136,217,187,119,175,236, 31,208,198, 12,176, 44, 22,119, 95,121,180, 77,176,136,234,220, 58,148, 31, - 33,109, 71,133, 5, 4, 11,189, 69,130,102,251, 61, 62,254, 25,160,172, 90,152,222, 90, 32, 30,216, 41, 0, 78,236,173, 98, 4, - 32,106,234, 79,101,101,101, 33, 45, 45,173,214,242,127, 11, 22, 44,176, 53,116,226,142, 60,246,135,192,218, 5, 61, 37,171,165, -200,107,241, 69, 31,229, 45,225,162, 58, 72, 1, 0,101, 52, 51,189,181,144,255,157,237,230,101,117,181,168,172,178,146,118, 70, -208, 75, 99,122,229,155,205, 92,248,195, 67, 91,249,117,237, 58,236,128, 72, 68, 21,205, 73, 25,244,159,255,146, 11,184,163,210, - 61, 33,224,147,159, 0,114, 17, 64, 79, 87, 19, 89,119, 41,218, 38, 46, 55, 91,139,252,237,234,190,187, 75,229, 18, 23,175,223, -119,121, 9, 9, 9,182, 53,250, 29,190, 83, 66, 66, 2,151,153,153, 73, 92,200, 59,210, 12,114,156, 34,127,150,101, 65, 8,193, -200,145, 35,185, 35, 71,142, 16, 23,203, 88, 8,192,212, 28,233, 9, 10, 10,154, 37,151,203, 63,119,243,235,126, 0,148,104,190, - 85,176,107, 97, 88,159,126,212,179,225, 81, 98,101, 68, 43, 97,104,247,112, 62,159,132, 82, 58,149,138, 17, 35,140,166,250,183, -163,159,155, 48,134,110,234,111, 56,171, 73,132, 0,120,220,250,217,210,224, 7,224, 41, 0,233,214, 79,191,102,146,251,125, 75, -179,176,221, 42, 96,202, 97, 17, 15,178, 54,168,208,166,144,205,252,249,243,239, 33,127, 0, 72, 75, 75,139,157, 63,127,190,203, - 86,206,198,215,188,239, 33,107, 0, 96,127, 8,196,198,215,188, 31,168,188,212,212,212, 24,138,162,184,103,158,185,187,164,237, - 43,175,188, 18, 3,128,139,136,136,224,218,181,107,199, 5, 7, 7,115, 79, 63,253,180, 83, 50, 55,164,126, 20,115,156, 26,194, - 45,141,142,175,177,126,215, 45, 93, 23, 51, 15,171,185, 57, 17, 27,184, 25,237,182,114,227,131,247,115,131, 58, 44,115,202, 58, -238,208, 46,172,117, 76, 7, 41,247,218,156, 25,198,229,111,189,200, 45,124, 97, 26, 90, 11,249,223,189, 59,251, 89,172,124,227, -101,110,217,220, 23,216,110,126, 62, 70, 0,104,221, 58,152,111, 45,255,122,113,102,231,211,157,195,195,189, 2,158,153, 18,153, - 54,113, 82,123, 1,203,177,210,144, 86, 34,239,143, 95, 63,145, 54,239,169,126,223, 62,254, 88,155,200,136, 8,239,226,127, 47, -238,237,238, 54,153,246, 27, 69,185,180,105,148, 3,203, 31,205,224, 9,104,113, 30,128,204,204, 76,146,144,144, 80,243,189,132, -132, 4,174,190,161, 19, 43,105, 59,173, 84, 52,148, 14, 59, 57, 77,238,232,236,201,127,193,130, 5, 24, 57,114, 36,247,235,175, -191,186, 35,138,110, 70,227,181, 44, 40, 40,104,146,155,223, 13,183, 26,156, 82, 0, 72, 74, 74,138, 76, 74, 74,218,147,148,148, -148,107,119,236, 76, 74, 74,114,105, 27,229, 79,214,127,194, 79, 93,150,226,247,248,147,147,194, 21, 3,123,118,224,183, 13,239, -168, 54,136, 59, 86,155,245,237,137,159,119, 91, 58,204, 20,198,148,221, 10,248,250,139,141, 66, 23,121,220, 45, 5,160, 61,128, -111, 0,196, 91, 63,219,183, 32,126, 11, 6,176,197,170,156, 28, 7, 48,214,122, 30,220, 12,178,167,192,137,241,210,150,174, 0, - 56,129, 33, 0,174, 0,136,114,199,186,177,185,208, 35, 34, 34, 98,237,173,126, 59,203,191,230,158, 51,238,118,219, 51, 73,195, -133,118, 86,186, 2,212, 20, 69,205,185,237,222,131,144, 7, 0, 39, 78,156,144,137,197, 98,228,230,230,222,163,108, 21, 23, 23, -147,146,146, 18, 50,100,200,144,216, 61,123,246, 56,149,135,173, 79, 92,148,113, 98, 1,250, 84, 8,107, 89,195,132,226,176,174, -248,121,242, 77, 73, 34,145,142,189, 16,203,220, 26,239,208,109, 26,211, 65,202, 69, 8, 37,183,223,124,117,186,177,157,143, 80, -168,186,120,140,120,149,159,199,188, 17,157,209, 54, 64,130,242, 51, 71,201,157,211,199,168, 5,179,102,208, 49, 29,164, 92, 55, - 47, 95,147,181, 67,173, 23,173, 90, 9, 71, 9,133,148,248,248,241,219,243, 79,157,188,213, 61,172, 93, 7, 83, 64,171,118,196, -215, 23, 94, 29,162,188,162,130,130, 68,157, 88,142, 51,254,124,178, 92,251, 0,235, 48,103,111,241,219, 14, 55,149, 0,174,158, -207,186, 71,125,207,253, 85,242,106,148, 0,185,124, 52, 50, 50, 20,104, 10,249, 55,166, 84,212,145,211, 36, 15,192, 19, 79, 60, - 17,179,103,207, 30, 25, 33, 4, 20, 69, 33, 47, 47, 15, 71,143, 30,117, 75,150,217,108, 62,111,245, 0, 52, 71, 60,139, 68, 46, -151,239, 12, 10, 10,122,218,141,239,218, 60,206,154,164,164,164, 94, 0, 14, 28, 60,120,112, 92, 86, 86,214, 16,219,145,157,157, -253,148, 76, 38, 59,148,148,148,228,212,144,199,130, 69, 11,196,149,183, 42,130,245,156, 49,130,227,147,110,156, 72,212,157, 21, - 8,187,179,132,234,204, 18,126, 39,134,199,139,100, 89, 18,174, 37,230, 80, 70, 72, 5,126,113,108,175, 88,252,100,232,125, 85, - 0, 62, 1,112, 16,192, 60,235,231, 39, 77,200,236, 64, 0, 75, 0,236,177, 86,244, 61,214,243, 64, 55,229, 29, 1,176, 23, 64, - 50,128,245, 0,222,176,202, 60,210,196, 74,225,111,253,244,110, 6, 11, 27, 86, 11,107, 73, 99,150,214, 3,196, 67, 0,142, 1, -104,109, 85,158,158,117,229,203, 89, 89, 89, 50,123,203,127,193,130, 5,178,180,180,180,216,180,180,180, 88,123, 37, 32, 45, 45, - 45, 54, 43, 43, 75,230,140, 60,123, 75,157,154,162,192,213,189, 51,112,117,239,140, 90,164,205,254, 16, 8,119,229,217, 44, 77, -119,228,165,167,167,199, 28, 63,126, 28,211,167, 79, 71,113,113, 49,146,147,147, 99,234,123, 70, 44, 22,203,218,180,105,227, 48, -255, 50,210,211, 99,218, 28,255, 3, 37,211,135, 65, 88,172,194,231, 75, 62,142,169,109, 28, 3,233,233, 25, 49, 2, 67,132, 44, -168,141,222, 33,249,207,122,105, 10,253,175,249, 51, 56, 97,209, 25, 97,224,157, 11,228,194,109, 53,194, 67,188,241,112,143, 48, -180, 85, 94,193,117,141, 30,124,150, 67, 0,225, 9,254,239,197,233,220,107,175,188,112, 37,166,131,180, 65,210, 81, 40, 53, 65, -131, 6,249,164,245, 30,242,184,201, 55,168,163,200, 39, 32,148,149,248,120, 27,131, 90, 5, 27, 66,194,219,243, 21,114,141, 72, -173, 98,160, 80, 25, 93,113, 99,199, 56, 67,156, 78,198, 3,220, 99,249,215,167,148,187,160, 4,144,122, 62,235, 30,245, 61,231, -148, 60,110,107,224, 61,135,139,242, 26,202,211, 38,145,118, 93,165, 34, 35, 67,129,230, 34,127,138,162,184,125,251,246,201, 88, -150,197,235,175,191, 14, 66, 8,142, 30, 61, 10,203,214,187, 44,113, 67, 30,104,154,254, 29, 0,211, 12,158, 0, 57, 0,200,229, -242,237, 65, 65, 65,177, 46,126,151, 15, 0, 51,103,206, 20, 1,200,202,206,206,238,178,108,217, 50,166,174, 18, 26, 28, 28,140, - 67,135, 14,197, 36, 37, 37, 57,212,202,120, 68,224, 71, 51, 92, 91,163,209,212,197,204,178,189,204, 44, 59,192, 76, 72, 47,240, -120,237, 9, 33,109, 64,120, 97, 44,135, 8,142,102,219,169,245,166,144, 80, 63, 70, 72, 13,210,220, 55, 5, 32,220,106,241,175, -132,101,156, 99,165,245, 60,220,141,223,154, 1,160,216, 90,153, 22, 1, 8,178,126, 18,235,117, 87,247,218,253, 55,128,107, 0, -214, 1, 16,192, 50,134,205, 0,248,204,122,189, 41,251, 47,143, 4, 80, 1, 96, 84, 51,145,236, 11, 0,222,183,126,182, 52,244, - 4,240, 35,128, 71,173,158,148,158,238, 10,178,145,191, 61,233,219, 43, 1, 46, 87, 78, 43,249,219, 80, 87, 9,112, 71, 94,157, -206,140,184, 42,239,240,225,195,160,105, 26, 3, 7, 14,140,237,214,173, 27, 10, 11, 11,107,222,143,101, 89, 72,165, 82,110,241, -226,197,178,227,199,143, 99,220,184,113, 14, 59, 20, 67,238, 41, 80, 52, 3,229, 64,105,172,177, 91, 48,174,109, 56,124,151,180, - 88, 14,115,164, 27,184,195,139,131,101, 55,142,251, 35,238,249,171,142, 59, 40,138, 87, 93,113, 33,151, 45, 83, 26, 80, 85, 77, -115,241,253, 34, 56,127,137, 16,183,148, 90, 84,168,244, 72,236, 31,193, 81,132,112,191,253,180, 31,170, 35, 39,184, 51, 59,127, - 46,106, 76, 92,238,239,109,231,132,132,250,117,108, 27, 17,197,120, 73,216,142, 35, 31, 79,244,233, 48, 48,121,124,235, 46, 79, -198, 5,181,141,238, 43,175,110, 29,111,162, 77,166,235, 5, 90,167,134,222,172, 4,229, 84,157,200,204,204,148, 57,152, 25, 80, -239, 61, 39, 98, 94,254, 17,179, 3,146,147, 3,145,156,124, 87,185,181, 17,119,115,144,118, 61, 10,140,219,150, 63,199,113, 48, -153,238, 14,217, 15, 31, 62,220,214, 94,220,149,109, 18, 8, 4, 38,150,101,143, 91, 61, 1, 77, 81, 2,106,134, 62,229,114,185, - 44, 40, 40, 40,217,133,239, 22, 38, 38, 38,250, 29, 62,124,120, 69,118,118,118,235,175,191,254,154, 93,188,120, 49,127,243,230, -205,232,210,165, 11, 0, 32, 50, 50, 18, 42,149, 10, 75,151, 46, 53, 31, 58,116, 40, 62, 41, 41,233,213, 70, 37,178,140,191,217, -204, 68,154, 25,115, 79,147,217,212,159, 71,145, 40, 33,159, 18,137, 5, 60, 53,223, 75,120,219,219,151,119,135, 39,230,140, 98, - 30, 47,136,207,208,109,110,156,249,221,119, 70,200, 39,110,199,189, 57, 82, 0, 30,179, 90,135,246, 56,102,189,238, 10,166, 1, -120, 29,150,177,146,247, 1,252, 1,203,252,201, 63,172,231, 82,235,253,105, 78,202,243, 2, 48, 11, 64,146,245,220,104,119,192, -122,125, 22,238,221,202,215, 89, 76, 1,240,149,245,179,169,120, 30,192, 28,107,158,205,177,158,183, 20,116,178,186,176,126, 6, - 48, 23,192,108, 0, 49,240,160, 65,148,150,150,202, 6, 15, 30,140,217,179,103,231, 12, 30, 60, 24, 39, 78,156,192,250,245,235, - 99, 90,183,110, 45,163, 40, 10,133,133,133,164,178,178,146,188,246,218,107,177, 71,142, 28,145,189,244,210, 75,141,146,205,208, - 27,183,100,101,131,187, 35,121,246,236,156, 63,195,204,177, 61, 85, 65,178,140,245, 25, 49, 22,237, 4, 88, 87,248, 60,217, 82, - 25, 79, 70,190, 86, 26,123, 52, 83, 42,139,125,120,101,131,229, 83, 66, 51,171, 62,255,124,115,208,246,243,165, 55, 55,159, 41, - 86,110, 56,126, 93,123,163,204,192, 81, 28, 5,131,206,140,138, 10, 26,121,197, 10,243,174,194, 82,205,158, 91,101,202, 29, 69, - 37,151,143,149,149,143,185,105, 52,125,212,144, 76,191,192,240,118,250,106, 69,219, 30,209,143, 80, 52,137, 28, 89,122,249, 71, -125, 96,144,183,164, 67,247,126, 21, 28, 83,113,158,240,252, 66, 88,150,229,221,185,163,119,198,139, 87,215, 53, 93,159, 27,188, - 86,148,187, 19,227,207,164,174,165,111, 59,238, 7,161,181, 20, 52, 22,148,103,231,206,111, 18,154, 67, 78,117,117,181, 12, 0, -248,124, 62,222,122,235, 45,228,229,229,193,205,113,127,123, 24, 1, 24,141, 70,163,177,180,180, 52, 11, 77, 11, 8,212,212,114, - 7,200,229, 25, 65, 65, 65, 19,156,245, 20, 27, 12,134,254, 11, 23, 46,124,242,149, 87, 94,225,122,247,238, 77, 0, 96,201,146, - 37,200,207,183,236, 70, 57,100,200, 16,176, 44,139,225,195,135, 83,211,166, 77,227, 46, 95,190,188,238,249,231,159,127,222,203, -171,126,106, 98, 89,206,144,115,240,224,182,194,194,235,207,155, 77,230, 48,158, 64, 98,224, 17,177,138, 18, 9, 85,148,216,171, -156, 22,120, 85,130, 18,221,102,197,102,131, 70, 85,213, 74,182,251,236,123,230, 83,191,187, 29,247,230, 72, 1, 24, 3,224, 80, -157,107,135,172,215,157, 5, 15,192,187, 0, 18, 1, 84, 53,240, 76,149,245,254,187,112,110, 92,103, 26,128, 3, 0, 84, 13,220, - 87, 89,239, 79,115, 35, 79, 30,129, 37,134,224, 67,235,231, 35, 77,168, 92,241, 86,175,201, 16,107,122,134, 88,207,227, 93,148, - 19, 8, 32,192,137,195,213,161,148,161, 0,157, 16, 39,240, 0, 0, 32, 0, 73, 68, 65, 84, 78,226,110, 4,112,145,213,211,227, - 86,156, 71, 93,139,191,174, 71,192, 85,176, 63, 4,162,243,184,111,106,206, 59,143,251,166,222, 64, 62, 87,228,213, 33, 19,206, - 21,121,107,215,174,229,242,242,242,112,250,244,105,180,107,215,142,251,229,151, 95,160, 86,171,113,233,210,165,123, 44,218,119, -223,125, 55,167, 71,143, 30,177, 91,183,110,109, 80,222, 23,107,215,114,237,243, 46, 32,244,116, 62,100,237,198,113,189,175, 48, - 50, 74,109,130,249, 82,245, 61,207,190,249,238,139, 57, 17,209,167, 99,139,254,152,210,160,245,124,173,164,228,237, 18,154, 89, - 85, 81,169,151,210,122,115, 96,254, 45,181,207,158,203,165, 85,198,200,190,232, 17, 26, 4, 0,216,115,246, 14,191,160,172,218, - 15, 64, 96, 25,109,232,113,211,104, 74, 40, 40, 45,125,187, 33,153,163,198, 39, 82,221, 70,126,208,155,209,254, 81, 28,209,125, -180, 68, 32, 48,211,215,254,200, 82,150, 22, 95,186, 83, 94,252, 91,177, 90, 94, 10, 80, 20,145,107,104,255, 89,137,253, 29,213, - 27, 82,135, 84,234,115,171,215, 10, 4,180, 62,255, 87, 69,227,255,237, 96,111,245,215,245, 8,184,235, 85, 8, 10,202,110,178, - 28, 0, 24, 57,114, 36,119,248,240, 97,176, 63, 4,128,227, 56,124,252,241,199, 56,114,228,136, 77, 81,115,187, 12, 20, 10,133, -145, 16, 50,226,212,169, 83,134,240,240,240,184, 38,122,117, 2, 0,203,108, 0,235,231, 12, 0,108, 80, 80,144, 51,134,154,106, -247,238,221,165,251,247,239,255,106,243,230,205,228,232,209,163,100,244,232,209,156,141,252, 1,203,118,247, 34,145, 8, 69, 69, - 69,216,183,111, 31, 9, 12, 12,100,134, 13, 27,246, 43,203,214,111,180,119,142,234,114,123,200,144, 33,179, 46, 94,252, 51, 66, -173,213,132,113,140,201, 4, 10, 70,198, 72, 85, 27,141, 70,165, 26,101,183, 88,163,225, 78,105,113,153,241,231, 61,123,215,180, - 10, 14, 41,162,105, 93,181,187,121,201,175,167, 97,216, 10,166,181,245, 56, 92, 71, 81, 56, 12, 96, 1,128,182, 0,202, 28,100, - 62,129, 37,118,224, 56,128, 27, 14, 20,142, 27,214,231,230,161,225, 56, 3, 91,250, 38, 3, 72,113, 32,239,107, 88,134, 24,190, -114,144, 62,251,138, 40,133, 37,206, 97, 32, 0, 53,128,247, 0,156, 6,208, 17, 64,161, 19, 46, 68,123,121,207, 0,120,209, 74, -178,122,107, 90,245,214,243,116, 88,226, 1,190,119, 66,222, 12, 0,175, 56, 89,193, 9, 44,177, 16,223, 56, 72,223, 42, 0,190, -176,196, 58,236,182,166, 77,108,213,164,255, 0, 48,216,234, 17,248, 21,119,227, 53,234, 69, 92, 92, 92,172, 61,209,219, 43, 1, -117, 99, 3,226,226,226, 98,179,178,178, 26,125,129,184,184,184, 88,106,202,221,113,123,246,135, 64, 80, 86, 37,160,238, 88,190, -219,242,166, 40, 56,119,228,157, 61,123, 22, 17, 17, 17,184,124,249,114, 77,157, 25, 54,108, 24,151,155,155,139,241,227,199,223, -235,166,242,242,146,137,197, 98,168,213,234,122,229, 73,207,158,133, 50,162, 13,250, 93, 62, 81, 35,239, 77,191,199, 98,162,114, - 85, 50,106,188,248, 30,197,169, 56,159,134, 72,108,178,212,204,134,149,128,133,104,215,238, 55, 0, 67, 56,112, 60,220,168,120, - 67,199, 48, 96, 12, 22,231,216,197,138, 10,220, 48,208,155,248,132,104, 64,136,169,160,180,116, 91, 99,249,215, 86,218,109, 33, -128,212,252,163,243, 11,197, 97,147, 21,165,101,226,118,101, 37,167,196, 16, 4,117, 42, 44, 50,135, 87,149,221,132, 80, 40, 8, -237, 25,230, 61, 77,169, 49,125, 11,224,166, 35,203,213, 58,247,223,225, 48, 64, 66, 66, 66,108,102,102,102,142,203,236, 94,103, - 8,224, 31, 16,168,219,100,175,128,139,223,231,154, 42,111,212,168,145,156, 76,150, 3,178,205, 18,143,125, 96,177, 47,198, 44, -215, 96,228,200,145,112,113,218,223, 61,176,141,213, 63,252,240,195,186,102, 80,232, 20, 65, 65, 65,211,237,140, 83,163, 92, 46, -223,227,228,119, 25, 0,229,187,118,237,146, 61,245,212, 83,209, 43, 86,172,232, 99, 54,155,137, 68, 34, 65, 92, 92, 28,126,249, -229, 23,176, 44,139,113,227,198,113,243,231,207, 39,253,250,245, 51, 78,158, 60, 57, 50, 33, 33,225, 78,191,126,253,234, 87,192, -230, 36, 51, 49,143,140,217,212,171,119, 31,255, 83, 39, 79,174,252,157,207,239,213, 33,178,195,151,126,193, 33, 37,130, 16, 49, -119,120,223,161, 64,185,162,106, 68,120, 80,200,251, 93,186,116, 57,236, 19,230,189,254,147,101,159,211, 13,201,115, 85, 1,224, - 1,136, 6, 48, 12,192, 50, 0,175, 89, 43,131,119, 29,242,251, 6,150,113,246,127,193, 50, 36,144,215,136,135,225, 33,171,245, -235,140, 59,254,184,213,187, 64, 53, 34, 47, 4, 64,164,149,152, 27,147,121,218,250, 92, 40, 44,227,249, 13,201, 19, 90, 45,231, - 36, 88,166, 17, 62, 3, 32,223, 42, 59,223,122,190, 25,150,113,242, 77,176, 12, 93,208, 14,228, 77, 1,240, 5,128,110, 86, 37, -201, 62,157,183, 97, 9, 90,188,108,125,246, 7, 7,242, 94,135,101,118,131,206,137,252,243, 2,176, 31,192,119, 14,202,227,105, - 0,255,177,126,254,110,151, 62,129,181, 44, 51, 1,172, 1,176,220,122,255,118, 67, 63,152,149,149,149, 3, 0,197,197,197, 50, - 91,180,127, 93,171,191,184,184, 88,102,255,108, 99,176, 61,179,233, 87,186, 38, 58,191,174,149,190,233, 87, 26, 15, 66, 94,110, -110, 46, 70,140, 24,129,203,151, 47,223, 37,113,169, 52,118,235,214,173,178, 14, 29, 58,196,178, 44, 43,139,140,140,228, 88,150, -133, 94,175,199,207, 63,255,140,232,232,232,216,125,251,246,213, 43,175,107,110, 46,190, 15, 14,173,149, 87,221,231,142,129,118, -229, 77,224,209, 80,112, 44, 48, 39,242, 43,174,154,245,129, 92,239, 7,121,126, 16,250,142,216, 29,123,105, 71,227,110,246,107, - 37, 37,219, 1,108,239, 24,209,182, 43,128, 55,140,102, 22,219,206, 23, 98, 68,152,101,184,147,112,156, 70,195, 48,203,202,203, -203,239, 56, 65,166, 43, 57,142,243,206,191, 44,127, 86,121,122,107,171,242,219,114,148,223,209,128,207,175,242,174, 86,112, 80, -170,205, 92,104,136, 48,128,207, 98,146,222,104,254,126,217,235, 15, 7,252,235,147,227, 74, 7, 68,147,227, 68,167, 77, 92,137, -100,191, 7,163,173,158,151,236, 68, 87,191,105,243,134, 57,138,202,183,127,142, 56, 43,143, 36, 42,208, 68,121,247, 88,236,153, -153,153, 24, 56,112, 96, 75,210, 69,184,156, 57, 23, 0, 27,249,159,103,176, 65,102,105, 99, 77, 37,127, 91,221,224,241,120, 33, -124, 62,191,252,248,241,227, 95, 62,252,240,195,238,174,243, 0, 0, 17,114,185,124,157, 85,177,152, 34,151,203,127,176,125, 58, -227, 84, 4, 80, 13,160,114,197,138, 21,125,231,205,155, 87,122,246,252,249, 54,122,189,158,200,100,135, 32, 18,139, 64, 17, 10, -135, 14, 29, 34, 61,122,244,208, 37, 36, 36, 12,158, 60,121,178,195, 54,151,115,232, 0, 51,225,169, 9,107,250,246,237,223,129, -102,140,143, 95,203,191,250, 34, 91, 88,240, 2, 0,136, 65,113,189, 59,117, 61, 21, 26, 26,146,195,227, 11,223,254,207,226,148, -234, 79,150,125,236,118, 70,214,167, 0,188, 97,213,134,198, 3,184, 4,192,167,158,239,237,181, 90,236,241,176,204, 35, 79,106, -196,253,223, 25,150,232,114,103, 20,128, 42,235,243,188, 70,228,197, 0,184,234,164,188,171,214,231,119, 52, 34,111, 22,128,153, - 0, 46, 0,152,111,125, 47,123,217, 50,171,245, 63,199,106, 13,111,180, 90,217, 13,201,155, 97,205,143,126, 86, 47, 66,125,233, - 84, 91,239,219, 60, 1, 27, 27,145,247,181,181, 83,240,114,178,243,250,218, 65,254,125,100,245,108, 28,176, 42, 53,168, 35,251, - 23, 0, 61,172,101,145,111, 85,164, 28,186,118, 87,175, 94,205, 1,144, 53,211, 66, 64,100,230, 26, 45, 55,115,141,182,158,133, -123,220, 10,114,106, 22,121,127,254,249, 39,249,243,207, 63,107, 93,251,238,187,239,114, 0,144, 31,126,248, 1, 0, 72, 81, 81, -237,152,186,134,200, 31, 0,218,255,249, 39, 1,106,203,123,249,131, 5, 22,114,252,208,154,166,186, 33,122, 59, 92,232,133,205, - 92, 33,248, 0,175, 26, 53,228,111,101,245, 59, 98,177,216,169, 69, 68, 56,142, 35,132,144, 37, 11, 19,123,122,133,181,139,156, -192,194,171,115, 73,113, 25,207,100, 80,114,173, 67,125,136,143,183,128, 48, 38, 22, 10, 37,205, 16, 9,145,168, 52, 76,167, 70, - 12,130,134,234,108,221,255, 31,164,139,222,126, 56,162, 33, 98,225,224,222, 44,128,230,144, 87,175,197,222,161, 67, 7,156, 62, -125,186, 69,144, 63,251, 67, 32, 14,156,103, 0, 0, 27,101, 52,190, 63, 78,219,188, 48,164,185,202,199,108, 54, 87, 1,192,128, - 1, 3,154,180, 32,144,141,252,173,168,180,126, 58,187,192,142,208,106,152,157, 1,128, 79, 63,253, 52,252,249,153,207, 47,122, -104, 96,244, 12,141, 90,237,207,152, 25, 83, 88, 88,216,157,240,240,240,171,106,181,122,249,228,201,147,243,157, 77,215, 79, 63, -254,196, 0,120,237,217,233, 47, 14, 31, 54,124,248,120,137, 68,210,138,128, 51, 91,102, 78,112, 85,122,173, 98,221,149,243,197, -183,189, 69,194, 38, 45,124, 87, 87, 1, 48,195, 18,164,230,204, 56,252, 41,235, 97, 70,195,203,139,154, 97,137,168,119,118,190, -166, 12, 64,182, 3,121,187, 96, 9, 90,115, 6,207, 58,145,190,207, 1,124,233,168,239, 7,240,170,221,119, 26,147,247,141,213, - 99,224, 8,133, 86,203,222,153,244,185, 50,223,245,115, 7,242, 30,117, 66,158,205,219,176,209,154, 55,206, 44, 31, 75,226,226, -226, 98,234, 70,253, 91,221,234, 57,238, 52,244,184,184,184, 24,187,149,250, 90,154,188, 22,143,235,165,183,141, 84,187,118, 27, - 95, 89,153, 62,211,118,141, 22, 80,223, 25,116,236,254,178,226, 98,141, 83,153, 70, 8,247,159, 89, 67,200,123,159,255,182,240, -231, 53,161, 59, 79,156,188, 61, 59,196,159,125,146, 10,242, 11,224, 56,128, 16,206,104,100,216, 50, 22,168,164,141,108, 64,233, -109,189, 75,171,147, 89,221,252,178, 58,231, 45, 37, 11, 91,220, 74,128,127, 23, 60,182, 92,115,191,223,145, 5,208, 70, 44, 22, -223, 30, 48, 96,192,163,103,206,156,105,178, 64,185, 92,126, 48, 40, 40,104,166, 92, 46,223,232,130, 2,192, 88, 61,167, 0,128, - 13, 27, 55,164,192, 50, 60,221, 44,248,246,187, 47,127,133,101, 40,246,190,160, 62, 5,192,224,142,214,215, 72, 33, 25, 61,242, -254,177,242,106,193, 74,164,164,206, 53,183, 43,103, 75,151,247,119,128, 92,167,123, 1,240, 50, 1, 8, 97,193,149, 26, 12,244, -230,178,178,138,115,214,142,203, 41,188,247,249,111,220,143, 31,141, 37,227, 95,219,159, 11, 32, 55, 97,112,215, 55,130,130, 68, -139,248, 60,194,221,174, 50, 92,185, 77, 51,155, 36, 2, 74, 44,225,243,120, 38,134, 21,187,146,190,204,204,204, 28,219,242,182, -214, 79,183,148,177,123,166,254,217,185,254,157,152, 22,216, 88,189, 39, 46, 92,255,171,229,221, 55,197,167, 41, 74, 24, 53, 69, - 1, 66, 8,158,156, 56,171,222, 62,100,215,143, 25,205,245,174,101, 0, 72,115,144,191,157, 18,176,209,133,199, 3,173,237, 72, -251,119,237, 31,248,245, 84,196,230,140,152,241,200,251,103,203,243,160,165, 43, 0,114, 57, 39,151,203,103, 53, 85,206, 83,111, -238,231, 0,224,217,145, 61,200,183, 71, 46,126,172,231,230,172,121,109,234,241, 30,180,150, 68, 5, 9,248,173, 64,136,206, 71, -194,175,232,213,205, 47,127,219, 1,215,100, 91, 93,217, 77, 89,111,254,126,145,231,223,197, 3, 64, 90,146,215, 36, 35, 35,157, - 75, 78,158, 77,118,253,152,241, 79,111, 94,225, 86,131,217, 23,150, 61, 1,254,118, 32,238,238, 35,236,129, 7, 30,252, 13, 53, -126, 30,224, 37, 34, 96, 89, 14, 32, 4,213,122, 79,243,247,192,131,255,217,254,192,147, 5, 30,120,240,191, 3,198, 12,168,117, - 78, 47, 59,239,129, 7, 30,252,131, 65,121,178,192, 3, 15, 60,240,192, 3, 15, 60, 10,128, 7, 30,120,224,129, 7, 30,120,224, - 81, 0, 60,240,192, 3, 15, 60,240,192,131,127, 34,106,197, 0,156, 61,123,214,237,104,212,250,130, 9,235,147, 55,254,145,232, -152, 94,125, 58,201,218,180, 11,143,213,232,181,178,195,178,220,216,172, 67,231,114,220,149,215,123,240,152,152,126,125, 6,203, -238,148,150,194, 91,226,141,155, 37, 5,177,121, 39,246,186, 45,175,185,223,119,238, 52, 42,102,200,224, 14, 50,137, 55, 15,124, - 30, 5, 34, 38,120,114,234, 69,226,174,188,228,255,151, 27,243,208,224,135,100,254, 62, 60,128, 15, 36, 12,174,127,142,211,131, -122, 95,143,188, 22, 43,175,209,169,102, 45,253,125, 59, 12,120,154,243, 99, 11,238,107,250,126,127,183,200,237,142,180,255, 7, -145,247, 92,251,184, 85,169,219,242,222,168,188,119,195, 85, 79,125,254, 75,228,241, 81,207, 20, 89, 87,228,197,198,198, 70, 25, - 12, 6, 69,110,110,174,242, 65,190,175,203, 10, 64, 67, 88, 29,131,206, 0, 58,192,178, 78, 64,193,252, 28,220,112,246, 7,198, - 12,239, 16, 67,192, 34, 36, 32, 8,185,135,207,200,222,153, 59, 3,195, 70, 15, 3,163,213,201,122,116, 27, 9,150,133,108,222, -139, 15,199,246,239,223, 7,215,174, 21, 65,165,212, 98,237,198, 35, 57, 13,201, 27, 56,226,153, 24, 14, 4,145,157, 58,200,146, -223, 92,142, 23,158,121, 12,223,252,247, 51, 0, 98,236, 61, 87, 2,138,130,108,245,146,197,200,207,191, 2,169, 52, 18, 34, 9, - 31,183, 74,242, 99,161,171, 63,201,139, 30,235,203, 9,133, 66, 72, 36, 18, 20, 20, 20,160,109,168, 31, 90,241,125,208, 54, 34, - 0,129, 18,127,120, 19, 51, 40,138, 2,199,154,161, 19,241,161,186,163,194,164,255,102, 57, 44,168,212,133,125, 56, 95,137, 10, -126, 1, 66,248,120,243, 33,148, 80,224,243, 0, 74,200, 71,206,207,209,156,137,227, 33,110,194, 9,167, 11,188,247, 83,171, 99, -194,195,195,209,174, 99, 59,153,222, 96, 4, 37,146, 0, 38, 96, 78,218,169, 24,189, 78,139,175,254, 21,147,243, 0, 21,201,150, - 54,143,249,127, 25,174,150,133,211,207, 39,188,179,200, 27,192, 67,173, 37, 94,255, 41, 45, 45,237, 38, 16,139,192,122,121,125, - 8, 96,125,230,135, 41,213, 45, 37, 3,162,122,140,138,185,113,241,112,125,123, 13,252, 35,234,104, 70, 70, 6,249,102,211,166, -203, 34,161, 80,194,178,172,191,183,143,143,207,132, 39,159,244, 2, 64, 39, 39, 39,115, 45, 52,205, 20, 0, 36, 39, 39,179,205, - 32,206,207,223,223,127, 65,215,174, 93, 39,139, 68,162,118, 37, 37, 37, 37,165,165,165, 39,105,154,254, 0, 64,129, 27,242, 2, - 2, 3, 3,151, 63,242,200, 35,143,135,133,133, 73, 79,157, 58,117,231,194,133, 11,199, 13, 6,195, 82, 88, 86,136,117, 26,163, - 70,141, 74,141,136,136,120,219,219,219, 27,190,190,190,167, 15, 28, 56, 16,253,183,241, 0, 52, 64,254, 60,111, 17,255,161, 25, -195, 59,174, 98, 57,206,112,244,202,157, 79, 87,199,168, 14,204,207,193, 69, 71,223,149,223, 62,200, 25,171,229, 48, 85, 43,193, - 55, 83,248,227,226, 21, 60,247,220,252,154,251, 20, 5,252,150,187, 17,173, 34,194,101,108,181, 26, 52, 75,112,232, 80,110,236, -218,141, 71, 26,144, 24,201,157, 62,113, 17,196,203, 15,103, 46, 22,227,220,197,231,241,213,247,191,212,220,101, 89, 96,236,208, -161, 64,117, 25, 0, 95, 20, 92,184, 4, 65,171, 0, 12, 27,210, 75,166,212, 53,162,179, 16, 10, 32, 20,250,245, 25,128,214,222, - 66,180,109, 37,134, 95,112, 16, 2, 69,190, 8, 20,243, 32,224,241, 96, 50,155,161,100, 88,156,170,116,188,220,230,210, 87,219, -115, 18,158, 2,126, 94, 94, 8,105, 21, 12, 63, 63, 47,112,148, 25, 12, 91, 13, 51,204,240,241,241, 66,171,214,237, 80,112,185, - 11,215,177,219, 55,141,118, 74,253,227,215,112,254,190,222,240, 15, 8, 68, 72,171, 96,104,181, 90, 8, 69, 98, 8, 12,150,197, -249,162,164,145, 50,185, 66,137, 71, 94,220, 24, 91, 92,114, 11,138,178, 34, 84,157,203,112,164, 12, 56,221, 73,140,158, 57, 58, - 54,123, 99,118,142, 19,178,238,171, 18, 80, 88, 88,200, 1,128, 84, 42, 37, 45, 69, 94,120,120,248,115, 52, 77,111, 4,128,201, -177,177, 84,198,214,173,238,116,190,150, 53, 82,237, 28, 57, 28,199,129, 16, 82,243,105,187,102,123,206,193, 78,106,174,172, 39, -239, 10,249,247,240, 54, 49,219,125, 3,252,187, 1,128, 80, 34, 6,173, 55,128,213,234, 82,143, 31, 57,188, 36,225,157, 69,221, - 51, 63, 76, 41,118, 36,231,211,119,231,114, 86, 11,139,129,101, 8,146,181,246, 67,245,246, 69,125, 71, 61,142, 81,143, 61,225, - 82, 25,221,184,120, 88,214,169, 87, 76,236,181, 63,114, 92, 87,138, 19,228, 46, 61,158,152,152,136,173, 9,217,141, 62, 19,155, - 93,123, 43,146, 30, 1,150, 87, 45, 55,176,208, 51,150,114,213, 90, 63, 51, 6, 7,160,139,175,160, 81,121,171, 86,173,202,121, -247,245,183, 66, 39, 78,158,228, 99, 48,232,177,250,227,143,168,181,107,215, 26,230,206,157, 27, 14,224, 86,115,183,189, 73,147, - 38,141,222,185,115,103,150,171, 74,212,204,153, 51,185,194,194, 66, 84, 85, 85, 97,197,138, 21,240,245,245, 69, 76, 76, 12,164, - 82, 41, 54,110,220,232,110,187, 27, 57, 96,192,128, 77,111,190,249,230,181,174, 93,187,110,236,223,191,255,165, 59,119,238,180, -203,205,205, 29,240,194, 11, 47,236, 81,171,213,169,176,108, 0,231, 44, 98, 39, 79,158,156,153,146,146, 18,108, 50,153, 32,145, - 72,224,237,237,221, 70,171,213, 62, 61,113,226,196, 9,231,207,159,159, 11,224,191,206, 10,139,136,136,104,187,104,209, 34,228, -229,229,113, 26,141, 38,160,206,109, 30,156, 91, 85,181, 89,112,246,236,217,186, 94, 2,231, 20,128,213, 49,104, 15,203, 14,120, - 60, 0,102,173,145,185,153,123,181,252,147,161,157, 67,231, 63,210,163,205,146,214,254,146,182,171, 81,182, 5,192,149,249, 57, - 13,111, 82, 99,172,150,163,117,167, 71,177,252,237,201,216,104,199, 73,135,143,167, 67,171, 51, 98,220,232,249,120,120,216, 76, - 60,147,248, 8, 36, 18, 17,104, 51, 3,141,142,150, 53, 92,201,138, 0, 26,152, 60,125, 61, 94,126,115,118,205,213,177, 15,199, - 64, 44, 22,225,199, 67,191, 96,239,177, 92,108,218,240, 25, 12,122, 35,132, 60, 62,124,188,132,208, 86,149,196, 42, 75, 80,239, -238, 99, 28,199, 1, 28,107, 57, 40, 22, 28,199,193, 72,139, 44,221,147, 8,224,104, 51,204, 60,192, 12, 51,204, 52, 11,198,220, -184, 2,187,240, 69, 41, 23,232,199,192,207,215, 27,225,237,162,208,173,119, 39,248,250, 72,160,170,174, 64, 89, 69, 25, 20,170, - 59, 48, 25, 8,188,188,188, 16, 18, 50, 12,149,229, 33, 92,171,208,143,234,119,227,143, 92,204, 49,122, 29,244,124, 64, 40, 22, - 66,175, 19,130,214, 9, 97, 16,139,192, 39, 12, 56,240, 96,208, 87, 67,175,211,160, 93,187,182, 50, 33,143, 15, 57,212, 8,165, -167,163,238, 26,243,117,177,114,211, 74,135, 21,232,237,164,183, 27,239, 43, 19, 18,106,237,239,158,144,144, 48, 48, 40, 40, 40, -159, 16, 98,224, 56,142, 31, 24, 24,232, 85, 80, 80, 16,108, 93,221,173,173,187, 21,121,238,220,185, 83,237,126, 35,198,221,213, -226,234,101, 75, 66,184, 57,115,230,196,174, 93,187,214, 37,153,225,225,225,201,131, 6, 13,250, 96,120,191,126, 48,137, 68, 72, - 75, 75, 99,103, 79,153, 18,151,254,195, 15,217, 46,254, 62, 86, 45, 89, 82,115,190,224,253,247,145,182,116,105,163,231,206,136, -173, 67,238,156,117,179, 24,110,244,232, 14, 61, 1, 92, 79, 73,201,212,187, 72,254,185,189,123,246,244,179,181, 25,111,177, 4, -183, 43,202,161, 86, 40, 49, 96,208, 96,175,159,191,218,144,157,240,206,162,158,153, 31,166, 56, 90,155,157,153,247,193, 90,254, -179, 79, 79,224,119,150, 74, 89,171, 18,128,247,211,214,212, 86,162, 23,188, 6, 0,120,247,245,185,110,109, 39,237, 22,249,219, -144, 25,228,194,195,163, 93, 18,237,205, 39, 56,183,244, 69, 16,191, 86, 48, 95, 63, 7,227,245, 63,145, 47,215, 34,122, 95,185, - 83,223,239, 63, 96,192,209, 89,211,146, 34,147, 94,122, 33, 32,243,187,239, 89,169, 84, 74, 45, 79, 73,133,239,146,229,248,241, -199, 31, 75, 51, 50, 50,168,230,242, 2, 76,154, 52, 41,110,231,206,157, 7,118,238,220,105, 59, 31, 99,251,223,129,130, 18,115, -224,192, 1, 89, 81, 81, 17, 58,118,236,136, 17, 35, 70,192,223,223, 31, 74,165, 18,183,110,221,194,141, 27, 55, 48,102,204, 24, -110,204,152, 49,177,111,189,245,150, 43,229, 52,233,145, 71, 30, 89,189,106,213,170, 45,253,251,247, 95, 77, 8,185,101,215,143, -147,248,248,120, 31, 0,185,214,195, 41,121,115,231,206,221, 54,103,206, 28,234,244,233,211, 32,132, 32, 56, 56,184,230,216,183, -111,159,112,200,144, 33,159,221,188,121,243,132, 35, 65,147, 39, 79, 38, 59,118,236,224,138,138,138, 34,242,243,243,113,253,250, -117,162, 82,169, 58, 2,224, 79,156, 56,209,188,107,215, 46,238, 65,146,191,237, 90, 93, 37,128, 95, 15,249, 7, 71, 71, 5, 39, -245,139, 12,154, 78, 8, 17,112, 28,103, 98, 45, 7,109, 54, 25,244, 66,138,109,219,187,181,248,237, 86,126, 29, 59,237, 60,117, -227,251,213, 49,236,209,249, 57, 13,239, 22, 7, 8,209,163,123, 87, 80, 84, 14,242,149, 85, 0, 46, 65, 85,122, 21, 2,177, 8, -187,246,124, 10, 93,165, 25,211,159,127, 3, 44, 11, 60, 57, 97, 40,204,124, 31,135, 47,151,159,127, 9, 44, 11,140,235, 75,172, -188, 18, 9,131,145, 70,252,216, 49, 16, 7, 80,216,180,121, 63, 40, 10,216,246,253, 70,148, 94,255, 51,118,223,150, 85, 57, 13, -109,151,200,114, 0,203,178, 96, 89, 22,102,179, 25, 70, 1, 7, 19, 49,129,166,105,232,188, 12, 0, 43, 6,197,153, 97, 22,114, -168,166, 13,208,170, 85,141,166, 45,196,199, 8, 62, 95,130,224,224, 96,116,234,212, 9, 97,173, 7, 3, 60, 10,102,243,105, 80, -156, 18, 6, 45, 3, 51,171, 69,217, 45, 57, 66,130, 43, 17, 28, 48, 12, 31,174,250, 57,230,251,111,239,149, 37, 49, 48,224,140, -149,128, 65, 4,154, 50, 65, 43,228,163, 90, 34, 0, 95, 32, 4, 88,111, 16, 30, 65,181, 86, 7, 69, 89, 17, 10, 78, 31,131,188, -184, 24, 44,203,130,226,120,110, 85,154,175,214,223, 85,156, 95,120,229, 5,199,253,100,237,213,199, 12,153,153,153,139,222,124, -243,205,217,197,197,197, 20, 33, 36, 36, 35, 35,227,123, 88, 54,119,242,114,183, 34,207, 74, 72, 16,172, 91,183,110,243,157, 59, -119,176,109,219, 54, 68,119,237,202,107,142, 6, 34,149, 74, 73, 98, 98, 98, 12,199,113,178,181,107,215,186,188, 97, 17, 77,211, -233,195,173,117, 74, 40, 20,162, 75,151, 46,216,126,232, 80, 86, 72, 72, 8, 42, 42, 42,156,150,115, 31,183,170, 37, 3, 7, 14, -228,108, 27,196,216,125,254, 57,106,212,168,210, 69,139, 18,252, 83, 82, 28,175, 30,151,240,206, 34,111,111, 19,179,189,119,207, -158,126, 60,138,194,171,207, 78,135,222, 96, 68,218,151, 95,194, 75, 34,129,193, 96,128, 65,175, 71,223,254,253, 58,255,242,221, -119,115,208,240, 86,222, 53,125,206,210, 5,175,177, 0,168,171,133,133, 84, 93,194,175,219, 60,221,121,241,246,221, 70,198,222, -188,124,132,139,123,242,197,216,172,221, 95,186,165, 8,216,239,218,199,109, 13,116,120,221, 17,122, 4,240, 81, 84,109,198,225, -184, 16, 8,230,103, 64, 61, 61, 10,252,192, 80,151,200, 63, 49, 49,177,204,164,213,221,122,233,213,217,237,223,121, 99, 33,214, -110, 72,191, 56,104,192,128, 14,233,107,210,189, 94, 95,248, 22,190, 27, 58, 24,155, 55,111,158, 1,203,174,165, 77, 33,254,152, -157, 59,119,202,108,100,159,145,145, 81, 0,203, 54,237, 7,157, 81, 0, 14, 28, 56, 32, 11, 9, 9, 65,255,254,253, 25,138,162, -248, 22,239, 44, 11,129, 64,128,160,160, 32,180,110,221, 26, 55,110,220,192,129, 3, 7,100, 46,180,185,132,241,227,199,127,180, -106,213,170, 53, 93,187,118, 93, 79, 8, 97, 1,124, 6,224, 49, 0, 71, 8, 33, 75, 97,217, 95,229, 45, 0, 75,157,145,183,106, -238,220, 31,134, 39, 36,144,221,187,119,131,207,231, 67, 38,147,225,220,185,115,232,212,169, 19,150, 45, 91,134, 94,189,122, 97, -246,236,217,252,247,222,123,111,149, 35, 97, 59,118,236,224, 0,192,203,203,235,118, 64, 64, 0,196, 98, 49,132, 66, 97, 53, 0, -198,129,199,238,190,145,255,172, 69, 31,214, 92,251, 60,229,157,122,149,128,250,102, 1, 80,124, 30,197,103, 88, 78,163, 55, 49, -183, 8, 33, 34, 31, 17,175,143,159, 16,209,146,158,163, 58, 34,246,101,160,219, 8,180,241,230, 38,205, 24, 22,245, 78,144,159, - 87,220,234, 24,248, 55,156, 28, 22, 60,158,173,207,246, 3,208, 14,254,225,227,161, 55, 27,176, 62, 99, 3,190,217,188, 13, 99, - 98,135, 1, 0,116, 58,128,199,111, 88,148,196,171, 43, 0,192,108,182, 87,164,202, 0,228,130,226,137,144,244,220,139,136, 79, - 76,196,207,123, 44, 68,230,229, 13,104,171,111, 55,154, 89, 38,240,106,200,223,196,152, 97, 84,155,160, 83,234,160, 52,209,144, -235,104, 40,140, 26, 40, 53,213, 80,148,107, 32, 87, 26, 32,175,110,120, 9,245, 87,159,233,192, 17, 66,192,227, 17, 16, 74, 4, -179,153, 3,163, 43,134, 86,121, 21,165,101, 42,200, 21,213, 80,105,204,144, 43, 12, 40, 41, 41,195,197,203,103,161, 84,157,197, -224, 1, 3, 27,220, 27,157, 7,128,210, 24,160,191,118, 11, 85,127, 92, 66, 85,113, 17,212, 42, 57,212, 42, 57,138, 46,158,198, -241,204,175,144,187,117, 19, 42,174, 93,131,153,102, 45,173,137,247,151, 13, 3, 18,235, 65,199,199,199,119, 95,190,124,249,155, -109,218,180,209,110,219,182,173, 79,102,102,230, 79, 0,250, 91, 11,221,237, 5,167,132, 97, 97, 11, 0, 96, 72,175, 94,152, 51, -103, 78,249,169,203,151,179, 31,234,214, 45,166, 57, 18,191,117,235,214, 28, 0,100,238, 92,139,149, 57,119,238, 92,151,228,154, - 68, 34, 0,192,246,237,219, 17, 26, 26,138,119,230,206,197,130, 5, 11, 16, 18, 18,210, 34,198, 97,109,164,159,145,145, 81,115, - 0,192,225,195,135,195, 1, 76,112, 82,204, 67, 1,129,129,221,120, 20,133,231,227,227,161, 84,169, 81,114,251, 22, 4, 2, 62, -248,124,203, 33, 16, 8, 32,146,120,161,163, 84,250,113,255,209,163,157,178,216,175, 22, 22,226,219,237, 63,213, 28, 54,188,159, -182, 6,239,167,173,193, 94,217, 97,151,223,119,116,194,123, 49, 0,112,243,242,145,156,209, 22,242,151,161,133,172,118,116,254, -235, 79, 80,254,242, 0,140,202,170, 64,143, 0, 62,120,126, 65, 96, 20,229,136,222, 87, 14,111,190,133, 31,120, 14,230,100,221, -184,118,173,234,243,140,255,118,253,250,191, 95,227,211, 47, 63, 43,250,108,213, 71,239,191,249,218,188, 9,203, 63, 88, 14,137, -175, 55, 70, 12, 25,134, 83, 39, 79,125,253,108,210,179,110,191,179,141,252,109,231,187,119,239,198, 67, 15, 61,212, 17,192,116, -103,221,254, 38,147, 9, 3, 6, 12, 96,205,102, 51, 95,165, 82,193,104, 52,194,104, 52,226,242,229,203,144,201,100, 56,118,236, - 24,218,180,105, 3,147,201,132,153, 51,103, 58,147,214,169,137,137,137,159, 76,158, 60,217,111,253,250,245,126,132, 16, 33,128, -195, 0, 84, 0, 6, 0,248,201, 78,241, 60, 8,160,151, 35,121, 59,223,124,243,135, 9,125,251,146,239,226,227, 81,250,251,239, -248,232,163,143,216,159,127,254,249,255,221,188,121, 51, 84, 38,147,189,188,104,209, 34,152, 76, 38, 12, 27, 54, 12,222,222,222, - 67,157,205,191,128,128,128,202,214,173, 91,195,199,199,135,243,246,246,190,105,205,195, 7, 94, 7,237,149,129, 70, 61, 0,243, -115, 80,177, 26, 21,233,191, 93,171,200,138,142, 10,142, 29, 40, 13,178,172, 35, 62,126, 25,126,243, 25,131,131,127,148, 99,104, -207, 64, 60, 34,253, 25,190,191,124,208,127,108, 63,233,244,205, 71, 46,254, 81,159,240, 54,157, 19, 8,199,149,112, 19,159,155, -143, 5,175,125, 6, 64, 14,203,178,201, 70, 68,118, 29, 0,177,136, 15,189,214, 8,208, 22, 5,193,215,215, 23,229,242, 6,247, -203,134, 94,119,133, 0,224, 46,254,246, 37, 40,106,109, 45, 35,129,213,255, 9,131,209, 4,137,143, 24, 16, 90, 20, 4,141, 90, -141,161, 67,135,226,200, 79,223, 53,108,142,176, 52, 88,150, 15,134, 97, 96, 52, 26, 81,205,231,129, 79, 83,192,109, 53, 24, 47, - 6,102, 33, 11, 78,192,131,142,199, 7,163,213, 65,105,108, 56,214,201,215, 71, 11,134, 33, 48,210,102, 40, 85,106,228, 95, 43, - 70,201,237, 74,232,105, 19,212,213,114, 84,107,148, 48,152,105, 16, 62,129, 86,167,130, 90,119, 3, 69,165, 42, 84,105, 26,222, - 75,194,108,167,165, 49, 42, 45, 74,206, 94,194,157, 75, 55,160,214, 92,131, 70,169, 4, 7, 62, 4, 60, 2,142, 8, 64, 81, 22, -175,175, 43,234,230,219, 73,111, 59, 53, 28,224, 0,119, 0,220, 89,188,120,177, 30, 0, 22, 45, 90,116, 42, 37, 37,197,219,154, -116, 3,128, 98,119, 5,175, 91,183,110, 69,124,124, 60, 0, 32, 42, 36, 36,212, 58, 38,206,107,206,198, 97,115,255, 91, 61, 1, - 14,179, 47, 60, 60,124, 52, 77,211, 72, 75, 75,195,211, 79, 63,141,201, 99,198,220,237,232,207,159,183,120,130, 66, 66, 56,103, -227, 2, 22,188,255,126,205,152, 63, 0,188,181,100, 73, 45,207,128,147,110,255, 90,176, 89,255, 54,210,183, 33, 35, 35, 3,201, -201,201,200,206,190,254, 45,128,239, 28,118,104,124,254,127, 12,180, 17, 60, 30, 15,151,175, 23,128,227, 56, 92,204,191, 10,154, - 54,129, 2, 1,159,207, 7, 33, 4,172,217, 12,189, 86,135,171,191,253,118,200,137, 60,164,236, 73,255,217,167, 39,216, 91,252, - 20, 0,156, 56,115, 30,157,163, 34, 93,154,166,156,157,249,159, 26,107, 63,219, 98,249,219,134, 66,184,199, 39,189, 24,187,111, -167,123,222,128,102,129,252, 54,132, 17, 93, 80, 62, 71, 12,209, 35, 83, 97,206,219, 15,179,218, 18,111, 80, 62,231, 97, 68,102, -228,194,204, 54, 94, 85,186,118,238,218,214,203,203,219,235,211, 47,214, 25, 98, 71,141, 18, 14, 30, 58,228,187, 3,123,127,121, -252,242,181,124,128,229, 32, 22,137, 48,108,224, 48,236,217,189, 7, 99,199,142,229,246,239,223,239,116, 87, 80,215,234, 63,112, -224, 0,174, 95,191, 78, 3, 16,158, 60,121,146,158, 61,123,246,180,140,140,140,103, 29,201, 41, 44, 44, 68,199,142, 29, 1,128, - 42, 44, 44,196,185,115,231, 16, 25, 25,137,168,168, 40, 40, 20, 10,228,229,229,161, 67,135, 14, 8, 13, 13, 69,100,100, 36, 10, - 11, 11, 27,175, 40, 20,149,148,152,152,248,193,200,145, 35,125, 78,157, 58,229,199, 48,204, 75, 18,137,100,162, 94,175, 95, 5, -203,214,231,176, 42, 0,107, 96,217,157,143, 70, 35,211,219, 5, 2, 65, 82,230,188,121, 27, 31, 14, 9, 33, 21, 11, 23, 98, 40, -203, 98,205,238,221, 92,169, 78,247, 34,238,110,203,190,241,226,197,139,235, 25,134,225,251,248,248, 32, 60, 60,220,199,100, 50, - 65, 32, 16, 56,122,125,175,210,210,210,174, 55,111,222,132, 86,171, 37, 10,133,162, 59,159,207,143, 99, 24,166,197,238, 56, 86, -223, 16, 64, 24,128,142,147,162, 35, 94,109, 31,236, 61, 29, 38, 61,208, 53, 14,103, 66, 38,225,145,185, 95, 65, 95,169, 4,207, -207, 23,178,213, 73, 24,209,227, 55, 4,157,207, 26, 9, 32,162,161, 31,232,228,215, 14,127,156,223, 97,231,112,208, 2, 48, 89, - 14,147, 17,124,150, 7,202, 74,226, 59,127,116,188,139,200,254, 11, 28,198,246,239, 85,199, 8,229, 3, 16, 0, 2, 49, 24, 98, -134,213, 14,198,148,233,243, 0, 64,150,242,238,220, 6, 27,130,153,229,192,176, 20, 40,134, 1, 69, 27,161,163, 44,117, 71,207, -227,193,155,209, 67,173,231, 64, 4, 4,102,179, 25, 58, 51, 80,174,109,120,183, 83,134,102, 97, 16,240,192,234, 24, 48,172, 10, -154,106, 19,120, 68, 0, 35, 99, 2,205,209, 96, 76, 52, 32,100, 65, 17,128,136, 88,168,244,102,148, 85,232,160, 53, 50,245, 26, -201, 20, 49,215, 12, 26, 17,114,119, 72,215,100,208, 67, 37,151,131, 34, 60,240,249, 28,192,241,193, 35,238,155, 58, 87,138,174, -208, 93, 35,187, 10,157,113,251, 55,164,155,193,110, 15,237,148,148,148, 9, 0,110, 46, 90,180,168,191,191,191,127,128, 74,165, - 42, 74, 73,113,125,135,204,185,115,231,190,176,110,221, 58,180,110,221,218,254,154,114,205,154, 53,217, 15,117,235, 54,250,212, -229,203, 7,155,171, 33,204,157, 59, 55,214,110, 40,160, 49,242,143, 25, 52,104, 80,248,240,126,253, 64,124,125,145,146,146,130, -133, 11, 23, 66, 32, 16,192,164, 80,192,223,223, 31,239,204,157, 91, 19, 23,144,156,152,232, 80, 9,168, 59,198,239, 40, 38,160, -177, 17,133,186,214,191, 3,239,128,195, 42,163,144,203,187,249,248,250,162, 82,161,128,236,196, 9,240, 41, 30,140, 38, 19,116, -122, 61, 88,150,173, 81, 92, 24, 19, 13,218,104,116,102, 72,131, 5, 64, 89,135, 1, 88,187,138,111,176, 94,199,251,105,107,132, - 0,208, 89, 42, 45,191, 81,191,109,225,146,151,170, 93,199,232,152,125, 59,191,116,197,221,220,112, 6,187,224,246,175,229,150, -221,250, 95,244,123,238, 13,136,162,250, 88,250,138,202,219,200,151, 91, 20,127,209,208,241, 40, 54, 51,240, 90,219,248, 80,179, - 90,173, 14, 16, 73,196,232, 20, 21, 37,190, 81,114,179, 77, 85, 69, 21,166, 60, 59, 93,182,247, 96, 22, 86,127,152,182,109,231, -222,221,241,157,163, 58, 35,233,233, 25,200, 61,115, 12, 99,199,140,225,246, 31, 56,224,240,157,237,173,254, 3, 7, 14, 32, 46, - 46,206,166, 44, 10,111,221,186,133,217,179,103, 11, 1,192,153,216,130,170,170, 42,140, 24, 49, 2,102,179, 25,133,133,133, 56, -118,236, 24,122,244,232, 1,127,127,127,180,111,223, 30,253,250,245, 3, 69, 81,160, 40, 10,109,218,180,113, 84, 79,123,244,234, -213,235,147,161, 67,135,242,206,159, 63,239,103, 54,155,203,182,111,223,174,214,235,245, 41, 0,236, 7, 77, 95,125,252,241,199, -139,247,238,221, 27, 69, 8,185,141,134,119,180,237,159, 60,124,248,198,193,124, 62,169,248,224, 3,112, 38, 19,100, 60, 30,155, -171,211,205,132,101, 27,119, 27, 94, 89,188,120, 49,159,162, 40,200,229,114, 92,191,126,189,188, 87,175, 94,161,206,148,115,120, -120,120,144,153,227,160,215,233,112,241,226, 69, 48, 12,211,162,103,158,240,235,144,127,231, 48,127,201,240,199,251,134,207,246, -147, 8, 6, 49,102, 86,193,231,204,126, 8,104,195,187,173, 52, 64, 95,169, 2,132,124,152,149, 26,148, 40,104, 32, 56, 2, 20, - 75,139, 27,115,241, 94, 83,171,209, 37,192, 15,140, 17,184,150,243, 45, 58,197, 60, 86, 99,192,153,104, 19, 4,160, 80,109,176, -236, 80, 59, 54,102, 0, 36,193,225, 88,181,241,167, 6, 19, 60,182, 55,193,222,115, 28, 4, 98, 64, 24,241, 24,232,226,163, 53, - 94, 0,129, 80, 4, 19, 12,240,145, 88,118, 36,221,189,119, 11,254, 56,153,211,168, 75,146,101, 89, 8,105, 61, 76, 16,130,162, - 24,192, 96,233,216, 76, 38, 19,140, 6, 1,120,124, 1, 96, 0, 56,214, 50, 68, 16, 41,141, 2,114,235,159, 81,160, 51,176,224, -241, 8, 76,140, 9, 6, 35, 11,181,198, 82, 15, 77, 44, 7,218,200, 2,124,128, 39,224,129, 47, 6,136,222, 12,150, 48, 96,161, -135, 70, 15, 88,118,150,108, 28,102, 0, 20, 11,112, 4,160, 40, 22,132,240,192,114, 4, 20,101, 53,156, 88, 10, 44, 69,129,176, -206, 25,200,118, 65,126,194, 38,214, 35,111, 0, 33,139, 22, 45, 42, 79, 73, 73,137, 5,240,212,162, 69,139,198,164,164,164,104, - 1, 84,185,229,178, 74, 72, 16,174, 91,183,238,203,248,248,120, 72, 91,181,170,185, 46,109,213, 42,192,234, 5, 8,121, 16, 13, -134,166,105,153,109,236,159,211,104,240,175,127,253, 11,198,170, 42,216, 34,223, 58, 89,149, 21,129,209,136, 9, 19, 38,148,151, -150,151, 79,115,198,210,110,198, 33,153, 90, 30,128, 70, 60, 4, 56,125,250, 52,169, 79,121,168,165,212, 26,105, 40,105, 57, 12, - 6, 3, 2,252,253, 33, 22,138, 96, 50, 51,224, 56, 14,102,179, 25, 52, 77,195,100, 50,129,101,204,206,198, 51,176, 87, 11, 11, -169,206, 82,169,205, 34, 96,175, 22, 22, 82,223,110,255, 73,108,239, 17,232, 44,149, 42,155,203,125, 95, 82,144,215,108,150,191, -187, 49, 0,163,178, 42, 80, 46,221, 6, 97, 68, 23,144,168, 62,136,220,240, 59, 42, 13, 44,188,249, 4,244,175, 63,226,202,245, - 27,112,180,107,177,158,161,113, 58,247, 36, 62, 89,245, 49, 30,142, 25,142,197,255,111, 9,126,217,247, 11,190,219,244, 13,134, -142, 28, 30,223, 94, 26, 1,190,151, 0, 7,143, 30,196,230,175,191,193,142, 31,183, 67, 40, 22,115,187,119,239,110,116,125,136, -157, 59,119,214, 34,126, 27,148, 74,215, 55,184,211,104, 52,240,247,247, 63, 1, 96,176, 84,103, 60,227,177, 0, 0, 32, 0, 73, - 68, 65, 84, 42,197,192,129, 3,193,227, 89,134, 89, 35, 35, 35, 33, 18,137,160, 82,169, 32,149, 74,225,235,235, 91,164,209,104, - 34, 27, 17,119,241,252,249,243, 43,118,236,216, 49,174,115,231,206,221,182,111,223, 94,173, 80, 40,150, 2,216,108,175,191,140, - 26, 53,234,205, 13, 27, 54,108, 5, 80, 14, 32, 1,192,111, 0,250,214, 35,239,247,181, 50,217,138,128,188,188,119,159, 97, 24, -124, 12,176, 95, 86, 87,207,168, 35,239,169,121,243,230,125, 60,107,214, 44,220,184,113, 3,123,246,236, 1,195, 48,135, 0, 60, -227,196,235, 83, 1, 60, 94,149, 15, 77, 67,251,251,239, 92, 8,203,106,174, 1,154,191,186,143,234,215,175, 31,206,158, 61, 91, - 51,238,223,104,130,235,156,119,152, 20, 29,177,220, 79, 34, 24, 84,161, 54,252,114,252,106, 69, 10,120, 34,224,202, 81, 60, 42, -229,240,127,175, 77,192,192,158, 82,204, 75,126, 28, 79,118,164,129, 11, 7,192, 9, 36, 12, 26, 13,214, 81, 34, 95, 89, 12,190, - 8, 24,251,228, 27,216,252,233,135, 22, 99, 81,103,132, 89, 15,252, 40, 59,139,236, 83,150, 25,133,237, 34,162, 64,241, 29,147, -215,184,190, 4, 38, 3,176,123,207,126, 68,143,121,205, 98,253, 67, 0,158, 4, 72, 28,159,128,113, 35, 39, 90, 26,126, 81, 1, - 24, 3,221,184, 70,207,113, 96,136,133,224,141,180, 37,248,207,104,208, 67,167,211,161,186,186, 26, 26,181, 10, 26,141, 6,106, - 77, 53, 12,213,213,208,235,245, 13, 87,254,106, 2,189,193, 12,189,193, 12,173,206, 4, 77,181, 17, 10,141, 17, 74, 53, 13,149, -198, 4,165,210,242, 41,175, 98, 32, 87, 48,144,171, 24, 84,202,105,220,169,108, 56,141, 20,199,193, 12,128,152, 9, 8,197,130, - 35, 28,192,113,224, 56, 30,204,236,221,226, 99,173,189,135,171,190,241,238, 67,187,227,216,222, 99,248,229,208, 47, 53, 74,193, -149,162, 43,174,214,185,112, 0, 29, 83, 83, 83,207, 1, 88,251,206, 59,239,188,222,161, 67, 7, 38, 35, 35,131,164,165,165,185, -172, 1,207, 74, 72, 32,194,176,176,157, 0, 16, 22, 22,118,207,253, 57,115,230, 48,121, 87,174,108,105,174, 88, 0,155,251,223, -217,125,227,109, 99,255, 0,240,195, 15, 63,224, 90, 89, 25, 0,224,231,156,156, 90,247,174, 92,185, 18, 26, 18, 18,162,120, 16, -138,202,232,209, 29,108,243,174,107, 93,183,157,219,238, 59,244,105,250,249, 94,102,205,102,168,229, 10, 84, 86, 86,162, 74,169, -128, 86,167,131, 86,167,131,166,186, 26, 90,149, 26, 26,165, 18, 6,189, 14,180,193, 0,150,113, 24,232, 76,117,150, 74,109,125, - 6, 11,128,182, 31, 14, 0,128,111,183,255,132,247,211,214, 4, 0, 8,115,185, 34,118,140,142,169,171, 56, 68,245, 24, 21,131, - 7,140,219, 83,164,136,220,240, 59, 72, 84, 31, 24, 15,111, 67,209,243,253,225,205, 39, 56, 26, 23, 2, 70, 85,129,232,253,229, -224, 59,168,126, 89, 89, 89,228,229,249,175,224,218,149, 43,200,205, 57, 10,127, 95,127, 76,157, 50, 21, 1,193, 65, 56,115, 50, - 15, 62, 66, 49,188,189,189,209, 70,218, 22, 91,190,223,130,119,222,123, 23,213, 74,247,119,169, 29, 48, 96,128,203,223,241,245, -245,133, 74,165, 26, 76, 81, 20,221,190,125,123, 12, 26, 52, 8, 61,123,246, 68,171, 86,173, 32, 22,139, 33,149, 74,209,183,111, - 95, 4, 4, 4, 64,163,209, 68,250,250,250, 58, 18,185,242,240,225,195, 89,155, 54,109, 18, 40, 20,138,197,117,200, 58, 97,196, -136, 17,159,108,216,176,225,171,176,176,176, 15, 8, 33, 62, 0,222, 1,208,152,155,236,189,229, 26,205,202, 23, 25,198,252,165, - 94, 63,173,142,188,248,103,146,255,189,227,181,215, 23,240,174, 92,185,130, 19, 39, 78, 96,195,134, 13,213, 0,254,207,201,215, -167,188,140, 70, 49,119,233, 18,218,103,103,147,240,210, 82, 30, 30, 80, 12, 74,221,160,247,134,130,224,235,118, 2, 34, 30, 69, -124,139,171,180,223,109,201,189,241,127,103,139,228, 39,245,102,114, 13,149, 55, 32,222,241, 42, 62, 24,166, 65,222,210, 65, 88, - 29, 91, 13,239, 31,231, 0,242, 18, 84,115,226, 11, 86,205,171, 1,220,141,234, 63,119,254, 39,252,251,223,155,208,201,175, 55, -254, 60,126, 14, 7,100,151, 16, 59,180, 39,226, 70, 88, 42, 26,199,227,131,118, 97,162,196,216,254,221,176,124,229,135,216,127, - 65, 13, 31,105, 15,140, 31, 63, 1,191, 28,218,137, 61,191,108,177,188,156,217, 4,145,160,241,126,142, 99,205, 48,179, 22,107, - 6, 86,107,134,166,105, 24, 12, 6,232,245,122,104,117,122,232,117, 90,232,117, 90,232,140, 6,208, 70, 67,195,238, 47,189, 47, - 84,213,102,168,245, 44,212,122,214,242,191,134, 69,181,150, 65,181,142,129, 66,110, 70,149,220,132, 42,133, 9, 85, 85, 38, 84, - 86,210,184, 83,105,106, 84, 1,184,235,254,191,215, 84,227,243, 56,240, 8, 1, 87, 39,234,159, 35,142,235,220,219, 73,111,163, -251,208,238, 53,231,217, 27,179,107, 60, 2,199,246, 30,195,149,162, 43, 55, 92,169,112,219,182,109,251,149,227,184, 94,241,241, -241, 73, 81, 81, 81, 33, 0, 40,150,101, 69, 38,147, 41,112,254,252,249,126, 13,184,130,235,133, 48, 44,236,253,117,235,214,141, -139,143,143, 71, 84, 72,136, 83, 67, 87, 77,116,255,199, 0, 64,116,183,110, 14, 3,216, 58,183,110, 29,155,150,150,134, 63,139, -138,212, 59, 14, 28,192,229,203,151,107,172,254,174, 93,187,194,122,143,222,113,224, 0,138,138,138,112, 37, 47, 79,239, 72,230, -130,247,223,199, 91, 75,150,212,184,247,109,255,219,206,109,255,187, 18, 11,144,146,146,201,141, 26, 53,234, 85,123,210,183,125, - 14, 28, 56, 16, 41, 41,153, 78,117, 76, 87, 47, 23,228, 49, 12, 3,154, 54, 66,126,167, 28, 21,183,203, 80, 89,118, 7,149,101, -119, 32, 47,175,128,178,170, 10, 70,173,214, 18, 63,163, 84,194,137, 32, 64,230,253,180, 53,252,247,211,214,240, 1,168, 1,176, -131, 7,244,185,231, 33,187,184, 0,167,209,182, 99,116, 76,105, 65,158,172,239,160,187,105,232,216,255,201, 24,101,197,117, 89, - 83,234, 7, 73, 84,212,178,252,221, 65,190, 92,139,226,151, 30, 2,119,227, 60, 66,255,123, 6,222,235, 79,227,246, 20, 41, 6, -238, 47, 7, 17,136,192, 39, 0,159,114,172,128,158,191,112,129,252,235,195,229,152,247,214,155, 48,177,102, 92, 46,188,138,233, - 83,167, 65, 40, 22, 99,215,143,187, 1,147, 25, 70,131, 17, 71,243,142, 67,175,175,198,172,153, 51, 15,191,252,242,203,141,149, - 53,153, 52,105, 82,236,152, 49, 99, 64, 8, 65, 86, 86,214, 61, 46,253,183,223,126,219,233,247, 12, 14, 14,198,173, 91,183, 0, -128,159,158,158,142,138,138, 10,244,238,221, 27, 1, 1, 1,160, 40, 10, 39, 79,158, 4, 69, 81, 32,132,224,214,173, 91, 8, 14, - 14,118, 70,236, 7, 52, 77,143, 4,240,131,221,181,169, 35, 70,140, 72,123,233,165,151, 2,211,211,211,197,132, 16, 10,192, 78, - 88,102, 1,220,113, 32,111,225, 9,147, 41,186,174,188,103, 22,237,216,250,244,180, 57,100,220, 43,233,200, 57,113, 17,105,105, -105,172, 90,173,126, 1,150,217, 5, 78,121,183, 58,249,250, 6,180, 47, 43,195,112,157, 14,109, 4, 2,111,111, 30,239,129, 45, -183,223,175, 95,191,154,195,169, 33, 0, 0, 5, 91,142,223,152, 43,215, 26, 79, 3,200, 7,208, 38,247,106,197,231, 35,187,133, -189,199,191,113, 34, 8, 27,102, 0, 34,111,192,168, 5, 56, 14, 38,158,248,206,209, 63,111,127,137, 70, 86, 95,218,252,221,103, -177,211,166, 39,201, 0, 64,203,154,112, 77, 89, 12,192,140, 78,126, 81,136,141,237,131,176, 86,255,159,189, 47, 15,107,234,218, -222,126,247,201, 64, 0, 21,193, 89,180, 42, 86,212,170,117,192,138,168,149, 68,209, 90,173, 29,190, 26,181,245,218,250,211,150, -160,246, 58,117, 64, 91,123,237, 96,171,222,123, 81, 59, 74,236,112,181,189,245,170,193,218, 58,213, 1, 77, 80, 17, 65,180, 90, - 71, 64, 80, 17, 20, 81, 18,166, 4,200,180,191, 63,146, 19, 3, 4,114, 18, 80,180, 61,239,243,228,225, 76, 89,236,236,189,207, - 94,239, 90,123,237,181,219,163,168,164,212,230, 43, 48,154,113,179, 88, 95,239,143,234,244, 72, 4,242,114,237,203, 60,137, 16, -227,250,219, 98, 0,246,158, 53, 97,223,174, 4,220,186,115, 3,173, 90,218, 86, 18,180, 20,139,240,248,224, 1, 80,255, 82,143, - 75, 23, 66,136,173,102, 88, 32,128,149, 16, 48, 22, 43, 96, 50,195, 34, 18, 2,132, 1,251, 78, 90, 41,108,185, 2,234,193,111, -234, 43,228,233, 17,205,169,159,152, 66, 40,114,242, 48,152, 0, 51, 5, 42,141,128,165,202, 2, 66, 8,136,152,192,108, 1,244, - 85, 64, 90, 74, 9, 25, 48,160, 51,117,233,242,103,123, 22, 99, 5,177,187,255,109,164,128,192, 98,101,192, 8,236, 43, 5, 0, - 80, 1, 5, 40, 55, 47,128,179,242,119,117,158,188, 39,185, 27,215,142, 54,105,210,164, 62, 9, 9, 9,107, 0, 12, 72, 72, 72, -216,155,144,144,112,100,210,164, 73,111,116,239,222,221, 68, 8,105,245,217,103,159,237, 95,188,120,241,180,149, 43, 87, 38,213, - 67, 62, 89,235, 95,248,214, 91,111, 45,123,235,173,183,176,119,239, 94,232,111,213,126,151,187,181,105,131, 43, 87,174, 0,128, -154, 75, 34,159,186,146,254,188,241,198, 27,210,175,190,250, 74,253,229,151, 95, 98,112,207,158,178, 19, 23, 47,186,117, 21, 31, - 59,123, 86, 51,188,127,255,167, 46,157, 56,209, 21,128, 15,128,207, 77, 62, 62, 16, 85, 85,161, 71,135, 14, 88,180,104, 17,146, -147,147, 87,133,134,134, 38, 37, 39, 39, 31,204,203,203,115, 67,238,106,231, 1,104, 64, 12, 64, 53, 30,152,148,148, 68, 98, 99, -229, 39,142, 31, 47, 76, 86, 40, 20, 98, 0,136,141,149, 15, 91,181, 74,149, 2,142, 73,128,186,246,127,236,221,138,155, 5, 99, -173,102, 75, 47,125, 73, 9, 74,238,220, 6, 33, 12, 40,181,162,178,178, 18,148, 82, 80, 74,113,229,194, 69,152,140, 85,248, 61, - 49,209, 93, 29, 58,143, 57, 45, 1, 48,227,101,145,214,241,178, 72, 56, 47, 11,180, 79, 17,112, 70,167, 30, 67,164,121, 89,105, -106, 0,232,218,165, 11,206,164,217,120,114,246,239, 59, 0, 0,109, 30, 25, 36,187,157,123,170,201, 60, 0,131,127, 43, 68,250, -211,192,128,176, 40, 20,206, 29,134,246, 95, 31, 67,166, 86,143, 64, 49, 65,145, 86, 7, 33, 33,110, 61, 0,142,119, 51, 57,185, -218,147,221,187,119,167,227, 39, 60,141, 93, 59,118, 97,235,214,173,248,224,189,247,177, 95,115, 16, 2,161, 0,193,157,130, 35, - 75, 74,234, 95,186,188,125,251,118,141,157, 8, 72,199,142, 29, 91, 45, 22,224,192,129, 3,184,124,249,114,165, 82,169,236, 80, -211,155,228,178,191,116,237,138,156,156, 28, 60,246,216, 99,230, 5, 11, 22,136, 55,111,222,140,128,128, 0, 92,186,116,169,150, -231, 53, 39, 39, 7, 93,185,183,179,115,226,185,233, 79, 60,241,196, 71, 47,189,244, 82, 64,122,122,122,243,202,202,202,255,243, -245,245,125,198, 30, 24,248, 43, 71,121,206, 11,229,167, 63,243,247,205, 27, 71,140,126,129,252, 51, 17, 32, 29,159,197,167,107, -223,165,218,172, 75, 51, 1,168, 60,104,102, 82,102, 50, 21,139,125,124,208, 66, 44,134,175,197, 82,165,175,190,100,237,129, 67, - 53, 2, 48, 95,131,243,159, 73,171, 50,231,107, 28, 83,154,185,159, 73,139,127, 43,171, 52,235,195, 31,109, 61, 62,200, 79,240, -132,160,170,210,223, 76,153,178,162, 50,227,241,148,203, 5,251,242,181,134,164,249, 26,220,172,139,100, 76,251,219, 82,205,225, - 99, 41, 50, 0,106,171,128,157,230, 19,224,114,233, 77,252,227,141,153, 48, 24,170, 80, 90, 97,139, 1, 48, 50, 62,216,178,189, -254, 52,187,121,185, 41,228,133,103,255,110, 83,150, 22,214,114, 54, 99, 92, 63,130,169,115, 86,195,207,207, 7, 45,124, 37, 50, - 0,234,172,115,167,100, 27,190,216, 94,239,128, 36,164,102, 24,137,141, 4,128, 16, 88, 40,181, 17, 1,179,125,185, 31, 97, 32, -180, 90, 97,182, 7, 7,186, 35, 1,197, 21, 45, 81, 81, 85, 4,177,144,113,164, 57, 51, 91, 1,147,137,194,100,166, 40,175,176, -130, 8, 8, 44, 32, 48, 89,239,186,238, 93,193, 98,101,192, 16, 11,136,133,128, 50,212,225,254, 39,117, 24,207,172,164,243,151, - 54, 19,119,185,161, 47,166, 92,108,104,223,113,184, 45,250,245,235,119, 51, 36, 36,228,133,171, 87,175,246,216,186,117,107, 26, -128,231, 18, 18, 18,158,115,126,120,229,202,149,154,197,139, 23,203, 86,174, 92,233, 78, 65, 56, 42, 36, 38, 38,166,206,135, 94, -124,245, 85,155, 15,208,179,196, 64,180,134,219, 31, 0, 48,164,119,111, 89, 26, 7,229,239, 24,128,207,156,113, 68,171, 14,235, -215,207, 26, 23, 23,247,229,196,137, 19,205, 25, 25, 25,194,107,215,174,161,107,171, 86, 41,187,118,237,226, 20,160,120,143,242, - 0, 56, 43,247, 91, 73, 73, 73,206, 49, 30,103,157,234,217, 45, 9, 80,173, 92,165,151, 47,142,125,241,210,193, 67, 41, 45,253, -253, 91,148,234,138, 97, 54,155, 65,237,239,129,238, 86, 33, 74,117, 58, 80, 74, 49, 48, 42, 74,246,123,162,219, 60, 72,102,220, -141, 57, 97,236,203, 1,153,240, 65,143, 99,188, 44,210,177, 10, 32,235,234, 85,206, 36, 32,106,194, 75,210,196,221,255,115, 88, -249,191,170,190, 83, 3, 64,155,144,225,178,219, 57,201, 26, 0,104, 26,229, 79,107,147, 0,124,131, 1, 49,255, 64,129,213,138, -254, 27,210,144, 54,174, 29,250,236,186, 5, 33, 1,154,139,188, 51, 22,119,237,218, 69,166,188, 52,133,142, 26, 51, 26, 59,182, -253,130,143, 87,173, 68,108, 73, 9,168,213,138, 45, 91,182, 33, 63, 63,255, 25, 0,187,220,201,113, 69, 4, 0,224,133, 23, 94, - 56, 13,142,115,217, 27, 54,108, 32, 99,199,142,165,167, 78,157, 18, 15, 26, 52, 8,163, 71,143,134, 90,173,198, 35,143, 60,130, -170,170, 42, 68, 70, 70,130, 82,106, 61,117,234, 20, 35, 18,137,188,201, 8,248, 88, 64, 64,192,154, 41, 83,166,136, 46, 92,184, -208,162,170,170,170,174,192, 64,174, 24, 24, 60, 96,242,198, 1, 35,167,144,239,146,128,210, 10,192,120,101,175, 85,155,165,158, -129,234,129,129,156,244,169,182,164,196, 44, 54,153, 96, 16,139, 33, 52,155,221, 76,143,223, 27,176,121, 0,156, 45,127, 87,215, - 92,186, 82,157,148, 63,123,126,241, 51,105,121,238,181, 59,229, 41, 0, 58,216, 95,222, 42, 0,249, 0,114,230,107,224,214,197, -169,252,122,183,102,196,136,126, 50, 11,109,166,118,126, 57,202,245,165,182,117,255,140, 31,178,203, 64,214,126,189,137,211, 15, -220,190,227, 11,114, 91,155, 35, 5, 99, 80, 59, 87,111,179,102, 1,176,152,116, 0,213, 99, 92, 63,110, 19,186, 38, 8, 0, 74, -109,138, 26, 2,136,169,157, 8,216,149,191, 45, 7, 32, 0,142, 68, 46,229,228,117, 18,214,183, 3, 53,155,180, 16,218,189, 63, -148, 82, 88,204, 20,149, 38,160,180,204, 12, 19, 40,204,148,129, 80, 68,112,231,150,169,206,114,158, 56,177,138, 0,192,176,136, -183, 41, 49,217,172,127, 10,128, 82, 2, 80,187,197, 64, 5, 32, 2, 43,172, 86, 33, 50,179,182,113,250,205,175,125,252,154,236, -106,246,213,250, 20,176, 8,182,165, 26,245,105, 39, 71,205, 47, 91,182,140,245,143,158,177, 91,197,119, 21,245,139, 47, 74,183, -109,219,166,182,147, 0,181, 59, 18,176, 94,165, 50,253,126,246,172,188,107,191,126,150, 39,122,245,210,219,251,104, 21,106,100, -209,146,143, 27,103,179, 56,250,245,115, 63,221,241,246,219, 50, 0, 24,220,179,103,173,123,233, 25, 25,154,180,139,222,147,161, -126,189,123,127,205, 48,140,229,210,137, 19,254,237,218,181,187,147,156,151,183,209,157,213,127, 31,180,142,115, 63,208,219, 3, -254,216,169,129,242, 26,109,205,133, 4, 92,144, 47,142, 13,223,241,237,119,219, 66,186,117,125,172,170,170, 18, 22,147, 25, 86, -171, 21,205, 3, 3, 81,162,213,178,202,159, 11,137, 42,254,240,205,191,183, 5, 96,204,186,122, 85,204,206,255,167,158,250, 3, -227,101,145,214,101,113, 95,184, 75, 14,228,192,156,121,177,244, 82,198, 37,153,179,242, 7,128, 81, 79, 61, 39, 59,180,239, 87, -205,237,156,100,239, 43,177,142, 0, 63,215,215,185,235,176,193,191, 21, 2,191,189,225, 56,127,244,215, 2,199,113,137,201,123, - 99,113,203,255,182,144,225,195,135, 63, 61,118,194,184, 61,175, 79,159,117,244,241,254,253, 70,236,248,117, 39, 82, 78,159,196, -201,147, 39,119,215,231, 6,174,135, 8,204,218,190,125,251,183,219,183,111, 31,186,125,251,118,206,133, 27, 59,118,236,168,253, -251,247, 31,218,181,107, 23, 66, 66, 66, 48,102,204, 24, 4, 4, 4,100,150,148,148,132,158, 63,127, 30, 57, 57, 57,140, 72, 36, -194,216,177, 99,163,246,239,223,239,233, 79,189, 80, 82, 82,178,106,231,206,157,245, 5, 6,122,130,223,243, 79,111, 93,241, 75, -194,179,239, 86, 4, 79, 67,197,137,165,214, 27, 71, 62,153,238,165,188,202,107,133,133,162, 55, 51, 51,243, 44, 6, 3,115,134, - 97, 68,237, 5,130,130,130, 38,114, 2,184,202, 6,232,110, 10,192, 37,230,107,160, 7,240,135,253,227, 21,142, 30, 61,171,137, -137, 89, 44,139, 87,126,172, 14,238,210, 3, 64, 21, 68, 62, 18,228,221, 44,197,166, 93,201,196,115,121,187, 53, 51, 94, 91,136, - 13,223,255, 12, 88,175, 1, 16,194, 92, 89,129,224, 14, 1,178, 79,222,158,197,217,154,131,197, 10, 33, 99,133,137, 8, 33,162, -230,187, 68, 0,102,128, 90,192, 53, 48,204, 25, 39,207,221, 36, 0,208, 62,136,161, 34,161,205,218, 55, 91,109, 9,140,138,203, - 40, 44,102, 64, 32,180,194, 98,230, 54,114, 28, 75,249, 23, 1,128,240, 33,139, 40,216,156,240, 12, 96, 37, 54,119,127, 70,214, - 78,143, 10,249,237,251,223,106, 26,161,127,113, 50, 87, 88,229,239,228, 9,112,187, 28,235,196,165, 75, 9, 39,106,184, 12,235, -121,214,237, 51,141,153, 58,184, 22,185,181, 45,241,139,183,217,214,103,189,146,209,200,121, 0,106,214,173,222,205, 82, 43, 78, -125, 71,181,114,213, 37,249,226,216,190, 0, 4,151,146,146, 76,149,134, 10, 88, 45, 22,244, 14, 11,147,117, 8,125, 12, 39,126, -219,201,173,142, 41,153,178,239,183,221,142,211, 97,143,133, 56,142,247,253,182,187,214,121,125,161,241, 95,127,110, 35,200,163, -159,122, 94,118,225, 82, 54,110, 94, 59,171, 6,128, 67,251,126, 85,183,123,164,175,236, 86,238, 57,143,219,125,242,228,201,240, - 52,189,175,133,248,212,123, 63,247,133,246,248,237, 70,229, 61, 31,240,147,147,147,127, 83, 42,149, 76,122,122,186,245,224,241, - 36,180,106,221,170,230, 74, 15,143,176,125,251,246,239,148, 74,229, 15, 10,133,194,228,201,247,222,122,235, 45, 53, 0, 50, 99, -198, 12,154,157,157,141,180,180, 52,148,149,149,133, 54,111,222, 28,173, 90,181,114,236, 5,224,133,242,103,241,175,164,164, 36, - 81, 74, 74, 74, 63,163,209,184, 20,213,231,242,189,193,123,231,182,252, 77, 20,208,253,135, 69, 37,217,251,167, 53, 64,158,121, -115,106,234, 51, 0,198, 0,248, 29, 86,107, 25,220,199, 35, 52, 58,216, 85, 0,174,174,123, 69, 0,220, 14,130, 74,165,112,221, -186,117,238, 93, 85,251,142,105, 58,117, 29, 77,110,229,165,208,182,193,157,161, 45, 51, 99,211,142,163, 94,119,208, 13,223,174, -177,127,183, 29, 5,110, 33,176,185, 16,159, 44,121,221,163,151,254,155,227, 89,247,108,157,102,129,214, 74, 0, 64,226, 43,162, -198, 10, 19,172, 0,252,252,252, 96, 48, 27,136,197,236,185,188,212, 52,219,158, 1,225, 79, 44,164, 86, 42,192,213, 43,123,154, -114,141, 41,215,165,131,252, 46,129, 28,234,199, 89,225, 55,242,180,128, 49, 54, 86,238, 3,192,178,106,149,170, 65,166,136,106, -229, 42,118, 35, 31, 71,155,102,159,243,108,157,254,188, 21, 95,120, 69,198,106,110, 5,236,140,131,251,126,209,212,236,107,183, -114,189,203, 31,224,110, 99,159,154, 28,216, 76,124, 80,193,212,191, 34, 53,187,204,140,208,230,194,251,242,170,216,215,234, 55, -218, 59,231,169,242,175, 54, 62,123,191,225, 15, 23,124,106, 52, 26,127, 1,220,111, 74,199, 17,239,148,100,239,223,132,234,177, - 1,158,194, 4,160, 24,158,197, 13,220, 51, 18,192,105,240,241,118, 31, 97, 30, 60,156,209,163, 71, 15,100,101,101,241, 21,193, -131, 7, 15, 30, 15, 9, 24,190, 10,120, 52, 6,120,229,207,131, 7, 15, 30, 60, 1,224,193,131, 7, 15, 30, 60,120,240, 4,128, - 7, 15, 30, 60,120,240,224,193, 19, 0, 30, 60,120,240,224,193,131, 71,147,163, 90,104,234,233,211,167,189,142,218,116, 21, 76, -200,203,227,229,241,242, 30, 24,121,245, 70,135,243,245,199,203,227,229,253,185,228,121, 76, 0,156, 6, 10, 79,225,110,224,105, - 76,121, 60, 30, 76, 80,190,221, 30,202,118,224,252,188, 82,169,244, 7,240,196,209,163, 71, 63, 17, 8, 4,195,124,124,124, 96, - 48, 24,142,141, 24, 49,226, 61, 0,105, 10,133,194,240, 32, 84,128, 61, 59,164,250,175, 60,174, 80, 74,233,185,115,231,208,175, - 95, 63,254,157,228,225, 17, 1,240,104, 29, 50,151, 68, 57,174,228, 57, 39, 62,241, 84,222, 95,112, 64,231,132,167,158,122, 74, -182,111,223, 62, 13, 87,153,193,193,193,181,110,228,231,231,215, 28, 76,161, 82,169, 8,199, 50,222, 51, 18, 80, 87, 62,255,166, -146,183,122,245,234,209,219,182,109, 75,204,204,204, 4, 0,132,132,132, 60,155,154,154,186,211,219,246,117,238,247,148, 82,199, -251,193, 94,103,223, 21,251,117,226,134, 60,115,109, 7, 79,148,255, 99,231,206,157,219, 86, 90, 90,218,171, 75,151, 46,184,115, -231, 14, 42, 43, 43, 1, 96,216,182,109,219,212,254,254,254,151,148, 74,229,243, 10,133,162,222,173, 36,207,157, 59,231,145, 65, -144,156,156, 44, 83, 40, 20, 26, 79,190,163, 82,169,212,114,185, 92,230, 77, 2, 40,234, 97, 18,134,201,147, 39,123,242,126, 0, - 0,186,116,177,237,128, 91, 86, 86,134,170, 42, 91, 26,116,189, 94,239,201,251, 86, 47,206,158, 61, 75,135, 13, 27,134,222,189, -123,195,199,199,167,176,170,170,234, 17,126, 24,253,235,161,102, 50,160,123,150, 8,136,183, 98,239, 45,126,141, 31,231,246,153, -231,103,239,245, 72,166, 90,125,215, 64,202,204,204,132,191,191,191, 99, 16, 98,193,101,243, 15,185, 92, 78, 85, 42, 85,205,115, - 82,199, 51, 94,213,109,100,228,221,237, 92, 93,201,111, 8, 8, 33,116,228,200,145,178,164,164, 36,143,148,197,182,109,219, 18, -219,182,109,139, 87, 94,121, 5, 58,157,206, 26, 23, 23,183, 99,229,202,149, 83, 23, 47, 94,188,197,195,255,143,223,126,251,205, -113, 62,110,220, 56,236,221,187,183,222,115, 46, 98,107,244,101, 26, 22, 22, 6, 0,212, 41, 51,156, 71,202,191,164,164, 36,165, -123,247,238, 45, 0, 64, 34,145,192,215,215, 23,133,133,133, 40, 46, 46, 70, 64, 64, 0, 10, 11, 11,123,237,221,187, 55, 77,169, - 84,246, 84, 40, 20, 5,245,201,235,219,183, 47,228,114, 57, 66, 66,238,102,253, 91,181,106, 85,181,103, 98, 99, 99, 1, 0,199, -143, 31, 87,123,211,111, 26,146,253,113,237,218,181,117,221,114,236, 85,224, 45,252,253,253,113,225,194, 5,136, 68, 34, 24,141, - 70,236,221,187, 23, 89, 89, 89, 88,178,100, 73,131,250,113, 96, 96,160, 0, 64,212,225,195,135,247, 70, 70, 70,222,122,254,249, -231,219, 37, 38, 38, 66, 32, 16,180,105,217,178,165, 0, 60,254,210,202,159,189, 86,147, 4,252,105,130, 0,195,195,195,165,247, -219,226,110, 74, 4, 15, 94,238,248,120, 11,157, 78,231,176,248,245,122, 61,214,175, 95,239,248,120, 48,208,186, 60,159, 52,105, - 18,149,203,229, 20, 0,173,249,140,167, 56,124,248,176,250,237,183,223, 70,183,110,221, 26,173,254,186,118,237, 74,222,121,231, - 29, 80, 74,145,148,148,164,246,180,221, 51, 51, 51, 49,110,220, 56, 43, 0,136,197, 98, 38, 52, 52, 20,113,113,113,155,219,180, -105, 67,195,195,195,199,123, 96,113,222,171, 46, 66,194,194,194, 40,251,187, 78,158, 60,201,238, 7,192,182, 11,103,183,191, 78, -167,219, 38, 22,139, 91, 0,192,220,185,115, 49,109,218, 52,136,197, 98,248,250,250, 66, 34,145,128, 16, 2,129, 64,128,146,146, -146, 22, 0,226,148, 74,101,189,178, 99, 99, 99, 17, 18, 18,130,156,156, 28,199, 39, 54, 54,182,218,167, 33,144,203,229, 50,251, -239,244,122, 76, 88,184,112,161,227,227, 60, 94,214,184,206,121,163,151, 46, 93,186,192,223,223, 31, 75,151, 46,133,191,191, 63, -118,236,216,129,138,138,138, 70, 81,254,246,119,153,234,116,186,255,155, 62,125, 58,122,244,232,209,110,239,222,189,184,117,235, - 22,174, 95,191,142,226,226, 98,227,253, 28,155,148, 74,165, 52, 47, 47,143, 42,149, 74,169,171,123, 89, 89, 89,244,242,229,203, -124, 2,186,251,160,252,163, 99, 87, 34, 58,118,101,157,196,224,190, 16, 0,226, 2,245, 93,247, 6,169,169,169,234,198, 32, 1, -211,166, 77,123,104, 72, 64, 67, 97, 48, 24,106, 89,253,222, 52, 47,171, 76, 38, 77,154,228,176,242, 19, 18, 18,208, 80,197,239, -108,253,171, 84, 42, 50,114,228, 72,153, 74,165,170,230, 17,104, 8,182,110,221, 74, 0,144,200,200, 72, 89, 77, 79, 3,199, 65, -215,108,247, 6,160,109,219,182, 88,190,124,121,229,155,111,190,105,204,201,201,217,189,114,229,202, 49, 77,221,190, 78,123, 0, - 16,231,118,242,176, 93,158,200,202,202,234, 5, 0,179,102,205, 66, 73, 73, 9,110,220,184, 1,145, 72, 4,161, 80, 8,161, 80, - 8,145, 72, 4, 95, 95, 95, 84, 84, 84, 32, 49, 49,241,101, 0,129,238,132,230,228,228, 64,165, 82, 57, 62,206,158,128, 85,171, - 86, 33, 49, 49,209,235,223,173, 82,169, 52,246, 41, 0,117, 35,189,203,117, 37,238,230, 60,126, 94,189,122, 21,187,119,239,198, -242,229,203,209,165, 75, 23,180,110,221, 26, 73, 73, 73, 88,178,100, 9,252,253,253, 1, 0, 2, 65,131, 12,245, 14, 51,103,206, -156,242,175,127,253, 11,169,169,169,184,113,227, 6,204,102,243, 43,173, 90,181, 10, 4, 96,186,223,125, 47, 56, 56, 24,209,209, -209,234,236,236,108,234,172,252,163,163,163,213,143, 62,250, 40, 30,240, 93,114,255, 20,112, 86,252,206,199, 77,225, 1,160, 46, - 62,245, 93,111, 50, 18, 48,126,252,248,198, 32, 1,212,131, 15,103,188,248,198,190, 70,107,144,204,204, 76,232,245,250, 58,221, -252,199,142, 29,107, 12, 98,208, 96, 28, 62,124, 88,109, 39, 22, 72, 74, 74,210, 16, 66,208,182,109, 91,117, 99,118, 78,214,253, -111,247, 4,212,139,213,171, 87,143, 31, 62,124, 56, 5,128,184,184, 56,241,247,223,127,143, 87, 94,121,133,117,205, 75,254,248, -227, 15,177,253,222,254,240,240,240,231,184,252,255,113,227,198,225,233,167,159,118,184,247,217, 99,246,156, 61,230,232,254, 7, - 0,216,173,127, 87,237, 64,106,220,175, 23,123,247,238,253,164,117,235,214, 0,128,203,151, 47, 35, 55, 55, 23,167, 78,157,130, -209,104, 4, 33, 4, 66,161, 16,132, 16, 88, 44, 22, 24, 12, 6,108,223,190, 29, 0,250,123,226, 57,146,203,229, 46,201, 75, 78, - 78, 78,131, 72,128,211,111,111,144, 55, 0,141, 48, 85,106, 50,153, 48,104,208, 32,104, 52, 26, 92,189,122, 21,131, 7, 15,118, -220,211,104, 52, 8, 10, 10,114, 16, 1, 47,208,113,230,204,153,121,223,125,247, 29,162,162,108, 27, 25,117,236,216, 17, 22,139, -229, 71,216,114,211,223, 87, 40, 20, 10, 13, 75, 62, 67, 66, 66,112,226,196, 9,202, 42,127,150,252,245,236,217,147,203,248, 48, - 4,192, 15,176,237,121, 86, 31, 38, 0,136, 6,208,134, 87,251,247,185, 99,115,210,134,247, 49, 8,208, 78, 2,100,169,169,169, - 26,111,101,116,237,218, 21,211,166, 77,195, 79, 63,253,228,109, 76, 0, 1, 64,127,250,233, 39,151, 55,247,236,217, 3,251, 61, -143,101, 31,191,242, 24,134,118,187,128,252,244,165, 13,170, 39,231, 57,255,196,196, 68, 68, 69, 69, 33, 58, 58,218,161,252, 59, -119,238,220, 24,164,175, 65, 68, 32, 50, 50, 82,122,248,240, 97,220,185,115, 71,198, 94,147, 74,165, 50,149, 74,165,142,140,140, -148,122, 58,111,239,230,127,201,184, 16,128,109,219,182,237,102,231,254,245,122, 61, 86,173, 90,133,242,242,114,136, 68, 34,248, -248,248,224,202,149, 43, 88,190,124, 57,116, 58, 29,226,226,226,126, 89,185,114,229,168,197,139, 23,171,221, 40,217,106,100,192, - 93, 76, 0,135, 58,135,155, 29, 0, 29,211, 1,238,126,111, 80, 80,208,176,170,170, 42,152,205,102, 28, 59,118, 12, 2,129, 0, - 70,163, 17, 21, 21, 21,176, 90,173,142,247,216,100, 50,161,170,170,138,125,167,251,186,147, 91,151,155, 63, 54, 54,214, 17, 15, - 16, 18, 18,130,194,194,194, 6, 19, 81,167, 85, 1, 92,251,162, 22, 64,144,171, 27,107,214,172,241,170, 16,113,113,113,120,251, -237,183, 49,112,224, 64,135, 7,132, 77,159, 61,112,224, 64,100,100,100,160,109,219,182,222,136,238, 50,115,230,204,171,223,125, -247,157,243,248, 25,124,227,198,141, 27, 77,169, 88, 6, 15, 30, 76, 88,165, 63,120,240, 96, 12, 30, 60, 88, 13, 0, 25, 25, 25, -232,213,171, 23,215,118, 56, 13,192, 23,192,102, 0, 83, 81, 99, 75,112, 59,222, 0,240,133,253,248, 61, 0,189, 0,247, 91,212, -255,153,193,238, 6,184,126,213, 98,135,229,191,126,213, 98,199,189,251, 78, 0,238, 55, 30, 20, 18, 48,109,218, 52,250,222,123, -239,213,114, 5,122,163,252, 27,211,250, 7,224,210,250,103,173,126,145, 72,132,130,130,130, 38, 85,254,206,214,191,115, 64,151, - 90,173,118,246, 2,220,247,128,205,204,204, 76,188,242,202, 43, 6, 0,126,254,254,254,120,255,253,247, 33, 18,137, 28,247,103, -204,152, 1, 0, 8, 12, 12,196,196,137, 19,113,244,232,209, 67,247,177,156,196,217, 3, 80, 31, 9, 8, 11, 11,171,185, 85,172, - 75, 50, 96, 52, 26,161,213,106, 81, 89, 89,137,128,128, 0,248,248,248,192,108, 54,131, 82, 10,139,197, 2,163,209, 8,147,201, - 4,139,197,226, 76,232,239,212, 87,200,156,156,156,106, 1,128,236,116,128,179, 71,192,249,126, 67,225, 69, 64,160,164,174, 27, -206, 49, 1,158,144,129,229,203,151, 99,194,132, 9,232,218,181, 43,252,252,252, 32,149, 74,161,213,106,225,239,239, 15,157, 78, -135, 13, 27, 54,128, 97, 60,118,200,118,154, 57,115,230,213, 5, 11, 22, 96,199,142, 29,120,238,185,231, 0,160, 61,154, 96, 11, -218,186, 60, 1, 1, 1, 1,178, 41, 83,166,168, 1, 96,203,150, 45,178,169, 83,167,122,210, 22, 70, 0,211, 0,252, 84, 15, 9, -112,158,106,123, 4, 64, 63, 0,105,188,109,143,106,138,191, 46,252, 41, 51, 1, 54, 84,249,179,240,214, 74,119, 30,144, 63,249, -228,147, 6, 43,127, 22,131, 6, 14,192,193, 67,106,108, 58,228,231, 32, 5,199,175, 60,214,160,223, 24, 22, 22,134,156,156, 28, - 36, 36, 36,160,115,231,206,216,184,113,163,199, 86,151, 82, 25, 47,117,242,224, 52,138,242,103,231,227, 11, 11, 11,101, 53,239, -141, 28, 57, 82,150,144,144,208,104,177, 0,128,205,253,207,213,251,164,211,233, 46,194, 54, 47,108,221,178,101, 11, 54,108,216, - 0, 0,216,188,121, 51,116, 58, 29,251,152, 57, 35, 35, 3,109,218, 52,141, 87,178, 70,180,127, 45,114,198,117,159,248,156,156, -156, 99, 22,139, 5, 58,157, 14,119,238,220,129, 78,167,131,193, 96,128,193, 96, 64,121,121, 57, 74, 75, 75, 81, 82, 82,130,138, -138, 10, 84, 85, 85,177,115,187, 41,245,201,172,169,220, 93, 5,146,214, 92, 21,192, 21,118, 87, 63,117,113,205, 19,248, 53,118, -123,108,220,184, 17, 82,169, 20,126,126,126,184,112,225, 2, 52, 26, 13,252,253,253,241,143,127,252, 3, 71,143, 30,197,146, 37, - 75, 60, 37, 0,237,103,206,156,121,125,234,212,169,248,249,231,159, 89,229,223,241, 65, 81,254,182,113, 65, 41,101,149, 63, 0, - 76,153, 50, 69,125,233,210, 37, 79,167, 86, 89, 18, 0, 59, 9,168, 57, 29,112,217,233, 56, 23,192, 89, 94,237,223, 69,205, 32, -192, 38, 33, 0,247, 35, 8,176,177,149,191, 93,113, 55,134,229, 70, 62,249,228,147, 6, 41,255, 23,223,216,135, 65, 3,239,186, -110,182,253,188,221,225, 17, 56,120, 72,237, 21, 9, 80, 40, 20,176, 47, 13,131,193, 96,192,129, 3, 7,176,124,185,109, 69,193, -217,179,103, 97, 54,155, 61,144, 21,163, 1,108,129,127,148, 82, 54, 24,176, 65,202,159,181,254,235,115,243, 55, 86, 44, 0, 75, - 36,164, 82,169,204,221,179, 33, 33, 33, 99,227,226,226,194, 82, 83, 83,133, 63,252,240, 3,115,233,210, 37,204,152, 49,195,204, -214, 99, 92, 92, 28, 82, 83, 83,241,195, 15, 63, 8,175, 93,187,134,240,240,112,183, 50,239, 69, 12, 0,107, 73,215, 32, 1,148, - 37,125, 92, 17, 26, 26,154,110, 54,155, 97, 52, 26,113,251,246,109, 20, 20, 20,224,214,173, 91,184,117,235, 22,110,223,190, 13, -173, 86, 11,131,193,128,170,170, 42,148,148,148,176,255, 51,175, 62,153,108,160,159, 51, 9,173,167,236, 30, 41,127, 54, 7, 64, -205,107, 13,233, 31, 46, 86, 3, 56, 72, 30, 87, 25, 89, 89, 89,200,200,200,128,193, 96, 64, 68, 68, 4,250,247,239,143,141, 27, - 55,226,221,119,223,133, 88, 44,134, 64, 32,128, 80,200,217, 33,219,105,230,204,153, 55,167, 78,157,138,180,180, 52,124,240,193, - 7,172,245,123, 19, 15,200, 50,230,244,244,116,202,206,249,159, 58,117, 10,235,215,175,151, 1, 64,207,158, 61,225, 28, 24,216, - 64, 18, 48, 31,182,249,255, 73, 0,230, 0, 8,199, 95,220,253, 15,220,141,244,119, 21, 4, 88,115, 21,192,253,154, 2,160, 30, - 94,255,179, 40,127, 7, 9,104,192, 84, 66, 53,229,239,234,252,224, 33,207,199, 55,231, 65,215,207,207, 15,189,123,247,174,118, - 63, 53, 53,213, 35,121,147, 38, 77, 66, 66, 66, 2, 88, 34, 0,128,218,175,121,188,238,124,227,198,141,106, 0,216,187,119,175, -204, 85,196,122, 82, 82,146,230,234,213,171, 46,173, 71, 87,168, 43,233, 15, 75, 52,146,146,146, 16, 25, 25, 41, 83,171,213,110, -251, 78,106,106,234,129, 21, 43, 86,140, 78, 78, 78, 62, 24, 26, 26,138,204,204, 76,232,116, 58, 97, 96, 96, 32,102,206,156, 9, -173, 86,123, 45, 57, 57,185, 75,104,104, 40,146,147,147, 73, 76, 76,140, 59,114, 92,107,206,191, 1, 49, 0,213,222, 45, 54, 95, -130, 61,119,130,195, 51,227, 52,255,239,182, 61,134, 14, 29,250,174, 70,163,153,103,177, 88, 80, 90, 90, 10,147,201,228,152,247, -175,172,172, 4,165, 20,148, 82,100,100,100,192,104, 52, 34, 42, 42,234, 37,133, 66, 97,118,149,116,164, 46, 68, 69, 69, 33, 42, - 42,170, 90,208,159,167, 83, 0,206,138,222,238,242,167,206,253,195,190, 42,160,177,199, 53,206,227, 39,187,212,239,205, 55,223, -132, 70,163,129, 76, 38, 67, 86, 86, 22,154, 53,107,134,220,220, 92, 8, 4, 2,174, 30, 0, 50,115,230,204,235,211,167, 79,199, -145, 35, 71,240,143,127,252, 3, 0,130, 1,220,192,221,252, 15, 77,110,249,179,227, 75, 78, 78, 14,194,194,194,216,126, 38,139, -142,142, 86,135,132,132, 32, 35, 35,131,114, 12, 4,116, 38, 1, 83,237, 4, 96, 51,128, 99, 0, 20, 0,164, 0, 10,192,163,241, - 58,112, 99,103,227,115, 21,240,179,106,213,170, 58,175, 55,165,242,183,175, 0,184, 23, 44,218,107,153,215,243,220,247,111, 95, - 95,207,188,150,238,130,196, 60, 69, 84, 84,148, 44, 33, 33, 65, 51,121,242,100,186,117,235,214,106, 68,160, 6,225,227, 92, 15, - 49, 49, 49,110,153,141,135,137,129,104, 13, 34, 97, 27,149,100, 50, 78,202,223,105, 48,119,204,235,135,135,135,255, 45, 46, 46, -238,199,137, 19, 39, 34, 35, 35, 3,215,174, 93,235,178,116,233, 82, 89, 76, 76, 12, 39,121,247, 40, 15, 64,181,122,174, 67,241, -113,202, 24,168, 80, 40,244,241,241,241,203,246,236,217,243,161,217,108, 70,113,113,177, 35, 6, 0, 0,110,223,190,141,226,226, - 98, 80, 74, 89,171,221, 35, 45,203,206,255,135,133,133, 57, 34,216,217,235, 92, 73,128, 11, 43,191,214, 52,212, 61, 80,254, 30, -131, 37, 1,139, 23, 47, 70, 82, 82, 18, 38, 78,156,136, 21, 43, 86,224,173,183,222,130, 80, 40,132, 68, 34,113, 59,134, 80, 74, -173,179,102,205,194,143, 63,254,136,239,191,255, 30, 0, 58,219,149,127,163, 27, 84, 13, 65,126,126, 62,118,239,222, 93, 45,139, -163,253, 88, 54,106,212, 40,181,151, 75, 30, 45,118, 18,176,203,110,253, 15,229,149,127,221,112, 21, 4,200,137, 0,120,146,136, -195, 91,133,221,216,104, 12,229,223, 80, 69,125, 47, 48,127,254,124,217,165, 75,151, 26, 85,166,221, 69,218,168, 75,233, 88,133, -103, 95, 91,207,122, 5, 40, 33, 4, 86,171, 21,219,182,109,227, 76, 2,222,126,251,109,182,156,181, 98, 0, 24,134,129,213,106, -197, 59,239,188,163,230,170, 60,235,147,151,148,148,164,113,206,138,232, 69,191,251,239,138, 21, 43,110, 39, 39, 39,239,229,106, -245,223, 7,104, 62, 28, 93, 0, 0, 32, 0, 73, 68, 65, 84,111, 27,169,233,237,169,131,240,113, 34, 1, 49, 49, 49, 31, 41,149, -202,132,159,126,250,233,188, 88, 44, 6,187, 42,192,106,181,162,101,203,150,208,233,116,144,203,229,136,138,138,242, 83, 40, 20, -110, 23,120,179,227,139,115,240,223,201,147, 39, 17, 21, 21, 85,109, 60,113, 55, 14,197,198,198,210,156,156, 28, 89, 77, 23,191, -183,105,128,157,225, 34,192,207, 12,192,188,102,205, 26,137,221, 26,101,156, 62, 30,145, 0,231,196, 63,115,230,204,113, 28,151, -150,150,186, 29,155, 8, 33,100,230,204,153,244,135, 31,126,120, 30,192,175, 15,162,226,177, 43,122,226,233, 61, 46,164,189, 6, -110, 62, 12, 99,248,253, 6,187, 10,192,149,226,231,180, 10,160,177,149,122, 93,242, 30, 20,242,240, 32,119,156,207, 62,251, 76, -211,216, 50,107,172,145,190,103,168,225,254,231,250, 82,115,205,133, 78, 60,248,189,247,244,183, 46, 89,178,100, 95, 67,234,115, -220,184,113,213,150,197, 62,253,244,211,213, 60, 3, 30,206,253, 19, 15,189, 61,156,202,173, 80, 40, 46, 40,149,202,102,251,247, -239,255, 52, 55, 55,119, 94, 69, 69, 5, 44, 22, 11, 6, 12, 24,128,193,131, 7,199, 69, 69, 69,197,114, 81,254, 0,112,252,248, -113,199,113,100,100,100,181,235, 53,207,221,140, 43,196,153,208,178,100,194, 30, 7,224, 85,187, 79,158, 60,185,174, 91, 66,167, -241, 82,124,175,198, 21, 55,158, 10, 43, 0,124,255,253,247,252,134, 41, 60, 56,147,128,186,148,127, 93, 4,160,177, 59, 23,223, - 89,121, 16, 15,153,253, 95,174,110,156, 21,254, 61,152, 22,104,148,119, 80,161, 80,232, 97,115,189,206,103,175, 93,188,120,145, -139,226,114,160,111,223,190,141, 62, 30,184, 34,180,222,186,252,239, 53, 89,228,193,235,143,251, 73, 2,220, 86,174,183,251, 8, -243,224,193,131, 7, 15, 30, 60, 30, 94, 48,124, 21,240,224,193,131, 7, 15, 30, 60, 1,224,193,131, 7, 15, 30, 60,120,240, 4, -128, 7, 15, 30, 60,120, 60,132, 48,195,131,237,138,121,252, 53, 33,228,171,128, 7, 15, 30, 60,248,177,157,199, 95,188,147,156, - 62,125,218,235,136, 75, 87,193,132,110,228,213,187,254,216, 11,121,141, 93, 62, 94, 30, 47,239, 47, 45,239,247,119,175,121, 61, -176, 12,252,180, 11,238,181,188,147, 75,188,151, 23,182,162,182, 60,182,254,148, 74,165,212,100, 50,225,202,149, 43,106,163,209, - 8,161, 80,136,188,188, 60,188, 20,208, 21,251,210,211, 81,241,120,103, 12, 29, 58, 84, 38, 16, 8,216,117,237, 77,214,190, 74, -165,242, 49, 0,109,207,159, 63,191,187, 99,199,142,140, 86,171,149,116,236,216,113,185,175,175,239, 58,133, 66,113, 3, 0,226, -227,227,153,248,248,120, 75, 93,242,226,227,227,155,219,189, 5,134,152,152, 24, 10, 0, 75,255,254,228, 55,138, 39,115,103,110, - 74, 15,189, 34,108, 59,118,104,179,230, 45,202, 1, 80, 74,169, 16, 64, 96,124,124,252,117,254,125,123,176,229,221,107,150,200, -117,211, 23, 79, 83,224,122,156, 50,119, 85,196, 83, 82, 97, 80,128, 58, 59,243,178,236, 81,159,102, 88,116,238,176,230, 65, 98, - 89,245,228, 35,231,151,184, 52, 49, 38, 76,152, 32,221,179,103,143, 58,238, 93,219,249, 47, 71,158,196,225,195,135, 57,181,203, -223,102,188, 42,101, 8, 81,103, 92,186, 4,157, 78,135, 46, 93,186,160, 89,243,230,216,158,176,141,115,187, 78,154, 52,169,218, -139,155,144,144, 80,239, 94, 10,246,236,138, 94,245, 27,118,163, 38, 74,105,195,250,157, 92, 91,253, 85, 85, 5,121, 47, 43,108, - 13, 16,242,170,237, 56,103, 3,112,114, 81,195, 27,117,210,157,234,229, 75,104,205,233,107, 74,165,146,234,245,122,217,246,237, -219,213, 57, 57, 57,144,139, 90,161,125,231, 54,168,212, 87,192,215, 96,198,240,183, 94,199,200,137, 83,176,235,187,120,236, 60, -120, 80, 61,118,236, 88,217, 3,208,133, 51, 45, 22, 75,135,156,156, 28,107,255,254,253,197,161,161,161, 56,117,234,212,187,149, -149,149, 19,148, 74,101,148, 66,161,208,198,196,196, 88,235, 91, 18, 22, 19, 19, 83,230,124,254,213, 87, 95, 49,123,255, 27,219, -163,211,172,129,120,103, 72,159, 54,199,247,255,123,235,182,179,210,211, 61,250,142, 90, 65, 8,209, 42, 20,138,188, 1, 3, 6, - 88,237,164,129,247, 52,252,197,220, 68,158, 50, 13, 78,217,198,188, 81,254, 95, 71, 62, 43,141,104,211, 73, 77, 64,145, 85, 94, -140, 14, 29,187,170, 77, 86, 11,150,244, 27,134,194, 46,109,100,223,237,250,149, 19, 17,136,158, 10,218,171, 59,123, 38,192,246, -253, 86, 28, 57, 65, 17, 61, 21,232,213, 29, 88,244, 73,195, 20, 55,187, 65, 73, 67,179,147,185, 34, 19,141, 37,183, 33,160,148, - 82, 44, 35, 32, 31,213,251, 12,176,140, 96,242, 69,249, 3,179,214,250,174,242,167,118,229, 63, 18, 71,143, 30,229,244,221,148, -227, 47, 82,179,169, 23, 84,170,155, 72, 77,177, 37,172,201,188,148, 1, 0,216,189,155,208,140,203,147,100,139,230,115,107,151, - 49, 99,198, 88, 15, 28, 56,192, 36, 36, 36,224,208,161, 67,213,146,225,212,132,151, 41, 84, 29,205,228,162, 35, 83,234, 5,161, - 96,211,133, 55, 56,103, 65,200,171,142,141,118,214,172, 89,211, 56, 4,192,169,158,236,187, 19,114, 66,118,118, 54, 52, 91,183, -170, 63,138,154,140, 1,211,230, 64,220, 46, 16, 16,218,147,253, 89, 41, 96, 21,193, 90, 69, 49,254,213,104,228,126,190, 18,199, -142, 29, 83, 43,149,202,106,233,110,155, 0, 22,134, 97,218,182,110,221, 26, 26,141, 70,216,191,127,127, 12, 25, 50,132, 41, 40, - 40, 24,120,230,204,153,115, 74,165,114,144, 66,161, 40,176, 43,107,134, 99,221, 53, 27, 61,106, 76,200,138,213, 59,152,216, 25, -103, 91, 12, 29, 55, 91, 54, 52, 60,241,201,183,190,200,123, 38,244,137, 87,194, 0,148,193, 22, 99,192,212,165, 31,156, 19, 91, -185,235, 71, 13, 38,164, 60,106,122, 18,220,121, 11, 28,199,158, 4, 1, 82,182,113, 7,188,210, 15, 74,165,146,241, 64, 17,214, -220,164,130,134,133,133, 33, 44, 44,204,235, 60,241,202,151,163,165, 47, 15,140, 80,247,236, 16,140,238, 29,130,241,120,155,142, - 8,246,109, 6,137, 21,232,230,211, 12, 1, 89, 55,212, 51,159,121, 78,202, 69, 86,175,238,192,165,108, 6, 23, 47,251,225, 92, -118, 11, 60, 63,198, 31,171,223, 19,160, 87,119,210,104, 70,122, 67,149, 52,187,205,105, 72, 72,136, 58, 61, 61, 29,233,233,233, -248,240,191,103,240,232,248, 88, 53, 0,234,225,150,167,148,235, 71, 46,151,187,127,139,151,217,234, 40, 44, 44, 12,114,185,220, -229,135,125,198, 83, 76,236,255,129,212,185, 60, 19,250, 45,147, 54, 70,123, 76,152, 48, 65,186,123,247,110, 53, 33, 4,111,126, - 74,240,203,145,145, 56,114,228, 8,167,239,110,221, 58, 77, 58, 52, 60, 6, 35, 70,220,196,231,159,127, 94,237,222,203, 47, 3, -227,199, 3, 11,231, 37,168, 87,127,198,173, 77, 88,229,175,209,104,192, 48, 12,166, 76,153, 2,129, 64,208, 16,101, 95,203,242, -119, 53, 32, 19,226,157,242,111, 52,132,173, 6, 0,172, 93,187, 22,107,215,174,181, 93, 27, 20,215,100,197, 57,116,232, 16,190, -122, 33, 26,131,159,147, 67,216, 42, 8, 68, 36, 0, 35, 18, 64, 32, 17,131,241,149, 0,160,160, 22, 51,168,209,136,215, 95,157, -131,210,131,233,200,206,206, 86, 43,149, 74, 41,154, 14, 36, 61, 61, 61,162,115,231,206, 98,171,213,138,164,164, 36,236,216,177, - 3, 1, 1, 1,136,136,136,232,176,101,203,150,143,237,207,113, 10, 8, 84, 42,149,130,163, 7,255,247,159, 71,252,242,218,233, -203, 4,120,121, 89, 57,190,252,247,103, 64,243,190,194,127,199,182,237,150,125,234,167,151,157,116, 7, 83, 7, 49, 36, 78, 74, -157,216, 46, 19,199,177,243,245,123,180, 23, 6,143, 70,246, 0, 56, 90,105,211,222,159,138,187, 63,218,189,165,226,163,215,173, - 30,106, 71, 18, 22, 22, 70,217,180,164, 78,233, 73,169,167,105, 59,149, 47,188, 42,125,170,243,163,106,113,165, 25,190,255,126, - 27,102,131, 17,146, 55, 63, 65,128, 88,130, 74, 81, 5,244,149, 21,240, 5, 65,213,245, 66,245, 63,255,249, 79,217, 59,239,188, - 83,175,242,189,148, 13,172,223,108, 5, 96,176,127,128, 39,159, 96,240,194, 88, 82,237,189,137,158, 10,172,223,236,149,242,150, -169, 84, 42,234,173,181,206, 90,253,233,233,233,119,235,224,168, 9, 21, 70, 61, 0, 96,116,236, 1,168, 86,141,241,200,203,144, -189, 50, 27, 34,146,117,183, 35,144,124,144,214,189,156,206, 11,209,230,255, 94,224,214,176, 31, 57,242,205,147,186,210,206, 18, - 59,233, 59,121,146, 91, 59, 43,158,253, 82,186,126,199,223,213, 59,207,124,128, 21, 11,126, 65,184, 52, 20,155,190, 62,130,111, -247,219, 54, 8,154,253,183, 15,100,235,254,251,129, 87,164, 42,238, 93, 80, 96, 55, 84, 63,156, 7,165, 20,205,219, 62,142, 35, - 71,142,192,190,111, 65,189,229, 91,253,153, 92, 42,151,183, 82, 3, 95, 1,248, 5,169,169, 64,120,248,221,251, 31,127,124,247, -120,225,188, 4,181,175,223, 82,217,236,215,151,215, 91, 78, 86,249, 71, 70, 70,194,106,181,226,203, 47,191,108, 84, 7, 13, 0, - 88,173,214,218,202,159,214,255,254, 50,147,117,213, 94,126,118, 8,183,202, 93, 60,231,240,243,217, 14,250,247,175, 61,199,206, - 76,209, 85,163,249, 86,235, 12, 44, 88,176,192,113,127,193,130, 5, 88,187,118, 45,152, 30,179,238,254, 87,251,243,174,228, 9, -167,184, 46, 95,205,157,172,133, 83,184,149,175,178,178, 18,237,187,116, 5,172, 70, 48, 62, 0, 17, 10, 96, 46, 43, 65,101,206, - 21,220,206,203, 71,167, 97, 82, 16,113, 75, 16,147, 17, 16, 48, 88, 53,251, 45,140, 89,255, 1, 22, 45, 90,212,216,227, 50, 39, -173,168, 84, 42, 9,165,180,101, 69, 69,197,176,160,160, 32,100,100,100,192,106,181,226,202,149, 43,216,176, 97, 3,122,247,238, -141,224,224,224, 87, 0,188, 94, 67, 89,215,233, 13,160,148,182,238,194,164, 74, 59, 60, 50, 78, 92,156,116, 22, 37, 58, 31,252, -184,203,140, 61,199,255,139,121,114, 95,161,208, 96, 13,179,199, 20,184, 36, 0,188, 66,111,122,212, 53,221,227,202, 51,192,112, -232,136,236,188, 33,164, 75, 70, 98,125,146,178,101,246,229,108,156,254,225, 44,148, 74,165, 71,214, 3,171, 28, 12,134,159, 96, - 48,108,130, 86, 27,197, 90,199, 30,253,192, 33, 62, 45,212,109, 43, 45,144, 44,155, 3,203, 29, 45,204,151,175, 66, 40, 22,193, -143, 8,224, 79, 4,240, 23, 8, 17, 36,146,128,150,233,113,243,208, 49,183, 59,189,184, 82,234, 71, 78, 88, 29,239,225,234,247, - 8,226,150, 18,187, 71,192, 59,235,223,174,156,213,240, 34, 5,110, 77,229, 15,161, 0, 57, 55,203,113,179,200,136,212, 11,182, - 13, 68,122,204,216, 9, 79,246, 61, 23,145, 44, 8, 73, 62,124,152, 51,182,191,109, 9, 2, 95,190,129,128,169,231,224,243,252, - 50, 32,216,223, 51, 79, 46,135,157,219, 60,217,226, 85,185,227, 13,245,208,160,247,112,242,240, 21,252,191, 73, 19, 17,220,186, - 39,230,252,253, 53,124,177,116, 63,134, 6, 46,197,186,255,126,232,245, 14, 62,132, 0, 49,139,206, 57, 44,150, 17, 35, 70,216, - 21,146,213,109, 3, 79,155, 42, 82, 3,135, 0,252,130,226, 91,205,208,227,145,102,248,230, 27,155,229,191,108, 25, 16, 18, 98, - 19, 81,124,171, 25,138,111, 53,195,128,126, 23,213,238,148,255,161, 67,135, 96,181, 90, 29, 74,122,203,150, 45,176, 88, 44, 30, -185,175,235,241,240,212, 82,254,182,247,217, 61,121,167, 0, 89,167, 84,202, 88, 75,205, 74, 41,172,214,218,221,151,189,110,165, - 20,235,226,227,101,241,182,239,184,252,159, 20, 32,148,130,196,199, 43,101,148, 82,124,246,217,103,142,251,236,113,124,124,188, -140, 82,219,115, 20, 32,117,201,139, 87, 42, 97,191, 71, 44, 22, 11,204, 22, 11,204,230,218,117,198, 94, 55, 91, 44,248,122,221, - 58,217,186,248,248, 58,202, 71, 33,108,222, 28, 16, 9, 96, 49,148,227,252,182, 4,252,227, 53, 5, 58,189,161,192,192,149, 31, -225,202,239,167, 32,240,149,192, 84,116, 11,103,143,107,176,243,200, 62,148, 20, 20,224,220,185,115,141,182,177, 86, 68, 68, 4, - 39,111,130, 82,169, 12,160,148, 14, 73, 79, 79,255,245,253,247,223,239,115,254,252,121,177,209,104,132, 64, 32, 64,243,230,205, - 97, 54,155,145,150,150, 6, 66,136,216,221, 88, 31, 31, 31,239,175, 84, 42,125,227,227,227,131,139,243,146,127,255,240, 63,185, - 65,127, 28,217, 5,173,158,129, 88,200,160, 83,160, 4, 37,119,196, 80,252,211,140,179,119, 6,250,187,211, 27,246, 88, 19,234, -220, 23,237,196,160,214,117, 94, 93,223, 31,176,202,191, 38, 57, 96,220,177, 80,118,191,239,106,110,206,113,211, 60,247,246,217, -221,253, 6,195, 38, 0, 4,149,149,223, 67,114,226, 42, 12,251, 30,173,118,223, 29,222, 25, 20, 41, 13,208,150,193, 42, 22,194, -120,242, 60,170, 46,230,160,114,255, 17,160,162, 10, 98, 74,225, 7, 1,132, 32,168,178,154,161,173,170,196,215, 7,118,185,149, -185,250, 61,155,117,239, 12,219, 57,107,174, 80,100, 92,166, 88,244,137,247,253,181, 70,190,114,206, 46,123,185, 92,238,216, 91, -155,197, 75,107,243,112,240,164, 14,185,183, 42, 1, 0,185,183, 42,145,149, 87, 1, 68,109,101, 55, 70,113,239,250, 33,249, 54, - 34, 80,118, 22,254,254,151,225, 35, 41,131,213,170,133,201,116, 18, 2, 65, 8,140,250,162, 38,235,172,147,199,253, 93, 10, 16, -124,249,203, 44, 52, 99, 30, 1, 0,220,204,160, 24, 52, 81,128,191, 47, 31,131, 17, 99,250, 0,160,246,231, 60, 67,100,100, 36, -125,243, 83,130,102,109,250,129, 2, 24,247,194,108,206,243,254,235,190, 89, 74,219,182,253, 3,192, 57, 20,223,106,134,178, 34, -219, 22,204,253,251, 3, 61,122, 0,175,188,114, 87,249,151, 21,249,162,172,200, 23, 65,126, 55,235,149, 57,105,210, 36,200,100, - 50,140, 26, 53,170,154,235,223,249,227,205,148,128,171,247,214, 27,196, 56,205,111, 19, 66, 28,159,186,174,197, 40, 20, 26, 69, -180,251, 57,241,232,232,104,181, 43,203,121,193,130, 5,136,142,142,174,166, 80,235,146,247,139, 82,137,115,231,206, 57, 92,240, -206,117,198,162,230,181,217, 49, 49,154, 24,133,235,173,154,197,148,130,241,243,129,169,224, 26,148, 75,151, 98,131,190, 24,186, -200,161,142,251,223,253,119, 3, 62,120,235, 53,132, 46,122, 9, 31,157, 61,132,173,186, 43, 24,243,236,179, 8, 9, 9,241, 56, - 24,208,174,232,105,120,120,120,181, 62,124,252,248,113,117,125,219,177, 43,149, 74,145, 82,169, 28,124,246,236,217,220,164,164, - 36,205,155,111,190, 57,244,203, 47,191,148,148,151,151, 59,182,105,174,172,172, 68,179,102,205,178, 38, 79,158,220,115,248,240, -225,143,184, 33, 18, 12, 33,164,203,217,148,109,133,153,251, 22, 93, 93,180, 36,174,195,206,101, 29,113, 49, 95,136,146,114, 1, -172, 4, 40, 42, 55,130,182,234, 94,185,240,221, 79,250, 60,243,252,223, 94,135,155,120, 2,187,251,191,154,171,223,205, 49,143, - 38, 80,254,117, 77, 1, 80,174,174, 28,133, 66,225,238, 33, 90,211,250,183,185,218,190,175,203, 59,224,246,159,246,105,221, 78, -173,165, 38,136,139,180,144,252,114, 8, 68,200, 0,149, 70,208, 50, 61,136,217, 12, 17, 0, 11,181,162,210, 98, 70,153,217, 8, - 88,221, 91, 81,108,144,223,234,247,234,228,180,176, 5, 9, 54, 10, 97, 37, 78,129,124,110, 95,128, 90,214, 63,128,255,189,209, -161,218,249,224,197, 57, 16,209, 59, 48,145,214, 80,169, 84,135,184,190, 88,146,114, 53,130, 62,250, 47,110,191, 25,131, 59, 90, - 95,116, 52,157,135,197,146, 3, 0,184,118,186,125,147,117,216,173,123,191, 80,191, 54, 86, 89, 77,249,179, 24, 26,184, 20,195, -250, 76, 66, 68,208,121,108,221,187, 92,237,201, 32, 50,114,228, 72,154,148,148,132,162,162,209,104,213,234, 32,154,181,238, 11, - 74, 41, 24,134,225, 20,136,148,155, 11,228,228,156,179,159,149, 3,146,114,104,245,192,144, 33,182, 43, 89, 89,192, 87, 95, 1, -101,165,128,190, 28, 40,215, 3,254,129,165,156,202, 86,151,181,159,157,157, 13, 0,248,244,211, 79, 1, 0,161,161,161,247,194, -205,204,169, 14,231,207,159, 95,205, 98,175,169,184, 57,123,119,236, 10,219, 49,239,239,132,207, 62,251, 12,107,215,174,133, 82, -169,148,186, 11,174,155, 21, 28,138,204,243, 23,144, 31, 24,168,102, 24, 6,243,230,205,171, 21,147,225, 73,249,158,172,106, 9, -106, 45,199,107,159,190,135,126,147, 38, 65,249,233,167, 96,152,187,122, 78,153,117,238,174,135,240,200, 17, 28, 56,112, 0, 87, -174, 92,145, 41, 20, 10, 13,151,141, 87,156,149,127, 74, 74,138, 26, 0,210,210,210,212, 17, 17, 17,178,148,148, 20, 77,120,120, -184, 52, 53, 53, 21, 17, 17, 17,178,138,138, 10,117, 29, 99,174,105,198,140, 25,253,166, 77,155,214,162, 91,183,110,216,179,103, -143,161,164,164, 68, 88, 81, 81, 97,243,118,216,231, 63,182,111,223, 30, 58,110,220, 56, 95,133, 66, 81,225, 66, 12,227,164,172, -153,156,140,211,107, 63,120,103,102,179, 86, 61, 84,248, 93,245, 42,254,184, 78,144,123, 75, 8, 80, 6, 85, 70, 19,180,180, 85, -254,220, 89,115,134, 18, 66,242,217, 49,223,147,223,235,194, 67,192, 79, 21, 60, 32,168,147,197, 37, 37, 37,213,250, 20,231,235, - 80,156,175,243,168,173,217,207, 93, 43,214,214,240,146, 19, 87,225,115, 46, 31,194, 60, 29,235, 1,168,246,124, 93, 2, 47,228, -229,226,196,157, 27, 56,127, 37, 7,183,174, 92, 69,233,213, 60,148, 93,207,135,217, 80, 1,147,201,140, 50,139, 17, 6,139, 25, - 85,212, 2, 11, 40, 40,225, 78, 50,157,163,253, 47,101,219,206, 23,125,194, 90,254, 12,226,222,107,156, 21, 47,158,198, 1,196, -170,116,136, 85,233,170, 41,124,246, 19, 17,155, 6, 17,189, 3, 33,213,225,127,179, 44,102,206, 83, 0,183, 78,192,162,111, 6, - 0,248,183, 48, 0, 85,183,174, 33,253,159, 29,144,249,211, 4,156,248,231, 0,100,101,220,104,210,142,217,127, 72, 8,244, 58, - 64,175, 3, 12,190, 23, 0, 0, 63,127,104,194, 59, 11,150, 1, 0,134, 71,245,241,216,242,127, 97,228, 97,104,181, 81, 8, 60, -126, 16,107,222,179,145,220,145, 35, 71,114,114,253, 3,192,138,143,151,147,238,221, 1,231,207,165, 75, 54,247, 63, 0,244,232, - 65,177,118, 45,208,165,103, 57, 30, 27,122, 27, 67, 70,223,198,243, 47,153, 56,151,209,217,226,103,207, 67, 67, 67, 17, 26, 26, -138,121,243,230, 53,118, 21,187,125,215,156,177,126,253,122,153, 43,133,237,240,162,173, 94,141,245,235,215,115,178,132, 95,127, -253,117, 53, 27,249,239, 10, 11, 23, 46,172,229, 5,112,133,195, 23,114, 49,115,214, 92,156,220,180, 9, 75,150, 44,169,147,156, -176,229, 59,120,240, 32,234, 11,216, 27,249,216, 35,248,254,187,175, 16,246,242,203, 88,177, 98, 5,234, 43,227,130, 5, 11, 48, -122,244,104,120,179, 2, 32, 37, 37, 69,237, 20, 44,135,227,199,143,171, 1, 32, 53, 53, 85, 77, 8, 65, 74, 74, 74,189, 50, 13, - 6, 67,203, 93,187,118,225,194,133, 11,200,202,202,242,211,235,245, 48,153,108,253,204,104, 52, 98,239,222,189,196, 78, 22, 42, - 56, 20,199, 90, 85, 85, 37, 62,185,237,101, 84,102,126,129,125, 73,217,184,114, 83,128, 82, 61, 3, 11, 5,242,245,190,152,187, -232,189,136,152,152,152, 60, 14, 6,159,131, 87,176, 75, 78, 57, 78, 7,240,104, 2,235,191, 46, 2, 64, 0, 16,169, 84, 10,169, - 84,138, 51,103,206, 56, 62, 57, 39,174,161,164,162, 4,173,134,120,190,238,247,228,201,147, 4, 0,252,252,166, 65,114,226, 42, - 68,215,138, 64, 9,129,120, 86, 81,181,251,110, 21,151, 88, 0, 11, 5,242,244,197,200, 45,209,226,118,169, 14, 37,149,149,208, - 25, 43,112,187,170, 2, 55, 43, 13,200,175, 44,135,214, 84, 5,157,213, 4,163,213,125,240,235,147, 79,184, 24,240,156,226, 2, - 94,155,210, 12, 20, 98, 80,143,183, 1,191, 27,189,239,226, 26,103,228,222,170,196,193,147, 58, 12, 94,156, 83,189, 46,232, 29, -248, 88,175,193,199,122, 13, 31, 60, 37, 68,110,110,174,145,171,204,109, 87,172,104, 19, 23,239, 56,191,162,183, 32, 47, 59, 31, - 25,201,231, 81,112,181,184,201, 59,238,166,175,147, 0, 0,165,133, 20,126, 21,143, 65, 58, 75,136,255,183, 76,228,248,196,109, -125, 25,132,187,241, 79,159, 27,145,132, 87, 23,217,148, 63, 33, 4,191, 38,219,154,128,235,154,127, 22,161,189,122, 86, 47,231, - 38,224,203, 47,129,203,151,109,158,128, 15, 63,164, 14,247, 59,165, 20,129,129,129,238, 71, 96,123, 31,101,231,253, 63,253,244, - 83,100,103,103, 35, 51, 51, 19,153,153,153, 72, 76, 76,196, 91,111,189,133,220,220,220, 38,107, 15, 86,209,185,178,164,231,207, -159, 15, 66, 8,103,101, 72, 8, 65,125,100,162,190,123,206, 56,226, 83, 12,194, 52,195,183,239,126,130,102,187, 18, 17, 29, 29, -141,151, 89, 54, 6, 64,209,163, 47,230,135, 13,131,159,159, 31, 70,142, 28,137,247,223,127, 31,137,137,137,234, 21, 43, 86,184, -124,255,190,203,207,196,205, 62,143, 33, 56, 56, 88,102,181, 90,235, 37, 20,245,221,227,160, 28, 29, 30,167,136,136, 8,153,147, -162,196,208,161, 67,101,110,188, 39,163, 70,142, 28,217, 34, 55, 55, 23, 71,142, 28,193,163,143, 62, 10,161, 80,232,152,226, 8, - 14, 14,230, 58, 29, 97,181,255, 95,210,189,215,192,216,245,251, 91,226,143, 61,203,240,100, 68,111,248, 75, 24,248,251, 89,224, -235, 83,133,167,159,155,108, 5,160,117,254, 98,124,124,188,187,185, 40,199, 42, 0,142,211, 1, 60, 30, 52, 15, 0, 0,162, 84, - 42,155,207,159, 63, 31,243,231,207, 7, 0,227,199, 49, 31,195, 84,104,134,175,175, 4,222, 52,158, 92,110, 11, 31,246,123,234, - 50,168,128,193,251, 63, 27,156,173,127, 78,240, 11, 14,150,153,155,249, 65, 71, 45,184,160,215,225, 92, 73, 17,206,151,222,193, -249, 82, 45, 46,232,181,184,108,208,161,168,170, 18,229,102, 51,110, 24,244,142,255, 89, 31, 94, 24, 75,176,250, 61, 1, 86,191, - 39, 0,133, 0,148, 48,136,158, 74,240,250, 84, 49,102, 77,105,131,238,221,219,193, 10,145,199, 63,153,117,245, 59,207,203,215, -147, 20,168, 46, 25,178,172, 60, 27,145, 79, 95,105, 11,162,219,247,118, 0, 0, 64, 72,117, 16, 80, 61,170, 24, 91, 68,179, 86, -171,245,147,203,229, 81,158,148, 49, 44, 44, 12,137,137,137,216, 84,174, 71,133,145,193,171,155,191, 69,161,196, 23, 21,198,166, -219, 38, 98, 98,255, 15,100, 41,218, 79,176,233,199,173,142,107, 63,127,104,194,208,192,165,142,243,232,103,190,146, 81,112, 90, - 63, 76,215, 44, 5,102, 44, 26,141,150,199, 19, 33,251,103, 36,152, 9,128, 70,163,241,170, 15,119,233, 82, 61,122,124,212, 40, -160,101, 75, 32, 36, 4, 8,239,223, 28, 18,177, 0, 2,230,174, 88,137,175,175,219, 1,153, 97, 24,135,229,159,157,157,237,176, -250,217,207, 71, 31,125,132,143, 62,250, 8, 55,110,112,247,202,184,154,175,175,126,223,115,235,107,253,250,245,178, 53,107,214, -184, 84,216, 92,173,127, 39,215,115,173, 56, 5,246,220,106,229,150,194,222, 72, 8,172,134, 42,136,218,119,129, 98,249,114,204, -240,111,137,150,154, 20,199,253, 89,127,155,129, 15,254,253, 45,178, 86,255, 15,255,232, 55, 10,147, 3,187,225,192,142, 29,200, -201,201,113,249,254, 61, 31,163, 64,159,190,125,101, 86,123,153, 88, 66,230, 60, 61,227,234, 90, 93,152, 61,123, 54, 37,132, 80, - 54,176,143,157,239,119, 86,242, 41, 41, 41,154,161, 67,135,202, 40,165, 96,167, 2,220,212, 91,146, 72, 36,122,244,249,231,159, -207, 46, 41, 41,129, 78,167,131,175,175, 47,218,180,105,131,150, 45, 91,162,101,203,150,238, 42,207, 90,131,216, 89,124,124,124, - 12, 47,198,124, 46,219,112, 98, 48,174, 94, 47, 69,187, 0, 1, 34,122, 18, 60,222,141,194,191, 69,139, 98, 0,150,122,244, 6, -191,223,192, 67,106,253, 3,110,150, 1, 42, 20,138,114,165, 82,233, 3,192, 95,161, 80, 56, 88, 96,167,200,142, 94, 49, 95,118, -169,159, 92, 46,167,226, 89,142,200,127,226, 52,255,239,118, 64,126,119,247, 86,205,167, 81,207,193, 96,174, 66,169,222,128,108, -147, 9, 34,171,237,203, 37,166, 74, 88, 41, 5, 5,176,231,214, 21,232,205, 38, 0,224, 48, 48, 17, 44,250,164,122, 31,183,197, - 3, 88, 97, 65, 21, 46, 94, 46,195,247, 91, 74, 61,250,177,206,138,222,238,242,167,246, 99,135, 98,231,178,250,193,246, 93, 21, - 68,163,191, 6, 16,130,162,162,187,193,121, 98,235, 77, 24,153, 14,152,219, 47, 19, 55,111, 58, 44,167,131, 92,202, 23,243,243, -250,106,196, 75,165, 82,129, 45,205,230,179,199, 16, 21, 21,213,100, 29,119,231, 25,219,242,190,228,196,243, 0,128, 97,125,108, -153,241,222, 89,176, 12,199,206,247,193,191,183,190, 12,229,174, 57,156,231,255, 95, 93, 20,133,160,160, 68,251,153,198, 78,150, -162, 64,169,205, 26, 3, 40,130,130, 18, 57,201, 58,176,111,191, 35,167,197,203, 47, 3, 50, 25,193,157,235, 1,208,235, 36,168, - 40, 21, 99,243, 70,130,249,243, 41,174, 21,150, 33, 60, 98, 40,146, 14,169, 57, 89,197, 22,139,197, 49,223,159,152,104, 43,171, -179,194, 47, 44, 44, 68, 97, 97, 33,103,253,239,164, 48, 40,195, 48,181,148, 42,165, 32,158, 38, 1, 82, 40, 20,154,215, 95,127, -189, 90, 44, 0,235, 17,240,196, 21, 78,156, 88,137,181,198,178, 2, 66,184,207,217, 17, 66, 96, 46, 43,131,168,117, 16, 4,126, -205,208,231,197, 73,248,104,236, 24,188,203, 46,219, 27, 56, 8,150,138, 74,136, 90,181, 67,191,161, 82,116,237,212, 13,159, 95, - 76, 65,223,190,125,101, 39, 78,156,168, 69, 2, 98, 20, 10, 0, 68, 13, 0,115, 98, 98, 28, 75, 7,205, 53,148,189, 80, 40, 0, -232,221,133,138,117, 21,120,221,186,117, 4, 0,181,187,248, 73, 90, 90,154, 75, 23,127, 74, 74,138,134,139,242,143,143,143, 39, -132,144,165, 45, 91,182,236, 51,116,232,208,238,151, 46, 93,194,169, 83,167, 96,177, 88,224,239,239, 15,131,193, 80, 24, 20, 20, -116,213, 19,163, 79,169, 84, 50,237,218,181, 59,240,220,115,207,181, 59,126, 52, 13,107, 85, 7,208,130,136,209,179, 93, 21, 46, -223,241,199,136,158,166, 43, 0,106,206, 99, 89,234,107, 19,231,140, 83,132, 16,231,211,154,121, 95,120, 52, 49,132, 28, 94,122, - 35, 0,163,211,160, 66,243,146, 60,158, 31,174,166,220,235, 80,124,156, 51, 6,150,106,117, 50,147,159, 68, 93,194, 88, 81, 80, - 89, 14,152, 76,176,216,215, 53, 93, 44, 47, 70,190,161, 20,148, 82,216,243, 11,104,184, 20, 47,122, 42,193,250,205,119,251,228, -165,108,160, 87,119, 51, 4,208, 55, 72,249,215,232,236,238,234,160, 78, 47,128, 74, 53, 71, 13,164, 67,171,213, 26,115,115,115, -133,171,198,128,137, 61, 48, 18, 11,250, 30,115, 88, 97, 92, 73,133, 43,175, 75,205,115, 86, 9,113,181,230,176,140, 96,176,125, - 37,135,171,229,126, 91,183,110,181,101, 2,148,203, 41,151,156, 15, 49, 19,191,150, 41,119,206, 85,167,108,165,136, 8, 58,143, -225, 81,125,112,244,192,121, 28,215, 45, 7, 1,129, 98,226, 87,178,248,157,115, 57,149, 47, 40, 40, 17,132, 16,188,240,194, 11, -248,230,155, 82,176, 42,198,246,151,178,132,128, 86,183,236,239,212, 41, 47,114,148, 76,150,116, 72,173, 30, 53, 10, 48, 22,116, -198,245, 98, 31, 88,237,179,173, 29,244,237,240,118,116, 25, 14, 28,239,137,230,157,122,202,216, 44,129,245,129, 85,252,121,121, -121, 0,128,130,130, 2,135,103,224,214,173, 91,142,129,213, 75, 16, 39,183,115,205,151,146,112,201, 7,224,140,111,190,249, 70, -182,118,237, 90, 53, 75, 0,214,172, 89,227,177,245, 95, 83, 97,120, 11,137, 68,130,130,107, 87,209,173,123, 15, 88,205, 85, 32, -102, 11,132,205, 91,160,249,160,193,104, 54,240, 9, 88,245,102, 88, 12, 85,160,102, 11, 96,177, 34,118,221,191, 49,229,229, 41, -144, 72, 36, 46,229,153, 55, 7,114,250,191,174,158, 11, 91,225,250,217,136,136, 8,153,157, 0, 80, 74, 41,134, 15, 31, 46, 75, - 78, 78,174,245,156, 59,229,111,175, 43, 43,128,189, 61,123,246, 28,248,197, 23, 95, 24,111,223,190, 93, 57,102,204,152,231,210, -211,211,255, 97, 48, 24,138, 90,183,110,173,248,252,243,207,181, 92,235, 79,169, 84,138, 0, 60, 50, 52, 60,188, 77,204,172, 24, - 92,201,187,162,157, 62, 43,230,201,212, 3, 27,227,110,150,105,135, 13,142, 28, 99,109,215, 41,244,255,213,180,242,235, 75, 45, -108,239, 99,196,137,127, 18, 23, 58,160,230, 49,143, 7,149, 0,212,103, 93,120,163,252, 89,101, 83, 71,194, 24, 78, 36, 96,229, -169,195, 26, 0,100,234,160, 8, 10, 95, 9,116,212, 12,163,217, 12, 43,181,162, 85, 64, 0,242,244, 37,240, 36,185,144,171,229, -125,119, 99, 0, 60, 91,139,237,202,197,223,208,116,189,246, 60, 2, 19, 7, 15, 30,188, 51, 54, 54, 86, 28, 20, 20,100,189,121, -243, 38, 22,244,189, 89, 83,249,115,254, 31,117, 37,236,241, 10,246, 44,127, 46,146, 60,213,122,134, 43,226,119,206,209, 0, 32, - 19,250, 45,147,238, 62,251,161, 58,101, 43, 64, 64, 48,177,255, 7,178,157,103, 62,208,112, 85,254,108, 95, 42, 42, 26, 77,129, - 82,214,250,133, 43,189,179, 33,238, 32,219, 31, 72,125,155,107,216,173,122, 82,164,235, 43,181,148,149,169,137, 0, 48, 84,250, -130,148,153, 33,100,132, 48, 48, 18,217,216,201,175, 97,110,116,140,219,246, 72, 72, 72, 32, 9, 9, 9,244, 30,190,127,160,148, - 18, 66, 8,117,142,104,119,246, 4,120, 34, 75,161, 80,104,162,163,163,177, 96,193, 2, 7,161,104,170, 84,184,163, 70,141,194, -220,173,235,241, 81, 89, 49, 6, 68,142, 0,211, 46,208, 86, 38, 19,181,165,238,133, 8, 68, 32, 4, 17, 11,240, 77,252,106,180, - 24, 61, 24,221,187,119,247, 56,106,191, 33,112,178,238,213,225,225,225,178,228,228,228, 6,213, 85,118,118,118,212,193,131, 7, -175, 9, 4,130, 29, 79, 62,249,228,199,115,230,204,185,189,110,221,186, 36,192, 54,229,224,129, 40, 6, 64,226,169, 83,167,134, -252,176, 97, 35, 35, 22,248, 92,159,244,210,164,254,115,231,206,213,125,253,245,215, 19, 0, 4,216, 21,127, 25,187, 65, 16, 23, -143, 2,143, 7, 3, 92,220,255,222, 18,128, 6, 19, 6, 55,202,135,243,128,180,249, 84, 10,145, 79,146, 75,173, 25, 89,106,125, -149, 17,102,139, 5,221,135, 12, 66,168, 57,220, 83,133,219,104,193, 40,108,210, 31, 0,106,214, 26,183,199, 1, 52, 40, 7,190, - 74,165,218,165, 84, 42,133,137,137,137,139, 86,173, 90,245, 79, 39,114, 49,202,249,127,113,245, 40, 0,104,180,228, 37,147, 47, -178,113, 22,117,255,190,201, 23,229, 94, 49,253,221,103, 63,212,176,237, 67, 65,177,243,204, 7, 94,149,209,166,220, 9, 94, 93, - 52,234,174,217, 75,238,222, 91,244,137,231,249,200, 99,223, 62,167,137, 5,200,186,111,150, 74, 43, 12,182,125, 0,238,230,255, -143,241,248, 29,177, 91,100, 22,133, 66,209,232,243,170, 44, 9,104, 12, 89,246, 88, 0, 53,123,220, 8,101,243,234,123,221,187, -119, 71,251,121,243,100,107,247,239, 87,231,124,252, 11,228,162, 86,104,105,223,188,167,194, 96,198,252,183,150, 64,224, 23,132, - 61, 27,149, 56,211,154, 96,236,176, 97, 94,231,237,183, 88,204, 94, 15, 19, 92, 93,252, 28,200, 23,121,254,249,231,111, 83, 74, -227,122,245,234,245,159,162,162, 34,189, 23,138,223,185,222, 71,166,165,165,193,106, 38, 24, 54,188,255, 7,115,231,206,213, 1, -192,156, 57,115,172, 0,116, 13,105, 82, 39,143, 83,181, 99, 23, 94, 81, 30, 15,153, 7,224,158,144, 2,175, 21, 99, 66,181, 4, - 59, 72,203,206,104,242, 74,173,145,244,135,189,214, 96,185, 10,133,194, 2,224, 95,246,143,215,114, 93,149,175,129,191,151, 52, -198, 51,247, 18, 54, 5, 79,177,232,147,196, 70,151,237, 46,213,175, 7,237,107,186,151,117,208, 88,155,174, 40, 20, 10,141, 66, -161,104, 20, 89,164, 1,115, 0,108, 25,148, 74, 37,236,219,247, 34,215,105,251,222,228,131, 7, 28,219,247,142, 30, 58, 26,118, -210, 91,231,255, 19, 76,209, 17,203,150,192,218,138,137,227,110,130,238, 72, 64, 99,212,215, 19, 79, 60, 81,101, 54,155,147, 0, -232,223,127,255,253, 6, 41,209,152,152, 24,242,254,251,239, 83,163,209, 8, 0,251,235,122,110,229,202,149,100,241,226,197,142, -255,101, 79, 5, 92,239,216, 94, 51,184,147,199,253, 5, 87, 15, 23,241,118, 31, 97, 30, 60,120,240,224,209, 36, 48, 3,168, 4, - 32,105,100, 35,206,221,142,129,156,119, 20,228,241,112,128,111, 76, 30, 60,120,240,120,184, 32, 4,208,140,131,242, 55,192, 22, -192,221, 88,250,192, 10,126,217,223,159,174, 35,241,224,193,131, 7,143, 63, 31,252,120,125,193,131,247, 0,240,224,193,131, 7, - 15, 30, 60,120, 2,192,131, 7, 15, 30, 60,120,252,213, 81,205,165,115,250,244,105,175, 35,114, 93, 5, 19, 62,232,242, 66, 6, -249,192,215,167, 0, 34,113, 49,172, 86,219,178, 48,129,128, 1, 67, 4,182,191, 12, 1, 33, 12, 40, 17,130, 16, 2, 6,102,236, -220, 45, 2,165, 20, 65, 76, 43,120, 82, 62,123, 70,197,214,176, 5,240,148,193,150, 96,192,196, 46,249,122, 24,235,143,151,199, -203,227,229,241,242,120,121, 15,166, 60,222, 3,224, 6,135,143, 94,134,174, 68, 7,147,137,226,246, 29,130,125,137,190,216,127, -192, 31, 12, 17,225,128,186, 61,246, 31,234,128,253,234, 14, 56,114,162, 13,132, 16,130,129, 4, 35, 34, 24,248,136,125, 56,255, -143,169,175, 78,167, 83, 95,157, 78,143, 38,171, 43, 77, 12, 73, 62,127, 46,253,176,250,216, 81,125, 98, 98, 98, 37,128,230, 60, - 7,125,248, 49,230,169, 17,210, 57,115,166, 83, 79, 55,121,122, 88,161, 84, 42,165,212,142,250,118,215,227, 10, 90, 3,124,143, -226,193,163, 9, 60, 0, 44,134, 13, 31,194,249, 37, 60,150,156,230,150,181, 52,182,188,198, 68, 90,186, 8,227,198, 88,112,230, - 15, 95,136, 69, 66, 8, 5, 66,136, 68, 20, 62, 2, 19, 32,108, 14, 33, 42, 48,164,143, 25, 18,177, 15, 40,128, 14,237,128,103, -199, 91,113,112, 7, 55,229,127,249, 98, 38, 30,125,172, 59, 58, 6,183, 68,222,181, 75, 93, 2,218,119, 67,235,142, 22,252,246, -235,175, 72, 76, 76, 44, 70, 19,239,136, 37,151,203,199,171, 84,170,221, 78,231,207, 56,159,243,168, 27,115,231,200,169,185,242, -188,108, 72, 88,160,218,106, 45, 66, 73,199, 10,117,167,246,163, 81, 94,213, 1,223,172,255,239,159,118,167,179,232,232,104,245, -130, 5, 11, 64, 8,193,154, 53,107,212,141,145, 19,128, 77, 7,192,235,255,251, 15,143, 72, 23,165, 32, 12, 83, 95,123, 83,231, -246,100,219,244,110,242,173,234,237,236,188, 51, 34,143,198, 5,155, 13,208,201, 75,192,141, 0, 52, 21,152,251,172, 11,199,143, - 53,129, 66, 0,161, 64,132, 97,225, 4,109,219, 48, 16, 10, 25,248,136, 4,232, 21,202,224,218,117, 51,134,132, 49,104, 21, 36, -193,111,135, 90, 0, 0, 4,180, 2,148, 90,225, 46, 69,240,212, 87,167,211, 63,210,211,209,181, 99, 39,252,145,114, 28,169, 70, - 19,116,119,116, 16,251, 52, 71,239,129,195,209,127,248, 88,168,119,170, 32,231,152, 27,255, 30, 40,254, 81, 42,149,234, 96, 72, - 72, 8,210,211,211,217, 14, 83, 12, 96,158, 74,165,218, 37,151,203,163, 84, 42,213,193, 63,219, 75, 49, 59, 70, 78,125,132, 90, - 8, 25, 35, 42, 43, 45, 40,209,251,226,199,159, 14,122, 84,255,163,199, 12,151,182,240,213, 98,212,112, 49,186,118,121, 86,221, -162, 69, 0, 76,102, 51,110,223,190,131,118,185,215,145,149,157,131, 87, 95, 25, 79, 55,254,176,199,171,118, 13,179,239,169, 0, -112,223, 38,251,126, 90,255,192,221,237,112,215,172, 89, 3,165, 82, 41,109,170,116,192,247,241,125,161,219,182,109,171,189,159, - 66, 19, 41, 47,165, 50, 94, 74, 64, 16,221, 8,245, 78,115,127, 6, 73,125,205, 89,199,219,179,100, 58,246,189,114,224,181,120, -189, 91, 34,247,219,111,191, 57,206,199,141, 27,135,189,123,247,214,123,206,227,222, 43,127,231,107,206, 68,160, 94, 2,144,124, - 52, 21,195, 71,132,223,183, 66, 91, 61,203, 14,233,252,176, 87, 47, 33, 35, 20, 64,167, 21,162,125, 91, 17,218,183, 21,163,188, - 92, 4,137, 72, 8,139,208, 7,131,250, 17, 12,120, 92, 0,134,136, 64, 8,129,143, 72, 12, 17, 83, 5, 34, 17,195,108, 0,204, -208,215,171,252,143, 30, 58,136,110, 29,218,224,220,153,115,200, 45,188,121,183,124,101,229,144,156, 63, 65, 25, 1,193,160,176, - 65,248,109,175,103, 58,118,221,186,117,210,244,244,116,245,229,203,151,225,235,235, 11, 95, 95, 95,217,246,237,219, 53, 30, 14, -102, 50,149, 74,117,144, 85,252, 78,157,163, 37,128,177,223,151, 57,221, 86, 0, 0, 32, 0, 73, 68, 65, 84,126,251,237,157,215, - 94,123, 45, 81, 46,151,143, 81,169, 84,137, 15, 98, 7, 15, 15, 15,151,166,166,166,114,254,221,210, 81,195,164,125, 67,155,171, - 59,117, 40, 68, 64, 11, 31, 48,140, 31, 42, 42,204, 40,210, 86,224,101,121,111, 42,105, 49, 8,223,127,247, 19,167,126, 36, 66, - 1, 94,120,230,113,117,159, 62,189,113,179, 64,135,147,191,159, 66,121,185, 30, 1, 1,205, 17, 18,210, 5,140, 64, 4,139, 37, - 23, 49,179,167,211,248,117, 63,254,169,172,155,232,232,104,245,194,133, 11, 29,231, 11, 22, 44,104, 52, 47,192,131,236, 1, 80, -169, 84, 68, 46,151,211,132,132, 4,184,218, 88,233,126, 27,237, 10, 69, 12, 8, 33, 88,191, 94, 41,139,142,110, 24, 9, 96,186, -188,232, 80,222,105, 43,154,185, 28, 76,219,183,100, 16, 28,196, 60,180,237,247, 87,133,179,178,119, 69, 10,220,122, 0,146,143, -166, 2, 64,131,137,192,209,121, 89,245,222, 31,241,121, 15,175, 7, 11,167, 28,231, 30, 13, 66,137,154,182, 16, 9, 69,232,220, -177, 28,101,101, 34,156, 60,215, 25, 2,129, 0, 2, 34,128, 88,100, 70,159, 30, 6,244,236, 33, 0, 1, 3,177,200, 7, 98, 1, - 65,216,227, 70, 4, 5, 90,177,233, 63,245,203,238,221,173, 29,174,101, 23, 86, 87,254,118,228,222,184, 70, 8, 35,164, 29, 34, - 30, 71, 96,203,230, 40,214,221,225, 84,222,181,107,215, 74, 87,174, 92,169,190,118,237,154,243,101,245,248,241,227,177,103, 15, -119,107, 83,165, 82, 29,114, 86,254, 46,208, 58, 46, 46,174,248,205, 55,223, 60,128, 38,158,162,168, 71,249,171, 61, 41, 91,104, - 72,144, 58,184, 93, 41, 90,183,242, 71,167,224,246,240,243,247,195,181,107,249,176, 88,172, 8,238,216, 28,231, 47,166, 32, 98, -196, 16,105,202,209,180,122, 7,211, 55,222,152, 78, 31, 15,213,225,145, 71, 58,225,194,197,107, 56,121,242, 34,110,223, 41, 3, -165, 64, 96,160, 47, 12,134,114, 12, 28,216, 7,197,197, 37,200, 63,249, 59,134, 63, 25, 46, 77, 62,194,157,168, 60,200, 96,173, -127,251,182,211, 96, 61, 1,107,215,174,245,216, 11,192, 78,247,215,204, 4,236, 98, 59,217, 6,247,191, 78,157, 58,209,206,157, - 59, 55, 56, 23,191, 74,165, 34,147, 39, 79,166, 91,183,110, 5,187,177, 82,125, 10,207,190, 21,110,173,242, 71, 68, 68, 72,217, -205,129,234, 32,177,212,141, 76,199,255, 86, 40, 98,212, 13,121, 71,107,202, 27,178,164, 28, 39, 86, 52,171,166,248,121, 60,156, -214,127, 77,151,127,131,166, 0, 26, 74, 4, 70,124,222,163, 78, 18,224,141,242,103,145,148,148,132,252,252,124, 0, 64,112,112, - 48,245,228,101, 16,208, 10, 8,137, 5, 98,145, 8,191,159,107, 3,129, 80,136,230, 34,189, 45, 14,160, 25,131,252,252,230,120, -188,143, 21,132, 16,200,159, 53,131, 90, 25,128,248,128,128,194, 22,200,239, 26,134,226,235, 40,208,150, 35, 51, 63,191,206,178, - 20,151,104,161,187, 93, 96,151,197,121, 0,170,169,252, 1, 0,123,246,236,193, 83, 79, 61, 37,221,183,111,159,219, 1, 78, 46, -151,143,202,201,201,113,217, 97, 74, 74, 74,156, 47,183, 92,182,108, 25, 46, 92,184, 48,250, 65,154, 10,112, 82,254,156, 33, 29, - 53, 76, 42, 17,222,132,175,111, 75, 72,124,196,232,214,173, 43, 58,119,237,138,210, 82, 13,180,218,114,136,197, 2, 4, 5, 74, - 32,244,109,233,118, 48, 21,210,124, 52,111,214, 10,134, 10, 51,206,157,203,194,141,130, 18,220, 44, 40, 71, 69,149, 4,143, 4, -155, 33,241, 17, 32, 43, 51, 7,143,118,239,142, 27, 55, 75, 81, 97,110,193,105,128,118,118,251,215,117,221,211,233,128,186,100, -122, 35,139,181,254, 23, 44, 88, 80,235,250,194,133, 11,189,242, 2,184,218,157,176,230,220,113, 99,121, 21, 82, 82, 82,212, 13, -221,144,103,242,228,201, 84,165, 82, 65, 46,151,195,213,116, 0, 23, 79, 21,171,252, 1, 32, 45, 45,173, 86,153,236,247,221, 26, - 61,236, 14,131,141,229,113,217,186,208, 31,147,215,232, 93, 42,254,224, 32,198, 62, 74,113,107,222,113,227,198, 85,243,146, 60, -253,244,211,213,234,138,119,251, 63, 56,240, 56, 6,160,177, 60, 2,141,137,172, 44, 27,177,200,207,207,247,136, 4, 8,133, 66, -136, 4, 34,136, 68, 4, 35,135, 3, 6,125, 21,174,100,139, 33, 18,138, 32,180, 8, 49, 52,156, 66, 44, 18, 65, 32, 96, 0, 74, -160,213, 1, 39, 78, 9, 97,181, 90, 1,220,174, 83,238,169,223,179, 81, 94, 94,119, 6,206,110,237,219, 83,189,153,160,162,162, - 4, 22,171,153,243,239, 60,117,234, 84,221,164,195, 96,224,164,104,106,186,254, 93, 49,195,157, 59,119, 58, 63,159,216, 20, 94, - 0, 87, 46,126,103,229,111, 31, 0,185, 89,128,193,237,212, 12,115, 29,102,139, 21, 70,147, 25,183,239,104, 33, 18, 75, 80, 85, -101,130,201,108,129,217,108,133,217, 66, 57,121, 98,196, 34, 61, 36,190,157, 80, 84, 84,130,210, 50, 3,180,186, 10,180,104,213, - 31,195, 30,127, 28,105,201,123,209,209,104, 70, 73,105, 9,122,246,236, 14, 31,177, 16,250, 50,237,159, 98,160,176, 71,254, 59, -230,254,107,120,166,188,138, 5, 88,176, 96, 65, 53,111, 66,205,123, 92, 9,128, 86, 27,229,120, 48, 38, 38, 8, 91,183,110,173, -214, 95, 89, 3, 33, 55, 55,215,235, 93, 57,229,114, 57,221,186,117,171, 99,155,241,186, 98, 2,106, 42,215,154,158,170,148,148, - 20, 53, 27,248, 70, 41,165,199,143, 31,175,118,255,248,241,227,106,119, 78, 15,150, 52,176, 36,192,217,138,175,203,208,119,243, -219, 48, 41, 34, 17, 91, 0, 76, 89,163,199, 19, 75,202, 27, 68,190,106,206,241,187,139, 9,224,113,239,189, 1,117,121, 0,238, -171,127,199,149,165,223, 16,235,191,134,197,138,172,172, 44,118, 64,225,212,123, 5, 2, 33,134, 14,177, 66,192, 8,113, 34, 93, -130,140, 44, 9, 38, 60, 5, 60,243, 52, 48,113, 28, 65,135,118, 98, 72,196, 62,144,136,125,224, 43,241, 65,112, 7, 31, 72,196, - 18, 72,220, 44, 3,204,203,189, 78,138,181,183, 72, 93, 3, 73,247,110, 93, 16,208,210, 31, 18,171, 17,229, 6,211,125,239, 20, - 71,143, 30, 61,120,244,232,209,106, 10,223,249, 3, 0, 69, 69, 69,152, 56,113, 98,147, 89,249,118,235, 72, 90,243,154,253,216, - 35, 75,206, 98, 1,244, 6, 19,244,122, 35, 74, 75,171,112,235,150, 14, 55,110,220, 65, 89, 89, 21,202,203, 77, 40, 47, 55, 66, -175, 55,161,164,184,196,173,172,170, 42, 51, 42, 43, 45, 48,153,140,104,222, 92,140,206,193, 45,224,231,239, 15, 0, 8,233,222, - 21,157, 58,182, 64, 64, 11, 9, 40,181,192,100,182,162,170, 74,255,167, 24, 72,162,163,163,213,139, 22, 45,170, 87,153, 71, 71, - 71,115,182, 72,237, 91, 10,215,121,127,205,154, 53,248,230,155,111, 60,222,106,216,105,219, 89,199,135, 85,168,249,249,249,236, -238,153, 30,105,183,201,147, 39,211,132,132, 4, 56,147, 7,149, 74, 69, 38, 77,154, 84,239,247,102,207,158, 13, 66, 8,216,126, - 28, 30, 30, 46, 5,128,161, 67,135,202, 88, 69,206, 90,253,236,125, 74,169,227, 62,135, 95, 91,205,138,119, 69, 28,184,204,160, -180,110,221, 26,196,137, 37, 52, 84, 30,143, 7, 79,249,187, 58,247,202, 3,240, 32, 89,254,119, 7,120, 11, 4, 2,129,199,223, - 27, 62,196,138,182,109,124, 80, 90, 42,132,143,208, 12, 31,177, 0,154, 84, 49, 38,200, 68, 16,139, 68, 40, 45, 21, 33, 57,221, - 31, 45, 36, 4, 12,195, 96, 92,148, 17,207, 77,160, 96, 24,138,229,167, 61, 47,167, 92, 46,167, 2, 63, 9,180,162,214,240, 51, -229,225,114, 62,197, 40,233, 72,206, 91,250, 14, 28, 56, 16,199,142, 29,115,121,207,207,207,143,243, 96,169,211,233, 70, 3,192, -134, 13, 27, 48, 99,198, 12,199,245,162,162, 34,199,241,140, 25, 51, 80, 88, 88,216, 36,237,153,154,154,170, 33,132,128,157, 39, -101, 24, 6,172,187,179,158,121,211, 58,145,123,253,134,172, 77, 11,131,218, 71, 44,128,209,100, 69,101, 85, 30,174,231, 21, 65, -171, 43,133, 86,107, 64,145,182, 2, 69,218, 10,180, 12,234, 10, 32,187, 94, 89,183,238, 80, 20,220,186,131,222,189,187,163, 88, -167,131, 72,200,160,180, 44, 15,250, 98, 43, 30,123, 84,143,118,109,218,192,207,207, 15, 62, 62,190,184, 89, 80, 6, 34, 8,228, - 84, 70,103,151,124, 99,173, 2,104,236, 21, 4,117, 89,235,192,221, 88, 0,174, 80, 40, 20,154,232,232,104,204,159, 63,191,150, - 87,129,157,102,240,118,101,193,228,201,147,171, 89,176,236,251, 69, 8,193,139, 47,190,136,132,132, 4,194,149, 4,212,180,252, -157,239,213,244, 52,212,196,186,117,235, 8, 0,135,149,159,150,150,166,182,247,107,141,221, 27,192,254, 85, 3, 32,169,169,169, -142,251,245,109,231,154,146,146,162, 30, 62,124,152,236,216, 49,219, 59, 49,123,246,108,156, 62,253,187,140, 85,225,199,143, 31, - 87,179,191,127,232,208,161,110, 61,101,235,214,173,195, 87,178, 64, 76, 89,107,176,253,174,133,254,213,238, 79, 89,107,112,212, -231, 76,153, 8,223, 29, 50,130,199, 67, 64,218, 99, 87, 86, 39,221,171, 22,227,244,233,211,220, 87, 1,220, 11,197,239, 28, 11, -208, 16,235,191,186, 37, 95, 93,249,219,221, 76,110,167, 2, 90,183, 22,128, 33, 2,180,105, 45, 64,143,238, 20, 55,110, 8,193, - 8, 8, 68, 66, 33, 68, 66, 17,254, 56,235,143, 32,127, 17, 4, 2, 1,134,135, 91,224,235,235, 3,171,149, 2,212,226,149,242, -111,214,174, 51,110,149, 83,232, 47,107, 32, 36, 2, 92,190,145, 75, 46,115, 84,254,246,129, 77,118,253,250,117,245,245,235,215, - 93,253, 94, 13,199,114,140, 41, 42, 42, 58,192, 42,121, 0,152, 56,113, 34, 54,108,216,224,120,166,180,180, 20,133,133,133,216, -181,107, 23,187, 92,240,190,119, 94,251,192,165, 78, 75, 75, 83,179,193, 98,246,107, 30, 43,133,228, 35,169, 26,153, 52, 12, 52, -191, 20,134, 10, 19,116, 62,149,160,208,161,178,210,140,210,210, 42, 20,222, 49,224,198,205,114, 60, 41,235, 2, 32,185, 94, 89, - 21,198,214,200,185,114, 27, 33,221, 30, 65,183,110,157, 80, 84,116, 7,129, 45, 45,232,209, 35, 0,109,219,132, 64,226,235,139, -226,226,114,156, 60,117, 9,121,249,165,104,223,169,207, 67, 59,128,196, 43,149,148, 16,200, 88, 93,234,172, 84,235, 91,183, 31, -175, 84, 74,227,215,173,227,228, 5, 88,187,118,173,186, 38, 1, 88,189,122, 53,214,175, 95, 47,115, 39, 47, 62, 62,158,198,196, -196, 16,133, 34,208,169, 76,212,149, 98,166, 0, 48,105,210, 36, 78,238,127,231, 41,133, 86,173, 18,224,237,180, 1,107,229,219, - 9, 0,165,148, 98,248,240,225,178,228,228,228, 58,239,187, 83,216,236,220,122,114,242, 49, 53, 33, 4,132, 16, 12, 24,208, 95, -182,110,221, 58, 77,237,103,239,146, 12,119,242,152,201, 58,176,242,228,163,186, 86,227, 71,147,215, 92,112,200,227, 2, 62, 6, -224,225,129, 91, 2,240, 32, 90,252, 44,166, 78,157,218,160,239, 51, 12, 3,129,192,246,233, 29,202, 96, 96, 63, 11,124,196, 18, - 27, 1, 16,137, 48, 44, 28,240,241, 1, 68, 2, 31,180,110, 45,129, 64,160,135,197, 98,133,213,234,185,219,222,160, 45,128,164, - 83, 47, 92, 73,252, 47,218, 8, 25, 28,205,189,230,241,128,178, 96,193, 2,205,186,117,235,100, 13, 89, 6,200, 46,235,123,227, -141, 55, 28,215, 88, 75,191,180,180, 20, 6,131, 1, 51,103,206, 4, 0,124,253,245,215, 0,160,110,138,182, 77, 73, 73,209,216, -173,125, 53, 0, 12, 25, 50,164, 65, 1, 92,157,186,244, 68,250,241,125,104,219,218, 15,126,126,182,110, 95, 85,101, 65,105,153, - 17, 90, 93, 5, 58,119,235,131, 31, 55,110,114,219, 38,191,254,186,159,188,248,252, 80,122, 60,237, 60,158, 28,222, 31, 93,186, -116,129,201, 88,137,129, 3, 30,135,127, 64, 0,174,229,228, 34,255, 70, 49,146, 83, 46, 66, 87, 22,128,189, 27, 54, 61,180, 62, -211,217, 49, 10,123,251, 19,204, 86, 40, 28,203,194,173, 53,148, 62,195, 16,128, 58, 84, 6,157,173, 80,160,191, 11, 11,150, 16, - 80, 56,209,242,152,152, 24,212,244, 2,204,159, 63, 31,132, 16,196,196, 40,212,118,125,142,217, 49, 10,244,239, 95, 91, 94, 76, - 76,140,195, 29,239, 78,201,113, 85,254, 53, 49,105,210, 36,140, 30, 61, 90,230, 45, 9,118,158,171, 15, 15, 15,151, 37, 39, 39, -107,234,186,207, 37, 72,209,190,170,128,178,228, 43, 34, 34, 66,166, 80,196,104,106,146, 14, 39,249,240, 68,222,214,133,205,108, -167,146,118,119, 61, 29, 11,115, 29,132, 96,223,153,250,199, 62, 87,121, 0,248, 24,128,135,148, 0, 12, 27, 62,228,158,204,249, - 52,150,229,239,220,145,188,129, 86, 71,208,161, 29, 3, 66, 24, 16,134,193,254,131,182,249,125, 31, 31, 9,124,196, 62,152,248, - 52,129,196, 71, 12, 95, 9,129,182, 72,128,180,147,205, 97,177, 90,208,185,147,103,243,186,114,185,156,222,200,187, 2, 93,250, - 30,244,232, 44,194,185,124,239,231,133,103,207,158,173, 65, 3,131,242,228,114,185,236,203, 47,191, 84,179,110,254,162,162,162, - 41,225,225,225,229, 7, 14, 28,216,253,220,115,207,141, 45, 42, 42, 34,211,167, 79,223,103,207, 23,208,100,157, 51, 53, 53, 85, - 19, 30, 30, 46, 99,143, 27, 34,235,199,141,155,200,244, 87, 95,166,153,151, 46,224, 70,206, 53, 48, 12,129,197, 66, 33,241, 13, - 66,104,239,190,216,251, 91, 34,231, 58,189,113,219, 42,211, 22,221, 80, 87, 86,154,209,175,111, 8,130, 59,182, 70,238,245, 91, -208,157,205, 70, 70,102, 46, 14, 30,250, 3,215,242, 41, 78,164,159,243,170,157, 30,148,228, 63,214, 45,129, 94, 63, 55,240, 83, -142,242,178,255,131,181,107,215, 58, 8,192,218,181,107,129,156, 13,181,158,117, 37,143, 43, 40,165,164, 33,253, 56, 38, 38,166, - 65,125,207, 73,201,107,188,185,239,202,171,224,252, 93, 87,242, 60,106,231,107,219,144,176,246, 21,219,216, 48,234,145,106,202, - 31, 0,228,227,159,176, 29,232, 78,187, 37, 0,124, 30,128, 7, 7,235, 87, 45,174, 53, 13,224, 17, 1,120,192, 3, 62, 26, 92, -184,244, 83, 62,144,136,197,152, 56,158,128, 33, 4, 67, 6,155,113,246,156, 47, 24, 98,155,243, 47, 46,102,208,177,189, 0, 12, - 17,227,204, 89, 49, 36, 62,128,209,100,196,181, 92, 95,143,148,127,118,230,239, 8, 31,253, 12,132,173,195,145,157,153, 6, 97, - 65, 2, 2, 90, 4,209,146, 82,109,147, 84,176, 74,165,210,200,229,114,217,224,193,131,213,177,177,177,232,219,183,111,161, 78, -167,195,224,193,131,101, 58,157, 14,243,230,205, 83,219,149,191,166,169, 27,185,161,138,191, 38, 9, 0,128,136, 17, 67,164, 29, -218,119, 80,251,251,251,227,199,141,155,200,185,243,217,158, 13,232,201,105, 26, 0,196,130,214,244, 66, 70, 42, 58,180,107, 6, -137, 68,132,242,114, 35,242,111,150,130, 8, 59,227, 68,122, 50, 31, 45,197, 5,167,222, 4,186,255, 31,170, 45, 47, 60,185,168, - 73,139, 20, 19, 19,228,148,182,182,113, 20,154, 59,165,236,137,210,110,104, 62, 3, 87,227,188, 60,194,199,246, 91, 43,110,218, - 62, 60, 30, 90, 12, 24, 48,192, 17,240,183,126,213,226, 90,247,220, 18,128,198,206,199,127,191,243,251,123,198, 34, 8,116, 58, - 2,191,246, 4,173,130, 8, 6, 15, 50, 65, 34, 22,192, 71,108, 66,171, 32,137,125, 16, 32, 24, 58,216,130,180, 83, 34,155,183, -128, 35, 49,146,203,229,180, 79,207, 22,120,115,254, 71,168, 16,119,194,207,137,249,232, 30, 58, 4, 0,208,236,196, 46,100,230, -130,150,151, 53, 29, 9, 0, 64,114,114,114,164,171, 86,173, 82, 59,123, 7, 0,144,166,180,252,239, 53,236,201,126, 26, 92,239, -135,143,156, 34,211, 95,125,153,222, 46,186,141,138, 2, 3, 36,146, 86,232,212,237,113, 78, 83, 9, 15, 59,108,233,176, 27,233, -103,230,108,128, 99, 69, 64,206,198, 38,255,109,238,130,251,254,108, 24,251,204,148, 70,181,220,249, 24,128, 7,139, 4,212,165, -252,221,122, 0,254, 10,160,176, 69,245, 19,134,130,130, 34,168, 37, 69,210, 81, 33, 36, 98, 17,124,196, 66, 60, 59,158,130, 82, - 43, 2, 91,153, 97,182, 16, 88,173, 22,251,224,231, 30,143,119, 45,199,132, 23,229, 40, 23,246, 64,219,102,254,120,249,133, 32, -108,218,126,214, 65, 2, 76,150,159,113,246, 82,211,174, 19,103,137,128,211, 57,255,246,120,225, 85,248, 51,130, 76,214, 17,186, - 53,176,182,102, 80, 5,121, 37,111,189,110, 37,162, 3, 23,215,190,113,114, 81,147, 91,253,127,101, 28,248,195,212,152,125,152, -216, 8, 34,117, 34,139,252,180, 64, 83,145, 0,183,141,229,237, 62,194, 60,120,240,224,193,131, 7,143,135, 23,124,162,103, 30, - 60,120,240,224,193,131, 39, 0, 60,120,240,224,193,131, 7, 15,158, 0,240,224,193,131, 7, 15, 30, 60,120, 2,192,131, 7, 15, - 30, 60,120,240,248,115,160,218, 42,128,211,167, 79,123, 29, 13,234, 42,152,176,177,229, 77,155, 25,227,246,123,122,109,129,227, -216, 63,168,189,227,248,167,239,227,107, 61,219, 70,246,154, 91,121, 7,214,220,205,152, 55,102,225,151,142,227,219,234,111,225, - 77,249,234,130,183,229,171, 11,174,202,247,252,116,133,219,239,165,171,119,163,107,215,174,184,122,245, 42, 6,203, 38, 56,174, -255,242,163,242,158,215,159,187,254, 18, 23, 28, 44,125, 51, 63,223, 57, 51, 33,185,159,253,175,166,188, 9, 19, 38, 72,247,236, -217, 83, 45, 83,226,248,241,227,101,187,119,239,214, 52,197,251,241, 32,203,107,136,172, 63,115,253, 69, 70, 70,190,212,175, 95, -191, 77,103,207,158,125, 49, 41, 41,233,231, 70, 40, 31,125, 80,222, 15, 94, 94,211,202,243,152, 0,212,196, 87, 95,125, 37,173, -172,172, 4, 17,136, 64, 8,129,197,108,130, 88, 36,196,188,121,243, 52, 13,101, 30, 95,125,245,149, 20, 0,230,206,157,219, 32, - 89,122,109, 1,252,131,218, 59, 20,127,251,206, 93, 1, 0, 5,215,175,122, 37,239,192,154, 55, 48,102,225,151, 14,197,245,213, -142, 52, 0,192,220,103,135,252, 41, 25, 96,186,122, 55, 6,203, 38, 32, 93,189,219,166,212, 38, 77, 3, 0, 92,189,218,244,245, - 23, 10, 72, 51, 1,117, 40, 32,203, 4,212,111,230,231, 35, 45,246, 29, 0,192,144, 85,255,108,210,122,123,233,165,151,232,230, -205,155, 81, 89, 89, 89,237,186, 68, 34, 81,191,244,210, 75,248,223,255,254,247,160, 46, 15, 28,209,179, 91,240, 70,106,177, 24, - 50,115, 11,150, 0,216,197,219, 65,117,227,243,207, 63, 31,245,251,239,191,183,184,113,227, 70,251,160,160,160,255,207,222,149, -135, 55, 81,117,239,119,146, 52, 75,247,149,178,111,133,202, 42,133, 34, 34,107, 34, 20,196, 2,202, 82,180, 84, 63, 17,161, 1, - 21, 5, 68,145,126,254, 62,253, 92, 16, 20, 41,202, 26, 16,133, 15,202, 86, 16,101, 41, 20, 10, 41,101,211, 74,129,178, 83, 74, -129, 46, 44,221,183,236,201,220,223, 31,205,196,180,164,205, 36, 13,139, 56,239,243,204,147,204,146,147,153, 59,247,222,247,156, -115,207, 61,215, 55, 60, 60,188, 96,206,156, 57, 27,156,149, 55,120,240,224, 33, 19, 39, 78, 60,178,105,211,166, 41, 0,124, 94, -125,115,218,100, 0,244,249,243,231,255,165, 80, 40,126,149,203,229,180,131, 34,153,228,202,196, 5,253, 85, 93, 18,113, 85, 29, - 38, 15, 64, 38, 7, 87,123, 0,172,241,237,162,239,164, 62,173,186, 43, 7,119,239, 4,119,145, 27, 8, 33, 48,153, 8, 46, 92, -187,133,239,226,191,151, 73, 68,110,120,251,237,183,157, 34,239,132,245,243,164, 93, 59,166, 41, 47,100,181,151, 57,123,227, 12, -225, 75,124, 2,160, 42,189,107, 33,254,134, 60, 2,108, 44,213, 62, 49, 31,227, 96,252,187,150,134, 84,223,117, 13,205,177,172, -251,159, 66,161,176,166, 21, 16, 2,154,174,105,223, 38,147,201,114,255, 60,190, 27,107, 43, 26, 0,154, 53,169, 73,213,169,175, - 44,135,206,104, 4, 0, 84, 27,107,228,181, 27,246, 22, 58,116,237,201,138,248, 1,160, 71,191, 33, 56,165,220,107, 33,254,250, -174,123,152,229,199,116, 26, 89, 0,134,123,120, 32, 89,165, 82, 50,196, 15, 0, 87, 15, 28,108,168,211,106, 16,223,108,252, 74, -154, 81,252, 39, 10,114, 51,209,177, 77, 95,252,252,254,102,135,235,112,100,100,228, 75, 91,183,110,101,200,223, 8, 64, 11,192, - 29, 0,173,213,106, 5, 18,137, 4,145,145,145, 82, 91,158,128, 71,140,224,103,194,186,239, 75,222,188,202, 83, 85,112, 25, 3, -162,166,111,186, 85,102,248, 23,128, 95, 31,183,142, 41, 42, 42,138, 56,187, 0, 79, 29, 98,116, 10,203,150, 45,147,166,167,167, - 43,215,175,255, 43, 49, 81,113,113, 49,178,178,178, 48,114,228,200,255, 73,165, 82,217,156, 57,115, 88,189, 95,133, 66,193,219, -180,105,211,127, 1, 60, 55, 96,248,203,146, 77,155, 54, 5,191,250,230, 52, 47, 0, 38, 0,205,204,151, 61, 5,128, 55,120,240, -224, 65,192,253, 75,157,215, 71,170,125, 98, 62, 70,122,194, 2, 82, 95,123,115,160,125,144,180,147,233,224,243, 5, 48,153,140, -168,168,170,198,196,113, 47,145,170,170,170,198, 18, 54,113,229,123,225, 96, 31,182,150,253,181,242, 20,216, 87, 0, 22, 47, 89, - 42,149,190, 56, 94,217,170,137, 15,220,197, 2,208, 52, 13, 19, 13, 8,248, 20,252,125, 58,161,107,199,214,202,148,228,189,178, - 21, 43, 86, 72, 29, 85, 2,150, 46, 93, 42,237, 28,114, 92,217,163,211, 13,240,121, 38,229,210,101,203,100, 51,222,125,215, 33, - 25,170,210,187,144,248, 4,192,199,219, 11, 0, 44,159,182,174,107,218,170,173, 93,111,192,193,248,119,209, 39,230, 99,188,241, -202, 88, 0,176,124,218,186,110,249,174,116,135,180,107, 62,159,143,150, 45, 91,130,207,231, 67,175,215, 67,165, 82,193,100, 50, -161,172,172,204,169,151,235, 41,224,227,167, 37, 59, 33,242, 1,238,221, 4,254,172, 46, 64,209,221,108,108,136,159,231,144,213, -223,163,223, 16,180,108, 94, 51, 68,210,210, 6,249,183,109,219,214, 50, 28, 0, 0,249,249,249, 46, 41, 63,150,201, 85,201,112, - 15, 15,124,241,238, 59, 0,128, 47,172,136,127, 99, 86, 86,237,206,196,129,108,173, 19,231, 13,148,150,245, 73, 81,126,220,250, - 53,232,232,161, 16,209, 4, 17, 47,153,240,243,183,219,100, 7,151,131,109,103, 46,152, 54,109,218,175, 26,141, 6,235,214,173, -211, 78,154, 52, 73, 12,192, 19, 0,189,110,221, 58,253,164, 73,147, 4, 26,141, 6, 98,177, 88,217,216,142,110,248,240,225,210, - 3, 7, 14, 40,205, 11,182, 52, 26,158, 66,222,127,150,126,241,145,196,247,210,102, 72,174, 30,198,103,207,251,121,189,183,187, -232,243, 42, 61,121,172, 20, 0,102, 9,222,178,178, 8,226,239,159,226,240,179, 63,251,236,179,210, 63,254,248,195,105,178, 89, -188,120,177,116,251,246,237,202,170,170, 42,155,231,239,220,185,131,237,219,183, 43,223,124,243, 77,217,207, 63,255,156,106,167, -190, 80,155, 54,109,218, 48, 96,248,203, 19,178,206,156, 16,180,108,222,212,248,234,155,211,106,245,187,135,247,254,130,238,221, -187,119,218,180,105,211,136,238,221,187,239, 2,128, 99,199,142, 53,216, 62,216,180,183,154,246, 65, 1,118, 18,241,244,236,217, -147,236, 75, 62,136, 51, 23, 46, 89,142,105,181, 58,124,179,116,117,245,244, 73,209, 28, 97, 63,193,184, 47, 8,112,209,162, 69, -210, 1,195,198, 40, 59,181, 14,128,200,141, 7,154,166,113,247,238, 93,156,207, 60, 3,189,145, 6, 77, 19, 4,248,184, 99,216, -136,145, 74,141,206,232,240, 31,138,220, 10, 17,210,250, 46,192,167,208,165, 99, 30, 68,130,123, 14, 91,254,214,228, 95, 23, 21, -149, 85,184,155,119, 19, 18,159,128,122,189, 2, 13,145, 87, 93,172,223,250, 11,222, 25,221, 7,125, 98, 62, 70, 3, 90,246,125, - 16, 10,133,224,243,249,240,246,246, 70, 78, 78, 14,202,202,202,106, 20, 41, 39,201,191, 89,147, 96,120, 10,248, 24, 51,227, 75, -140,152,216, 15,123, 46, 20,224,174, 6,141, 38,255,186,200,191,125, 23, 23, 79, 29, 71,144,159,119, 13,249, 11,248, 46, 41,191, - 23,198,189, 1, 0,240, 19,184, 57, 68,254, 0,240,127,203,150,227,255,150, 45,183,144,127,178, 74,133, 15,135,141,172, 57, 25, - 36,100,245,220,253,226,218, 73,167,126,240,156,242,205, 54,111,195,141,231, 9, 15,184,131, 7, 62, 90, 4,247,199,187, 95,204, - 86,206,221,221,137,149, 26,145,154,154,106, 0,128,245,235,215,171, 1,136,153,101,148,215,173, 91, 71, 3,112,183, 94, 86, 57, - 58, 58,218,169,113,185,248,248,120,169, 35,199, 89, 96, 64,239,158, 61,212,137,191,236,148,247,236, 22,202, 87, 93, 58,132,155, -133, 85,184, 83,174, 6, 77,136, 83,129,192,132, 16, 82, 90, 58,148, 12, 26, 52,200,165,137,196,172,200, 31,254,254, 41, 78,201, - 72, 79, 79, 87, 2,160, 40,138,194,179,207, 62,235,112,153,165,164,164,220, 71,254,167, 78,157,194,196,137, 19, 45,251, 6,131, - 1, 87,174, 92, 81,198,199,199, 55,232,197,220,180,105,211,187, 3,134,191, 60,242,171,184, 89,130,196,196, 68,252,184,116,145, -192,236, 49,178,144,127, 98, 98, 34,150, 45, 91,134,238,221,187,239,178,215,222,234,146,127,125,237,109, 68,127,179, 23,208,203, -195,174,188,239,150,174,180,144,127, 97,113, 9, 10,139, 75, 80, 81, 85, 13, 55, 55,129,231,202,117,155,181,112,213,130, 8, 28, - 30, 42,194,194,194,238,219, 26, 84, 0, 86,172, 88, 65, 2,218, 62,141,182, 77,125,161, 53,152, 64, 81, 64,114,242,126,252,111, -253, 58,156,203,204,196,135,179,103,130,207,231,129, 54,209,240,118, 23,161,237,211, 3,148, 75,150, 44, 97,221,192,150, 45, 91, - 38,237,218,241,150,210,219, 83,141,159,214, 23,130, 71, 17,244,233,126, 85,185,108,217, 50,135, 26,169, 45,242,103,136, 95, 83, - 81, 82, 75, 65,168,168,172,178, 43,207, 86, 99, 98, 26, 82,122,194,130, 90, 4,183,126,235, 47,172,238, 49, 36, 36, 4, 1, 1, - 1,168,172,172,132, 80, 40, 4,143,199,131, 70,163, 65, 89, 89, 25,248,252,154, 70,238,200, 98, 75, 59,126,221,137,153, 75, 14, - 96,231,210, 79,208,172, 73, 48,220, 61,252,145,103, 42,192,134,248,121,240, 52,119, 26,124,150,242,108,145, 63, 67,252, 21,183, -175,163, 83,203, 38,168, 82,107, 33,114, 23, 1, 38,147,221,120, 0,123,229, 55,111,205, 30, 92, 60,125, 18,221,218,119, 65,133, -201,190,210,200,144,255,213, 3, 7,241,127,203,150, 91,142, 39,171, 84, 72, 86,169,144, 35,255, 47, 14, 92, 58,135,174,125,218, - 3, 37,246,151,102, 30, 60,167,189,116,250,123, 67,148, 65, 30,157,161, 33, 85,128,174, 16, 66, 93, 41,116,166, 42,104,105, 13, -104,161, 39, 90, 12,236,141,136,233,109,136, 61,107,142, 25,247,151,203,229,238,114,185, 28,168, 25, 2,128, 92, 46,135,121,223, -108, 65,105,177,101,203, 22,135, 27,237,172, 89,179,164,179,103,207, 86,118,233,210,133, 80, 20,165, 4,128,215, 94,123,141,180, -105,211,134,124,242,201, 39, 78, 45,205,236, 37,226,173, 91,254,241,155,146,225, 45,116,252, 19, 87,238, 98,207, 77, 30, 62,222, -119, 79,247,223,212,234, 10,149, 1,111, 56, 35,179,172, 44,226, 65, 90,254,240,247, 79, 65, 76, 76,140,195, 67,132,214,132, 79, - 8,161,152,229,164,217,226,141, 55,222,144,222,187,199,206, 40,209,235,245, 56,127,254,252,225,134,234, 11, 0,105,203,230, 77, -133, 81, 81, 81, 0,128,140,140, 12, 28,222,251,139, 56,255,246, 93,154, 33,127,243,179, 91,218,219,249,243,231,227, 27,211,222, -190,153, 52, 18, 23,174,231,161,105,251,102,128, 74,205,250,217, 11,139, 75, 96, 48, 24,205, 10,142, 17, 6,131, 17,121,183,110, -138, 27,249, 90, 41, 59,251, 28, 30, 33,106,185,162,116, 58, 29,122,118,234,164,116,151,184,129,166, 9, 76, 52,112,252,232, 49, -252,247,139, 47, 65, 19,224, 90,118, 54,206,101,158, 69,183,110, 61,192,231, 83,120,170,125, 75,228,156,102,239, 5, 16, 10, 10, - 17,218,246, 54, 32,160,144,119,199, 0, 8, 40, 60,221,233, 22,210,207, 23, 58,253, 0,214,238,125, 91,158, 1, 77, 69, 73,173, -217, 0,246, 96,237,222,183,165,105,167, 39, 44, 64,196,172,101, 54,163,216,173, 97, 52, 26,225,238,238, 14, 30,143, 7, 63, 63, - 63,168,213,106,168, 84, 53,203, 0, 7, 5, 5,161,164,164,196,161, 28,217,218, 50,160,143, 68,130, 15,151, 30, 69, 68, 15,224, -214, 25,224, 79,243,185, 15,151, 30,197, 15,179,100, 48,209, 38,135,203,239,226,169,227,150,239, 67,194, 59, 65,224,197, 67,114, -234, 37,244,236,212, 10,222,158, 34,172,223,158,130,222,178, 72,228,219,152, 5, 96,175,252,118, 93, 34,192, 29, 96,244, 16, 10, -107,246,228, 32,192,175, 29,198,246,167, 88,149, 31,227,238, 79, 86,253,181,116, 50,249, 44, 30,104, 81, 1,106,234,167, 32,255, -253, 2,224,105, 64,165,207,103, 58,149,122, 11, 51,100,156,167,178,141,111, 56, 42, 77,213,208,149,101, 99, 67,238, 38, 28, 27, - 93,134, 46, 83,100, 24, 54,195, 19, 18,191,167, 32, 22,248, 65, 48,186, 2, 83,140, 83,200,143,107,126,180,217, 73,201,229,114, -194, 40,109, 60, 30, 15,132, 16,189, 89,137,214,242,120, 60, 53, 33,196, 31, 0,141, 70, 76,175,141,143,143, 79, 29, 62,124,184, -172,164,164, 68,153,156,156, 92,163,248, 36, 39,163,115,231,206,232,212,169,147,140, 57,230, 8,170,116,244,123,147,255,239,135, -221,223, 70, 54,229, 17,109, 5,166, 38,100, 25,140, 6,195, 50,157, 9,243, 1, 56,181, 24,197,203, 47,235, 31, 56,249, 39, 36, - 36,164, 58, 99,253, 91, 15,153, 80, 20,133, 62,125,250, 72,217,174, 42,105, 50,153, 28, 82, 24,110,220,184, 1,133, 66, 65,173, - 92,185,210,214,105, 49,128, 46, 0, 4,207, 71,142, 45,207,201,201,241,205,200,200, 64, 98, 98, 34,194,115,114,120, 25, 25, 25, - 0,128,240,240,112,188, 48,184, 55,188, 61, 69, 88,246,243,206,194,137, 19, 39,198,173, 92,185,114,150,163,237,237,206,175, 11, -224,213, 85, 12,207,142, 51,177,109,193, 20,244,232,214, 20, 79,141,252,210,110,251,168,168,172,130, 88, 44, 2, 0,184,185, 9, -160, 86,107, 93,205, 51, 28,233, 63, 2,176, 89, 12,168, 86, 71, 69,211, 52,220, 69, 66,232,141, 4, 52, 1,120, 20,240,233,231, - 95,194, 68, 3,213,213,213,184,123,247, 14,130,131,155,130, 16, 26, 70,163, 9, 98, 55, 1,248,110,236, 92,176,203,151, 47,151, -118,108,155,175, 12,244,171,172,169, 14,230,141,162, 8,122,117,189,166,100,102, 5, 56, 2,198,186,103,220,253,117,201,159,141, -245, 95, 87,139,102,136,127,249,174,244,251,200,159,173,245, 15,212, 4, 12,137, 68, 34,248,248,248, 88, 92,134, 76,224,159,143, -143, 15,154, 54,109, 10,163,145,189,242,244,115,202, 17,248,180, 5,164,161, 53,251, 89,198, 26,247, 63, 80,115,236,147, 47,149, - 40,215, 59, 54, 36,147,127,187, 38, 88,177,117, 19,127,120,249,120, 64,224,205,135,182, 88, 3,240,120,104,214,166, 37,142,103, -222,116,170,252,222,248,224, 43, 12,234,251, 60, 4,119,129,234, 96,192,157,199, 67,223,182,237, 32, 31, 29,204, 74, 78,221,177, -254,141,175, 76,193,152,151, 7, 2, 29,180,192, 57, 1,224, 41, 0, 70,133,163,229,170, 53,236,188, 49, 45,252,161,215,151,130, -210,149, 96, 67,238, 38,156,156,228,131, 65, 99, 38, 97, 64,147, 23,100, 23, 14, 24, 97,164, 85,112,211,171, 96,236, 68,163,232, - 30,187,160, 81,179,242,166,157, 52,105, 18, 15, 64, 25, 49,175, 16,101,222,111, 20,146,147,147, 83, 59,119,238, 44,115,119,119, - 71, 96, 96, 32,220,221,221,145,150,150, 70, 37, 39, 39,167, 58, 33,174,233,200,145, 35,215, 44, 95,253, 19,239,211,212,106,122, -251,137,108,232,244, 6,149,214,132, 57,142,144,127, 93,151,127, 90, 90, 26,197,108,143, 11,249,219,114,247, 59,234, 5,168,174, -174,182,124, 63,117,234,148,101, 3,128,217,179,103,215,218,183,186, 94, 84,143,184,230, 0,218,154,149, 66,247, 23,198,189,166, -181,246, 4, 48,150,255,115,253,251, 91,183,183, 61,114,185, 92,235, 72,123,139, 29, 53, 8, 79,135,119,130, 87, 15, 47, 20, 28, -202, 5,196, 34,140,155,241, 47,244,121,253, 7, 86,207,108, 52,154, 80,112,231,158,145,177,252, 25,228,221,186,217,216, 87, 75, -234,217, 56, 60, 6, 10, 1,108, 89, 42,196,220,185,209, 4, 48,209, 53, 74, 0, 69, 1,191,236,216,142, 49, 99,199, 35, 48,168, -137,165, 3, 36, 14,188, 75, 62,175, 16, 93, 59,228, 89,246,159,238,230,110,209, 13,123,117,201, 1,159,231,184, 23,160,174,187, -223,214,121, 71,172,255,186,238,126, 91,231,173,231,178, 55,132,202,202, 74, 84, 85, 85, 65,167,211,129,166,105, 20, 21, 21, 89, -220,255,106,181, 26,213,213,213, 14, 13, 1,236, 92,250, 9, 82, 47, 0, 21, 55, 1,131, 6,248, 97,174,204,226,254, 63,125, 6, - 56,123,231, 56,248, 14,150, 95,197,237,235,240,247,241, 64,128,191, 7,158, 10,237,140,156, 27, 69,200, 42, 40, 65,235, 0, 31, -232,238, 21, 34,251, 90,118,173, 92, 0,108,202,175,159,244, 37, 12,144, 69, 99,231,238,109, 80,166,109,195,166,197, 31, 96,220, - 7,243,113,206, 0, 20,149, 20,178, 42, 63,235,177,254, 55,251, 61,139,152, 46,109,176,109,231, 97,156, 59,119, 19,139,207,103, - 96, 75,196,191,128,181, 39, 80, 80, 80,196,202,186,104,169, 21,193,164, 47,134, 94, 95, 19, 89, 29,220,162, 21, 58,117,238, 44, -171,148,212,196, 98,104,104, 53,120, 58, 21, 36, 42, 62,238,221,105, 88, 1, 96,222,153, 86,171,133, 86,171, 21, 3,208, 3,240, -210,106,181,222,117,167, 4, 54,194, 11, 32, 77, 75, 75, 83,118,238,220, 25,175,189,246,154,172,184,184, 24, 99,199,142,117,164, -227, 28, 32, 20, 10,171, 61, 61, 61,141, 17, 17, 17,119,230,206,157,219, 60, 46, 46, 46,231,207, 51,231, 94,220,114, 81,119,197, - 64,195,225,245, 88, 31,132,203,223,149,228, 95,215,250,103, 20, 22,230,157,177,141, 5,112,115,251, 43, 70,101,241,226,197,150, -205,214, 62, 96,153,225, 83,223,187, 17,154, 55, 30, 0, 65,197,237,235, 54,221,233, 76,123, 59,115,250,204,141,137, 19, 39,198, - 58,210,222, 6, 62,243, 20,134,246, 15,197, 87,159, 47,194,119, 75,146,240,159,141,135, 49,237,249,222,184,251, 91, 18, 42,202, - 42,217,180, 15, 42,106,244, 11, 48, 24,140,103, 12, 6,163,209, 90, 1, 0,128,249,159,206,107,140, 5,207, 89,254,143, 16,182, -198,254,235, 42, 1,181, 20, 0, 30,143,135,138,106, 53,248, 60, 10, 70,163, 9, 52, 33, 48,210, 53, 65,164,153,103,207,224,249, - 33,195,107,220,100,132,128,207,227,163, 74,173,135, 81,175,179,111,253,175, 88, 33,109,215,226,142, 50,200,191,194,162,101,244, -235,227,105,142,209,165, 64, 81, 4, 61, 59,103, 43,151,175, 88,193,218, 11,192, 88,247, 13, 5, 3, 58,101,189, 54, 16, 92,227, - 8,252,252,252, 80, 84, 84, 4,145, 72,132,170,170, 42, 4, 5, 5, 89,130, 2,181, 90, 45,202,203,203, 29, 82, 0, 98,191,218, -130, 31,230,202,224,211, 22, 72,189, 0,188,183, 80, 9, 79, 1, 31, 99,223,255, 26,249,244, 93, 36, 44,254, 8,124, 30,123,121, -140,245, 31, 30, 30,138,160,246,109,209, 36, 40, 16, 66, 30, 5, 35, 69, 80,164,210,160,172, 74,235, 84,249,125,183,224, 87,188, -220,185, 29,188,189, 3,224, 30,212, 28,134,210, 50,156,217,179, 25,229,165,185, 78, 85,226,159, 22,188, 11,204, 26, 10,129, 81, -143,182, 42,160,144, 95,137, 31,238,252, 9, 8,189, 89,203, 56,189,251,119, 89, 49, 79,131, 92,161, 26,189, 59,200,208,229, 95, -158,200,241, 75, 85, 6, 5,157, 81,182,234,155,131, 10, 94, 21,116, 68, 3,245, 70, 26, 98, 79, 47, 54,150,191,117, 7,207,204, - 2, 16,186,170,225,238,223,191, 31, 0, 16, 19, 19, 35,139,143,143, 79, 29, 51,102,140,197, 98,100, 67,254, 65, 65, 65,251,214, -172, 89,227,161, 80, 40,248,179,102,205,194,204,153, 51,201,137, 19, 39,250, 2, 72,214, 24,209, 25,192, 31,142,222,147, 92,238, - 87,175,219,223,217,128, 64, 87,146,127, 93,130,183, 86, 88, 8, 33,148, 57, 48,208,126,187,200,207, 63,193,124,223,180,105,147, -101,171,123,140,129,191,191, 63,228,114,121,125,157, 96, 62,128,114, 0,188,252,219,119,113,242,228, 73,203,152,127,120,120, 56, -128,154,229,183,183,238, 74, 66, 89,149, 86, 13, 96,190, 92, 46, 55, 57,210,222,126,219,249, 25,134,207,157,129, 23, 95, 28,130, - 64, 17, 31, 85, 20, 65,114, 86, 30, 78, 94, 40,112,136,168,167, 79,138,126, 38, 39, 59, 91,144,119,235, 38,152,205, 76,254,224, -172,246,191, 39,241,215, 61,102, 11,181, 98, 0, 68, 34, 17,174, 93, 58, 39,107,219,220, 95, 41,113, 19,192,100,162, 65, 81, 20, - 40, 10,136,149,191, 3, 66,104,152,204,249, 0,212, 90, 45, 46,103,229, 64, 40,180, 27,213, 13,163,161, 20, 61,187,220,176,238, - 49,240,246,172, 27,216,177,177,163,165,106,245,238,118, 29,191,103,118,118,216,250,183, 69,252,154,138, 18,197, 84, 3, 55, 0, - 0, 32, 0, 73, 68, 65, 84, 0,112,202,250,183,213,208,210, 19, 22, 0, 0,107,235, 31,168,153,231,223,180,105, 83,232,116, 58, -220,187,119, 15, 38,147, 9,129,129,129, 40, 41, 41, 65, 96, 96,160,185, 92,217, 19,118,209,221,108,124,242,165, 18, 21, 55,129, -111, 63, 24,136,106,163, 9,179, 23, 38,226,251,185, 81,248, 96,241, 30, 8, 40, 10, 14,240, 63, 42,110, 95, 71,179, 64, 95,184, -193, 13, 38, 80,184,115,227, 34,110, 21, 86, 32, 36,200, 31,191,157, 62,129,203,151,224,176,245, 63,110,242,108,184,249, 3, 60, - 62,176, 46,233, 6,118,172,248, 16,147, 23, 40, 48,123, 84, 15,188, 51,164,141, 67,229,151,172, 82,225,187,209, 19,128,114, 49, - 64,185, 1,223, 45,194,248, 63,143,226,192,144,233,160,190,158, 1,234,247,143, 88, 91, 24,103,239, 4,224, 89, 77, 5,170, 37, -124,168,197, 98,132,140,115,131,142,104, 80,193,115,131, 17,161, 32, 38, 53, 12,197,119,112,124,105, 5, 98, 38,134, 32, 85,169, -124,232,141, 54, 54, 54,150, 0,192,234,213,171, 25, 87, 63, 53,107, 86,205, 48,240,198,141, 27,217,190,217,254,205,155, 55,223, -255,245,215, 95,123, 92,187,118, 13,110,110,110,240,246,246,198,185,115,231, 12, 0,138, 26,115,127, 13,205,201,119,198, 59,224, - 74,242,175,107,253,215, 16,243,253,211, 7,205,211, 3, 83,237,220,215,181,173, 91,183,246, 99, 59, 60, 39, 22,139, 39,215,175, - 52,201,171, 6, 15, 30,124, 3, 64,120,214,153, 19,176, 30,243,127,123,242, 4,236,111,223, 30,137,137,137,200,200,200,192,190, -246,237,221, 39, 78,156,248,243,145, 35, 71, 88,183,183, 87,134, 62, 11, 31,218, 15,106,184, 97, 71,252, 12,172,216,115, 22, 31, -190, 48, 0,147, 22,111,194,248,249, 27, 28,181,192,169,249,159,206,179,149, 8,136, 88, 41, 1,156, 69,255,132,161,150, 7,224, -237,183,223,166,202,239,100,227,122, 94, 9, 4,110,124, 24, 77, 52, 12, 70, 19, 78,159,206,192,255,254,247, 51,244, 38, 2,131, -137,134, 80,192, 67, 97, 89, 53, 10, 46,159,148,205,156, 57,179,193, 6,181, 98,197, 10,105,231,144, 91,127, 89,255,230,122,181, - 99, 99,104, 77,125,226, 17,128, 71,192,227,209,232,219,227,178,114, 5, 11, 47,128, 45,235,223,122, 22,128,135,127, 83,135,200, -223,150,245,111, 29, 85, 27, 49,107,153, 67,228, 85,211, 41,150,161,186,186, 26,110,110,110, 22,235,159,166,105,203,167,163, 10, -192,134,248,121, 56, 93,112, 4,158, 77,107,130,254,188, 4,124, 20,221,205,134,183,200, 13,229,165,249,224,243, 40, 8,120,236, -134,159, 25,235,191,149,191, 23, 46,229,220,128, 81,175,135, 72, 32, 68,117,181, 22,191, 41, 79,160,183, 44,210, 33,242,103,202, -239,165,119,191, 64,194, 15,223, 67, 77, 3,173, 66, 90,226,194,197,223, 49,123, 84, 15,167,202, 15, 0,102,135,244,198,238,107, -135,129, 10, 35, 32, 14,196,193,244, 75,160,190,158,193,116, 76,172, 11,239,200,162,156,212,227, 7,211, 1,125, 21,170,169, 42, -148,241,170, 81, 33, 48,192, 96,170,132, 72,171,134,248,246, 13,108,137,187,134,182, 97,161,168, 47, 0,176, 46, 36, 18,137, 53, - 9, 64, 44, 22,219, 60,199, 22,107,214,172,193,154, 53,107, 26,213,152,189,188,188,222,203,206,206,246,240,246,246,134, 68, 34, -129,191,191, 63,138,138,138, 64, 81,148,218,149,157, 6, 99,241, 71, 69, 69, 17,160, 38, 32,208,145,160, 64, 87,147,255,179,207, - 62, 43,181, 23, 80,203, 54, 22,192,195,195, 35, 86, 32, 16, 92,175,123,124,241,226,197,181, 44,127, 0,104,211,166, 13,134, 14, - 29,186,206,158,253,147,127,251,110,173,104,255, 79,254,111, 22, 68, 2, 33,130,131,131,193,196, 4,152,207,123, 56,210,222,166, - 72,159,198,204, 69,223,163,234, 94, 33,130,188,155,224,226,165, 92, 76, 90,188,201,225,246, 81,135,240,169, 58,191,183,150,195, -121, 2,254, 6, 56,123,246,108,131,201,128,234,245, 0, 0,192,156, 57,115, 82,191, 93, 68,201, 8, 25,173,108,219, 60, 0, 94, -238, 34,116,233, 22,134, 46, 93,123, 64,192, 3,170, 53, 38,228,222, 41, 69,122,234, 94,153,167,135,187,221, 63, 80,169,213, 8, -109,115, 7, 90,157,216,156,181,165,166, 26, 73,196, 90, 16, 2,148,150,139, 0, 10,240,242, 48,162,123,232, 77, 28, 61,101, 63, -139,157,181,245,111,109,241, 75,124, 2,224, 70, 12,128,241,175,254,206, 36,176,127,143,214,214,191,181,197,207, 28,203,190,120, -198,114, 45,155, 44,123,214, 74, 0, 0, 52,109, 90,163,140,148,150,150,194,219,219,219,226,254,119, 68, 1, 96,148, 0,224,107, - 76,143, 26, 12,252,112, 20, 43,254, 29,137,241, 31,124,143, 77, 11,222,129,128,162, 32, 20,177,155,177,195, 88,255,151,114, 11, -209,161, 85, 32,214,254,184, 5,109,219,182,133, 79,243, 16,244,104, 30, 2,131,238, 47,247,191, 27, 11,153,140,245,255,229,228, - 33,120,239,211,117,104,213,158,106, 84,249, 49,214,255,176,157, 63,225, 64, 76, 52,168,150,125, 1,212,100, 5, 4,128, 27, 42, -149, 69, 73,204, 2,187, 4, 62,203, 39, 93,167, 6,207, 33,210,144,177, 85,202,182, 29,187,161, 82, 2,220,192, 45, 84,221, 44, - 66,209,124, 19,170,203, 90,226,202,241, 44,214, 47,132,166,105, 74, 34,145, 16,141, 70, 3, 43,203,147, 72, 36, 18,208, 52, 77, - 61,138,206,178,170,170,234,219,119,222,121,103,244,154, 53,107,196, 62, 62, 62, 80, 42,149, 88,178,100, 73,165, 94,175,127,193, -149,255,195, 88,252,204,116, 57, 71, 3, 1, 19, 19, 19, 41,115,146,159, 70,147, 63, 0, 88, 17,187,221, 50,183,151, 97, 80, 46, -151,235, 21, 10, 69,223,109,219,182,157, 83,169, 84,205, 12,134,154,105,166,117,201,191, 75,151, 46,232,219,183,239, 72,185, 92, -110,239, 63, 5, 21,183,175,227,171,207, 62,193, 47,187,247, 97,248,128, 94, 56,148,242,123,141, 1,211, 60, 4, 62,205, 67, 16, -158,147,131, 23,198,189, 86,156, 91,162, 30, 6, 96, 59, 91,235,127,230,234,221,136,123,107, 24,154, 55,149, 90,148,139,186,229, -208,200,108,138,156, 39,224, 9, 82, 10, 88, 41, 0, 0,240,225,156, 15, 82,191,253,150,150,221,104,249, 20,218,119,236,172,244, -246,144,128, 38,128, 70,167, 71, 78, 78, 14,138,114,206,202,188, 60, 61, 48,125,250,116,187, 13, 87, 34, 22, 99,219,254,193, 50, - 38, 2,190, 65,119, 4,143, 7, 15, 15,246,214, 19, 51, 5,208,195,191, 41,104,147,161,134,252,205, 48, 80,110,118, 83,236,214, - 5, 51,165, 38, 98,214,178, 90,164,229, 12,249, 91, 43, 1,214,137,127, 74, 75, 75,237,191, 0, 59, 74,192, 6,171, 89,194,107, -230,191,253,215,142,161, 26,158, 44,229,180,242,247,194,182, 83,103,113,225,202, 85,244,150, 69,214, 34,125, 71,200,159,193, 75, -239,126,129, 29,189, 60,240,238,152, 78, 46, 41,191,217, 33,189,241,193,174,109,160,190,250, 20,251,130,159,197,146,234, 11,181, -206,143,245,241,197,130,138,114,135,136,227,200,162,156, 84, 63, 65, 4,242,203,174,163,168,228, 14,238,101,121,130,111,242, 70, -255,167, 7, 98,203,241, 45,143,180, 83,115, 81,182,191, 83, 63,255,252,115, 4, 69, 81, 7,191,255,254,123,241,203, 47,191, 92, -169, 86,171,135,193,137, 49,255,134,224,138, 41,128,114,185,159, 75,200,223,134,149,106, 79,249, 96,113,111,242, 98,133, 66, 17, - 82, 85, 85,245, 85, 70, 70,198,172,130,130, 2,168, 84, 42, 8,133, 66, 52,107,214, 12, 65, 65, 65, 47, 43, 20,138,223, 54,108, - 96,181, 36,192,101, 0,225,173,252,189,240,220,115,207,225,236,181, 2, 4,182,235, 90,171,189,189, 48,238, 53, 53,128,165, 95, -197,205,218,206,246, 57,166, 72,159, 70, 68,202, 31,136,249,244,127, 24, 52,104, 16,130,131,131,109, 42, 90, 46,124,237,148, 19, -228, 79, 26, 56,206, 41, 17,143,128,244, 89,165, 2, 6,128, 15, 63,252, 48,117,249,242,229,210,211,169, 89, 50,160, 38,146,150, - 16, 2,145, 72,132,143, 62,156,195,186,209,190,235, 96,154, 95,182, 96, 92,253,124,163, 26, 48,170, 45, 17,240, 12,241, 59, 58, - 23,139,113,245,103, 95, 60,131,236,139,103, 16, 20, 20,132,162,162, 34,167,136,223, 39,168, 57,244, 44,130, 35,217, 34,230,139, - 13, 56,113,212,117,197,120,243,230, 77,203,106,127, 6,157,246, 62,242,119,132,248, 25,252,171,151,135,203,202, 15, 0,168,248, -143, 44,196,207,144,255, 13,149, 74, 54,214,199, 23,201, 64,234,130,138,114,167,158,253,215, 5, 7,173, 58, 30, 13, 0, 96,203, - 69,246, 9,123, 8, 33,148, 72, 36,178,120, 1,152,239, 0, 32, 18,137, 40, 91,223, 31, 50,142,253,244,211, 79,131,182,111,223, - 62,187,178,178, 50, 30, 64,186,171,255,192, 21, 83,255, 92, 76, 78, 46,135, 92, 46,215, 0,152,109,222, 26,245, 62,206,159, 63, -223, 31, 64,187,192,118, 93,213, 6,157,214,221,220,222, 42, 1, 84, 0,184,220, 58,192,253, 21,185, 92,238, 80,133,142,248,100, -205,195, 34,126,167, 20, 45, 39,175,231,224, 2,132,133,133,177, 34,127,187, 6,104, 99, 87,234,123, 16, 96,198,246, 25,226, 71, - 35,137,159, 25,155,174, 40,204, 71, 69, 97, 62,130,130,130, 26,101,241, 3,128,209, 68, 59,236,125,104, 8,133,165, 21, 78,223, - 75, 93, 48, 99,251,174, 34,254, 7, 80,126, 20, 0, 12,247,240, 32,214, 86,127, 79,129, 91,163,136,255, 31,134, 63, 43, 43, 43, -163,185, 98,120,244, 56,114,228,136, 66,161, 80,252, 47,183, 68,173, 54,232,180,214,227,145,222,173, 3,220,253,156, 88,253,143, - 2,106,134, 50,254,110, 74, 21,135,135,171, 4,176,170, 76,206,174, 35,204,129, 3, 7, 14, 28, 56,112,248,251,130,199, 21, 1, - 7, 14, 28, 56,112,224,192, 41, 0, 28, 56,112,224,192,129, 3, 7, 78, 1,224,192,129, 3, 7, 14, 28, 56,112, 10, 0, 7, 14, - 28, 56,112,224,192,225,137, 64,173, 89, 0,103,207,158,117, 58,138,212, 86, 48, 33, 39,143,147,231, 42,121,230,181,213,121, 0, -104, 91,201, 87,184,242,171, 95, 94, 88, 88, 24, 83,118,204, 92,110,114,246,236, 89,154, 43, 63, 78,222,223, 73, 94,120,120,184, - 32, 35, 35,195, 8, 0,125,250,244, 33, 29, 59,118, 68, 66, 66, 2,197,149,159,109,121, 14, 43, 0, 79, 8, 26,149,100, 34, 42, - 42, 74, 10,192, 58,101,168, 44, 49, 49, 49,149,211, 21, 31, 13,190,249,230,155,215,207,159, 63,223,227,228,201,147, 31,136, 68, - 34,168,213,234,143, 20, 10,197, 34, 22, 25,216, 56,252,213,177, 16, 0, 38,174, 36, 30,111, 68, 70, 70, 74,247,238,221,155,234, -228,111,101, 73, 73, 73,135, 93,148, 80, 10,145,145,145,175, 36, 37, 37,109, 89,181,106,149, 63,128, 42, 0,166, 71,221,230, 24, -242,143,137,137, 33, 27, 55,110, 68,239,222,189,185, 74,211, 72, 60, 81, 67, 0,102,242,110,212,239,183,109,219, 86, 55, 95,184, -178, 49,114,163,162,162,164,230, 57,187, 36, 42, 42,138, 56, 42,139, 56, 8, 91,243,131, 27, 41, 79,250, 40,222,165, 66,161,160, -102,204,152,177,232,226,197,139, 63,180,105,211,230, 3,177, 88, 12,157, 78, 7, 0,223,236,216,177,131, 30, 51,102,140,236, 17, - 53, 25,226,248,246, 48,229,213,187, 6,187,245, 90,236, 78,173,207, 30, 21, 21, 37, 37,132, 16,242, 31,219,178,153,115,246,234, -160, 45,220,188,121,147,220,188,121,211,101, 4, 83, 90, 58,180,214,122, 5,174, 38,106,138,162, 28,146, 75,211,132,152, 76,132, -208,180,237, 45, 50, 50, 82,154,148,148,228,212, 42, 84,171, 87,175,126,126,223,190,125,135, 7, 15, 30, 12,138,162,200,230,205, -155,135, 58,122,111,117,183,125,251,246,109,121,181,159, 16,242,105,242,210,235,158, 57,219,167, 78,141,165,153,115,246,228,169, - 84, 42,162, 82,169, 26,172,135,204, 53,206,190,159, 43,167,100, 72, 89,157,137,240,240,112,206, 16, 96,111, 8,220,151, 32, 72, - 96,167,193,219,204,155,109, 47,159,246, 35, 68,163,150,113,219,182,109,155,114,194,132, 9, 0,106,146,106, 88, 85, 78,165, 51, - 94, 5, 70,161, 96,114,254,155,211,144, 42,163,162,162, 28,243, 42, 36,250, 59,240,175,246,219,190,106,212,219,236,197, 57,190, -174, 77,125, 13,146,117,249, 41, 20, 10,170,162,162, 98,107,183,110,221,198, 1,224, 17, 66, 32,145, 72, 80, 88, 88,136,242,242, -114,248,248,248,160,176,176,240,240,152, 49, 99,100, 59,119,238, 76,117,240,157, 16, 38, 29, 44, 69, 81, 24, 55,110, 28,134, 14, - 29, 42,155, 54,109, 26,107, 57,187,118,253,106,249, 62,122,244,203,118,247,237, 65,115,226,221,191,138,187,223,178, 90,251,117, -143, 73,250,217, 95, 84,137, 89, 78,216, 26,105,105,105,152, 63,127,254,125,239, 98,224,192,129,228,232,209,163,172,234,114, 98, - 98,162, 18,159, 82,204,254,253,137,103, 62,165, 26,221, 25, 63,198,125, 75, 45, 75, 91,161, 80,200, 98, 99, 99, 49,104,208, 32, -114,236,216, 49, 86,191, 61, 81, 79, 78,198,157,137, 31, 32, 41, 41, 73,201, 44, 18, 54,104,208, 32, 82, 89, 89,217, 16,225, 75, - 99, 99, 99, 45,245,245,183,223,126,115,167, 40, 10,209,209,209,247, 0, 4, 79,156, 56,241,160, 66,161,224, 57, 98,177, 47, 58, -184,200,242,253,110,242, 29, 80, 20,133, 77,239,187, 3,160,240,237,107,223,188, 20, 24, 24, 8, 0,216,188,126, 19,235,178, 10, - 15, 15, 71,251,246,237, 93, 82,238,225,225,225,188,140,140, 12,186, 79,159, 62,100,227,198,141,184,151,213, 22, 40,246,227, 88, -221, 1,242,119,212, 3, 64, 18, 19, 19,239,211,176,172, 58, 80,226, 68,227,118,169, 53, 89, 87, 94, 98, 98,162,245,130, 24, 14, -131,162, 40, 42, 49, 49,145, 98, 58, 32,243,167,211,150, 38, 67,254,230,123,162,172,238,205, 97, 69,133,154, 80,102,217,216, 28, -183, 7,207, 61, 43, 45, 27,155,227,142,144, 63, 33, 4,204,234,108,132, 56, 86, 77, 20, 10, 5,175,172,172,236,127, 62, 62, 62, -227, 0,240, 38, 79,158,140,152,152, 24, 8,133, 66, 72, 36, 18,136,197, 98, 80, 20, 5, 62,159,143,138,138, 10,214,229, 24, 17, - 17, 33, 5, 64,182,111,223, 14,230,157, 16, 66,176, 99,199, 14, 76,155, 54, 77,105, 62,255,216,193,150, 66,240, 40, 60,107,137, -137,137, 74, 0,212, 43, 87, 38, 96,194,101,155,109,140, 76,184, 28, 37,163, 62,119,170,221,145, 15, 63,252, 16,237,218,181,115, -201,253, 82, 20, 69,228,114, 63, 4, 4, 28,114,105, 57,140, 24, 49, 98, 72, 74, 74,202, 97, 66, 8, 21, 27, 27,155,234, 8,249, -215,135,157,137, 31, 32, 62, 62, 30, 52, 77,227,131, 15, 62, 96,165, 80, 88,147, 63, 0,236,219,183,111,247,160, 65,131, 0,192, - 47, 58, 58,218, 56,120,240, 96,200,229,114,218, 28, 55,195,198,203, 88,107,127,201,146, 37,120,229,185, 26,219,112,211,251, 18, -188,218, 79,136,143,134,127,200,250,153, 60, 60, 60, 48,104,208, 32,100,100,100, 88,250,211,186, 27,115, 13, 91,101, 47, 35, 35, -131, 6,106,150, 89, 7, 0,111,247, 98,142,213, 27, 73,254, 13, 42, 0, 12, 89,101,100,100, 88,210, 78, 90, 91, 79,142, 18,173, - 85, 39,226,234, 78,169,174, 50,224, 82,215,176,141, 33, 1,135, 97,173, 80,152,173,255, 39,177,158, 17,235,206,164,160,160,192, -114, 34, 63, 63,159,181,194, 88, 81, 81,241,181, 90,173,126,141,199,227,241, 38, 78,156,136,138,138, 10,220,190,125, 27,110,110, -110, 16, 8, 4, 16, 8, 4,112,115,115,131, 68, 34,129, 70,163, 1, 27, 23,226,170, 85,171,164, 7, 15, 30, 84, 82, 20,133,241, -227,199,131, 16,194, 40,121,212,248,241,227, 1, 0, 41, 41, 41, 74,174,171,104,152,252,205,239, 87,102,173, 36, 51,239,222,218, -171,229,140, 5,159,152,152, 72,153,223, 11, 86,173, 90,229, 18,101,108,222,188,121,140, 81,208,104,207,196,240,225,195, 35, 78, -157, 58,149,210,182,109, 91,116,232,208,129,244,239,223,223,226, 57, 49,175,254,232, 20,249, 47, 94,188, 24, 20, 69,129,199,227, -225,212,169, 83, 96,227,141,169,227,145,120,137,162, 40,188,250,234,171, 70,243, 33,125,116,116,116,165, 84, 42,197,180,105,211, -232, 23, 95,124,209,238,179, 91,175, 74,122, 55,249, 14, 64, 1, 9,239,253,149,181,120,211,251,238,136,238, 47,194,220, 23, 62, - 98,125, 95,108, 44,127, 54,215,196,196,196,144,240,240,112,203,118,234,212, 41, 84,231,134, 3,122, 13, 40, 79, 35, 82,190,188, - 12,235,243,204,198,181,220,218,228, 31, 59,119,129,205,243,130,134, 26,100,120,120, 56,201,200,200, 0,227, 9, 96,136, 43, 60, - 60,220,161, 70,254,160,201,223,218,170,126,220, 3,246,172,135, 4,158, 56, 13,128, 16, 20, 20, 20,224,238,221,187,150, 99,117, -247,237, 88,255,252,253,251,247,191, 24, 26, 26, 10, 62,159,143,236,236,108, 16, 66,112,245,234, 85,232,245,122, 80, 20, 5,129, - 64, 0,138,162, 96, 50,153,160, 86,171,177,115,231, 78,187,114, 15, 29, 58,164, 4,128,241,227,199,223, 87,111,153,161, 30,134, - 40,216,212,235,186,110,125,123,251,108,172,124, 6,245, 13, 7,176,113,253,215, 69, 90, 90, 26,204,150, 97,227, 20,224, 79, 41, - 80,159,215, 40,112,214,202, 43, 33, 4,248,148,194,132,203, 81, 78, 7,202, 82, 20, 69,204,239,197, 66, 70,230,247, 69, 53, 70, - 94,199,142, 29,239, 35, 55,103, 33, 18,137,200,197,139, 23, 81, 84, 84, 68, 21, 21, 21, 33, 44, 44,140,220,188,121, 19,124, 62, - 31, 70,163,209,169, 63, 24,220,159,207, 40, 15,152, 51,103, 14,150, 44, 89,130,163, 71,143,130,162, 40,140, 26, 61, 21,183,110, -178, 91,192,113,223,190,125,191,154,223,177, 22, 0,109,222, 16, 29, 29, 93, 14,192, 55, 41, 41, 9,145,145,145, 82,107,133,188, - 33,212, 88,255,247,175, 99, 82, 51, 28, 0,108,222,116,198, 33,121,141,197,149, 43, 87,112,234,212,169, 90,199, 76,229, 55, 96, - 52,208, 0, 85, 5,223, 23, 12, 56, 85,103,177,107, 46, 56,144, 29,249, 55,232, 1, 48, 91,255,148,181, 39,128,177,252, 51, 50, - 50, 26, 67,254,246, 2,148,156,146,103,229,153,144,194,137, 0,167, 7, 96, 57, 17,171,206,199,114, 63,204, 49, 87, 5, 39,145, -109,126,150,205, 21,168, 30, 57,221,178, 57, 96,249, 19,166,179,109,217,178, 37,122,247,238,109,105,132,204,126,221,107,235,129, -175,191,191,127, 55,157, 78,135,210,210, 82,156, 56,113, 2,233,233,233, 40, 42, 42,130, 70,163, 1, 51, 70, 74, 8,129,193, 96, -128, 78,167, 99, 53,196,192,212,141,250,200, 61, 49, 49,145,162, 40, 10,108, 61, 51,187,118,253,106,217,216,236,219,131,230,196, -187,181,136,158,217,172,247,173,175, 97,139, 65,131, 6, 33, 45, 45,173,113, 21,194,106,204, 31, 53,195, 88, 50, 51, 57, 83,204, - 57, 52, 50,246,198,250,189, 48, 94, 0, 87,193, 21, 94,128, 22, 45, 90, 32, 63, 63,159,170,171,236, 58, 75,254, 59, 19, 63,176, -212, 97, 6, 3, 6, 12, 0, 0, 28, 57,206,126,178, 70,100,100,228,112,243,216,255, 37, 0,106,115,127,206,108, 22,173,155,109, -112, 97,237,177,127, 27,202,149,131,242, 92,129,140,140, 12,170,119,239,222,168,186, 52, 2,101, 39,154,161,252,152, 4,164,172, - 28,168, 6,120,106, 35, 42,143,242,160,249, 67,136,242, 19, 77,176,127, 83, 4,122,247,238,237, 16, 63,253,211, 33, 96,211, 56, - 25, 79,128,163,150,255,220,185,115,201,194,133, 11, 93,118,179,246,228,153, 59, 41,151, 85, 78,182, 99,104, 13,145,142,149,172, -106,185, 92,238, 89,223,121,103, 97, 61,246,239, 10, 37,192,122,236,159,173, 18, 16, 19, 19, 3, 15, 15, 15,120,122,122,194,203, -203, 11, 62, 62, 62,180,159,159, 31, 47, 41, 41, 9,175,191,254,186,229, 58,177, 88,140, 97,195,134,161, 1, 37, 32, 64,175,215, -163,180,180, 20, 90,173, 22, 62, 62, 62, 16,137, 68, 48, 26,141, 32,132,192,100, 50, 65,175,215,195, 96, 48,192,100, 50, 57, 20, - 95, 96, 14, 90,171,247,188,181, 21,250, 40, 97, 47, 32,208, 81, 52, 86, 9,160, 62,175,127,184,111,194,229, 40, 51,185, 58, 41, -187,142,245,111,117, 28,227,199,143,119, 56, 24,176,174,245,111, 45,207, 89,132,135,135, 19,147,201,132,176,176, 48,114,246,236, - 89, 42, 44, 44,140, 24, 12, 6, 84, 84, 84, 52,134,212,106, 58, 95,129, 0,179,102,205,194,169, 83,167,240,215,184, 63,251, 58, -189,127,255,254,253, 3, 7, 14, 4, 0, 47, 51,233,171, 1, 96,203,150, 45, 77,142, 28, 57,226,109,110, 31,148,249,211,174,224, - 37,223, 47,193,171,125,239,183,254, 99,126, 80, 99,203, 9, 3, 8, 33,232, 57,177, 39,206,108, 58, 67, 61, 76,227, 42, 35, 35, -131,146,253, 43,156,236, 95,210, 6,130,234, 74,192, 88,243,215, 52, 0,161, 0, 40,184,235,139,195,185,225,166,213,155,139,248, - 25, 25, 25, 84,120,120,184,152,137, 21,224,172,255, 5, 13, 94,103,119, 26, 96, 84, 84, 20, 97, 42,172,117, 60, 0, 27, 44, 92, -184,144,177, 24, 92, 2, 22,242,156, 30, 95, 55, 79,209,171,181,165,164,164,208,204,172,128,198, 90,236,177,177,177,158, 79,114, -133, 91,189,122, 53, 22, 47, 94, 92,171, 94, 49,228, 63,122,244,104,140, 30, 61,186,198,194, 57,114,164, 33, 49,254, 57, 57, 57, - 90,147,201,132,178,178, 50, 20, 23, 23,163,172,172, 12,106,181, 26,106,181, 26,213,213,213,168,172,172, 68, 69, 69, 5, 52, 26, - 13,116, 58, 29,216, 52,116,138,162,176,125,251,118,135, 20,182,191, 51,210,210,210,106,109,214,152, 53,107,150,212,122,159,205, -152,179,141, 49,255, 90,150,123, 99,162,246,109,253,150, 16, 66,109,223,190,221,165,177, 0,219,183,111,119,184, 13,247,234,213, -139,152, 76, 38, 75,130,150,176,176, 48, 66,211, 52,238,221,187, 7,149, 74,229,212, 51,255,123,238, 96, 28, 57,114, 4,244, 86, - 95, 16, 66, 16, 31, 31,111,121, 71,105, 39,104,176, 29,249,136,140,140,124, 25, 0,162,163,163, 11,204, 10,128,110,243,230,132, - 38,211,167, 79,111,114,228,200, 17,140, 24, 49, 34,194,145,156, 0,119,147,239,128, 2,133, 4, 43,235,127,226,247,106,240, 95, -173,192,230, 19,122,204,156, 57, 19, 11,247,127,243,208,235,114,120,120, 56,159, 81, 2, 94,152,105, 4,209,248, 0,149, 0, 42, - 1,126, 21, 80,121, 15,216,119,166, 25,172,200, 95,144,145,145,161,229,200,223, 62,249,219,245, 0,212, 29,247,183,142, 7, 96, -235,102, 73, 76, 76, 76, 53, 7, 8, 41,235,120,146,156,237, 48,238,147,199, 12, 11,152,199, 33, 93,226,254, 25, 58,116,232,133, -148,148,148,110,143,227, 11,102,172,126, 87,185,253, 25,171,223, 1,183,127, 45, 36, 36, 36, 88,190,255,247,191,255,197,207, 63, -255, 12, 0,122, 0, 66,134,248, 1, 96,216,176, 97,246, 20, 0, 77,104,104, 40,212,106, 53,244,122, 61,138,138,138, 32, 18,137, - 32, 16, 8, 44, 30, 0,149, 74, 5,181, 90, 13,157, 78,135,138,138, 10,140, 27, 55, 78,182, 99,199,142, 6,239,143,177, 50,237, - 76,107,197,248,241,227,237, 42, 10, 53, 10,205,131,139, 1,112,230,124, 93, 88, 77,247,187, 15,241,241,241,202, 89,179,102,201, -226,227,227, 83, 31,105, 29,174,199,250,183,134, 35,177, 0,245, 89,255,206,162, 87,175, 94,228,244,233,211, 84, 88, 88,216,103, - 76,213, 54,153, 76,159,122,120,120,160,184,184,216,169, 62,230,147,143, 7, 35, 53, 53, 21,212,246, 0, 0,192,129, 79,188, 48, -236,203, 42, 12, 26, 52, 8, 95, 45, 60, 2, 66, 8,107,111,197,190,125,251,118, 14, 30, 60, 24, 0,138,182,108,217,212,226,200, -145,163,190,132, 34,120,113,196,139,163,247,238,221,187,123,239,222,189, 14,121, 57,151, 44, 89,130, 87,251,185,213,182,248, 65, - 48,107,230, 44, 4, 15,107,138, 71, 21,183,148,145,145, 81, 75,195, 39, 85,128, 72, 15,208,132,130,209, 68, 32, 34, 64,176,132, -103,125,189, 17, 28,106,140,178,133, 31,215,171, 32,132,133,133, 53,172, 0, 88, 71,252,155,201,223, 18, 44,197,120, 2,216,106, -254, 54, 72,187, 81,176, 33,207,229, 99, 82,177,177,177,221, 82, 82, 82, 92,217,225, 61,169,245,140, 66, 77, 20,184,197,146,126, -243,205, 55, 1, 64,104, 85,151, 44,231,204,157, 86,125,184,216,183,111,223,215, 83, 83, 83, 19, 77, 38, 19, 42, 43, 43, 97, 48, - 24, 44,227,254, 90,173,214, 50,197,144, 9, 12,220,177, 99, 71, 42,139,250, 66,193, 60, 5,176,110,189,141,138,138, 34, 12,233, - 15, 29, 58, 84,198, 70, 1,120, 80,121, 0,172,199,254,173,201,191,238,176, 0,139,247,209, 16, 72,124,124,188,242,149, 87, 94, -193,214,173, 91,157,245,150, 73,173, 61, 39,204, 62, 19, 48, 56,225,114, 20,185,118,237, 90,189,191,103, 18,254,236,223,191,191, - 94,143,221,141, 27, 55, 88,123,102, 74, 75,135, 18, 0,136,136,200, 65, 78, 78,142,205,232,242,146,146, 33, 0,202, 0,216,239, -183,186,116,233, 66, 78,159, 62, 77,153, 59,203,207, 0,128,199,227,125,122,235,214, 45,148,149,149, 57,213,144,121, 60,170, 70, - 97,103,200,255,156, 17, 63, 43,245, 0,128,175, 22, 30,113,184,143, 96,218,196,244,233,211,195, 8, 33,136, 28, 25, 57,110,207, -238, 61,191,176, 37,126,107, 81, 47,143,121,233, 18, 69, 81, 93, 8, 1,248,175, 86,128, 16,130, 89,179,103,161,233,176,102,141, -204,171, 90, 51,173,151,169,119,141,201, 36, 24, 30, 30, 78,182,125,220, 28,158, 37, 55,112,189,178, 37,218,137,138, 0,143, 96, - 8, 84,247,224,173, 42, 1,208,196,226, 49,168,171, 52,112,112,194, 3, 96, 61,221,175,206, 52, 54,146,152,152,232,176,203,212, -138,180, 93,114,227,214,242,152,249,255, 79,232,244,186,191, 5,234,148,125,173, 41, 98,245,156,187,175, 51,144,203,229, 70,133, - 66,177, 99,240,224,193, 51,146,146,146,150, 26,141, 70,148,151,151, 91, 98, 0, 0,160,168,168, 8,229,229,229, 32,132,192,145, -250, 20, 17, 17, 33, 59,120,240,160, 50, 49, 49,177,150,245,201,252, 62, 34, 34,194,161,100, 64, 15, 2,154, 19,239, 58, 67,248, -247, 17,188,157, 46,155,162, 40,138, 56, 67,254,102, 79, 91,170,173,182, 8, 0, 86, 65,129,172, 48,109,218, 52, 37,139,255, 36, - 14,204, 21,175,245, 89,155,136,216, 37,199,107,215,174, 29,185,116,233, 18,227,242,255, 12,192,167, 58,157, 14,215,175, 95, 71, - 69, 69,133,179, 84, 72,232,173,126, 56,112,174,198, 56, 93,167,212, 99,203, 9, 61, 8, 33, 56,122,210,249,145,197,180,180, 52, -140, 24, 49, 66,182,119,239,222,212, 61,187,247, 56, 43,134, 71,211,180, 27, 0,108, 61,105,192,204,153, 51,209,116,120, 51,246, -234,164, 13,168, 84, 42, 0, 64, 78, 78, 14, 89,189,122,181, 69, 33,179,142, 37, 89,183,110,157,117,255,192,234, 95,218,240, 84, - 64, 80, 24, 94, 95, 83, 1, 32,184,166, 12,222, 9, 68,107, 65, 30,190, 28, 90,136,245, 29, 95, 37, 91,182,108,249,199, 7, 0, - 50,214,189, 45,203,191,238,249,134,134, 0, 40,243, 16,192,125,211,166, 28, 25, 2,176,217, 81,184,142,116,172,229,185,116,254, - 63, 51,246,239, 44,236, 41, 36,142, 42, 44,245,185,251,157, 29, 6,168,207,221,239,228, 48,128,117, 80, 16,229,192, 57,216, 80, - 2, 8,128,101, 10,133, 98, 85, 66, 66,130, 65, 40, 20, 66,167,211,193,104, 52,130,166,105,248,250,250,162,172,172, 12,142,102, - 83, 60,120,240, 96, 42,106,230,253,147,237,219,183,195,172, 8, 88,166, 6, 30, 60,120,240, 31,209, 57,188,242,202, 43, 68,165, - 82, 97,207,158, 61,142,214,103,169,157,242, 38, 19, 46, 71,201,216,120,227, 62,252,240,195,251,140,139,186,248,232,163,143, 8, -219, 32, 79,185,220,207,174, 60,185,220,143,149, 48,137, 68,194,116,146,132, 16, 2,181, 90,141,219,183,111, 59, 61,230,111,141, -225, 95, 86,213,218,111, 12,249,155, 76, 38, 10, 0,156,176,248,235,130,222,245,219,238,142,214,153, 0, 93,133,134, 20, 50, 43, - 5,128,149,245, 47, 31, 31,114,251,167, 44, 52, 87,108,191, 94, 43,202,127,208,242,112,114,120,218, 83,184,118, 79,130,134,188, - 78, 28, 28,244, 0,152, 95, 28,229,200,241, 71,108,129,166, 62,102,247, 67, 57, 96, 49,219, 81, 68,134,186,236,190, 38, 76,152, - 32,115, 34,189,111,131, 22,154, 13, 11,180, 33,235,148, 85,208,152, 92, 46, 55, 2,160,198,141, 27, 39,205,205,205, 85,106, 52, - 26,152, 76, 38,116,233,210, 69,214,187,119,111,167,223,247,246,237,219,173,167,156, 57,229, 53,122,208, 49, 0,246,246,217,232, -139,230,232,240,218,132,115,244,168,195,110,127,243, 92,127, 50,225,242,253, 10, 28, 33,132, 48, 57, 2,172, 20, 50, 75,192,156, -179,109, 3, 0,182,109,219, 70,185,170,173,177,189, 6, 0, 74, 75, 75,209,174, 93, 59, 82, 89, 89,137, 54,109,218, 32, 51, 51, -211, 37,125, 29,239,149, 50, 80, 20,133,209, 47,197, 50,110, 24, 44, 90, 56,205,242,221,209,140,153,174,130, 92, 46,167, 87, 29, - 89,229, 82,153,147, 38, 77, 50,123, 93, 20,158, 0,140,230,141,200,229,114,218,234, 26,135, 30, 88,177,253,122,115,107,238, 97, - 92,253, 25, 25, 25,148,252,208,171,132, 35,255, 7,160, 0,252,141,208,232, 70,250,184,230, 31,119,245,125, 61, 0, 47,204, 3, - 45, 55,243, 24,191,229, 63, 46, 95,190,252,136,223, 8, 77, 61,222,242,106,202,202,209,140,114,245,226,211, 90,235, 88, 16, 91, -231,204,150,119,234,147,208,145,220,189,123,215,242, 62,114,114,114, 92,246, 78, 20,138, 85, 68, 46,159, 70,253,246,171,130,213, - 15,156, 93,222,213, 25,152,167,245,185,188, 79,104, 72,185,118,176,223,240, 64, 77, 76,145,193,202, 8,181,140,243,115,110,127, -176,173, 83,247, 87,204,135, 89,209, 56,112,224,192,129, 3, 7, 14,143, 7,120, 92, 17,112,224,192,129, 3, 7, 14,156, 2,192, -129, 3, 7, 14, 28, 56,112,224, 20, 0, 14, 28, 56,112,224,192,129, 3,167, 0,112,224,192,129, 3, 7, 14, 28,158, 8,212,154, - 5,192,228,188,118, 6,182,130, 9, 57,121,156, 60, 78,222,195,147, 23, 23, 23, 87, 91,187,231,241, 44,217,229,172,167,154, 49, -217, 20,173,167,158,217, 74, 31,236,233,233, 9,177, 88,108,249, 61,143,199, 3,159,207,191, 79, 30,179, 48, 19, 77,215,204,242, -170,111,177, 28,238,253,214, 15,133, 98,181,148, 47, 16,129,208, 70, 76,157,250, 86,170, 51,242, 86,173, 90, 37,203,204,204, 20, -132,133,133,165,212,205,186,231,164, 60,105,102,102, 38, 86,174, 92,153,202,181,183,191,159, 60,135, 21,128,127, 34, 2, 3,223, -170, 85,112,197,197,107,169,199, 74,222, 91,129, 4, 0,138,215, 22, 83,214,223, 27, 33,178,145,201, 61, 31,184,188,127, 44,214, - 44, 93, 44, 45,186,112, 2,131,252,138,148, 45,140,121,200, 34,237,112, 74,229, 47,243, 14,125, 22, 51,102,207, 73,181,247,251, - 99,199,142, 97,192,128, 1, 22,226,103, 8,155,162,168,251, 8,155,166,105,203,118,235,214, 45,155,242, 78,159, 62,141,240,240, -112, 72, 36, 18, 8, 4, 2,240,249,252, 90, 50, 25,210, 55,153, 76,150, 77,167,211, 33, 35, 35, 3, 29, 58,116,120,226,222,143, - 66,161,160,228,114, 57, 89,181,106,149,244,234,213,171,184,118,237,154,210,215,215, 23, 27, 55,110,108, 84,253, 95,189,122,141, - 84, 36,246,135,175,223, 83, 74, 85,117,129,108,245,234, 31,165, 43, 86, 56,150,251, 97,229,202,149,210,196,196,196,195, 89, 89, - 89,216,179,103, 15, 66, 67, 67,241,193, 7, 31,240,173,231,222, 59, 33, 79,153,115, 61, 27, 29, 66,218, 67, 40, 18, 97,230,204, - 89,207,199,198,198, 42,185,150,250,132,122, 0,254, 78,136,136,136,176,171,241, 28, 60,120,208,110,195,100, 8,186, 46,113, 59, - 11, 87,203,123, 0,160, 28, 36,109,187,169,101, 93, 44,143,205,239,235,254,255,223,155, 88, 86,173,146, 94, 58,118, 0,185, 91, -190, 85,170,213, 58, 24,158,229, 65,210,146, 66,199,220,115,120,198,139, 40,203,138,254, 68,243, 85,255,145,141,155,246,121,131, - 74,192,165, 75,151,192,231,243, 49,112,224, 64, 8, 4, 2,203,198, 40, 4,140,213,111, 52, 26, 97, 50,153, 96, 48, 24,112,235, -214, 45, 28, 62,124,216,166, 60,181, 90,141, 51,103,206,160,111,223,190, 16, 10,133,112,115,115,171, 37,147,166,105, 24,141, 70, - 24,141, 70, 24, 12, 6,104, 52, 26,156, 57,115, 6,213,213,213,143, 3, 89,243,204,117,131, 7,192,216,152, 60,244, 10,133,130, -138,139,139,163,227,226,226, 16, 16, 16,128,127,255,251,223, 24, 63,126, 60,170,170,170, 16, 16, 16,224, 84, 6,210,128,128, 0, -203,253,204,155,247, 49, 54,108,202,128, 68,210, 4,124,190, 80, 89, 93,149,231,176,204,244,244,116, 84, 87, 87,163,111,223,190, -183,134, 14, 29,218,172,164,164, 4, 7, 14, 28, 48, 77,157, 58, 21,107,214,172,105,176,141,232,110,102,223, 87, 54,231,175, 92, - 65,170,151, 59,102,199,127,158,215,179, 87,183, 86,119,242, 11,113, 32, 41,245,240,230,205, 91,134, 70, 71,191,122,136,163,206, -199, 31, 76,234,223, 58,158, 2, 86, 10, 64,221,212,173,246,246, 31, 58,249,191,253,246,219, 13, 94, 83, 86, 86, 6, 0,132,141, - 18,192,144,117, 99,173,245, 7, 33,207,218,242,119,129,245,239, 40,105,179, 37,107, 87,203,179,190,214,250, 19, 0, 80, 90, 90, -147, 25,209,223, 63,229,137,104,168, 55,255, 72, 65,135, 60,165, 50, 79, 77, 99,108, 7, 62,158, 10, 50,130,246, 39,112,243,231, -163,170, 68, 8, 73,149, 6,157, 51,151, 41, 55,196,199,201, 94,159, 53,191, 94, 37,128,162, 40, 92,190,124, 25, 66,161, 16,207, - 63,255,188,133,180,221,220,220,192,227,241, 64, 8,129,193, 96,128,209,104,132, 78,167, 67, 94, 94, 30,148, 74,101,189, 75, 42, -243,120, 60, 24, 12, 6,100,102,102, 98,224,192,129,144, 72, 36, 16,137, 68, 22,121,140, 2,160,211,233, 80, 93, 93,141,243,231, -207, 67,171,213, 90,134, 9,216, 32, 58, 58, 90,202,231,243,149, 85, 85, 85, 16, 10,133, 40, 44, 44,124,119,236,216,177, 85, 98, -177,120,131, 51,164, 29, 29, 29, 61,129,207,231,111, 77, 74, 74, 98,228,101,141, 29, 59,246,170, 66,161, 24, 47,151,203,245,206, - 88,194,113,113,113,202,249,243,231, 23,194,188,226, 76, 92, 92, 28, 46, 93,186,132, 38, 77,154, 32, 44, 44, 12,235,215,175,119, -152,252,127,154, 60, 25, 47,246,236, 9, 0,104, 58, 99, 6, 36,238,193,168,174,204, 69,101,197,117, 89,108,236,148,212,250,242, -185,215,135,167,159,126, 26,133,133,133, 56,118,236, 88, 27, 30,143,135,243,231,207,195,223,223, 31,105,105,105,120,227,141, 55, - 72,102,102,102,131,191, 47,249,122,118,173,125, 79,189, 1,205,141, 90,204,252,240,211, 86,241,139,254,139,111, 23,173, 64, 11, -158, 9, 43, 22, 45, 78,121,227,141, 55, 96, 79, 30,135,199,143,252,153,227,108,215, 2,184, 47,255,183,189,253,135, 9, 87,174, -212,247,119,128,181, 18,240,144, 60, 1,142, 90,234,148, 29,235,220, 25,121,182, 62,159,168,196, 85,223, 47,252, 74, 26,154,249, -147,178,144,111, 66, 7, 31,160, 77,107, 2,254,211, 66, 8,218,183,135, 80,167,133,238,120, 30,116, 21, 2,240,105, 55,104, 83, - 54, 40,215, 44, 95, 36,155,250,142,237,225, 0,198, 61,159,157,157, 13, 63, 63, 63,200,100, 50,136,197, 98, 8,133, 66, 8, 4, - 2,139,213,175,213,106,113,251,246,109, 28, 57,114, 4, 60, 30, 15, 60, 30, 15, 13,201, 51,153, 76,184,120,241, 34, 6, 12, 24, - 0,111,111,111,136,197, 98,240,249,124, 24,141, 70,232,245,122, 84, 86, 86,226,207, 63,255,132, 78,167,131, 64, 32,176,196, 2, -216,195,192,129, 3,165, 87,174, 92, 81,222,184,113, 3,149,149,149, 16, 10,133,104,218,180,233,178,163, 71,143,162, 95,191,126, - 2,133, 66,241,179, 35, 74,192,192,129, 3,199, 92,185,114,101,107, 29,121,161, 71,143, 30, 13,237,215,175,223,102,179, 18,192, - 74,222,202,149, 43,165,122,189, 30,119,239,222,101, 92,222,150, 66,154, 63,127,126, 65, 92, 92, 92,139,241,227,199, 63,255,254, -251,239, 59,212,255,173,249,241,103,233,199,115,231,212, 58,118,119,233, 82, 52,125,185, 37,190,253,246,123,217,228,201,175, 57, -213,159, 30, 59,118, 76,249,199, 31,127,224,227,143, 63,174,228,243,249,222, 98,177, 24,253,250,245,131, 82,169, 68, 82, 82, 18, - 90,180,104,225, 64,203,163,176, 49,251, 14,118, 92, 43,192,174,223,214,131,207,167, 48,123,198,235,116,143,166,129,188,213, 51, - 63,197, 26, 71,229,113,120, 36,228, 95, 87,137,180,165, 20, 56, 61, 11,224, 81, 47,111,219,190,125,123,153,189,237, 97, 91,235, - 15, 66,158, 11,173,126,182,164,237, 12, 89,195,218, 58,103, 44,116,179, 28,226,164,188,122, 59,106,127,255, 20,167,172,255,229, -203,151, 75,167, 76,153, 66,234, 59, 86,247, 92,125,176,190,126,249,242,229,210,186,231,234, 30,107,176,188, 46,158, 86,222, 46, -168, 68, 19, 47, 1,218,123, 17, 8, 2,105, 8,158,123, 1, 30, 61, 54, 64,210,235, 59,136,124, 36, 16, 86,107,160, 86,155,208, -154,175, 70, 90, 66,253,169,100,121, 60, 30, 4, 2, 1,220,220,220,112,237,218, 53,156, 63,127, 30,222,222,222, 8, 8, 8, 64, - 64, 64, 0, 2, 3, 3,225, 32,132,148, 37, 0, 0, 32, 0, 73, 68, 65, 84,235,235,139,138,138, 10,164,165,165,129,207,231, 91, -198,246,109,129, 57, 47, 20, 10, 97, 50,153,144,149,149, 5,119,119,119, 4, 6, 6,162, 73,147, 38, 8, 10, 10,130,167,167, 39, -178,178,178, 96, 48, 24, 44, 67, 4,245, 41, 20,117, 45,255,123,247,238, 41,175, 95,191,142,118,237,218, 97,248,240,225,232,211, -167, 15,212,106, 53, 14, 31, 62,140,204,204,204,181, 90,173,246, 53, 7, 44,127,217,189,194,162, 95,114,238, 84,192,171, 67, 95, -132, 14,127, 11, 45,250,140, 70,153,142,135,131, 41,135,144,153,153, 57, 86,171,213, 78,101, 75,254,149,149,149, 56,119,238,156, -242,216,177, 99,120,250,233,167, 17, 23, 23, 23, 8,128, 54,123, 0, 90, 0,128, 88, 44,102, 77,214,107,126,252, 89,186, 49, 97, -183,212, 63,160,155, 50, 97,203, 57, 76,254,233, 39, 36,157, 57,131,164, 51,103,208,116,198, 12, 0,128,193,160, 58,226, 76,155, -123,233,165,151,200,174, 93,187, 48,110,220,184, 91, 94, 94, 94, 60,119,119,247,140,244,244,116, 28, 59,118, 12,197,197,197, 8, - 13, 13,117, 76, 41, 61,115, 13,139,126,191,128, 53,139,230,157, 19,240, 53,224,153,170,240,205,146,159,120, 91,211, 50,112,155, - 39,192, 83, 79, 61,197,177,236, 19, 2,129,179, 4,255,168, 22,175,120, 96, 22,246, 63, 91, 17,120, 32,227,234,141,116,213, 83, -118,142, 59,164, 84, 44, 90,180, 72,122,232,208, 33,101,118,118,118,189,199,210,211,211, 89,201, 98,174, 75, 79, 79, 71,105,105, -169,114,209,162, 69,178, 57,115,106,172,114, 91,199, 26,130,183,182, 4, 73,185, 90,180, 40,227,163,167, 55,133,160, 34,160,131, -192, 7, 60, 42, 0, 68,123, 15,170,123, 20, 46,230,210,184,171,210, 66,192,227,161,187,191, 72, 89,223,115, 91, 43, 0, 34,145, - 8,215,175, 95, 71,139, 22, 45, 16, 17, 17, 1, 62,159, 15,154,166, 81, 82, 82,130, 99,199,142,193,205,205, 13, 66,161, 16,122, -189,190, 94, 5,128,241, 14, 48, 74, 0, 33, 4, 57, 57, 57,232,208,161, 3,124,124,124, 80, 93, 93,141, 51,103,206,192,100, 50, - 65, 36, 18, 65,167,211, 65,167,211,213,219,119, 48, 65,116, 0, 80, 84, 84,164,204,207,207, 71,143, 30, 61, 32,149, 74,209,178, -101, 75,153, 74,165, 66, 80, 80,144, 50, 37, 37, 5, 39, 79,158,132,175,175,111, 95,133, 66,177, 73, 46,151,219, 93,223,189,168, -168,232,240,189,210, 10,248,135,246, 69,251,129,175,192,183,101, 40,116,170,114,228,254,177, 23,215, 14,173,103,228,177,122,191, -230,216, 7,229,237,219,183, 17, 28, 28, 12,177, 88, 44, 59,119,238,156, 50, 46, 46,142,103,246, 0, 0,192,149,184,184, 56,154, - 77, 29,252,113,237,122,169,175,223, 83, 74, 95,255,167,192,227,185,193, 96, 80, 97,237,207, 74, 76,126, 83,198,120, 20, 48,117, -234, 84, 4, 5, 5,209,142,182,189,215, 95,127,157, 36, 36, 36, 96,224,192,129,232,213,171, 87, 27, 0,198, 67,135, 14,133,223, -188,121, 19, 18,137, 4, 18,137, 4,145,145,145,207,111,219,182,237, 48, 27,121,155,174,230,225,187, 63,175,224,199, 5,115, 75, - 91, 62,213,230,105, 85,117, 25,126,219,247, 39,206,157,191, 10, 95, 66, 67,120,247, 30, 34,223,141, 25,186,117,235,182,127,150, - 11,246,111, 4, 91,195, 71,245,121, 5,234, 83,213,169,241,227,199, 91, 91,208, 84, 84, 84, 84, 67,251,127, 91, 20, 23,175,165, -172,183,199, 77, 30,240, 64,220,255, 13, 89,237,141,186,103,103,173,115, 71, 60, 0,142, 34, 58, 58, 90,186,123,247,238, 90,228, -111,235,152, 51,200,206,206,198,238,221,187,149,209,209,209,210,134,142,213, 75, 92,197,121, 56,113, 71, 3,181,137,198,209, 60, - 26,119,141, 2,152,116, 25, 40,187,244, 54,214,207,136,197,158, 3, 21, 56, 95, 66,112,182,200,136,139, 37, 70,148,220,190,219, -160, 87,206, 90, 9, 16,139,197,184,117,235, 22,174, 92,185, 2,160, 38, 46,230,247,223,127,175, 53,150,223,208,120, 61, 69, 81, - 22, 47, 0, 35,143, 16,130,188,188, 60,180,110,221, 26,183,111,223, 6, 77,211, 16,139,197, 22, 89, 13, 13, 41, 88, 35, 55, 55, - 23, 90,173, 22,225,225,225,104,217,178,165,140,207,231,195,219,219, 27,207, 62,251,172,204,211,211, 19,185,185,185,168,172,172, - 60,207,182, 30,228,230,230,130,230, 9,209, 34,108, 40,124, 91,134,130,199,119,131,196, 59, 8,173,159,141,132,208,195,143,145, -119,211,158,156, 85,171, 86, 73,203,203,203,149, 5, 5, 5,104,213,170, 21,100, 50,153,108,195,134, 13,169, 37, 37, 37, 20, 0, -244,237,219,215,104,190, 52,212,199,199, 7, 10,133,194,110,192,131, 88, 28,128,128,160, 30, 48, 25,117, 40,188,147,142,187, 5, -199,134, 20, 23,157,153,103,150, 7, 0,184,119,247, 46,204,242,220,216,214, 61,185, 92, 62, 62, 33, 33, 1, 49, 49, 49,152, 56, -113, 34, 0,208, 7, 14, 28, 16,236,222,189, 27,147, 39, 79, 30,118,250,244,105,234,248,241,227, 84, 92, 92, 28,171,200,253,172, - 74, 53,230, 30, 57,139,175, 63,136,197,192,145, 67,253, 77,196,136,109,191, 28,193, 15,203, 54, 96,223,172, 55,176,166, 71,107, -180,246, 17, 96,222,188, 56, 46, 8,240,111,130,179,103,207,214, 75,254, 13,122, 0,234,142,237,219,219,127, 18,241, 0,166,224, - 57,133, 47,159,249, 82, 54,109,218,180,191, 67,121,215, 26, 82,120,192, 65,122,172,222, 67,100,100,164,244,218,181,107, 74,189, - 94,223,224,177,198,160,172,172, 12, 42,149, 74, 25, 25, 25, 41,203,203,203,187,239,216,222,189,123,235,125,119,153,165, 26, 84, -232,105,100, 22, 25,113,187,220,136,224,223, 5,120,122, 91, 54,110,221,188,136,171,127,232, 97, 20,240,161,167, 1,173,158,160, -140,208, 8,106, 96, 89,123,102,186, 31, 51,118,207, 68,236,223,187,119, 15,109,218,180,193,205,155, 55, 45, 46,127,129, 64, 96, -185,222,209,225, 60,235, 28, 2,204,231, 3, 26, 18, 44,135,107, 99, 62,236,146, 53, 77,211, 80,169, 84, 53,157,163, 64, 32,123, -251,237,183,107,189,187,170,170, 42,193,174, 93,187, 48,122,244,104,222,220,185,115,239, 45, 92,184,208,104,175, 46, 82, 84,141, - 66,164, 81,223, 67,117, 85,158,108,202,148, 55, 82, 21, 10, 69, 26,128,175,171,170,170,176,107,215, 46,139,226,216,161, 67, 7, - 61,155,186,189, 96,193,130,209,223,126,251,109, 98,100,100, 36, 6, 12, 24, 0, 0,244,241,227,199,121,191,254,250, 43,164, 82, -233,200,229,203,151, 31,116,164, 96,238,168,117,120, 61,233,119,204,156, 16,137,241,175,143,131, 90, 91,137,157,187, 82,177,100, -197, 38,252,111,216, 51,104, 95,152,207,177,233, 19,160, 12,176,245, 0,184, 26,164, 78, 67,182,183,207,193, 10, 15,154,252, 93, -104,181,215,231, 81,112,118,252,191,161,122,193,170,190,236,221,187, 55,181, 99,199,142, 50, 63, 63,191, 6,143, 53, 6,126,126, -126,232,216,177, 99, 45,162,183,117,204, 22, 52, 38,111, 24, 40,224, 84,177, 14,133, 38, 19, 14,229,104,177, 45, 81,139,195,249, - 65,200, 22,250, 32,191,194,128,188, 42, 26, 42, 35,160, 54, 18,136, 2,154,218, 37,102,102,126,191,201,100,130,209,104, 68, 64, - 64, 0, 60, 61, 61,209,166, 77, 27, 24, 12, 6,203,113, 91, 9,129,234,202, 99,230,247, 27,141, 70,104, 52, 26, 16, 66,208,170, - 85, 43, 20, 20, 20,160, 89,179,102, 16, 8, 4,208,233,116,208,235,245,150,255,101, 51, 60,216,186,117,107,136,197, 98,100,100, -100, 32, 63, 63, 95,105, 50,153, 80, 89, 89, 73,253,241,199, 31,202,234,234,106,180,110,221, 26,222,222,222, 47,176,237,163, 90, -183,110, 13, 30,173, 71,193,153, 20,148,231,103,129, 54, 25,160,169, 44, 66,238, 31,123,161, 87,149, 49,242,218,178, 81,110, 24, - 4, 4, 4, 40, 87,174, 92,105,241,226,148,148,148, 80, 23, 47, 94,132,153,180,105, 0,193,182, 18, 30,213,133,209,168,129,209, - 80, 13,137, 71, 83,136, 37,254, 80, 40, 86, 75,229,114,185,113,254,252,249, 1, 86,242,176,102,205, 26, 84, 84, 84, 48, 83, 24, -239,195,252,249,243, 73,255,254,253, 73,175, 94,189,200,231,159,127,254,219,232,209,163, 49,114,228, 72, 0,192,233,211,167, 43, -119,239,222,141,241,227,199,143, 62,116,232,208, 94, 54,101, 54,127,254,124, 50, 96,192, 0,242,234,219,239,226,249,237, 71, 48, -231, 95, 99,241,222, 71,211,161,213, 87,227,198,245, 60, 40, 20,219,240,235,168,126,144,182,106,226,116,219, 24, 49, 98, 4,215, -175, 63, 66,132,133,133,213, 34,253,186,129,128, 15, 53, 21,112, 84, 84,148,212,145,253,135,102,233,215, 51,103,191,174,181,207, -214,250,175, 79,222, 91,129,129,228,173,192,191,220,249,117,247,237,121, 34, 92, 37,175, 30, 75,218, 25,162,126, 96,168,163, 68, - 56,237, 1, 0,128,205,155, 55,167,142, 26, 53, 74,102,157,156,198,214, 49,103,208,161, 67, 7,140, 26, 53, 74,182,121,243,230, -212,134,142,213,251,251,142, 29,208,209,131, 15, 47, 10, 48, 16,130,203,101,122, 36,100,235,176,249,196,109,252,121,189, 20,183, - 53, 64,137,214,132,235,213, 4,119,116, 4,213,122,131,172, 33,242, 98,166,230,233,245,122,104, 52, 26, 52,107,214, 12,221,186, -117, 51, 43,122,254,232,211,167,143,133,176, 25,210,174,143,176, 25, 66, 55, 24, 12,208,235,245,160, 40, 10, 33, 33, 33, 40, 47, - 47, 71, 94, 94, 30, 74, 75, 75,209,182,109, 91,240,120, 60,232,245,122,232,116, 58,203,111,236, 33, 40, 40, 72,214,178,101, 75, - 92,188,120, 17,251,247,239,199,158, 61,123,148,123,246,236, 57,124,244,232, 81,240,249,124, 60,247,220,115,104,223,190,189, 6, -230,192, 59, 22,242, 70, 7,251,251,160, 36,231, 44,174, 30,252, 25, 23,247,174,196,229,189, 10,220, 58,249, 43, 68, 60,154,145, - 87, 96, 79,206, 59,239,188,147, 26, 28, 28, 44,243,246,246, 70,102,102, 38,242,243,243,149,241,241,241, 82,107, 69,192,236, 9, -224, 37, 36, 36,160,107,215,174,118,239, 77,175,171, 64, 69,121, 54,220,220, 60,224,235,223, 73,233,225,217, 2, 63,253,180, 81, - 74, 81,188,190,204, 53, 94,229, 41, 80,254,239, 61, 68,116,170,174,183,110,239,221,187, 23, 18,137, 4, 93,187,118, 69,219,182, -109,153,225, 3, 99, 89, 89, 89,245,246,237,219,125,195,194,194, 70,111,221,186,117, 55,219,186,155,148,180, 23,222,222,158, 24, - 52,248, 89,117, 88,175,167, 49,230,237,201, 80, 83, 70, 20, 21,150, 98,218,140, 47,176,176,119, 7,244,106,226,188,146, 60, 98, -196, 8,242,205, 55,223,112, 74,192, 99,162, 8,216,194, 99,179, 22,192,163,158, 85,224, 12, 1, 59,138,181,197, 53, 10,132, 53, - 81, 51,199, 30, 7,121,143,171, 71,161,142, 39,128, 56,226, 1, 96, 48,103,206,156,212, 33, 67,134,200,250,244,233, 83,239, 49, -235,115, 13,193,250,250, 33, 67,134,212, 10,246,179,117,172, 65,235, 80,228, 33,235,222, 44, 16,253, 3, 68,120,198, 79,136,230, - 98, 30, 68,132, 64,172, 51,162,181,167, 0,101,132,224, 66,181, 17, 89, 42, 35, 90, 52, 9, 64,219,103, 6,215, 43,139,177,250, -153,169,126,173, 91,183, 70,143, 30, 61, 80, 86, 86,134,242,242,114,148,151,151,195,203,203, 11,125,251,246,133, 94,175,183,228, - 4,168,143,176, 25,101,194, 96, 48,128,162, 40,132,134,134, 66,163,209,160,168,168, 8,133,133,133, 40, 42, 42,130, 74,165, 66, -104,104, 40, 4, 2,129, 69, 94,125,121, 5,234, 42,101,193,193,193,178,144,144, 16,220,184,113, 3,201,201,201, 72, 79, 79,135, -187,187, 59,158,127,254,121,244,232,209, 99,175, 88, 44,158,205,118,218,222,230,205,155,119, 7, 55, 9,122, 45,164,153, 47,170, -175,255,129,172,228,181, 40, 72,255, 13,126, 34, 19,134, 14,121, 30, 61,122,244,152,244,254,251,239,239, 98, 35,203,219,219, 27, -189,122,245, 2, 33, 4, 39, 78,156, 64, 70, 70,134,178,160,160, 64,249,245,215, 95, 75,227,226,226,100, 76,230,196,222,189,123, - 35, 45, 45,205,174,188,169, 83, 39,167, 86,148,101,203, 74,139,206, 67, 36,246, 71,211,230,207, 41,131,154,246, 81,122,121,183, -221,251,237,162, 31, 70, 49,242, 54,191,239,142, 45,199,117,168, 79,233,201,202,202, 66, 96, 96, 32, 6, 12, 24, 64, 63,243,204, - 51, 80,171,213, 80,169, 84, 88,182,108,153,103,167, 78,157, 94, 86, 42,149,187, 29,105, 19, 87,175,102,161, 77,235,150,120,245, -213,209,238,159,252,123, 38, 74,170, 42, 80, 92, 82,140,216,247,190,192, 23, 99,134, 96, 72,235,224, 70,145,255,146, 37, 75,208, -173, 91, 55, 44, 93,186,148, 83, 2, 30, 34,172,199,253,237,225,161,101, 2,116,229,172, 2,115,114, 31,151,100, 2,180,135,186, -137,120, 92,161, 4,184,146,172, 93, 45,207, 21,175, 26, 46, 72, 15, 92, 71,129,160,234,241, 88, 56,132,119,222,121, 39,181,238, -239,172,143,253,248,227,143,172,100, 50,215,217,186,158,173, 12, 6,235, 54,111, 77,157,251,250, 4, 24,211,147,112,179, 2,240, -164,220,208,198,147,135, 2, 19, 5,190, 72,128,180, 66, 19,180, 52, 16, 36,226, 35,164,247, 32,188,191,104, 77,106, 67, 10,128, -193, 96, 0,159,207, 71,187,118,237,208,171, 87, 47, 84, 86, 86, 66,171,213, 90,230,231,235,245,122,248,251,251, 99,192,128, 1, -216,189,123,183,101, 72,192, 22, 76, 38,147, 37,139, 96,231,206,157, 97,118,211, 67,171,213, 90,218, 51,227, 73,232,220,185, 51, - 74, 75, 75, 81, 93, 93, 93,111, 91,174, 75,230, 71,143, 30, 77,141,142,142,126,190,107,215,174,135,173, 18, 1,149, 15, 28, 56, -240,176, 88, 44,142,145,203,229, 90, 71,202,242,232,209,163, 9,209,209,209,149, 93,187,118,221,101, 37,175,120,224,192,129,203, -222,127,255,125,214,217,122,166, 79,159,158,186,114,229, 74,217,240,225,195,113,227,198, 13,229,149, 43, 87,144,155,155, 11, 47, - 47, 47,165,175,175, 47, 34, 34, 34,240,227,143, 63,162,119,239,222,172,239,237,173,183, 94, 79,253,241,199,117, 50,173,182, 20, -190,126,161, 74, 79,175, 86,240,242,110, 13, 85, 85,193,238, 5, 11,215, 34,250,213,161,216,252,190,187,165,156,108, 89,108, 47, -190,248, 34,146,146,146,144,159,159,207, 43, 45, 45,133, 86,171, 69, 90, 90,154,192,172,116, 86, 30, 63,126,220,161,246, 16, 25, -249, 34,118,238,220,141,202,242, 18,228,223,190,131,247,223,249,151,254,195,143,231, 11,199, 60,223, 15, 3,116,149,128,155,115, -244, 48, 98,196, 8,242,217,103,159, 89,210, 65,135,132,132,224,155,111,190, 1, 0,178,111,223, 62, 46,109,248, 35, 82, 10, 30, -165, 2, 64,141, 31, 63,222,218,133, 70,213,113,247, 83,142,186,255, 93, 65,238, 22,146, 47, 94, 11,123,217,246, 28, 9,254, 43, - 46, 94, 11,107, 87,188, 53, 49,215,117,217,179, 33,237,226,181,197, 46,149,247, 55,192, 63,170,147,104,219, 79, 38, 59,167, 51, - 42,139, 14, 31,130,155, 81,131,115, 85, 4, 41, 85, 70, 8, 41, 10, 1,132, 64,214,204, 23,126, 77,131,100, 45,159,149, 2,235, -182,218,245, 0,180,109,219, 22,125,250,244,129, 70,163,129,193, 96,128, 80, 40,180, 16, 54, 99,165, 7, 5, 5,161,127,255,254, - 72, 78, 78,110,208, 3, 32, 16, 8,208,163, 71, 15, 80, 20, 5,181, 90,109,241, 46, 48, 74, 59,147, 93,144,166,105,116,239,222, - 29,191,255,254, 59, 28, 9,174,220,188,121,179, 18, 0,165, 80, 40, 40, 0,158,168,201,182,151, 43,151,203, 13,206,148,229,230, -205,155,119,155,229,121, 2,240, 7, 80, 42,151,203, 29,206, 77, 60,125,250,244, 84, 0, 88,190,124,185,204,205,205, 13, 57, 57, - 57,240,247,247, 87, 2, 64, 65, 65, 1, 70,140, 24,129,197,139, 23, 59, 36,115,202,148, 73,169, 10,197,106,169, 94, 95, 33,147, - 84,222, 84,122,251,134,192,221,179, 57,220, 61,155,227,192,161,123,160,134, 52,108,113,175, 95,191,158,154, 58,117, 42, 41, 45, - 45,197,139, 47,190,168, 15, 8, 8, 16,210, 52,141,220,220, 92,135, 61, 98, 0,176,110,221,122, 74, 46,143, 37,222,151, 50,240, -206, 59,111,161,101,104, 71,225, 55, 51,223,162,215,173, 88,207, 91,198,215, 58, 85,151, 71,140, 24, 65,230,206,157, 11, 95, 95, - 95,220,190,125, 27, 18,137, 4, 52, 77,195,195,195, 3, 95,125,245, 21,167, 4, 60, 4,132,133,133,213,235, 5, 96,155, 10,216, -229,120,204,103, 21, 80,197,107,139,109,158,112,210,250,167,214, 22,223, 47,175,174,165,206,184,238, 89,144,182,171,229,113,120, -140, 96, 38, 27,234,149,200, 17, 82, 31,163, 78,201,191,149,131, 14,134, 59,240, 10, 8, 70,191,238,157, 16,208, 34, 80,246,209, -202, 77,169, 91,210,167,219,245,162,181,107,215, 14, 3, 6, 12,176,140,199,243,249,124,232,116, 58, 75,234, 94,235, 97,130, 86, -173, 90,161,127,255,254, 72, 77,181,221,244, 36, 18, 9,194,194,194, 32, 16, 8,160,215,235, 45,191,179,158, 58,104,189, 16, 16, -143,199, 67,207,158, 61,145,145,145,225,112, 25,152,189, 3, 85,230,173,209, 48,147,126,163, 23, 37, 48,123,136, 44,237,112,229, -202,149, 82,181, 90, 13,157, 78,135, 78,157, 58, 33, 62, 62, 94,233,216,125,197,166, 2,128, 66,177, 90,166,209, 20, 65, 36,242, -131,155,208, 75,201,227, 9,176, 49, 97,175,236,181,152,200, 6,229,173, 89,179,134, 82, 40, 20,212,119,223,125, 71,107, 52, 26, - 0, 64,104,104,168, 67,233,151,173,161, 80,172,166,126,252,113,205,136,201,159,125,151, 84, 35,143,240, 66, 67,159, 66,232,203, - 47,191,246,206, 59,239, 36, 56, 35,115,225,194,133, 92,163,126, 76,148,128,134,200,255,161, 42, 0,127, 87,184,114,218, 95, 93, - 98,110, 44, 81,187, 80,158,171, 21, 6, 78, 1,113, 2, 91,247,238, 75,173, 85,118,149,185, 56,122, 35,151,245,239,163,162,162, -224,231,231,103,137,240,167,105,218,226,194,103, 60, 0, 76,208, 31,179, 34, 96, 72, 72, 8, 40,138,194,150, 45, 91,238,147,183, -100,201, 18, 36, 38, 38, 90,174, 53,153, 76,118,151, 3, 22, 10,133,232,221,187, 55,216, 68,199,255,141,149,181, 70,215,117, 70, - 17,168, 33,245,181,168, 9,199,162,149,108,228,153,149, 37, 10, 0, 86,174, 92, 73,166, 79,159, 78, 29, 58,228,252,212,252, 41, - 83,166,238, 51,123, 77,120, 52, 77,155,120, 60,158,196,209,225, 23, 6,156,117,255,120, 41, 1,118, 59,106,103,215, 17,230,192, -129, 3, 7, 14, 28, 56,252,125,193,227,138,128, 3, 7, 14, 28, 56,112,224, 20, 0, 14, 28, 56,112,224,192,129, 3,167, 0,112, -224,192,129, 3, 7, 14, 28, 56, 5,128, 3, 7, 14, 28, 56,112,224,240, 68,160,214, 44,128,179,103,207, 58, 29,193,105, 43,152, -144,147,199,201,227,228, 61,145,242,200, 75, 47,203,241,219,175, 10, 40, 20, 10,158,173,108,125, 92,249,113,242, 90,183,110,109, -185, 38, 55, 55,151,122,220,228, 61,233,239,195, 97, 5,128,105,220, 13, 92,239,204, 13,254,157,229, 57, 35,243,113,127,222, 90, - 80, 40, 20, 66, 0,222, 0,220,205,245,129, 6, 80,236, 76,242,148, 7, 12,226,170,103,174,167, 76, 31,201,244,165, 69,139, 22, - 73, 79,156, 56,161, 60,114,228, 8, 0, 96,240,224,193,232,215,175, 31,235, 84,194,143,226, 61,188,244,178, 28, 47,142,232,101, - 4,228, 2,185, 92, 78,131,155,246,201,161, 14, 90,183,110, 77, 70,141, 10,177,236,239,222, 13, 98,143,180,237,201,155, 55,111, -160,101,255,235,175,143, 54, 74, 30,135,250, 21, 0,144,109,247, 47, 0, 65, 77, 40,107,204,255, 80, 78, 16,239, 67,147,103,235, -121, 27,249,204,143,245,243, 50,196,127,241,220,209,159,183,109, 94, 54,164,105,139,144,224,138, 10, 3,124,124,220,112,183,224, - 58,221,181,107,143, 82,133, 66,209, 71, 46,151,223,112, 68,166,124, 82, 15,146,115, 61, 11,215,111,106,145,119,135,160, 85, 51, - 10, 33,109,197,104, 31, 18, 10,197,186,204,199,165,177,218, 82, 36,152,181, 6, 30,250, 61,158, 63,127, 94, 25, 22,182, 31,171, - 86,169,145,154, 10,124,250,233, 1,228,229,229, 41, 71,141, 26, 5,177, 88,140,219,183,111,203,198,140, 25, 3, 87, 40, 4,175, -189,246, 26,169,168,168,144, 69, 68, 68,224,189,247,222, 75,117,162,206,240,228,114, 57, 94, 28,209,139,142,141,141, 21, 0,171, -241,219,175,128, 66,161,160,216,230,236,231,240,207,129, 94, 63, 23,201,201,177, 24, 62,124, 53, 70,141, 90,136,221,187,107,218, -158,179,196,125,245,234,108,252,242,203, 24,140, 29,187, 19,243,230,213, 40, 1,141,145,247,164,131, 75, 4,228, 8,195, 90,145, - 61, 69, 1,244, 86,191, 39,246, 89,151, 45, 93,252,250,158, 93, 63,197,117,232,208,177,211,216,151, 7,163, 85, 11,111,248,250, -136, 80, 86,174, 69,193,157, 86,188,107, 57,101,129,123,118,253,164, 92,182,116,241,119,239,206,152,189,212,158,188,247,223,157, - 40,189,145,181, 71, 89,120, 59, 19,175, 68, 2,253,195,129,144, 54, 64,246, 77,130, 99,167, 52, 72, 82,102, 98,244, 48,111,210, - 46,116,164,236,251,101,155,156, 37, 50, 87, 90,254,148, 13,217,143, 68, 9, 40, 45, 45,197,123,239,169, 17, 20, 4, 68, 69, 1, - 11, 22, 84,227,204,153, 51, 48, 26,141, 16,139,197,104,210,164,137,114,207,158, 61,152, 58,117,170,108,205,154, 53, 14,149,221, -244,233,211,165, 23, 46, 92, 64,112,112,176,114,251,246,237,212,198,141, 27, 1, 64,153,146,146,130,183,222,122, 11,107,215,174, -117,244, 89,133, 0,144,180,239, 52, 15, 88, 77,215,124,222,159,227,159, 3,103,253, 3,192,184,113, 59,144,156, 92,243, 25, 27, -123, 29,140, 71,192, 81,111, 0, 35,239,245,215, 55,224,151, 95,106, 62,199,140, 57, 10,198, 35,192,121, 3, 26, 38,126,235,227, -117,149, 0, 46, 8,208,134, 23,224, 73, 38,127,133, 66, 33, 56,152,188,237, 19,217,160, 94,157,198, 70,134,162, 71,215, 38, 8, -240,147,128, 2, 5,111, 79, 17, 66, 67,252, 17, 49,184, 45, 6, 15,232,217,230, 96,242,182, 79, 20, 10, 69, 83,123, 50,111,100, -237, 81, 14, 12,175,196,182,101,192,228, 40,160,147,217,243,231,225, 14,116,238, 0,124, 62, 11,232,219,163, 18, 55,178,246, 40, - 27,243,138, 26,235,245,176,163, 72, 60,146, 14,196,223,223, 31,123,246, 72, 80, 84, 4, 36, 38, 2,101,101, 2,116,232,208, 1, - 35, 71,142,100,150,123, 69,106,106, 42, 50, 50, 50,148,139, 22, 45,146,178,149, 59,124,248,112,233,197,139, 23,149, 66,161, 80, - 89, 86, 86,219,147,165,209,104,176,118,237, 90,200,100, 50, 71,203,147, 6,128,223,126, 85, 32,105,223,105,222,111,191, 42, 26, -245,236, 83,166, 76, 33,204,214,208, 49,150,245,130, 56,113,172, 65,172, 94,181, 74,186,122,214, 44,233,217,169, 83, 73,222,139, - 47,146,147,147, 38,145,229,239,189, 39, 93,189,106,149,180, 49,207,220,216, 58, 99, 75, 6,219, 99, 15, 90, 30,227,250, 31, 53, - 42, 4,177,177,201,181, 62, 25,140, 26, 21, 82,107, 60,223,158,188,121,243, 6, 98,222,188,129, 24, 51,230,151, 90,159, 12,230, -205, 27,200, 90,222, 63, 9, 97, 97, 97,181, 54, 91,202, 1,167, 0, 60, 14, 44,240, 16,113,241,220,209, 5, 29, 58,116, 8,237, -211,171, 89,237,138,192,163, 32, 20,242, 33, 17, 11,224,230,198, 67, 72, 59, 63,132,132,116,104,114,241,220,209, 61, 10,133,162, - 94, 79,145,124, 82, 15,194, 71, 37,102, 77, 6,180, 58,224, 70, 30, 80, 86, 1,148, 87, 2,155,118, 1, 51, 62, 3,226, 22, 1, -253,122, 1, 60, 82, 9,249,164, 30, 92, 67,181, 66,247,238,221,101,191,253,214, 25, 77,154, 0, 19, 39, 10,208,180,233, 51, 24, - 60,120,176,108,207,158, 61,212,200,145, 35,101,195,135, 15, 71,112,112, 48, 78,159, 62,141,173, 91,183, 42,199,141, 27, 39,253, -225,135, 31, 26, 36,160,129, 3, 7, 74,117, 58,157,210,205,205,173,193,255, 86, 42,149, 24, 50,100, 8, 27, 50, 35, 49, 49, 49, - 68, 46,151,235,205, 49, 35,176, 34,127, 10, 0, 98, 98, 98, 28, 86,208,210,211,211, 45, 91, 67,199,156,108,182, 84, 99,154,247, -234, 85,171,164,237,175, 92, 81,142, 57,123, 86,217, 42, 43, 27,194,202, 74, 52,203,186, 2,233,239, 39,149, 65,153,153, 74,133, -147, 74, 64,122,122, 58,166, 76,153, 66,102,204,152,225,180, 18,193,200, 96,115,140,173,188,186, 68,207,230,152, 61, 48,164,207, -124,234, 71,117,104, 84, 91, 97, 72,159,249,188,218, 39,136,235, 64, 26, 32,126, 54,248,187, 42, 0,196,198,230, 50,193, 15,240, -254,136,139,111,147, 56, 90, 22, 23, 47,101,142, 8, 13,241,183,144,190,173,101,154,197, 34, 1,140, 70, 26,161, 33,254,184,120, - 41, 51, 4,128, 79,125,242,114,174,103, 33,242,249,154,239,251,211,128,183, 62, 6, 86,109, 2,110,223, 3,174,100, 3,103, 46, - 18,164, 28, 7, 14,157, 0,134, 15,174,185,190, 17,186, 25,245, 0, 95,241, 35, 81, 76,230,204,153,147, 90, 93, 93, 19,111, 57, -113,226, 68,156, 60,121,146, 82, 40, 20,169,204,185,210,210, 82, 89,231,206, 2, 76,157, 10,244,236,121, 10, 38,211, 21,101,126, -126,126,189,158,148,233,211,167, 75, 41,138, 82,178, 93, 28,166,176,176,208,174, 87, 38, 38, 38, 6, 9, 9, 9, 0, 64,210,210, -210,244, 86,239,130, 98,136, 63, 33, 33, 1, 49, 49, 49,143,178, 63,112,246,152, 77,232, 46, 92, 64,187, 63,254, 48, 47,130,164, -135,145,166, 65, 27, 76,160, 13, 70, 4, 29, 77, 67, 37,203,245,214,235, 35,220, 63,255,252, 83,249,220,115,207, 61,112, 37,192, - 25,239, 66, 99,201, 95, 63,170,131,205, 45, 57, 54,217,169,123,186,218, 39,200,230,246,203,152, 95, 56,182,111, 36,108, 42, 0, -212,132,178,251, 54,103, 9,135, 5, 33, 58, 42,143,106, 96,123, 44,148, 13,178,205,207,230,214, 8,229,229,190,235,237,252,135, - 77, 40, 20, 10, 65,211,230, 33, 93,154, 55,245, 4, 33, 64,218,137, 60,236, 63,148,131,253,135,114, 80, 88,172, 6, 33, 4,185, -249,149,116,234,241, 92,100,223, 40, 67, 96,128, 4,205,155,119,240, 69,205, 18,173, 54,113,253,166, 22,253,195, 1,157, 1,216, -119, 4, 80,158, 36, 88,186, 30,184,146, 3, 12, 25, 0,116, 10,161, 32,224,215, 44, 45,222, 55,172,230,122,150,207,234,204,119, -182,150,162, 45,247,240, 35,115, 0,153,151,115,197,211, 79, 63, 45,171,123,142,207,231, 43,187,116, 41,196,167,159, 2,255,249, - 15, 65,243,230, 89,184,121,243,102,189,178,180, 90,173, 93,203,223, 26, 13,201, 98,144,144,144,192,144,189, 69, 17, 96, 54, 43, -226,167,204,215, 61, 10,167, 93,221,246,207,246, 88,189,232, 88, 92,162,212, 27, 12,208, 27, 12,208,155,204, 43, 40,210, 52,104, -147, 9, 38, 19,141,150,119,238, 52,102, 56, 11,106,181, 26, 42,149, 74, 57,101,202, 20, 50,117,234,212, 70,121, 19, 92,165, 4, -184,202,242,103,136,126,220,142,191,190, 51,159,206,120, 1, 24,162,127,125,195, 95,223,153, 79,206, 11, 96, 31,214, 75, 3,179, - 90, 14,184,190, 89, 0,141,152, 29, 80, 95, 20,187, 51,209,237,164,129,255, 32, 14,252, 63,171,231,182,241, 91, 86,141,171,129, -160, 66,103,228,213,251, 27,230,127, 40, 0,244, 54,187,177, 11,116, 77,180,191, 8, 0,144,119,187, 18, 26,141, 17, 0,208,161, -189, 31,130, 2, 36,200,188, 88,200,187,122,173, 20, 98, 49, 31, 33,237,124, 81, 86,161, 7,128,122, 5,231,221, 33, 8,105, 83, -243,255, 47, 12, 2,194,186, 80, 16, 9, 1,163, 17, 24, 54, 16,240,245, 2,114,114,129,225,131,128, 54, 45,107,174,127,196,168, - 79, 9,120, 34, 70,127, 10, 11, 11, 29,106,135, 85, 85,236, 87,223, 77, 72, 72,160, 98, 98, 98,136, 89, 9,176,246, 14, 60,242, -178,107,223,190, 61,201,201,201,161,156, 61, 95, 23,110,215,179,161, 51,232, 65,241, 5, 48, 17, 2, 10,128,209, 68,195, 96,164, - 65, 76, 38, 80,215,174,186,228,190, 47, 92,184,128,192,192, 64,229, 55,223,124, 35,251,232,163,143, 82,157, 85, 2,234, 14,163, - 56, 74,220,174, 34,255,220,220, 92,170,117,235,214,100,220,142,251, 21,130,225,171,135, 67,184, 59, 27,187,119, 95,183, 68,238, -219, 27,187,103,228,189,190,225,126,133, 96,236,206,177,120, 42,189, 8, 95,127,125,148,181,188,127, 34,249, 51,120,146,102, 1, - 52, 68,162, 14, 19,108, 35,167, 56,214, 47,247, 1,207, 38,160, 38,148, 57,250, 31,148,143,143, 27,202,202,181, 8,244,119, 71, -212,232, 78, 48,154,104,136, 68,124,240,121, 60, 16, 66, 48,114, 88, 8, 34, 35, 66, 64, 81, 64, 73,153, 6, 62, 62,110, 0, 80, - 90,159,192, 86,205, 40, 92,191, 69,208, 41, 4,120,254,185,154,194,190,146, 13, 60,221, 9,240,243, 6, 70, 72, 1,154, 6, 4, -124, 32,235, 70,205,245, 57,121,132,237,187,117,228,123, 99, 27,254, 35,153, 6,184,114,229, 74,233,162, 69,139,112,253,250,117, -164,165,165, 41,191,253,246, 91,153,167,167,167,101,217, 89,147,201, 36,251,255,246,190, 60, 46,170,170,255,255,125, 7, 24, 6, - 24, 20, 92, 17,141, 4,151, 82,220,113, 65,205, 98,204,109, 68,192,141,236, 41,203, 53, 70,158, 50, 43, 23,212,210,172,167,126, - 10,143, 38, 79,150, 58,110, 73,223, 22,109, 68, 67,220, 48,106,232,209,212, 74,220,114, 41, 21, 76, 76, 68, 18,101, 27,102,152, -229,158,223, 31, 51, 23, 47,195, 44,247,206, 12, 98, 61,247,253,122,241, 98,230,204,153,207,156,123,206,189,231,253,249,124,206, -231,124,206,197,139,109,212,239,188,115, 19, 20, 69,161,180,180, 43,186,118,237,136,203,151,109, 47,165,208, 52,109,179,252,233, -167,159,110,208, 63,132, 16,124,247,221,119,188,174,153,173, 4, 60, 76,228,239, 9, 37,129,141,187, 29,218, 67,252,235,111, 32, - 62,128,152, 38,160, 40,192, 96, 50, 66, 79, 76,168, 49, 26,161,237,252, 56,112,241, 87,183,219,222,163, 71, 15, 80, 20,229, 18, -249, 3,192,192,129, 3,177,101,203, 22,170, 87,175, 94,196, 81,153, 51,108,217,178,133,178, 38,124, 91,101,124,144,148,115,159, -248, 1, 64,156,125,181,222,231, 76,192, 96,118,118, 1, 39,121, 19,118,223, 39,126, 0,120,236,167, 63, 27,200, 91,178,100, 24, - 86,174, 60, 34, 48, 63, 7,242, 7,132, 32, 64, 91,238, 65,182,155,208,173,201,141, 16, 64, 52,229, 94,163, 53,154,124, 21,108, -254, 13,238, 10,140,119,201,205,130, 59, 55,110,154,173,190, 15, 54,252,140, 51,231, 75, 97, 48,208,160,105, 98, 81, 90,168,186, -216,128, 27, 55,171, 80,114,179,224, 26, 0,187,102,101,167,142, 18,252,144,111,126,221, 42, 10, 56,125, 1, 72,250, 7,208,249, - 81,179,219,255,189,143, 0,177, 15, 32, 18, 1, 63,228,155,235,187, 65,208,158,142,161,176, 30,239, 7,110, 61, 92,188,120, 17, - 18,137,185, 79,246,239,223,143,207, 63,255, 92,157,151,103,230,130,213,171, 87,199,180,104,209, 66,125,233,146, 17,155, 55, 3, -167, 79,247,135,151,215,227,178, 14, 29, 58,200,236,201, 11, 8, 8,224,252,219, 70,163,241, 47,255,224,178,201, 63, 34, 34,130, -216,251,227,171, 44, 20,180,110, 35,187,167,175, 69,165, 94, 15,173,222,128, 90,163, 17, 6, 98, 66,141,193,128, 42,189, 30,197, -161,161, 50,119,218,237,239,239,143,128,128, 0,217,150, 45, 91, 40,190,219, 59,173,137,222, 89, 25, 31, 37, 96,224,192,129, 78, -203,184,120, 1,236,145, 63,219,250,231, 35,207, 30,249,179,173,127, 1,252,200, 95, 80, 0, 30, 0, 26,123, 75, 33,249, 42, 24, - 4,156, 21, 13, 99,100,100,239,226,171,215,238,129,166, 9, 22,207,139,198,229,171,119,113,233,114, 25, 40, 10,245, 2, 2,105, -154,224,234,181,123,136,140,236,125, 30,128, 93, 63,113, 68,167,174,216,255, 29, 96, 50, 1,164, 16, 80, 31, 7,178,191, 5,228, - 51, 0,217,115, 64,222, 9,115, 61,147, 9,216,255,157,185,126, 19,130,192,113, 46,128, 7,142,187,119,239,170,187,117,187,134, -159,126, 2,142, 31, 55,161, 67,135,115, 56,125,250,180, 58, 46, 46,142,236,219,183, 79,157,147,147,131,219,183,111,163, 95,191, -126,152, 50,101,138, 44, 51, 51, 51,207, 81, 18, 31, 66,136,204,158, 23,192, 26,140,226,193, 23,204, 18, 0,123, 41,160,169,192, -182,232, 11, 11, 11, 41,123,127,182,234, 59, 66,112,223,190, 40, 27,246, 36,238,106,117,184,103,168,133,206,104, 68,181,193,132, - 10,189, 30, 85,195,159, 70,171,168, 40, 23,189,130, 20, 6, 14, 28,136,158, 61,123,202,142, 31, 63,158,231,142, 12, 54,209,219, - 42,115, 71, 9, 96,207, 5,182,202,184,192, 22,249, 51,150,186,117,166, 64, 46,176, 69,254,108,121,236,173,129, 2,249, 59, 39, -127, 65, 1,248,171,187, 45,152, 32, 77,142,203, 0, 10,133,194, 20,217,107,216,240,130,130,171,191,254,152, 95, 12,154, 38,144, -143,136,192,185, 11,165,120,255,131,227,120,111,205,177, 58,242,255, 49,191, 24, 5, 5, 87,175, 71,246, 26,246,138, 66,161, 48, -216,147,169,220,126,150, 50,161, 25,214,110, 51,147,252,198,247,128, 79,119, 3,178,104,160,111,119, 32,239, 75,115,249,218,109, -128, 9,205,220,201, 8,232,110,160, 39,113, 34,167, 73,214, 14, 53, 26, 13,122,246,212, 97,192, 0, 96,192, 0,160,127,127,130, -194,194, 66,100,103,103,227,196, 9,179,246, 20, 19, 19,131,168,168, 40, 78,233,129, 51, 51, 51,243,184, 16,187,209,104, 68, 96, - 96, 32,111, 43,214, 18,245, 95, 23,241,207,188,119,213,130,101,254, 28,149,241, 81, 2, 60, 81, 15, 0, 20,201,201,121,250, 65, -131,100,151, 70,141,148,149, 60,246, 24, 74,124,124, 80,242,248,227,184, 60,122,180,204, 52, 56, 90,166,176, 44,209,240,197,128, - 1, 3,224,142,213,207,150,225,172,140,107, 31,218,178,250, 7, 12, 24,224,180,204, 21, 48, 57, 2,238, 39, 5, 42,112,203,130, -103,114, 4,176,146, 2, 9, 30, 1,142,228, 15, 8,153, 0, 27,213, 50,127, 24,127, 67,161, 80,148,125,180,238,131,244,156, 67, - 59, 23,254,113,171,170, 83,231,240, 96,196,142,234,132,224, 32, 9,238,149,235,112,250,151,219,184,122,237, 30, 10, 10,174, 30, - 27, 61,102,202,110, 0, 55,156,201, 12,239, 58, 78,118, 36,127,159,250, 88,126, 37, 98,135, 3,155, 87,154, 51, 1, 22, 92, 7, -182,126,101,182,252, 77,104,134,240,174,227,100, 56,252,133, 39, 8,220,211,223,109,178, 93, 0,183,110,221,146, 5, 7,183, 82, -159, 60,105,182,106, 46, 95,110,134, 1, 3,186,163,101,203,150,144, 72, 36,184,117,235,150,108,220,184,113,188, 82, 1,119,236, -216, 81,246,219,111,191,169,237, 89,108, 70,163, 17,157, 59,119,198,214,173, 91,121,145,144,245,218, 63,235, 61,113, 37, 22,192, -150,181,234,170, 5,235,140,220,249,144, 63, 91, 9,168,119, 95,156, 59,231,246,120,187,107,161,243,233, 55,174,191,229,105,121, -142,200,159, 13,125, 92,103,128,227,250,191, 61,242,103, 67,216, 17, 96,223, 19, 96, 79, 49,240,182,103, 89,242, 41,231, 49, 1, -123,202,234, 34, 46,126,246, 64,218,231,164,159, 60,210, 62,119, 2, 23, 95,153,251,134, 82,169, 84,238,184,112,238,200,250, 61, - 89,223, 71,132,180,239, 20,205, 58, 11,224, 68,100,100,239,159,198,197,207, 92,170, 80, 40, 52, 92,228, 89,210,251, 82,138,233, -189,201,206,253,151,241,255, 62,182,115, 22,128,235,228,239, 17,135,201,195, 70,254, 0,240,236,179,207,226,236,217,179,152, 49, -227, 36, 0,160,127,255,254,120,230,153,222,178,215, 95,127,189,142,156,127,248,225, 7, 94, 50, 55,108,216,144, 7,128,138,141, -141,141,169,170,170, 82,123,121,121, 65, 36, 18,193,104, 52, 66, 44, 22, 67, 42,149,202,220, 37,127, 0, 30, 81, 2, 4,252, 61, - 81, 84, 84, 68,229, 36,229,144,208,185,161, 50,116,180, 93,167, 56, 41, 71,205,213, 90, 47, 42, 42,162,118, 79,216, 77,186,164, -118,145,253, 18,100,187,206,149, 9, 71,212,130,245,207, 15,222, 60, 38, 74, 79, 79,188,141, 33,143,122,200,219,247, 48,200, 99, - 60, 1, 21, 74,165,114,106,100,175, 97, 76,198, 24, 41,128, 86, 0,110, 1,208, 90, 78,121,227, 5,107,247,126,225, 13,130,194, - 27, 90,224,200,217,166,238, 7,234, 65,247, 47, 87, 88,136,190,174, 13,231,207,159,247,152,236,253,251,247,231,121,234,250, 88, -235,254,148, 85, 57, 5, 75, 62, 0, 1, 2,172, 73,187,104, 97,145,199,158,233,162,162, 34,170,232, 31, 69,120, 88,159,229,135, - 5, 92,179, 0, 2, 0,229,234, 57,194, 2, 4, 8, 16, 32, 64,128,128,191, 46,132, 32, 64, 1, 2, 4, 8, 16, 32, 64, 80, 0, - 4, 8, 16, 32, 64,128, 0, 1,130, 2, 32, 64,128, 0, 1, 2, 4, 8, 16, 20, 0, 1, 2, 4, 8, 16, 32, 64,192,223, 3,245, -118, 1,156, 57,115,198,229, 40, 74, 91,193,132,130,188, 70,147,231,244, 16,155,166,148,151,152,152, 24, 3, 64,173, 82,169, 60, - 34,111,202,148, 41, 49, 52, 77,123, 76,158,112,255, 53,141,188,228,228,228, 41, 10,133,226,171,198,108,159, 82,169,244, 1, 32, -177,220,211, 58, 0, 52, 0,162, 80, 40,136, 48, 30,130,188,255, 37,121,158,242, 0, 16, 14,127,124,224,105,121, 15, 12,228,110, - 26, 33,213,233,156,219,103, 33, 66,143, 93, 47, 75, 30,214,172, 89, 35,115,210, 96,229,235, 0, 0, 32, 0, 73, 68, 65, 84,208, -159,188,229,157,255,184, 25,220,149,199, 96,252,128, 3,234,240,102,217, 0,128,168,168, 40,183,199,179,107,219,157,120,180,245, -183,240,243,243,195,136, 17, 35, 30,154,251, 67,169, 84,182,166, 2,164,135,148, 74,101,107, 15,201, 11, 19,249,250,231,216,147, -167, 84, 42,125,148, 74, 37,229, 68,134, 15,211, 54,137,196,255,144, 82,169,108,173, 84, 42,189,156,125,207,149,199,193,133,123, -227,120, 99,141,197,166, 77,155,198,110,217,178,101,129,143,143,207, 30,177, 88,156, 47, 22,139,127, 5,160,244,242,242, 82, 81, - 20,181, 94,169, 84,182,106,132, 62, 16, 32,160, 1,106, 22, 45, 34, 30,126,208, 26,109,206,115,150, 9,144, 16, 98,255,183,121, -230,134, 38, 22,129,158,146,199,203,130,245, 36, 38, 79,158, 76,174, 94,189,234,148, 92, 85, 42,149, 58, 37, 37, 5,109,218,180, -177,153,114,117,254,252,249,156,207, 20,103,228,173, 89,179, 70, 54,127,254,124,245,137, 19, 39,212, 86,138,128, 75,242,232,139, -203, 33,234,254, 46, 62,253, 78, 15, 0,160, 47, 46,191,175, 29,118,127,151, 87,191,124,249,239, 0, 66, 19, 96,199, 33,179, 44, -249, 83, 62,136,236,124, 1,128, 89, 9,200,207,207,231, 53, 54,105, 31,203, 98,202,127, 47, 67,181, 62, 88,173,169, 13,128,124, -116, 57,218,135, 80, 8, 15,159, 70, 42, 43,117,216,185,115,103,147, 78,232,201,243,230,189, 10,154, 30,149, 60,111,222,171, 0, -150,185, 45,111,238,188,151, 8, 77,143, 76,158,107, 91,158,163,148,204,236, 58, 74,165,146,154, 59,119,222,171, 52,109, 26, 53, -119,238,188, 87,245,122,221, 50, 27,138,130,200,149, 92, 15,110, 66,207,190,255,118,237,218,165,158, 56,113,162, 44, 51, 51, 51, -207, 29,161, 91,182,108,145,123,123,123, 63,233,237,237,253,172,151,151, 87,176, 72, 36,146,166,166,166,138, 22, 46, 92, 56,211, -100, 50,193,104,198,179, 38,147, 41, 78,169, 84,254, 96,241, 6,232, 45,243, 95,163, 47,131,198,199,199, 19,174,243, 93, 86, 86, - 22,175,123, 58, 33, 33,129,184,243,125, 1,158,135, 95, 90,154, 71,229,105, 23, 45, 2,220,144,201,100, 4,228,123, 28,176, 83, -242,143,138,138, 66,126,126, 62, 31,114,118, 72,242, 28,229, 53,144,159,146,146,130,194,194, 66, 88, 92,196, 30, 59,214,149, 20, - 71, 17,248,117, 5, 21,252, 37, 5, 0, 84,139, 69,212,228,201,147,157,106, 99,108,178, 46, 45, 45, 85,219, 35,255,148,148, 20, -164,166,166,242, 34,127,203,123, 68, 71, 71,203,162,163,163,221,146,199,144, 61,243,127,213,191, 80,143,252, 23, 77,146, 32, 45, - 83,199,169,175,118,164, 75, 73,143,112, 17, 52, 90,130, 55, 94,144,224,196, 5, 35,180, 26,130, 26, 61, 32,235,115, 1, 23, 46, -155, 16, 21, 21, 69,184, 42, 1, 41,111, 61, 78, 10, 78, 87, 34,176,153, 24, 33,237,164,104,221,182, 51,174, 23,232,209,177,187, - 1, 62,146, 82,228,238,185,131, 49, 99,198,144, 67,135, 14, 53,213,132,231,219,162,101,203,121,159,157,248,137,146, 63,214,229, - 85, 0,239, 1,168,117, 71, 94,203, 22, 45,231,237,248,238, 4, 53,178,207, 99,110,201, 83, 40, 20,226,144,144,118,243, 14,171, -143, 80,253,123, 71,218,148,213, 4,228, 15, 0,117,199, 15,170, 84, 42,117, 92, 92, 28, 50, 51, 51,213,182,158,215,159,127,254, -153,188,243,206, 59,216,183,111,159,195,241,221,186,117,235,112,177, 88,220, 67, 44, 22,207, 21,139,197,254, 55,110,220, 64,151, - 46, 93,224,229,229,133,192,192, 64, 92,189,122, 21, 82,169,212,251,231,159,127, 14, 58,126,252,248,145,151, 95,126,185, 35,128, -235, 0,196, 48, 47, 15,216,157,248,216,243, 31,123,222, 98,202, 41,138, 2,197,193,106,217,187,119,175, 93, 25,236,114, 71,243, -173, 61,100,101,101,185,245,253, 70, 85,144,147,147, 99, 44, 89, 41,221,198,187,239,190, 75,104,154, 6, 68,229,208,215,234, 32, -246,149, 0,116, 16, 68, 34, 17,150, 47, 95, 78, 29,183,226,153,100, 7,178, 46, 92,184, 64, 50, 51, 51, 97, 79,222,164, 73,147, - 16, 25, 25, 73,185,218, 62, 44, 79,199,138,119, 95, 35,236,246,185,115,237,254,105,105,188,191,111, 47, 13, 48, 87, 5,128, 19, -249,115, 69, 74, 74,138,211, 58, 92,136,203, 30,249,175, 90,181, 10,139, 23, 47,182, 86, 58, 92,234,116,114, 50,138,160,101, 87, - 80,225, 95, 82,108,139,127,215,174, 93, 20, 0, 48,255,237,173,185, 88,147,181, 35,242,183,120, 6,156, 90,237, 42,149, 74,109, -109,225, 51,101,236, 62,230, 43,207,145,133,191,104, 18,247,147,226, 50,211, 3, 72,151, 71, 69,240,243,165,240,104,168, 23,238, -220,163, 97, 48,122,161,172,156,160,162,154,224,234, 31, 52, 32, 2, 90,249,159, 99,250,199,225,164,176,244,205,199, 98,186,118, -138,192,241,146,219, 8, 15,107,141, 30,189, 34,224,229,219, 2,143,134,223,195, 61,173, 14,165, 37, 38,252,113, 91, 7,127,239, - 66, 78,242, 26, 9,207,191,176,112,161,184,176, 93, 40,124,163,250,139,116, 71,254,251, 60,128,109,124,133,176, 44,241,231,167, -189,186, 64,252,135, 56, 4,210,174,253, 68,149,231,143,186, 36,143,105,219,203,243, 94, 23,195, 55, 16,225,143, 69,138,126,251, -229,148, 59,178, 60, 9,154,101,253, 67, 34,145,200, 0,168,173,199,240,228,201,147,156,200, 31, 0,124,124,124,130, 36, 18,201, -244, 59,119,238,248,119,237,218, 21,125,251,246,133,183,183, 55, 62,252,240, 67,152, 76, 38,244,236,217, 19,187,119,239,198,207, - 63,255,140,115,231,206,193,203,203,107,189, 82,169, 76,216,176, 97,131, 35,171,186,110,158,243,132,199, 82,169, 84,202, 66, 66, - 66,212,132, 16,135,223, 41, 41, 41,145, 41, 20, 10,190,247,143, 44, 36, 36, 68,237,234,247, 25,162,190,116,233,146,195,121,163, - 91,183,110, 50,190,100,126,233,210, 37,245,115,207, 61,135,230,205,155,203,220, 81, 4, 20,115,166,145,164,228, 81, 8, 8,240, -107,240,153, 70,163,197,242,229,203, 49, 24,160,254,216,187,151,220,136,143,183, 63,183, 79,237,106, 30,204,149, 19,208,110,248, - 56, 72,250,245,135,169,107,100,189, 58,134, 29, 25, 8, 94, 57,225,126, 93, 0,218, 49,179, 49,100,245, 23, 14,219, 55,109,198, - 72,180,104,233,111, 46, 88,158,142,249, 11,102, 0, 0,238,150,213,224,102,113, 1, 81,110,204,112, 89, 9,168, 89,180,136,184, -162, 4,184,170, 0, 16, 46,150,250,195,130,194,194, 66, 44, 94,188,216, 85, 5,194, 46, 38, 79,158, 76,168,208, 93,212,228,201, -225, 68,181,105, 32,176,253, 9, 66, 73, 95,115, 58, 8,182,200,218,154,148, 29, 45, 11,216, 3, 91,161, 56,113,226,132, 58, 58, - 58,186,158,235,159,175,188, 47, 22, 74,237, 78,110,207,175,214,112,150,179, 97,195,134, 24, 95,175,133, 16,137, 0,127, 63,160, -188,146, 70, 45, 33, 8,240,163,160,163, 1,109, 45, 65,135,214, 34,208, 70,224,202, 13, 19, 10, 11, 11,213,142,148,179,121,175, -142,140, 9,127,212, 95, 45, 22, 19,188, 52,125, 16, 76, 38,130,146, 82, 61,138,110,150, 3, 62, 55,224, 23, 92,139, 91,165,191, - 67, 36,174,192,197,139,229,104, 30,236, 88, 94,227,153,255, 45,150, 63,251,226,139,190,111,209, 64,240,226, 55,165,183,207,158, - 89, 70, 87, 86,186, 66,178, 4, 0, 36,205, 91, 44,255,199,212, 23,125, 87, 95, 51,161,195,148, 20,233,111,133,231,150,153,106, -234,203, 83, 42,149,148,117, 48,155, 45, 52,107, 30,180,252,249,169, 47,248,158, 43,186,135,248,231,146,164, 31,253,107,254, 50, -109,141,198, 93, 5,128,235,121, 25,142,198,194,196, 60, 35,227,198,141, 3, 67,250, 90,173,182,110, 12, 25,203, 63, 59, 59,155, -211,152,250,250,250, 14,209,104, 52,143,119,235,214, 13, 50,153, 12,243,231,207,199,172, 89,179,204,147,185,193,128,237,219,183, - 35, 63, 63, 31,167, 78,157,194,206,157, 59,161,213,106, 59,211, 52, 45,119, 98,177,123,244,126,218,191,127, 63,167,165, 57,138, -162,120,223,203,108,217,174,124,223,242, 12,231, 61,247,220,115, 40, 46, 46,182,249,121,104,104, 40, 92, 37,240,226,226, 98, 20, - 23, 23,187,165, 8,156, 59,123, 25,255,151,177, 15,195,134, 13, 65,100,207,246,247, 45,249, 95,110,226,200,145, 99, 24, 60,120, - 48, 81, 45, 89,130, 27,241,241,240, 27, 58, 20, 90, 59,103,103, 80,159, 93,166, 0, 96,193,144, 30,164, 87,233, 33,188,240,221, - 62,152,186, 70, 66,187, 96, 5, 0,192,111,245, 10, 72, 47, 95,192,194, 66, 49, 86, 31, 59,127,191, 31, 63, 91,228, 48,200,142, -105,223,136,145, 67, 27,180, 47,247,155, 31,112,238,236,101,183,238, 31, 87,150, 20,216,238,126, 71,222, 0,111,190, 22,187,167, -137,214, 93, 88,220,254,174,207,106, 81, 32,104, 7, 80,251,204, 15, 14,213, 63,159,154, 60, 57,188,110,176,119,237,218, 69, 97, -211, 64, 98,237, 9,224, 74,214,165,165,165,245,200,217, 21,178,230, 10,150,210,225,148, 36,184,184, 11, 89,238,127,155,149, 55, -110,220, 72,254,188,240, 58,218,117,245,130, 70,123,191,138,214, 68,160,211, 3, 6, 75,153,193, 72, 64, 68,230,215,191,156,203, - 71, 98, 98, 98,204,149, 43, 87,108,254,102, 96, 96,133, 90,163, 21,161, 85,139, 32,148,223,173, 65,121, 69, 57, 78,156, 44,193, -205,219, 4,226,128, 26,180,239, 92, 13,109,205, 29,116,233,101, 64,199,110,181,216,185, 57, 31, 19, 38, 76,136,185,118,237,218, - 3,185,223, 44, 22,251,136,113,147, 38,183, 45,110, 30,140, 2, 35,224, 55, 98, 20, 68,193, 45, 91,209,149,149,163, 0, 28,102, -200, 26,128,143, 66,161,208, 59,155,247, 1,140,140,155, 48,169,237,159,162,230,184, 94,109, 64, 80,191, 17,240, 14, 12,110,101, -170,185, 47, 15, 0,184,144, 63,128,209,227, 39, 76,108, 75,188,124, 81,161,169, 69,143,168,193,144, 54,107,222, 74, 91,163,169, - 39,171,169,192, 88,255, 20, 69, 97,220,184,113, 4, 0,246,237,219,135,196,196,196,152,148,148, 20, 53, 31,242, 87, 42,149,190, -229,229,229,211, 12, 6,131,200,223,223, 31, 79, 62,249, 36, 86,175, 94, 13, 31, 31, 31, 40, 20, 10,100,100,100, 32, 63, 63, 31, - 39, 78,156,192,183,223,126,139, 95,126,249, 5,173, 90,181,106,101, 52, 26, 31,133, 29,247, 63,219, 5,234,108, 9, 64, 36, 18, -113,106,103, 99, 46, 1,236,221,187,215, 35, 75, 0,205,155, 55,151, 21, 23, 23,171,237,125,230,238,184,187,162, 8, 92, 94,180, -136,148,165,165, 1,199,143, 3,199,143,227,238,164,177, 88,211,187,107,157,203, 62,178,123,119, 60, 51, 37, 22, 29,239,221,193, -141,248,120,180, 92,180, 8, 93,211,210, 26, 44, 7, 88, 67, 44,123, 2, 93,229, 49, 88,184,232, 61,252, 27, 23,176, 38,122, 56, -122, 12, 24,132,206,119, 11,177, 61,168, 47, 10,155,223, 70, 70, 70, 6,153, 54,109, 26,167,241,149, 13,239,141, 23,166,141,195, - 79, 63,254,130, 67, 57,135,241, 54,128, 53,171, 63, 65,100,247,238,120, 97,218, 56,212,104,203, 48,103,206, 28,206,242,172,225, -110, 12, 0, 95, 15,192, 95, 9,148, 29,114,226,221,209,147, 39, 79, 38,170,197,215, 0, 47, 49, 16,228, 3, 4,117, 4,181,203, - 34,140,227,218,127, 35,128,176,173,126, 0, 96, 91,254, 54, 38, 87, 68, 71, 71,203, 28, 4, 3,242,190,134,207, 23, 4,216,245, - 8, 4, 86,206,199,239,122,130,146, 59, 52, 0, 17,164,254,102, 23,167,193, 72,160,171, 5,116,122, 64, 87, 11,232, 13,128, 78, - 11,232,107,239,123, 73,108, 5,164,124,254,113, 0,201, 61, 81,133, 71,194,165, 32, 62,222,184,163,213, 66,253,253, 13, 92,188, -122, 19,119,239, 86, 35, 50,202, 4,141,206, 8, 93,173, 9,218, 26, 26, 37, 69,128, 86, 3,236,217,179, 71,205,231, 0, 12,119, -160, 80, 40,104,175,160,160,229, 51,150, 44,145,236,100, 81, 72,240,146, 55,165,119, 23, 47, 88,102, 42, 47, 63,204, 34,107, 61, -151, 49,246,150, 6, 45,159,245,250, 98,201,193,155,166,186,194, 14,207, 46,150, 94,223,186,100,153,177,186,252, 48, 31, 47,128, -191, 52,112,217,171,111, 44,144, 20, 20,223, 63, 45, 50,238,185, 36,233,142, 77,107,150,213, 84, 87, 29,118,243, 89,179,117, 47, -241,121,214, 8, 99,253, 75, 36, 18,153, 74,165,202, 99,182,140,106,181, 90,117,255,254,253,249,200, 50, 2,232, 12,128,238,211, -167, 15, 45,145, 72, 68, 25, 25, 25,152, 57,115, 38, 86,174, 92, 9, 66, 8,126,252,241, 71,124,255,253,247, 56,119,238, 28, 42, - 42, 42,208,165, 75, 23, 84, 86, 86,250,139, 68,162, 54,206,132,143, 31, 63,222, 46,161, 58, 91, 26,176,231,166,127, 88,151, 0, - 28,121, 1,220,177,254,221, 85, 4,238,149,151,215,189,110,243,230, 28,244,120, 51, 25,195,172,234, 92, 27, 51, 11, 29,254,123, - 18, 5, 11, 94,194,143,161,161, 0,128,193, 0,213,199,198, 92,151,158,158, 78, 58,116,104,134, 83,167,127, 66,100,191,110, 64, -218, 91,120,125,235, 30, 76,239,116, 22,189,107,175, 98,225,109, 49,254,245,249, 82,172,124,127, 3,206,253,114, 20,233,233,233, -228,181,215,236,123,125,217,242, 90,180,244,199,152,177,131, 48,102,236, 32,188, 67,167, 67, 95,187, 24,167, 79, 3,167, 79, 3, - 71,142,140,195, 71,235, 46,227,217,103, 47,145,176,176, 71,145,150,230,207,139,159,114,159,120, 11,139,176,194,225, 13,119,248, -240,144,255, 25, 5,128, 36, 38, 38,202, 88,107,134,214, 74, 0,197,182, 54, 44, 46,121,151, 52, 47,134,244,119,237,218, 69,169, - 54, 13, 4,196, 98, 80,187,118, 61,208,139,101,162,254, 85, 42, 21,149,152,152, 72,156,121, 67,172, 99, 3,248, 16,186, 45, 56, -170, 59,109,137, 6,161,109, 69,120, 46, 78, 12, 93, 45,208, 60,144,130,136,178, 88,253, 32,208,213, 0, 26, 61,129, 70, 75,160, -209, 17,208, 4, 16, 57,136,185,158, 54, 79,131,158,189, 11, 17,242,248, 93,124,115,176, 20,119,239,234,208,103,112, 37,122,181, -168, 6,124,106,161,171,161, 81,122,147, 64,163,161, 96, 52, 82,104,209,138, 2,168, 7, 30,203, 22,217,183,119,239,254,193, 97, - 97, 56,118,159,175, 33,125,110, 42,238,166,204,143, 2,208, 29,192, 69, 30, 10, 69,183, 1, 67,159,234,223, 50, 52, 12, 39,127, -170,139,145, 67,107,217, 63,112,125,243,226, 6,242,156,120, 1,186,247,237,221,167,127,104,104, 7, 92, 60,117,223, 35, 50,244, -233, 88,124,169, 92,205,187,109,141,169,208, 50,207,175,117,252, 70, 92, 92, 92,131,248, 35, 27,177, 0,204,160,119, 6,112,102, -209,162, 69, 67,188,189,189,165,159,126,250, 41, 62,249,228, 19,204,152, 49, 3,171, 86,173, 2, 69, 81,248,253,247,223,161,213, -106,145,146,146, 2,163,209,136, 57,115,230,208, 20, 69, 57,125, 0, 60, 25, 77,255,176, 47, 1, 56,242, 2,120,194,250,119, 21, - 25, 25, 25,120, 49,233, 25, 84,148,215, 2,239,111,132,230,200, 73, 4, 12,235, 95,247,121,233,251, 27,113,193,215, 23,212, 43, -179,209, 99,202, 24, 28,223,126,208,161,188, 43, 87,206, 99,240, 80, 57,206, 95, 8,198,198,245, 42, 12, 27, 54, 4,255,250,120, - 41,222, 25,241, 60, 62, 3,240,248, 11, 51,177,113,189, 10, 98,113, 48, 18,198,247,199,167, 60,228,253,231,131,175, 48, 96, 92, - 79,188,215,115, 53,206,199, 74, 17, 28,183,187, 94,221, 86,254, 18,252,148,167, 70,216,139,211,121,247,195,209,163,222, 72, 75, -243,115, 88,199, 85,251,231, 47,233, 1,176,177,142, 76, 57,168,199,221,196,233,111,142, 80,159, 60,185, 61, 1,174, 64,245,225, - 53,192,175,107,157, 39,128, 81, 10,184, 44, 3,120, 10,140, 53,159,152,152, 72,216,214, 63,227, 17, 96,191, 79, 76, 76, 4, 43, - 89, 14,225, 75,232,214, 96,237, 2,176, 41,207,104, 2, 52, 53, 4,181,122,115,176, 95,173,158,192,219,247,254,103,186, 26, 64, -107, 32, 40,187, 75,240,231, 61,130, 83, 23,141,160,105, 32, 49, 49, 81,118,229,202,149, 6, 99, 99, 52, 2,197, 55,244,184, 81, -112, 15, 71,143,223, 3, 33, 20, 46,254, 74, 99,220,115, 70,136,189, 9,254,188, 13, 28, 61, 12, 84, 86, 18, 16, 26,120, 98, 56, - 5,137, 4,144,203, 19,112,253,250,117, 78,215, 36, 31, 12,114,240,184,235,147,164, 72,218,108,201, 75,171, 82,125,178,136,168, - 94,135,180,242,245,133,207, 43,243,124,126, 95,151,190, 84, 95, 89, 57,149,171, 60, 47, 63,233,210,228,101,171,124, 14, 23,147, -122,242, 90, 6,248,162,199,148,151,125, 46,126,245,225, 82,189,166,122, 42, 23, 15,128,196, 47, 96,233,226,229, 43,124,174,149, - 84,212,147,213, 44, 48, 0, 19,158,155,225,147,245,197,182,165, 26,141,102,106, 19, 63,190,212,190,125,251, 26,148,189,253,246, -219,100,223,190,125,200,206,206,230, 60, 20, 0,206, 3, 56,179,102,205,154,222, 65, 65, 65, 82,198, 13,190,109,219, 54,204,156, - 57, 19,159,124,242, 73,157,165,190,102,205, 26,148,151,151,163,178,178,178,186,166,166,166,208,226, 65, 16, 59,250, 1,154,166, -137,181,139,158,177,254,185,186,255, 25, 55, 61, 91,142,181,187,254, 97, 88, 2,176,229, 5,240,180,245,207,200,228,186, 4,112, -113,240, 96, 80, 47, 77, 65, 16, 0, 50, 60, 10, 53,167,206, 67,243,254,198,251,253,150,244, 12,186,188,240, 12, 36, 18,243,245, - 95,184,224,120,107, 54,243,185,124,172, 89,137,200, 63,121, 14,159,253,223, 14,248, 15, 26,136, 26,131, 17,122,232,241,228, 83, -125, 27,212,231, 34,239,134, 73,143,231,218,190, 12,250, 84, 45, 18,255, 61, 28,226,201, 39,208, 61,178, 59, 34,123,116,174,107, - 95,202,194,117, 72, 75,251, 39,231,251,230,106,229,213, 17, 23,113,241,155,248,102, 92, 60, 6,174, 37, 2,250, 75, 42, 0,249, -249,249, 78,163,191, 45,159,115, 19,232, 27, 0, 85,199,255, 2, 31,135, 19,132, 7, 0,157,106, 65, 61,150, 77,225,195,168,186, -181,127,119,150, 1,172,183, 2,218,219, 26,232,192,237, 90, 71,254,214, 1,128,140, 75,157, 41,115,226, 1,160,172, 45, 49,119, - 39,243, 39,158,138,143,185,121,235,160,154,110, 77, 67,228, 13,248, 88,230, 69, 3, 77, 96, 52, 2, 85, 85, 4,122, 3, 96, 52, -152,149,130,132,241,102,239,141, 29,151, 61, 21, 61, 56, 62,166,246,206, 1,117,100, 36,141, 35,223,155, 64,137,128, 63, 75, 40, - 72,252,128,239, 15, 1,122, 45, 5,138, 0,189,250,249,160,184,136,198, 83, 79,197, 34, 43, 43,139,211,177,214,242,193, 32,105, - 47,155,175,223, 85, 37,128,208,166,209,166,150,173, 68, 7,233,251, 44,212, 22, 64, 8, 5,104,163,162,188,175, 25, 77,163,121, -201, 35,244,104, 4,182, 16,169, 75, 76,117,242, 90, 75,128, 86, 18, 10,254, 61,163,188, 47,236,160, 71, 91,121, 12,136, 35, 89, - 1,129, 65,162,235,183,203, 45,196, 2, 4,250,249, 34,208, 95,140,126,125,250,122,239,249,140,140,110,226, 71,215,102,159, 51, - 81,255,236, 58,140,247,110,210,164, 73,178,204,204, 76,123,242,170, 1, 92, 59,125,250,116,245,176, 97,195, 90,131,181,167,127, -219,182,109,117,132,104, 48, 24, 96, 50,153,112,229,202, 21,180,110,221,250, 14, 77,211,156,180,197,241,227,199,219,179,212, 93, -114,211, 63,204, 75, 0,182,188, 0,158,180,254,249, 16, 63,131,118,161, 65,216,188,249, 59,196,199, 13, 70,219,168, 72, 32, 42, - 18,212, 75, 83,234, 43,189, 0,110,151,104,177, 55,251, 56,218,133, 6,113,151, 23,226,135,168,254, 93, 16,213,191, 75,131,122, -124,229, 61, 57,177, 27,222,124,234, 67,208,231,205,228, 63,107,225, 52,151,228, 89, 99, 73,224,146,111, 86, 86,173, 28,217,152, - 15,164, 91, 10,128,101,207,254, 3,141,192,102,172, 92,149, 74,197, 88,188,148,141, 58,132, 33,127,150, 85,204, 11,236, 93, 0, - 76, 25, 95,203,223, 58, 0,208,130,186,178,249,243,231,171, 45,203, 25,156,228,177,201,223, 86, 76, 0, 95,121,206,144,150,169, -131, 51,121, 89, 89, 89,121, 45,131, 40, 60, 29,237, 3, 26,128, 65, 79,195, 87,108,238,166, 42, 13, 65,173,129,192,104, 2,242, -207,155, 96,162, 9,156,109,217,203,202,202,202,107,219,154,194, 83, 49, 94,152,240,188, 23,170,171, 8,170, 42, 0, 77, 21,133, -240, 46, 4, 38, 3, 5,111,145, 4,229,119,105, 20,255,161,199,149, 95,185, 5,140,201, 7,131,164,207, 3,186,134, 1,235,222, - 0,230,126,224,154, 18, 64,106, 52, 19, 95,137,234,123, 32, 36,235,128, 52,120,232, 19,104, 11,160, 45, 5,152,142, 29, 69,238, -180,169,213,134, 26,205, 4, 62,242,104, 93,205,132,151, 70,244, 63,216,237,157,175,165,109,122, 13, 65, 43, 95, 10,173, 37, 20, -180,151,126,192,222,183,166, 87, 27,180, 53,156,229,213,234,180, 19,198, 62, 61,236,224,252,247,215, 75,187,247,142, 66,160,191, - 24,129,126,190, 40,184,120, 6,203, 83, 94,173,214,242,144,229, 42,153, 59,187, 92, 91,228,191, 98,197,138, 6,110,254, 93,187, -118, 49,121, 2,242,236, 88,255,128, 57,198,226,204, 99,143, 61, 86,160,211,233,218,123,121,121, 73,252,253,205, 91,177, 50, 51, - 51, 49,105,210, 36,104,181, 90,232,116, 58,212,214,214, 66, 42,149,234, 76, 38, 83, 22, 33,164,132,163,117,237,145,185,237,175, -178, 4,192,246, 2, 48,175,155,130,248, 25,132,135,135, 96,201,155, 73, 56,116,240, 71,124,189,231, 20,124,197,205,240, 71,241, -253, 21,172, 14,161,221, 81,171,175, 68,191,168,199,177, 54, 61, 9, 43,223,223,192, 75, 94,155, 54,205,113,225,226,133,186,207, - 35,187, 71,162,180,180,130,151,188,216,121, 19, 48, 73, 52, 21,181,231,171, 17, 61,183, 7,232, 94, 18,108,222,188,179,174,125, - 21, 21, 21, 24,242, 68, 55, 78,242,172,161,162, 84,148, 10, 42, 52, 38, 92, 86, 0, 26,131,252,185,200,180, 16, 62,177,188, 6, - 0,194,222,150,152,159,159, 95,143,240,109, 41, 8, 13,253,176, 20, 32, 22, 1,126, 94,128,212, 27,168,173,130,106,165, 15,144, - 62,139,192,175, 5,224,215,130,247,218,191, 29,242,135, 13,178,230,244, 96, 88,147,191,117, 76, 0, 95,121, 60,200,223,169,188, -178,114, 66,237,207, 51, 16,137, 4,160,105,160,231, 99, 94,247,199,227, 23, 19, 12, 38, 2, 19,237,133,137, 19, 39,114, 82, 78, -110,255, 73,168,131,135, 76,196,104, 4,244, 6, 2,147, 17, 16, 81, 64, 76, 44, 80, 85, 78,225,215,179, 90,104,117, 34,196,199, - 77,196,238,221,187, 57,145,255,138, 89, 64,231, 14,230,247,157,218, 3,174,122, 2,148, 74,229, 9,133, 66, 33, 47, 73, 24,123, - 48,108,239, 1,105,216,208, 39, 96, 56,118, 20,187,227,198, 86,235,171,170,228, 0,142,242,236,234,163, 38,109,149,252,210,219, -227, 15,134,254, 59, 75,218,126,192, 80,104, 46, 29,195,231,175, 36, 84,215,214,240,150,119, 84,167,173,145,175,121,243,159, 7, -255,245,159,173,210,232,193, 67,112,245,194, 25,188,154, 52,181,186,166,186,218,149,182, 53, 42, 28, 36,251, 33,177,177,177, 92, -118, 3,120, 5, 5, 5,157,209,106,181,159, 21, 22, 22,118,236,221,187,119,132,209,104,244,246,241,241, 65, 86, 86, 22, 70,142, - 28, 9,157, 78,135,154,154, 26, 92,185,114,165, 50, 56, 56,248, 59,173, 86,251, 41, 77,211, 26,112,204, 0,200, 14, 72,224,235, -250,255,171, 45, 1,176,189, 0,158,144,227, 74,238, 0, 91, 24, 35, 31,132, 49,242, 65,150,119,238,235,176,245,229,141,119, 79, -185, 11,218,133,218,179,213,152,182, 62, 22,255,250,110,169,219,109, 75,215,167,147, 96, 99, 48,166,249, 79,123, 32,134,181, 75, - 10, 64, 83, 88,254, 54,172, 15, 98,213, 30, 79, 89, 41,118, 61, 2, 92, 61, 0,158, 38,127, 70,217,177,114,239, 19,118, 25, 95, -121,206, 98, 1,248,202,211,232, 8,165,209,129,136, 68,192,209,124,243, 90, 63, 19,240,103, 94,247,159,200, 75, 94, 85, 21,161, - 40,203, 50, 59, 37, 50,203,248,233,191,128,166,154, 6,161,129,248,248, 88,236,222,189,219,233,120,200, 7,131,164, 76, 5,130, -164, 64,241, 29,192,207, 23,160, 9, 16, 32, 1,222, 87,184,166, 4, 0, 56, 74, 87, 85,201,243,227,199, 30,108,190,226, 93,105, -222,138,229,213,181,174,145,127, 61, 37, 32,111, 81,194, 65,191, 87,222,150,230,124,244,142, 43,228, 95, 39,203,104,208,143, 93, -254,218, 75, 7,230,206, 79,145,174, 95,155, 90, 93, 83, 93, 45, 87, 42,149,103,217,238, 97,165, 82,233,173, 80, 40,140,124, 29, - 32,158,244, 10,216, 34,127,138,162, 72,108,108, 44, 0, 96,220,184,113,132,162, 40, 71,138,128, 84,175,215, 87,139, 68,162,220, -208,208,208, 14, 85, 85, 85, 47,159, 60,121,178, 93,223,190,125,105,163,209, 88, 83, 81, 81,113,251,236,217,179,191,135,135,135, - 23,180,108,217,178, 80,171,213,102, 26,141,198,219, 73, 73, 73,154, 62,125,250,112, 82, 0,152,164, 64,238, 64,169, 84,114, 38, - 84, 87,150, 0,220,249,190, 61, 47,128, 39,230, 76,119,229,232,180, 94, 30,173,239,105,121,229,247, 68, 72, 53, 42, 16,113, 60, - 4, 83, 62,118,174,152,148,223,115,126,203, 61, 72,242,183,171, 0,112,216,235,207,171,129, 60,114, 7,240,145, 75,177,162,252, - 93, 38, 47, 42, 31,212,228,240, 49, 4,151, 1, 52,200,215, 80, 97,249,227,183,199,220,114,189,106, 79,145,171, 85,191, 16, 38, -207,128, 37, 64,144, 98,121, 67, 92,146,247,249,130, 0,182, 82,224,138,188, 58,185,147, 38,221, 31, 19, 38,224, 79,165, 82,229, -185, 34,143,208,245,199,184,186, 18,136,141,141,197,254,253,251, 41,198,170,226, 52, 30,159,121,238,129, 97,229,227, 63,106,168, -170,146,127,191,226,237,140,218,170,170,105, 30,176,174,143,234,107,170,228,135,215,191,147,161,171,169,154,174, 84, 42,143,185, - 58,153, 27,141,198, 35, 70, 99,181,124,125,122, 90, 70,117,117,245, 52, 0, 71,173,101,185, 64,254,158, 64,189, 25,213,154,252, -153,184, 29,118,144, 96, 92, 92,156, 35,121, 69,122,189,222,151, 16, 82, 69,211,180, 82,175,215,255, 24, 22, 22,214,170,188,188, -156, 90,182,108, 89,101, 69, 69, 69, 89,251,246,237,171,170,171,171, 53,122,189,190,210, 96, 48,212,206,158, 61, 91,203,211,194, -166, 60,112,207,228, 53, 86,135, 54,166,236,166,198, 7, 31,124, 76, 1, 32,207, 60, 59, 18,145, 61,194,237,214,187,112,254, 26, -190,218,241, 13, 83,255,129,201, 91,191,126,125,157, 60,135, 6,243,201, 66,124,181,227, 27,166,190, 67, 60, 72,242,183,167, 0, -120,186, 1,141,118, 65, 22, 18,165,108, 89,203,124,224,225,168,126, 46,217, 2,221,250, 1, 62,135,254,120,194, 27,224,194,152, -216,125,239,174,188,253,251,247,243, 26, 43,119, 34,254,185,144,182,174,170,178,147, 39,229,105,171,171, 58,121,200,146, 59, 90, - 93, 85,213,233, 33,123,150, 41, 0,216,180,105, 19, 17,137, 68, 96,254,216, 46,108,185, 92, 14,154,166, 65,211, 52,146,146,146, - 40, 39,187, 2, 40,163,209,232, 79, 8, 49,209, 52, 93,107, 48, 24,254,235,229,229, 69,137, 68, 34, 95, 0,190, 52, 77,195,100, - 50,121, 25,141, 70,177,209,104,108, 55,123,246,236, 75,172,239, 54,250, 33, 64, 2, 60,163, 4, 12, 28, 56,140, 28, 58,176, 7, - 69,165,149, 8, 9,174,169,251,172,228,158, 63,194,218, 52,195,227,143, 63,238,148,172, 27, 75,222,250,245,235,169, 39,159,124, -146,172, 75,223,143,171,127,220,105, 32,175,115,135, 86,136,136,136,224, 68,254,141, 5, 71, 57, 82, 40, 87,207, 17, 22, 32, 64, -128,128,135, 0, 53, 44, 66,167, 89,134,141, 55,171,252, 22,128,230, 48, 7,141, 11,196, 47, 64,128, 3, 15,128, 0, 1, 2, 4, -252, 85, 32,177, 40, 1, 52,139,248, 69,184,127,242,160, 55,128,118,150,215,180,208, 93, 2, 4, 8, 10,128, 0, 1, 2,254, 30, - 16, 1,144,178,222, 51,196, 47,102,145, 62,109,169, 39, 88,255, 2, 4, 8, 10,128, 0, 1, 2,254, 71,230, 52,129,244, 5, 8, -112,160, 61, 11, 16, 32, 64,128, 0, 1, 2,254,151,181,229, 51,103,206,176, 15,210, 33, 86, 73,116, 8,234, 31,180, 83,164, 82, -169,194,152,247,182,130, 9,217,242,248,226,239, 40,207,198,182, 69, 74,232, 63, 97, 60,254, 42,242,194,194,194,234,234, 20, 21, - 21, 81,124,229, 37, 39, 39, 67,161, 80, 80,194,253,231,154, 76,225,249, 21,228,241,145,199, 91, 1,224,137,214, 28,235,145,196, -196, 68,222,153,165,236,157, 23,143,134,201, 72,108,157, 6,104,171,206, 3, 7, 67, 48,150,189,240,106,149, 74, 85,151,173,139, -111, 62,241,198, 66, 92, 92, 92, 76,118,118,118, 29, 9,198,198,198,202,246,239,223,159,247,119,212,118,109,141,199,165, 75,230, -157, 97,221,186,117,107,234,230,145,132,241, 10,100,125,173,180,121,207, 38,140, 87, 16,203,103,118,111,156,132,241, 14, 79, 10, - 68,214,215, 74,151,111,186,176,176, 48, 18, 23,119,127, 87, 97,118, 54,136, 51, 37,192, 25, 86,175, 89, 29,179,247,240, 94, 68, - 68, 70,168, 65, 1,151, 78, 95,148, 13,238, 51, 4,233, 31,164,243,186,255,166, 77,155,214,224,186, 51, 50, 50, 40, 8, 16, 32, -160,209, 20, 0, 49,215,138,209,209,209,188,133, 59, 80, 0,108,146,168,245, 65, 27, 60,136,214, 21,205,137,203,228, 66, 84, 42, - 21, 82, 82, 82,144,154,154,170,118,144,166,147,203,239,215,171,211, 62,252, 17, 0,192,109,157, 14, 70,109,173,185,176,188,146, - 33, 57,110,233,143,235, 38,242,236,122, 57, 5, 44,185,197,121,157,241, 46,162,204,217,245,152,255,128,211,215, 77, 49, 57,215, - 27, 15,134,248,221, 24, 15, 79, 94, 3, 73, 24,175,192, 88,121, 63, 29,160,144, 88,136,222,165,223, 96, 41, 16, 30,135, 94,159, -130,156,156, 36,140, 30,189, 9,113,113,169,200,206, 54,247,149, 43,138,192, 11,175,190, 64,202, 91,220,197, 90,229,106, 4,251, - 7,131, 54,154,160, 35,181,234, 67, 63, 30, 30, 61,197,244, 12, 25, 18, 49, 84, 54,111,222, 60,167,138,192,180,105,211, 72,114, -114,178,205, 62, 21,148, 0, 1, 15, 2,241,241,241,117,115,198,172, 89,179,176,117,235,214,122,220, 51,115,230,204,122,135, 83, - 57, 75, 46,229, 76, 30,215,163,170,207,156, 57, 99,237, 37,240,168, 2,192, 43,126,192,214, 41,118,158,192, 70,165, 50,102,142, -155, 73, 83,248,228,208,230,104,185,147,148,148, 20,172, 90,181, 10, 0,234,254,219,254,105,194,207, 27, 16,212, 12,231, 10,119, -192, 15, 29, 96,194, 15, 40,221,114, 10,103, 11,202, 48,113,213, 39, 77,246, 0,156,251,229, 60,122,245,236, 1,154, 0,231,207, -155, 95, 3,247, 95,179,203,105,194,121, 76, 8,199,241,160,184,142,199,244,233,211, 1,160,238,191, 77, 98,167, 40,192,241, 79, -147,167,159, 62,136,111,191,149,123, 84, 9, 24, 43,239, 87,147,148,148,228, 15,108, 66,214,215,174, 17,187, 59, 22,190, 51,235, - 31, 0, 38, 77,202, 68, 78,142,249,127, 82, 82, 1, 24,143, 0, 31,111,192,198,141, 27, 99,212,191,125,167,126, 41,121, 38,250, -183,238, 11,191,230,205, 65,244, 70,208,196, 4, 47,111, 49, 58,143,232,156,243,107,212,111, 88,181, 41, 85,189,118,237, 90,217, -235,175,191,238, 84, 9,184,115,231, 78,189,247,177,195, 2, 48,104,222, 15,208,233,166,212, 27,200,157, 59,119,186,220, 63,114, -185,156, 28, 60,120,208, 99,253,235,105,121,141,137,228,228,228, 24,119,211,250, 38, 39, 39,199, 0,174,167, 7, 86, 42,149,189, -222,120,227,141, 91, 26,141, 38, 12,192, 40,152, 15,225,236, 6,224, 12,204,135, 66, 1,192,231, 0,126,125,208,253,195, 62,235, - 97,214,172, 89,200,206,206,174,199, 41, 51,103,206, 4,159,204,165,206,228,213, 61,239, 89, 89, 36, 33, 33,129,226, 66,254, 76, -153,181, 18, 80, 79, 1, 72, 73, 73, 33,133,133,133, 0,128,136,136, 8,176, 15,155, 81,169, 84,245,222, 91,127,238,200, 98, 47, - 45, 45, 85,171, 84, 42,206,158, 0,235,179,238, 29,145,240, 28, 75, 42, 76,107, 30,224,235, 98,223,180,105,147,211, 58,185,185, -185,156,184, 43, 49, 49,209, 46,233, 47, 94,188, 24,169,169,169, 96, 43, 8, 92,208, 62,252, 17,220,188, 87,129,221,115, 38,161, - 37, 53, 20, 5,155, 23, 32, 98, 66, 4,190,105, 98,242, 7, 80, 71,248, 0,208,163, 71,143,122,229,140,103,128, 93,238,105,203, -222, 9, 17,147,196,196, 68,187,164,191,125,251,118,164,166,166, 66, 62,180, 47, 14,254,112, 26, 8, 12, 0, 42,171, 31,120, 31, - 30, 56,120,202, 31,216,132, 3, 7, 79,121, 68,222,237,127,183,116,168,197,180, 93, 88,198,233, 1, 97,187,254,147,146,114, 16, - 23,215,169,238, 63,131,184,184, 78,156,149,128,205, 95,110,198,202,143,223,195,176, 46, 49, 48,213,214,194,104, 50,130,242,166, - 0,120,129,128,198,237, 63,139,209,173,245,227, 88, 58,103, 41,222, 75,123,143,147, 55,202,122,178,139, 13,221,110,147,240,167, - 76,153, 66, 92, 81, 2,228,114, 57, 57,176,236, 32,198,194, 51,164, 45,151,203, 73, 90, 90, 26, 0, 60,212, 74, 64,114,114,114, - 76, 69, 69, 5,227, 45,115,171,157, 21, 21, 21,204,156,238,146, 28,133, 66, 81, 8, 96, 58,128,211, 0, 62, 5, 48, 18,192, 24, - 0,255,100, 41, 0,119,154,162,159,216,199, 61, 3,192,215, 95, 55,212,224,191,254,250,107, 16, 66, 48,126,252,120,138,175,188, -141, 27, 55, 14,183,204,115, 4, 0, 21, 18, 18, 98,151,248,173,145,148, 98,230,152, 77,169,139,109,126, 94, 79, 1, 72, 77, 77, -117, 24, 4,200,126,111,253,185,163, 32, 4, 70,169,152, 63,127,190, 58, 37, 37, 5,214, 7,229, 88, 31,158,163, 82,169, 28,165, - 47,164, 56,148, 53,233, 67,245,213, 87, 95,217, 37,126,139,162, 85, 71,254,139, 23, 47,230, 36,243,143,194, 34,104,246, 44,135, -116,230,127,208, 62,252, 17,180,109,233,135,194, 61,133,102,242, 15,106,102, 94, 2,240,241,226,221,214,184,184, 56, 25,123, 25, -192,242,158,151, 12,154, 0, 97, 1,192, 71, 83,129,217,219,129,214,254,192,165,114,219,229, 23,238,241,107,159, 61, 69,142,143, -215,230,221,119,223,181, 75,252, 0,144, 54,125, 28,214, 29, 58,129,144,136,118, 40,185,126,219,169,245, 15, 0, 28,189, 0,156, -189, 4,102, 11, 95, 97,211,210,231,178,254,111, 11,105, 95,120, 54,201, 39, 67,250,204,127,125, 92,103,136,179,175,114,254,126, -141,182, 6, 67,167, 12, 81, 71,183, 27,132, 90,141, 6,222,190,190,240,246,190, 63, 5, 21, 94,189,138,189, 89, 89, 55,103,206, -152,222,190,163,111, 24,250, 62,213,103,132, 84, 23, 24,179,109,243, 54, 94, 86,227,251, 7,166,227,251,239,191, 7, 80,191,109, - 59,119,238,164,248, 42, 1, 12,249,163,227, 90, 28, 88,246,186,219, 74,128, 92, 46, 39,233,233,233,232,218,181, 43,214,173, 91, -135,185,115,231, 62,116, 74,128, 21,241,123, 68, 30, 35,203, 13,111,130, 12,192, 83, 0,182, 3,168, 6, 16, 2,224, 55, 0,215, -113, 63,247, 67,147,192,250,184,103,182,219,222,218,133,159,144,144, 64,156,185,240, 15, 28, 56, 80,111,201,120,239,222,189,106, -182,213,207, 85, 33,102,200,159,121,189, 41,117,113, 3, 47,192, 3,201, 3,192, 90,123, 69, 97, 97, 33,218,180,105,211, 64, 65, - 96,202, 74, 75, 75,185,230,185,119, 22, 12,200,121,194,124,230,153,103, 26,237,218,217, 4,102,203,234,183,144,144,173,182,215, -131, 22, 69,168,158, 48, 8, 36,112, 1, 48, 98, 25,170,241, 37,176,229,148, 69, 51, 91, 0,159, 23,215,193,104,228,159,232, 44, - 59, 59, 59,143,221, 79,124,201, 31, 0, 74,183, 1,239,108, 4, 30,233, 0,220,222, 39, 70,198, 86, 61,166,239,176, 95,206,203, -188, 39,158, 37, 49,118,176,223,173,175, 87, 33, 48, 82, 2,105,151,215,240,213,170,217,232,221, 35, 4,143,141,123,143,211,120, -112,105, 58,143,165, 2, 10, 0,177, 34,127,138, 33,126, 87,214,245,185, 90,248, 92,160,143,235,108,179, 60,199,202, 19,224, 12, -183, 74,111, 97, 84,226, 40, 4, 54, 11,134,137, 50,226,200,247,255, 69, 85,117, 53,226,226,227,241,103,105, 41,118,101,238,198, -172, 25,211,219,251, 74,124, 33, 34, 62, 24,221,111,116,238,111,234,117, 46, 41,244,247,238,221,115,251,186,217,228, 15,192,109, - 37, 64, 46,151,147, 21, 43, 86,160,115,103,115,127,118,234,212, 9, 15,147, 39,192,211,196,111,195,250,103, 94,187,114,173,221, - 45,207,164, 15, 0,127, 0,145, 0, 46, 2,104, 15,160, 18, 64,185, 7,158, 89,151, 96,125,220,243,172, 89,179,234,202, 24, 23, - 62, 51,151,113,241, 76,219, 91, 46, 96,147, 63, 23, 69,128, 11, 30, 88, 34,160, 54,109,218,200, 18, 19, 19, 27, 44, 5, 88,206, -182, 7, 0,222, 49, 2,246,130, 1, 29, 89,142,246, 20,148,198, 0, 99,221,219,115,247,115,181,254, 1,224,208,146, 21,136, 91, -249, 1,140, 35,134,194, 27,128,244,248, 85,124, 83, 80, 6, 0, 48,142,152, 11,195, 47,173, 64,181,254, 39,111,146,226,225,101, -177,139,178,241, 95, 98,238,140, 27,184, 60,103, 17, 52,223,234, 17,210,202,113,185, 39, 60, 0,174, 40, 7,219,183,111, 55,107, -195,113, 79,226, 68,113, 41, 2,123, 7,226,102, 78, 1, 32,241,197,164,185, 47,162, 69,135,113, 77, 57,255,218,139,250,247, 11, - 27,123,178, 0, 0, 9, 37, 73, 68, 65, 84,136, 87,203,209, 14, 1,103,177, 3, 57, 73, 57, 24,189,105, 52, 38,101, 2, 73, 57, -230,215, 57, 73, 57,188,189, 0,213,186, 42,180,242,107, 9,163,174, 6, 68, 68, 48, 96,224, 64,236,217,179, 71,151,254,193, 7, - 18,154, 16, 60, 63,245,121,180,104,217, 2, 53,213,213, 48,154,140, 8,244,105, 6,131,200,224,210,245,150,151,151,215,219, 29, -192, 55, 32,176, 1,249, 51,112, 81, 9,144,203,229, 36, 37, 37, 5, 3, 7, 14,172, 87,222,163, 71, 15,188,255,254,251, 77,170, - 4, 52, 22,241, 91, 91,255, 0, 80, 92, 92,236,170, 23,224, 71,152,215,251, 43, 97,118,253,143, 2,112, 5, 64, 47, 0, 89, 0, - 62, 1,224,240,102, 81, 42,149, 34,133, 66,225,241,116,208,108,151, 61, 43, 80,175,238,115,246,146, 64, 73, 73, 73,140,179,131, -190, 8, 33, 20, 67,240,108, 87,127, 66, 66,130,205,114, 79, 42, 0,196,138, 20, 9,207,207, 29, 34, 34, 34,162,142,244,163,163, -163,101, 76,108, 0,227, 29,136,136,136, 80, 51,203, 5, 77, 53,241,122, 18,206,214,250, 89,214,191, 83, 76,220,152, 9, 18, 31, -142,219,131,251,161, 37,134,194,111,210, 58, 24,111,253, 9, 4, 53,131,119,217,151,216,151,158, 15,120,121,185,114,237,110,107, -146,103,223,248, 7,250,247, 1, 34,230,158, 71,164,116, 6,126,123, 52, 17,248,104,145,221,242,166,242, 0,164,166,166, 98,216, -128,199, 48, 98,104, 87,196,245, 92,132, 53,233, 27,112, 49,255, 38,230, 12,239,143,146,172, 3,168,184, 87,233,169,251,193,214, - 82,129, 83,130,102, 19,190, 39,201,223,142, 76, 78, 40, 42, 42,162,194,194,194,200,164,204,250, 10, 1, 0,140,222, 52, 26,226, -236,171,200,206, 46,168,219, 9,192,206, 21, 96,235,118,163,105, 26, 38, 26, 32,180, 17,190,126, 18, 76,125,225, 5,201, 59,111, -191,141,182,109,219,210,237, 67, 66, 68, 58, 77, 53, 76, 4, 32,180, 9, 52,237,124,174,206,200,200,160, 70,142, 28, 73,202,202, -202, 80, 89, 89, 89, 79,113,180,218, 29,192,121, 87,128, 92, 46, 39,107,102, 95, 0, 36,157,129,146,143, 27, 86,144,116,198,154, -217, 23, 0,142, 74,128, 92, 46, 39, 9, 9, 9,178, 30, 61,122,168,203,202,202, 26,124, 30, 22, 22,134,132,132, 4, 25, 30,242, -152, 0,119,173,127, 55,189, 0,108,133,161, 29,128,179, 0, 38, 0,224,124,148,105, 99,144, 63,224,120, 9,192,134, 49,147,231, -236,218,227,227,227, 9,243,253,248,248,120, 98, 45,111,235,214,173,136,143,143, 39,124,119, 5,112, 81, 0,248, 36, 2,178,245, -185, 77, 36, 38, 38,218,244, 2, 48,100,223,166, 77, 27, 89, 74, 74,138,154, 89,147, 77, 76, 76,116, 24, 84,232,200, 58,116, 97, -127,125,163,108, 3,100,172,123, 71,193,128,124, 80,240,239, 36,248, 76, 90, 7,109,241,101,120, 31, 95, 7, 67,230, 92, 80, 99, - 87, 99,239, 63, 39,227,250,222,107,136, 75,251, 20,240,110,154,204,206,139, 84, 64, 78,218, 30, 68, 94, 31, 13,220,209, 96,225, -200, 69, 14,203, 61,225, 1,112,213,250,207,218,179, 2, 94,237,187, 67,138,174, 40,250,126, 19,170, 40,130,159, 46,223,192,136, -243, 55, 57, 53,231,219,111,229,118,201, 30, 0, 44,159,219,172,199,149,252,237,220,163,110, 17,131, 39,118, 8, 36,229,220, 39, -126, 0, 13, 44,127, 38, 96, 48, 59,187,192,230,247, 3,253, 2, 81, 92, 81,140,129, 29, 7, 65, 91,171, 3,180, 58, 24,245, 6, - 44, 77, 73, 1, 37,130,168, 70, 83, 13,154, 54,193,104, 34,240,245,246,193,159,213,127,194,199,228,124,183,241, 55,223,124, 83, -119,109,211,166, 77, 35,204,124,195,222, 29,112,235,214, 45,206,215,105, 38, 97,179, 18,208, 45,188,225,239, 95,186,166,199,252, - 45,145,224, 74,214,150,122,100,224,192,129, 8, 11, 11,107,240,249,249,243,231,145,149,149,165,110, 42,242,183, 88,227, 20,227, - 9, 40, 46, 46,110, 20,235,223, 3, 94, 0, 6,163, 44, 68, 90,251, 48, 40, 57,142,150, 0,216,229,124,151, 0, 60,181,164,192, - 71, 1,104, 20, 48,150, 63, 0, 68, 71, 71,203, 84, 42,149,154,113,253,219, 81, 14,100, 87,174, 92,113, 22, 11, 64,113, 44,243, -168,149,201,181,195, 25,235,223, 22,241, 51,138, 14,159,246,158, 45, 40,131,225,151,119,112, 27, 63, 32,100,236,106,160,162, 18, - 5,155, 22,160, 83,242, 90,148,124,178, 0,240,241, 6, 68, 77,147,217,185, 72, 3,116,107, 51,129,115,121, 83,120, 0, 82, 83, - 83,171,167,140, 24,116,171, 57, 29,252, 72, 13,124, 36,153,107,231, 98,253,190, 51, 88, 56,230, 9, 76,255,224, 11, 76,254,127, -255,215,168,222, 32, 71,151,152,245,181, 18,150, 36, 64,148,187,202,169, 59,174,126, 71, 94,128,164,156, 28, 98,139,252,217,214, -191, 51,132,182, 9,197,161, 35, 57, 24,242,200, 16,248, 7, 72, 65,211, 4, 34, 98, 4, 77, 81, 32,132,192, 68, 0, 35, 77, 96, - 52, 26,161,173,208, 96,255,207,251, 33, 54,137,121,111, 29,182,222, 21,240,230,220,161,136, 13, 45, 4,117,152,187, 12,123, 74, - 0, 95,242,183, 86, 2,210,210,210,208,174, 93,187,251,138,125, 65, 1, 82, 83, 83,241, 48, 88,254,158, 86, 4,108, 89,255,110, -122, 1, 0, 32, 6,192,163, 0,222, 66, 19, 7,255, 49, 80, 42,149,245,238,209,146,146, 18, 40,149, 74, 71,158, 8,167,242,216, - 75, 10, 37, 37, 37, 49, 74,165,146, 2, 64, 74, 74, 74,168,141, 27, 55, 18,150,247,150, 82,184,177, 13,254,129, 40, 0,214, 81, -255,150,100, 53, 13,148, 3,246,107, 55, 45,120,222, 55,150, 7,183, 1,218,180,254, 93, 37,126, 6, 19, 87,125,130,221, 0,198, -172,140, 5, 81, 45, 0,245,204, 26,156, 45, 40, 3,213, 34, 24, 87,255,168, 52, 91,255,252,151, 0, 60, 2,123,251,253,221,201, - 3,192, 69,225,226,170, 28,108,223,190, 93, 15,160,106,118, 76,175,202,215, 86,255, 71,191,100,105,138,174,117,179, 54,101, 23, - 46, 22,181,157,126,241, 11, 41,154,120,215,136, 3,114,102, 47,209,240,220, 81,224,121,216, 34,127,198,242, 7,224, 52, 32,112, -222,188,121,212,144,167,135,196,171,135,230,101, 37,246,156,140, 74, 93, 37, 40, 17, 96, 78, 41, 66,195,100, 34,160,141, 70, 4, -248, 6,226, 88,197,105, 92, 57,126, 21,187,148,187,242,220,110,120,193, 75, 0,248,111, 3,172,167, 4,180, 43,194,165, 91, 97, - 46,145,191,181, 18,176,110,221, 58, 4, 5, 5,161,172,172, 12, 43, 86,172,192,195,230,246,247,132, 34, 96,207,250,119,209, 11, -208, 22,230,168,127, 17,128,190, 0,230, 3, 40,120, 88,250, 75, 97,217,138,238, 41, 88, 47, 41,236,221,187,247,251,198,106,251, - 3,201, 3, 96,207, 35,176,102,205, 26,153,181,162,144,152,152,168,230,123, 17,108, 34,120, 24, 82,236,178,173,127,235,237,127, -150,254,101,247, 43,231, 6, 51, 74,192,132,149,219, 64, 50,129, 86,211,149,200,123,109, 50,158, 72,253, 28,240,241, 65,128, 68, -220, 36,215,203,222,227,111,235,181,139,121, 0,140, 0, 68,150,177, 21,185, 57, 30,183,167,140, 24, 84,252,218,166,236,240,165, -179, 70, 53, 11, 13,137,209, 3, 56,151,152,152,216, 28,230,163,100, 93, 26, 15,230,150,251,246, 91, 57, 19,241,239,138,114, 71, - 57,179,224,249, 16,122, 99, 37, 3,178, 7,107,210,103, 60, 2, 45, 90,180,176,169,157, 29,251,246,216,222,176,199, 31,129,105, -138,241,220, 83,143, 60,213,171,101, 96, 75,232, 12, 58, 16, 66, 32,246, 22,163, 92, 91,131, 19,127,124,139,237,159,101, 64,214, - 93, 38,219,133, 93,110,183,241,253, 3,211,145,145,145,129, 43, 87,248,231, 0,184,175, 4,192, 45,242,103,203,155, 59,119, 46, - 73, 75, 75,195,162, 69,139,240, 48,175,249,179, 21,129,188,188, 60,151,190,235,168, 14, 15,153, 9, 48,239,247,215, 1,120, 3, -192,207, 0, 76,248,155,194,122, 9,128, 47,250,244,233,131, 51,103,206, 96, 83,234,226, 6,121, 0, 28, 38, 2,106,172, 60, 0, -182, 60, 2,246,136,222, 69, 47,128, 91,104,172,109,128,204, 0, 42,149, 74,228,230,230,210,133,133,133,108, 34,147,169, 84, 42, -222,154,227,196, 85,159, 0,172,196, 63, 79, 45,221, 88,247, 90,211, 52,247,171,211,187,148, 38, 46,245, 93, 58,128,187, 48,111, -255,153,234,102, 27, 75,102,199,244,170, 29,153,251, 99,179,231,223,254, 20, 74,165, 82,156,155,155,219, 14,245,211, 89,187, 52, - 30,141,237, 9,112,150,223,223,233,204,217, 8, 75, 2,246,200, 95, 31,215, 25,200,118,110,152,237,248,120, 39, 21,224, 37, 37, -199,195, 78, 96,232,160,161,104, 31,216, 30,160, 9,254,212,149,225,216,169, 99, 40,185, 80,130,225,221,134,203, 94,125,245,213, - 38, 31, 15,182, 18,224, 41,178,102, 60, 1,127,149,128, 63,119,179, 0,122, 0,155, 44,127,255, 19,176, 94, 82,112,199,197,111, - 47, 1,144, 77, 5,160,177, 48,127,254,124,155,100,111,117, 18, 27, 27,106, 7,137,128,236, 18,173,171,104,140,109,128,169,169, -169, 80, 42,149,198,220,220, 92,111,203,210, 1, 67,254,195, 29, 92,183, 77, 88, 14, 83, 82, 55,194,208, 16, 7,229, 84, 19,221, -252,190,150,251,114,153,165,200,164, 80, 40, 94,112, 83,172,239,200,183, 54,231, 43,149,202, 39,115,115,115,145,155,155,171, 3, - 32,177,252,121,130,248, 41,119, 82, 3, 59, 35,249,132,241,138,122,227,197,151,184, 61,177, 36, 80, 84, 84, 68,229, 36,229,144, -208,185,161, 50,116,180, 93,167, 56, 41, 71,205, 53, 30, 96,235,135, 91,169,181,107,215,198,124,178,242, 19,132,117,126, 84, 13, - 0,191,157,255, 85, 54,110,100, 28,210, 55,164,231,237,192, 14,151,218,153,145,145, 65,141, 26, 53,170,193,174, 0,131,193,224, -214,245,123,154,172,255,110,209,254, 15, 1,105, 82, 10,133,130,252, 29,174,197, 19, 75, 10,140, 23,192,186,140,179, 2,224,204, - 18,231, 97,169,187,122,163,147, 70,150,239,169,239,219,148,151,152,152, 72,114,115,115,189,217,253,197,246,176,240, 84, 80,242, - 26,137,144, 31,198, 73, 40, 16, 64,181, 57, 33, 63, 69, 1,240,131,147,253,189, 28,199,227,247,220,220, 92,102, 27, 80,101, 68, - 68, 68,235,212,212, 84,223,135,161, 47, 27,211,109,239, 73,217, 69, 69, 69, 84,209,194, 34,143,245, 1, 43,207,127,221,247,142, -125,119,220,237,118, 30, 62,124, 88, 32,215,191, 57,217,179, 57, 76,161, 80, 24, 60, 73,254, 74,165, 50, 72,161, 80,148,255,213, -251,137,139, 17, 77,185,122,142,176, 0, 1, 2, 4, 8, 16, 32,224,175, 11,145,208, 5, 2, 4, 8, 16, 32, 64,128,160, 0, 8, - 16, 32, 64,128, 0, 1, 2,254, 7,240,255, 1, 81,145,236,175,225,165,221,240, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, +137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, + 2, 0, 0, 0, 1, 0, 8, 6, 0, 0, 0,197,144,206,103, 0, 0, 0, 1,115, 82, 71, 66, 0,174,206, 28,233, 0, 0, 0, 6, + 98, 75, 71, 68, 0,255, 0,255, 0,255,160,189,167,147, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 11, 19, 0, 0, 11, 19, 1, 0, +154,156, 24, 0, 0, 0, 7,116, 73, 77, 69, 7,216, 9, 7, 16, 32, 48, 13, 5,217, 84, 0, 0, 32, 0, 73, 68, 65, 84,120,218, +236,125,121, 92, 84, 85,255,255,251,220,217,217, 23, 1, 21,133,193,125, 95,201, 37, 55, 40, 49, 51,205, 52,192,212, 36,219,196, +210,180,178,180,111,249, 60,233, 79,159, 12,148,202,212,132,158, 74,179,210, 18,151,180, 92, 18,116, 80, 83, 82,209, 92,202, 5, + 69, 1, 65,145,101, 86,102,187,115,231,222,223, 31, 51,131, 3, 2,179,128, 73, 61,243,126,113, 95,195, 93,230, 51,231,158,237, +253,249,124,206,231,156, 67,250,245,235,199,193, 3, 15, 60,240,192, 3, 15, 60,248,159, 2,229,201, 2, 15, 60,240,192, 3, 15, + 60,248,223,193,153,223,179, 1, 0,196,227, 1,240,192, 3, 15, 60,240,192, 3,143, 7,192, 3, 15, 60,240,192, 3, 15, 60,240, + 40, 0, 30,120,224,129, 7, 30,120,224,129, 71, 1,240,192, 3, 15, 60,240,192, 3, 15,254, 17,224,219,159,156, 61,123,150,184, + 43,168,190, 88, 2,143, 60,143,188,134,144,145,145,193,173, 95,191,254,129,165,111,234,212,169,220,150, 45, 91,136,167, 60,254, +214,242,208, 4,121,240,228,159, 71,222, 63, 89,158,203, 10,192,255, 56,234,102, 32,105,201,233, 76, 79, 79,199,236,217,179,137, +167,216,220, 47,227,184,184,184,154,243,172,172,172,127, 68, 94, 78,124, 42,185,209,142, 96,215,143, 25,255,232, 58, 35, 9,220, + 9,177,161, 19,162, 64,163, 26,251,144,175, 95,220,146,235,162,167,253,122,208,114, 60, 0,127, 69,101,157, 56,113, 98,204,174, + 93,187,100,118,231,177,187,118,237,202,105, 17, 45,146,179,244,157,132,180,216,118,201, 21, 22, 22, 2, 0,164, 82,233,223,169, + 19,113, 90, 59,157, 58,117,170,211,207,110,217,178,197, 21, 69,141,219,186,117,107,205,201,206,157, 59, 17, 23, 23, 87,235,254, +131, 82, 2,242,242,242, 56, 0,136,142,142, 38,205,241,220,174, 31, 51,238,107,249,133, 71,181, 7, 0,220, 49, 24,192,232,141, +150,139, 74, 53, 0, 32, 33, 33, 1,153,153,153, 13,166,111, 96,193, 64,174,243,237,206, 46,253,248,247,195,191,119,162, 92, 36, + 8,124,245, 2, 12,187,118, 66,161,152, 4, 5,128, 1,146,149, 88, 44, 57,141,246, 98,160,194, 80,128,197,250, 68,151,126, 55, + 33, 33, 33, 38, 51, 51, 83, 86,231, 90,108,102,102,102, 78, 11,107, 91,205, 82,111,255, 38,239,219,236,104, 19, 44, 34, 62, 2, +127, 98, 20, 11, 57,163, 82, 79, 85,235,213,172,214,104,250,159,152, 29,231, 80, 1,176, 18,182,237,179,169, 21,129,219,181,107, + 23,150,110, 93, 14,159,246,254,168,190,169,194,251,137,139,101, 45,220,226,110, 73, 32, 82,169,148, 43, 44, 44, 68, 97, 97, 33, +246,239,223,143,217,179,103,183, 84, 37,192,214,128, 72, 70, 70,134, 32, 57, 57,217,148,154,154,122, 10, 0, 22, 46, 92,248, 80, + 99, 95,156, 52,105, 82,205,255, 12, 99, 6,109, 50,130, 54,210,160,105,203,193, 48, 12, 22, 46, 92,232, 82, 90,236,201,191, 62, + 88,149, 1,238, 65,122, 2, 92, 81,126, 30,152,133, 31,224,135,243,215,191,135, 4,237, 96,198, 49,148,127,113, 6,231, 10,170, + 48,249,195, 13, 78,125,189,243,237,206, 78, 18,186, 5,207,252,250,140,195, 60,145,140, 91,140,160,137, 47,162,244,245, 1,128, + 94, 81,115,253,140,254,109,156, 1, 0, 61, 48, 82,146,128,131,129,167, 17, 0, 96,160, 98,160, 83,117, 38, 51, 51,243,158,139, +118, 4, 73, 90, 80, 27,107,142, 62,224,239,240,190,205,138, 97,125,250,145,103,195,163,248,202,136, 86,188,208,238,225, 20,159, +132, 18,157, 74,197,138, 17,102,166,250,183, 51, 63, 55, 97,140,217, 73, 81,183, 92,248,217,182, 78, 60,179,192, 5,121,105,247, + 85, 1,216,181,107,151,108,235,191,222, 69,226,178, 15,100, 77,172, 4,156,141,248, 1,160, 82, 87, 5, 4, 3,255,119,112, 9, +212,215, 21, 88,247,242,234,150, 70,100, 13,117, 60, 15, 58,141, 53, 74,192,216,177, 99, 81, 88, 88, 8,169, 84,218,226,242, 78, + 38,179,244, 27,177,177,177, 28, 0, 42, 35, 35, 35, 60, 57, 57,185, 52, 53, 53,245,180,179, 66, 24,134, 1, 77,155,106,136,223, +158,252,243,242,242, 16, 29, 29,237, 82,162, 18, 19, 19,237,201, 22, 89, 89, 89,117, 21,128,230,168, 43, 46,151, 67,116,116, 52, +153, 58,117, 42, 55,102,204,152,123,238, 29, 56,112,192,230,233,176,121, 61,156,150,223,156,195, 1,225, 81,237, 81,170, 80, 97, +199,236,167, 17, 76,134,161,224,191,111,161,195,164, 14,200,114,129,252,107, 50,203,234,106, 35,205,224,106, 11,223,122, 12,186, +162,106,148, 38, 71, 53,250,220, 5,113, 54,150,246,190,131, 21, 23,222,107,106,121, 54, 7,233, 54,167, 12, 52,179,172,251,241, +190,205,130,164,164, 36, 47, 0, 15, 3,240,177,187,172, 4,112,126,211,166, 77,114,103,229,124,178,254, 19,138,174, 52, 10,104, +163, 65,172,128, 73, 44, 16,240,249,106,131,152, 18, 10,245, 44,207,207,155,161, 37, 38, 19,191,236,150,241,235, 47, 54, 26,158, +123,105,166,217,153,247, 86, 42,149,255,177,253,159,159,159, 95,233,237,237, 77,105,181, 90,214,254,153, 65,131, 6,125,220,204, +196,190,160,169,121,202,119,100,253, 95,186,116, 9,157,125,252,236,189, 1,238,120, 1,106,200,191, 82, 87,133, 21,143, 46,169, +185,241,252,174, 87,129, 80, 96, 82,106, 34,118, 46,220,234, 74, 37,107,172,115,107,114, 69,189,121,243, 38, 0,160,125,251,246, +181,254,135, 11,238,236,102, 84, 68, 72, 67, 74,128,201,196,216,226, 1,154,197, 10,104,134,188,180, 39,127, 0, 32,201,201,201, + 0,112, 43, 35, 35, 35, 48, 57, 57, 89,225, 52,249,155, 76,160,105, 35,140, 52, 13, 83, 29,242,231, 88,215,138, 33, 49, 49, 17, +121,121,121,119, 91, 87, 90, 26,226,227,227,107,206,183,109,219,214,100,101,199, 78,225,105,114,253,179, 39,254,169, 83,167,162, +127,255,254, 54, 5,192, 85,143, 64,179, 84,194,146,235,197,208,238,252, 55,124, 94, 88,141,240,168,246, 8, 11,150,224,250,206, +235, 22,242, 15,240,179, 12, 1, 8,120,206,105,176,205, 52,198,214,229,226, 53,220,124,127, 57,244,153, 27, 27,247, 16, 72, 36, + 48, 24, 12, 40, 40, 40, 64,185,225, 10,186, 32,188,193,103,173,110,240,198,234, 62,177,181, 19,235,179, 57,110,180, 47, 98,215, +174, 57, 55,219, 25,105,132,184,157,174,131,245,189,111,124,124, 60, 71, 8,177, 13,229, 52,229,125,109,109,153,227,243,249, 77, + 42,243,164,164, 36,127, 0,147, 14, 30, 60,248,111,150,101,141,118,117,137,207,227,241,188,147,146,146, 94,218,180,105,211, 94, +135,140,185,104, 1,191,242, 86,133, 88, 32, 16,121, 83,124,226,199,241, 68, 94, 44,143,199,103, 9, 5,150,240,205, 28,143,103, +228,177,196,160,229,153,117,222, 66, 1,249,226,216, 94,195,220,148,153, 44,138, 29,167, 81,161, 80,168,117, 58, 29, 3, 0, 90, +173,150,125,247,221,119,107, 8,255,131, 15, 62,120,163,169,245,125,244,232,209,179,109,255,103,103,103,167, 55, 71, 27,162, 28, + 89,255,203,167,196,195, 80, 81,129,183,122,118,131,253,216,189,211, 86,200,196,137, 49, 0,106,145,255,196,137, 19, 99, 1,144, +137, 19, 39,198,110,152,248,153,197,179,216,181, 85,173,231,157,193,194,117,249, 88,184, 46, 31,115, 86, 93,194,115,203,254,192, +228,255, 59,219,244,142,174,164,196, 41,197,224,175, 34,127,235,152, 63,215,128, 39, 0, 38,154,198,224, 65,131,154, 67,201,224, +182,110,221,138,173, 91,183, 66, 38,147,213, 28, 46, 42, 60,156, 76, 38, 67,108,108,108, 13,249,219,223, 76, 78, 78, 86, 58,211, + 49, 49,140,217, 98,249, 27, 45,174,255,186,228,111, 54,155,161,213,107, 93,122, 65,155,199,160,174,215, 96,219,182,109,216,182, +109, 91, 45,101,192,165,247,205,169,221, 31, 90,207,155,164, 36,218,200,127,234,212,169, 72, 77, 77,173, 33,127, 1, 95,224, 42, +249,219, 58,240,134, 14,167,161, 71, 49,170, 39, 13, 6,151,249, 22, 74,174, 23,131,155,212,253,110, 38,100,190, 5,126,155, 16, + 32, 32,224, 47,213,140,181,149, 5,208,103,110, 4,199,113,184,112,225, 2, 70,142, 28, 9,137, 68, 82,139,248, 3, 3, 3,161, +215,235,161,215,235, 81, 90, 90,138,105,250,121,248, 34,240,245, 6,101, 58,233,242, 38,117,158,117,149,184,155,203, 88, 33, 13, +144,191,211,117,176,238,251,198,199,199,115,219,182,109, 67,102,102, 38, 18, 18, 18,184,166,190,175,149,252,193, 48,140,219,109, + 34, 41, 41, 73, 12,224,229,236,236,236,119,151, 45, 91,118,130, 16, 34,181, 29, 0,218, 5, 7, 7,123, 29, 58,116,104,125, 82, + 82,210,200,198,228,124,150,190,158,199, 35, 2, 17,205,112,126, 70,163, 41,212,204,178,237,204, 44, 27,101, 38, 36, 2, 60, 94, + 48, 33, 36, 0,132,231,199,114, 8,226,104, 54, 64,173, 55,121,135,250, 49, 60,106,144,198,169, 50,210,233,116, 76, 93,171,191, +165,131,106,140,184,187,116,233,130,206, 62,126,208,149,221,198,227,253, 7,184, 76,208, 54, 37, 98,233,214,229, 0, 80, 67,254, + 54, 47,194,174, 93,187,114,108, 74, 64,137,250, 22, 6, 44, 28,226,146,146,161,213,155,161,213,155,113,187,202,136,210, 10, 3, +110,222, 49,184, 69,124,182,198,226,136,252, 31, 20, 26, 81, 2, 96,160,141, 48, 24, 12, 77, 17,207,201,100, 50,216,198,200, 67, + 66, 66,236,173, 89,184,208,153,212,178,132, 27,113, 37, 58,236,244,104,147,209, 98,249, 27,105,208,166,218,228,111, 50,153,160, +213,106,161, 81,107, 30,116,177,112, 91,183,102,214,126, 37,203, 31,172,215,221,234,240,236,201,223, 70,252, 20, 69, 65, 44, 22, +195,219,199,171, 73, 9,158,248, 84, 50,215,208,225,232,187,251,255,111, 9,130, 49, 12,204,232,215, 0, 0, 62,185,215,112,174, +160,202,210,201,143,126, 13,166, 11, 75,129,202, 42,215, 50,208, 10,119,223,199, 27,149, 0,128,141, 27, 55, 98,215,174, 93, 88, +185,114, 37, 78,158, 60, 9,163,209,136,242,242,114,155, 85, 86,243,124,120,120, 56,244, 0,120,184,241, 64,234, 75, 35,245,158, + 52, 65,105, 36,141,120,240, 92,150,105,239, 9,171, 47, 38,192, 29,242, 7, 0,119,149,128,164,164,164,214, 86,242,159,245,245, +215, 95, 95, 92,188,120,241, 83,155, 55,111, 70,151, 46, 93, 0, 0,145,145,145, 80,169, 84,162,165, 75,151,158, 62,116,232,208, +183, 73, 73, 73,210, 6,115,137,229, 8, 88, 70,108, 54, 51, 65,102,198,220,206,100, 54,117,226, 81,164,173,144, 79, 9,196, 2, +158,158,239, 37, 84,122,251,242,212, 60, 49,199,136,121, 60,111, 62, 67,251,221, 56,243,187,104, 70,200, 39, 14,211,157,159,159, + 95,169,213,106,217,250,220,252,125,251,246,189, 66,211,116,179, 85,164,190,125,251, 54,155, 44,126, 99,196,253,223, 89, 47,222, + 37,219,146,155,120,171,103, 55,172,178, 16,180, 75, 90,171,205,250,183,145,126,157,223,169, 57, 15,238,221,218,165,196, 87,235, +205,208,232, 24,168,181, 12, 84,213, 12,148, 26,198,245, 86, 89, 79,228,191,189,149,111,255,255,245,235,215,161, 84, 42,255,178, + 30, 35, 61, 61, 29, 82,169, 20,182,160,191, 58, 99,253, 92,122,122, 58, 12,122,125, 83, 20, 0,110,195,134, 13, 40, 41, 45,133, +128,199, 67, 88,235,214,181,200,255,209, 71, 31,197,193,131, 7,157,237,156, 72,108,108,108, 93, 37,160,150, 39,195,217, 88, 5, +218, 72,131, 54, 26, 97, 50,209, 96, 24,115, 13,249, 27,141, 70,232,116, 58, 84, 87, 87, 67,163,113, 93, 1,176, 31, 2,176,193, + 93,203,127,107,230, 86,128, 3, 42,173, 68, 99, 29,212, 6,225, 56,139, 18,144,153,137, 68,139, 5,229, 82, 91,169, 75,254, 2, +129, 0, 34,145, 8, 98,177, 24, 98,177,184,201,117,170,161, 33,129,250,230,197,219, 99,114,250,118,112, 79, 70,225,206,208, 1, + 8,198, 48, 72,158, 94, 3,230,118, 5, 16,224, 7,126,213, 22,252,252,201,105,128,199,115, 41, 45, 77, 29, 10,208,242, 44,125, +202,138, 21, 43, 80, 81, 81,129,245,235,215,163,111,223,190, 88,182,108, 25, 6, 12, 24, 0,189, 94, 95,215, 66,179,169,212,127, + 53,241, 59, 75,208,238, 14, 7, 52,164, 72,184, 44,199, 58,139,163,166,109,184, 59, 52,102, 79,254, 53,100, 99, 85, 2, 92, 28, + 14,240, 61,127,254,252,167,175,188,242,202,145,222,189,123,251, 1,192,146, 37, 75,144,159,159, 15, 0, 24, 50,100, 8,118,236, +216,129,225,195,135,123, 79,155, 54,173, 32, 39, 39, 39,251,249,231,159,159,246,251,239,191,223,147,179, 65,193, 65,236,245,235, + 5, 76,142,236,224,190, 78,157, 58,231, 68, 69, 74, 47,242,124, 37,229, 60, 34,212, 82, 34,129,142, 18,123,105,104, 62,143, 6, +103,226,177, 98,147,175,166,180,202,231,228,161,179,131, 90, 5,134,237,112,168,140,218,141,249,239,220,185,243,185, 73,147, 38, +125,109,115,251,171,213,106, 74, 40, 20, 54,185, 34,217,220,254,217,217,217,247,215, 3, 96,179,242,163, 59,118,134,161,162, 2, +218, 18, 11, 9,142,180, 90,135,174,122, 1,174,255,113,237, 30,217,245,157, 87, 93, 40,115, 41,241, 77, 37,127,123,226,231, 56, +206, 54,198, 95, 3,147,201, 84,115, 40,149, 74,104,181, 90,200,229,242,191,172,231,176,205,243,223,191,127,127, 93, 79, 0,151, +158,158,142, 62,125,250,192, 96,208,215,116,116,233,233,233, 46,185,235,215,125,182, 14, 38,147, 9,237,194,195, 97, 50,155, 27, + 34,127, 87, 58, 18, 82,143,235,191,102,234, 98, 99,158,140,123, 20, 0,218, 84, 67,254,167, 78,158,130, 78,175,135, 70,163,129, + 74,165,130, 82,169,172,101,217,185, 10,219, 48, 64, 19,198,253, 81, 85, 89,133,170,170, 74, 84, 86,201, 81, 89, 85,133,170,170, + 42, 84, 85, 90, 44,210,110,221,187, 67,110,253,223, 85,235, 31, 0,250,247,239,127,215,234,247,246,134,143,143, 47,124,125,124, +161,209,104, 98,155, 72,254,110, 15, 7, 20,172,156, 5,193,211,107, 16,140, 97,224,231,174,129,105,251,107, 64,128, 31,118,191, + 26,143,162,221, 55, 48, 33,117, 19,192,255,139,151, 21, 49, 20, 65, 18, 46,129, 86,171,133,193, 96,128, 78,167, 67,110,110, 46, + 62,252,240,195,122, 31,247,242,178,121, 80,174,185, 67,222,238, 90,213,246,249, 75,156, 60,111,138,146,225,106,155,173, 37, 39, + 51, 51,147, 36, 36, 36,216,200,223,109,207, 4,159,207, 39, 12,195,212, 85, 10,224,106, 44,192,166, 77,155,174, 38, 36, 36,244, +221,188,121,243,200,163, 71,143,250,142, 30, 61,250,164,141,252,173, 6, 36, 68, 34, 17, 87, 84, 84, 36,216,183,111, 95,215,192, +192,192, 83,195,134, 13, 43,168, 79,214, 51, 83,158, 97, 59, 71,117,209, 12, 25, 50, 36,254,226,197, 63, 31, 81,107, 53,173, 57, +198,196,128,130,137, 49, 82, 70,163,209,168, 87,163, 76,205, 26, 13,154,210,226, 50,230,231, 61,123, 83, 90, 5,135,148,211,180, +206,161,249, 94,159,245,175, 80, 40,248, 0,224,231,231,215, 98,135, 5,168,134,172,255,173,255,122,215,162, 53,151,221,174,117, +207,213, 88,128,137, 19, 39,198,174,123,121, 53, 0, 75,192,223,174, 93,187,100, 54,210,183,173, 9, 16,247,205, 83, 0,128, 51, +169,191,217,226, 3,254, 42,212, 84,198,146,146,146, 26,107,223, 70,250,118,133, 11,141, 70, 3,131,193, 96,215,137,252,117,105, +156, 61,219, 18,251, 97, 98, 24, 92,188,120, 17,191,159, 57,131,190,125,250,194, 96, 48, 64,175, 55,192,160,215,227,219,111,190, +129,237, 57,103, 26,122, 90, 90, 26,122,116,239, 1,147,201,132,171, 87,175,130, 49,209, 40, 45, 41,109,214, 60,181,157, 91,215, + 44,176,173, 93,224,216, 3, 96, 50,130, 49, 91,220,254, 39, 78,252, 6,173, 94,139,106,141, 26, 42,149, 10, 10,165, 18, 10,133, +188, 73,138,152,205, 19,224,166,245, 15, 0, 56,114,228, 8, 52, 26, 13, 52, 26,181,245, 83,131, 86,193,193,232,214,189, 59, 46, + 95,186,132,195, 71,142,184, 44,211,102,253,243,249, 2,120,121,121,193,199,199, 7,190, 62, 62,240,241,241,130, 92, 33,143, 77, + 78, 78,206,113,170,205, 53,193,213,223, 16,206, 21, 84,193,116, 97, 41,170,112, 12,100,220, 42,144, 97,255, 70,193,202, 89,120, + 50,245,107,136, 5, 20, 32,224, 91, 14,119, 88,199,205,161,128,210,241,159, 33,104,203,120,232,116, 58, 4, 5, 5, 65,161, 80, + 64,161, 80,224,248,241,227,184,125,251,118,141,155,184,230,249,210, 82,188, 26, 40, 65, 43,175,138,198, 44,224, 88,123, 82, 77, + 72, 72,136,177,187, 23, 83,231, 94,172,139,237,130,107,132,192,155, 99, 70,129,203,150,127,125,239,155,153,153, 73,182,109,219, + 70,154,248,190,181,148, 0,119,200,223,134,247,222,123,239,252, 83, 79, 61, 53,109,197,138, 21, 93,207,157, 59, 55, 76, 34,145, +240,158,124,242, 73, 34, 18,137,192,178, 44, 25, 55,110,220,249,249,243,231,247,233,213,171,215,238,151, 94,122,233,185,151, 94, +122,169,193,177,168,228, 57,201,236,159,151,174,158,234,213,187,207,179,167, 78,158,156,188,123,207, 79, 31,228,157, 60,217,250, + 98,254,101,241,213,210, 2,238,219,213, 63, 72, 86,164,173,236,145,189,103, 79, 90,167,142,157,126,246, 9,243, 62,178,105,211, + 38,179,179, 57, 58,122,244,104,156, 58,117,170, 95,122,122,250, 82,131,193, 32, 88,182,108,217, 71,187,119,239,158, 90, 90, 90, +250,151, 19,135, 83,101,212,208,141,224, 27,133,144, 3, 53,214,191, 13, 35, 67, 66,176, 10,151,157,183, 58,172, 46,254,203,167, + 47, 34,160,107, 43,196,125,243, 20,118,205,248, 81,102,211,222,108,228,111,179,254, 93,153,101,176, 99, 69,191,230, 97, 88, 66, +112,233,210, 37,216, 42,107, 93,247,178, 64, 32,128, 64, 32, 64, 69, 69, 5,198,141, 27,247, 32,202,137, 72,165, 82, 46, 61, 61, + 29,131, 6, 13,130,193,104,132,222,160,135,193, 26,220,164, 55, 88,134, 1,214,174, 93,139,185,115,231, 58,234, 76,184,212,212, + 84,152,205,102,156, 62,125, 6, 2,190,197,109,219,185,115,103,220, 40, 44, 68,105,105, 41,182,108,249, 30, 83,167, 62, 3, 0, + 92, 29, 79, 64,131, 29, 80, 70, 70,134, 16, 0,147,156,156,204,214,103, 1,185, 50, 85,209,102,249,231,230,230, 66, 91,173,171, + 81,192,212, 26, 53,212,106, 21,212,106,247,134, 0,236,173,255,169, 83,167,214,120, 0, 92, 85, 4,166, 78,157, 90,235, 60, 74, + 42, 69,183,238,150,160,184,203,151, 46,225,134,213,227, 49,117,234, 84,151,163,246,135, 62, 60, 20, 34,161, 8, 18,137, 4, 98, +177, 24, 34,145, 8,101,101,101, 78,147,191,157,181,223,172, 21,112,242,135, 27,176, 3,192,216, 21, 79,128,203,124, 11, 36, 49, + 13,231, 10,170, 64,130, 2,113,173, 68,109,177,254, 93, 28, 2,176,107,127,196,166, 8,216,159, 59,132, 94, 15,240, 44,198,222, + 93,247,190,133,232, 77, 38, 19,190,248,226, 11,140, 28,121, 55, 46,236,224,204,112,160, 92,135,174,123, 21,232, 23, 18, 89,175, +200,122,162,220,237,135, 60,101, 14,158,117,150,176, 73, 19, 60, 10,141,121, 35, 92, 86, 36,238,247,251, 90,149,128, 38,207, 2, + 88,177, 98,197,150,121,243,230,133,156, 61,127, 62, 81,175,215,247,145,201, 14, 73, 68, 98, 17,159, 34, 20, 14, 29, 58,228,219, +163, 71,143, 77, 9, 9, 9,255,158, 60,121,178, 67,107, 61,231,208, 1,118,194, 83, 19, 14,247,237,219,127, 33,205, 24,199, 94, +203,191,250, 1, 91, 88,192, 0,224,196,160, 76,189, 59,117,205, 12, 13, 13,217,203,227, 11,191,253,207,226, 20,250,147,101, 31, + 59, 44,165, 65,131, 6,125, 60,122,244,104, 0, 64, 69, 69, 5,178,179,179,253,190,250,234,171, 15, 0,224,212,169, 83,131,122, +246,236,185,255,111,161, 0,216, 22,254,121,244,219,205,142, 44,123, 87,166, 4,146,157, 11,183,114, 3, 22, 14, 65,112,239,214, + 53,164, 95,227, 78,189, 80,134, 51,169,191,185,234,182,106,174, 57,169, 4, 0,215,189,123,119, 92,184,112,161, 22,177, 40,149, +202, 2, 0, 29, 93,212,230,239,167, 39,224,158,223,252,246,155,111, 97, 48, 24, 96,164,141,160,105, 26,169,169,169,141, 45,146, +195,165,166,166,214,156,176,172, 25, 98,137, 15,244,122, 3, 46, 93,188, 8,190, 64, 0, 19, 77,195,203,219, 11, 91,182,108, 1, +143,199, 67, 98, 98, 34, 30,125,244, 81,174,170,170,225, 0,175,212,212,212,253,201,201,201,116, 70, 70, 70,168, 45,111,234,172, + 3,224,146,107,115,225,194,133, 56,118,236, 24,170,171,171, 81,173,213, 66,163, 86, 91,201, 95, 13,141, 90,131,106, 77, 53,180, +118, 29,190, 51,121, 23, 29, 29,205,229,229,229,213, 88,255,245, 77, 3,116,118, 17, 32,235, 92,252, 90,101, 97, 35,125,219,216, +163, 43,171, 20,218, 86,248, 3, 0, 31, 47, 31,136, 37, 98,104, 52,154, 88,219,208,142, 27,228,127, 95,230,107,219,148,128, 73, + 43,190, 2,183, 29,104, 53, 51, 3, 57,175,199, 99,120,202,119,128, 64, 0,111,113,211,198, 57,235, 42, 2, 0, 48,245,216, 84, + 7,223,186,131,222,251,189, 80,246,147, 14,138,229,119,175,154, 76, 38,140, 24, 49, 2, 0, 16, 30, 40,193,175, 25,237,177,242, +195,155,248,236,140,222,145, 69,108, 63, 45, 14, 13,253,111,247,108,142, 27,125, 86,115,205,173,111,142, 49,255,251,249,190, 53, + 74, 64,115,212,191, 79, 63,253,244,211,231,103, 62,191,239,161,129,209,131, 52,106,117, 16, 99,102,140, 97, 97, 97, 21,225,225, +225,101,106,181,250,220,228,201,147,157,238, 20,126,250,241, 39, 22,192,150,103,167,191,152, 59,108,248,240, 31, 37, 18,137, 63, + 1,199, 18, 66,192,178,156, 74,175, 85,200,174,156, 47,214,120,139,132, 78,245,243, 54,242, 7, 44,129,212,117, 3,245, 62,252, +240,195,127,255, 45, 20, 0, 43,169, 59, 44,176, 93,187,118,185, 92, 89,207,164,254,198, 1,128, 77, 17,176, 35,254,230, 36,116, +183, 27, 82,239,222,189,113,234,212, 41, 84, 84,212,184, 8, 59, 2,128,141,252,102,204,152,241,160,203,171, 86, 30,165,167,167, +115,207,206,120, 22,107,215,174,179,142,153, 51, 88,184,112, 97,163,211,151, 92, 92, 65,207, 98, 57, 29, 60,232,104,179,137,238, +169,169,169, 87,147,147,147,203, 51, 50, 50,120,201,201,201, 53, 1,129,214,105,129, 78,119,116, 54,139,121,216,176, 97,205,158, +119,209,209,209,156,189, 21,111, 31, 3,224,198, 10,128, 4, 0,183,101,203,150,123,172,124,171,135,192,229,250,188,101,203, 22, +226,170,199,192, 25, 52,230,250,119, 85, 89,152,252,225, 6,192,110,225,159, 81,239,222,157,142,172,109,174,130,178,243, 0, 56, + 90, 9,176,116, 88, 41, 74, 1, 12, 88, 25,136,229,167,187, 32, 4, 64, 69,129, 22,157, 58,117,178,144,198,242, 64, 60,246, 80, + 8,162, 30,203,119,214, 34,118,122,120,211,250, 44,113,183,191,105,166, 62,175, 73,178,254,162,247,109, 54,108,216,184,225, 42, +128,171,205, 37,239,219,239,190, 44, 68, 51, 68,133, 54,103, 96,158, 21, 11,254,138,252,252,171, 55, 3, 34, 19, 39, 78,140,217, +149,218, 34,247, 2, 32, 0,184,135, 30,122, 8,123,247,238, 53, 88, 73,159, 5,224,117,159, 60, 15, 77,134, 45, 72,112,238,220, + 57,156,213,242,127, 32,105, 91,184,112, 97,100,125,110, 73,187,105,132,174, 88, 59,228, 62,151,113, 77,122,154,186,236,111, 67, +171,242,185, 74,226,142,214,246,111, 14, 52,101, 72, 96,209,162, 69,184,126,253,122,179,165,197,153,229,125, 93,197,153,183, 21, + 56, 3, 75, 96,232,200, 4, 9,126, 57,209, 5, 97, 94, 62,248, 51,239, 14,186, 58, 73,254, 78,212,191,150,186, 28, 46,185, 79, +223,245, 44,207,238, 28,218, 54,179,188,180,191, 42,225,127,249,110,128,117, 61, 12,110,120, 18,238,187, 18, 48,110,220, 56,241, +223,172, 2,186,101,217, 55,215,111,103,100,100,216, 86,168, 97,146,147,147,155, 58,149,201,131,230, 39,255, 38,149, 69, 74, 74, + 74,179,148,101, 70, 70, 6, 63,121,120,242,125,175, 23, 71, 50,245, 56,146,153,223,226,219,172,167,102,122,240,192, 43,161,187, +251, 8,123,224,129, 7, 30,120,224,129, 7,127, 95, 80,158, 44,240,192, 3, 15, 60,240,192, 3,143, 2,224,129, 7, 30,120,224, +129, 7, 30,120, 20, 0, 15, 60,240,192, 3, 15, 60,240,192,163, 0,120,224,129, 7, 30,120,224,129, 7,255, 8,212,154, 5,112, +246,236, 89,183, 35, 83,235, 11, 38,244,200,243,200,243,200,243,200,115, 82, 94,163,211, 68, 91,128, 60, 79,249,122,228,213,194, + 43,175,188,210, 14,128, 2,128,208,186,213,121,139, 74,159,199, 3,224,129, 7, 30,192,223,223,159,242,247,247, 39,254,254,254, + 2, 0,188,150,150, 62,219,190,243,118,251,207, 55, 21,245,173,143,239, 65, 11,194, 19, 79, 60, 17,243, 15,120, 13,219,218, 87, +146,191,235, 11,120, 20,128,127, 56,154,176,221,186,203,136,139,139,139,177,118,186, 53,135,245,218, 63, 82, 94, 11, 7,137, 12, + 11, 35, 0,160, 82,169, 88,149, 74,197,169, 84, 42, 19, 0,179, 59,194, 94,126,172,119,201,172,177,189, 39, 2,192,172,177,189, +191,121,249,177,222,235, 0, 96,225,164,135,200,194,167,163, 5, 47,143,233,229,214,154, 34,246, 75,209,102,102,102,214,218,124, +167, 41,228,111, 87,239,155,115,173,253,166,202,108, 14,121,220,125, 80,108,254, 82, 69,233,137, 39,158,136,217,187,119,175,236, + 31,208,198, 12,176, 44, 22,119, 95,121,180, 77,176,136,234,220, 58,148, 31, 33,109, 71,133, 5, 4, 11,189, 69,130,102,251, 61, + 62,254, 25,160,172, 90,152,222, 90, 32, 30,216, 41, 0, 78,236,173, 98, 4, 32,106,234, 79,101,101,101, 33, 45, 45,173,214,242, +127, 11, 22, 44,176, 53,116,226,142, 60,246,135,192,218, 5, 61, 37,171,165,200,107,241, 69, 31,229, 45,225,162, 58, 72, 1, 0, +101, 52, 51,189,181,144,255,157,237,230,101,117,181,168,172,178,146,118, 70,208, 75, 99,122,229,155,205, 92,248,195, 67, 91,249, +117,237, 58,236,128, 72, 68, 21,205, 73, 25,244,159,255,146, 11,184,163,210, 61, 33,224,147,159, 0,114, 17, 64, 79, 87, 19, 89, +119, 41,218, 38, 46, 55, 91,139,252,237,234,190,187, 75,229, 18, 23,175,223,119,121, 9, 9, 9,182, 53,250, 29,190, 83, 66, 66, + 2,151,153,153, 73, 92,200, 59,210, 12,114,156, 34,127,150,101, 65, 8,193,200,145, 35,185, 35, 71,142, 16, 23,203, 88, 8,192, +212, 28,233, 9, 10, 10,154, 37,151,203, 63,119,243,235,126, 0,148,104,190, 85,176,107, 97, 88,159,126,212,179,225, 81, 98,101, + 68, 43, 97,104,247,112, 62,159,132, 82, 58,149,138, 17, 35,140,166,250,183,163,159,155, 48,134,110,234,111, 56,171, 73,132, 0, +120,220,250,217,210,224, 7,224, 41, 0,233,214, 79,191,102,146,251,125, 75,179,176,221, 42, 96,202, 97, 17, 15,178, 54,168,208, +166,144,205,252,249,243,239, 33,127, 0, 72, 75, 75,139,157, 63,127,190,203, 86,206,198,215,188,239, 33,107, 0, 96,127, 8,196, +198,215,188, 31,168,188,212,212,212, 24,138,162,184,103,158,185,187,164,237, 43,175,188, 18, 3,128,139,136,136,224,218,181,107, +199, 5, 7, 7,115, 79, 63,253,180, 83, 50, 55,164,126, 20,115,156, 26,194, 45,141,142,175,177,126,215, 45, 93, 23, 51, 15,171, +185, 57, 17, 27,184, 25,237,182,114,227,131,247,115,131, 58, 44,115,202, 58,238,208, 46,172,117, 76, 7, 41,247,218,156, 25,198, +229,111,189,200, 45,124, 97, 26, 90, 11,249,223,189, 59,251, 89,172,124,227,101,110,217,220, 23,216,110,126, 62, 70, 0,104,221, + 58,152,111, 45,255,122,113,102,231,211,157,195,195,189, 2,158,153, 18,153, 54,113, 82,123, 1,203,177,210,144, 86, 34,239,143, + 95, 63,145, 54,239,169,126,223, 62,254, 88,155,200,136, 8,239,226,127, 47,238,237,238, 54,153,246, 27, 69,185,180,105,148, 3, +203, 31,205,224, 9,104,113, 30,128,204,204, 76,146,144,144, 80,243,189,132,132, 4,174,190,161, 19, 43,105, 59,173, 84, 52,148, + 14, 59, 57, 77,238,232,236,201,127,193,130, 5, 24, 57,114, 36,247,235,175,191,186, 35,138,110, 70,227,181, 44, 40, 40,104,146, +155,223, 13,183, 26,156, 82, 0, 72, 74, 74,138, 76, 74, 74,218,147,148,148,148,107,119,236, 76, 74, 74,114,105, 27,229, 79,214, +127,194, 79, 93,150,226,247,248,147,147,194, 21, 3,123,118,224,183, 13,239,168, 54,136, 59, 86,155,245,237,137,159,119, 91, 58, +204, 20,198,148,221, 10,248,250,139,141, 66, 23,121,220, 45, 5,160, 61,128,111, 0,196, 91, 63,219,183, 32,126, 11, 6,176,197, +170,156, 28, 7, 48,214,122, 30,220, 12,178,167,192,137,241,210,150,174, 0, 56,129, 33, 0,174, 0,136,114,199,186,177,185,208, + 35, 34, 34, 98,237,173,126, 59,203,191,230,158, 51,238,118,219, 51, 73,195,133,118, 86,186, 2,212, 20, 69,205,185,237,222,131, +144, 7, 0, 39, 78,156,144,137,197, 98,228,230,230,222,163,108, 21, 23, 23,147,146,146, 18, 50,100,200,144,216, 61,123,246, 56, +149,135,173, 79, 92,148,113, 98, 1,250, 84, 8,107, 89,195,132,226,176,174,248,121,242, 77, 73, 34,145,142,189, 16,203,220, 26, +239,208,109, 26,211, 65,202, 69, 8, 37,183,223,124,117,186,177,157,143, 80,168,186,120,140,120,149,159,199,188, 17,157,209, 54, + 64,130,242, 51, 71,201,157,211,199,168, 5,179,102,208, 49, 29,164, 92, 55, 47, 95,147,181, 67,173, 23,173, 90, 9, 71, 9,133, +148,248,248,241,219,243, 79,157,188,213, 61,172, 93, 7, 83, 64,171,118,196,215, 23, 94, 29,162,188,162,130,130, 68,157, 88,142, + 51,254,124,178, 92,251, 0,235, 48,103,111,241,219, 14, 55,149, 0,174,158,207,186, 71,125,207,253, 85,242,106,148, 0,185,124, + 52, 50, 50, 20,104, 10,249, 55,166, 84,212,145,211, 36, 15,192, 19, 79, 60, 17,179,103,207, 30, 25, 33, 4, 20, 69, 33, 47, 47, + 15, 71,143, 30,117, 75,150,217,108, 62,111,245, 0, 52, 71, 60,139, 68, 46,151,239, 12, 10, 10,122,218,141,239,218, 60,206,154, +164,164,164, 94, 0, 14, 28, 60,120,112, 92, 86, 86,214, 16,219,145,157,157,253,148, 76, 38, 59,148,148,148,228,212,144,199,130, + 69, 11,196,149,183, 42,130,245,156, 49,130,227,147,110,156, 72,212,157, 21, 8,187,179,132,234,204, 18,126, 39,134,199,139,100, + 89, 18,174, 37,230, 80, 70, 72, 5,126,113,108,175, 88,252,100,232,125, 85, 0, 62, 1,112, 16,192, 60,235,231, 39, 77,200,236, + 64, 0, 75, 0,236,177, 86,244, 61,214,243, 64, 55,229, 29, 1,176, 23, 64, 50,128,245, 0,222,176,202, 60,210,196, 74,225,111, +253,244,110, 6, 11, 27, 86, 11,107, 73, 99,150,214, 3,196, 67, 0,142, 1,104,109, 85,158,158,117,229,203, 89, 89, 89, 50,123, +203,127,193,130, 5,178,180,180,180,216,180,180,180, 88,123, 37, 32, 45, 45, 45, 54, 43, 43, 75,230,140, 60,123, 75,157,154,162, +192,213,189, 51,112,117,239,140, 90,164,205,254, 16, 8,119,229,217, 44, 77,119,228,165,167,167,199, 28, 63,126, 28,211,167, 79, + 71,113,113, 49,146,147,147, 99,234,123, 70, 44, 22,203,218,180,105,227, 48,255, 50,210,211, 99,218, 28,255, 3, 37,211,135, 65, + 88,172,194,231, 75, 62,142,169,109, 28, 3,233,233, 25, 49, 2, 67,132, 44,168,141,222, 33,249,207,122,105, 10,253,175,249, 51, + 56, 97,209, 25, 97,224,157, 11,228,194,109, 53,194, 67,188,241,112,143, 48,180, 85, 94,193,117,141, 30,124,150, 67, 0,225, 9, +254,239,197,233,220,107,175,188,112, 37,166,131,180, 65,210, 81, 40, 53, 65,131, 6,249,164,245, 30,242,184,201, 55,168,163,200, + 39, 32,148,149,248,120, 27,131, 90, 5, 27, 66,194,219,243, 21,114,141, 72,173, 98,160, 80, 25, 93,113, 99,199, 56, 67,156, 78, +198, 3,220, 99,249,215,167,148,187,160, 4,144,122, 62,235, 30,245, 61,231,148, 60,110,107,224, 61,135,139,242, 26,202,211, 38, +145,118, 93,165, 34, 35, 67,129,230, 34,127,138,162,184,125,251,246,201, 88,150,197,235,175,191, 14, 66, 8,142, 30, 61, 10,203, +214,187, 44,113, 67, 30,104,154,254, 29, 0,211, 12,158, 0, 57, 0,200,229,242,237, 65, 65, 65,177, 46,126,151, 15, 0, 51,103, +206, 20, 1,200,202,206,206,238,178,108,217, 50,166,174, 18, 26, 28, 28,140, 67,135, 14,197, 36, 37, 37, 57,212,202,120, 68,224, + 71, 51, 92, 91,163,209,212,197,204,178,189,204, 44, 59,192, 76, 72, 47,240,120,237, 9, 33,109, 64,120, 97, 44,135, 8,142,102, +219,169,245,166,144, 80, 63, 70, 72, 13,210,220, 55, 5, 32,220,106,241,175,132,101,156, 99,165,245, 60,220,141,223,154, 1,160, +216, 90,153, 22, 1, 8,178,126, 18,235,117, 87,247,218,253, 55,128,107, 0,214, 1, 16,192, 50,134,205, 0,248,204,122,189, 41, +251, 47,143, 4, 80, 1, 96, 84, 51,145,236, 11, 0,222,183,126,182, 52,244, 4,240, 35,128, 71,173,158,148,158,238, 10,178,145, +191, 61,233,219, 43, 1, 46, 87, 78, 43,249,219, 80, 87, 9,112, 71, 94,157,206,140,184, 42,239,240,225,195,160,105, 26, 3, 7, + 14,140,237,214,173, 27, 10, 11, 11,107,222,143,101, 89, 72,165, 82,110,241,226,197,178,227,199,143, 99,220,184,113, 14, 59, 20, + 67,238, 41, 80, 52, 3,229, 64,105,172,177, 91, 48,174,109, 56,124,151,180, 88, 14,115,164, 27,184,195,139,131,101, 55,142,251, + 35,238,249,171,142, 59, 40,138, 87, 93,113, 33,151, 45, 83, 26, 80, 85, 77,115,241,253, 34, 56,127,137, 16,183,148, 90, 84,168, +244, 72,236, 31,193, 81,132,112,191,253,180, 31,170, 35, 39,184, 51, 59,127, 46,106, 76, 92,238,239,109,231,132,132,250,117,108, + 27, 17,197,120, 73,216,142, 35, 31, 79,244,233, 48, 48,121,124,235, 46, 79,198, 5,181,141,238, 43,175,110, 29,111,162, 77,166, +235, 5, 90,167,134,222,172, 4,229, 84,157,200,204,204,148, 57,152, 25, 80,239, 61, 39, 98, 94,254, 17,179, 3,146,147, 3,145, +156,124, 87,185,181, 17,119,115,144,118, 61, 10,140,219,150, 63,199,113, 48,153,238, 14,217, 15, 31, 62,220,214, 94,220,149,109, + 18, 8, 4, 38,150,101,143, 91, 61, 1, 77, 81, 2,106,134, 62,229,114,185, 44, 40, 40, 40,217,133,239, 22, 38, 38, 38,250, 29, + 62,124,120, 69,118,118,118,235,175,191,254,154, 93,188,120, 49,127,243,230,205,232,210,165, 11, 0, 32, 50, 50, 18, 42,149, 10, + 75,151, 46, 53, 31, 58,116, 40, 62, 41, 41,233,213, 70, 37,178,140,191,217,204, 68,154, 25,115, 79,147,217,212,159, 71,145, 40, + 33,159, 18,137, 5, 60, 53,223, 75,120,219,219,151,119,135, 39,230,140, 98, 30, 47,136,207,208,109,110,156,249,221,119, 70,200, + 39,110,199,189, 57, 82, 0, 30,179, 90,135,246, 56,102,189,238, 10,166, 1,120, 29,150,177,146,247, 1,252, 1,203,252,201, 63, +172,231, 82,235,253,105, 78,202,243, 2, 48, 11, 64,146,245,220,104,119,192,122,125, 22,238,221,202,215, 89, 76, 1,240,149,245, +179,169,120, 30,192, 28,107,158,205,177,158,183, 20,116,178,186,176,126, 6, 48, 23,192,108, 0, 49,240,160, 65,148,150,150,202, + 6, 15, 30,140,217,179,103,231, 12, 30, 60, 24, 39, 78,156,192,250,245,235, 99, 90,183,110, 45,163, 40, 10,133,133,133,164,178, +178,146,188,246,218,107,177, 71,142, 28,145,189,244,210, 75,141,146,205,208, 27,183,100,101,131,187, 35,121,246,236,156, 63,195, +204,177, 61, 85, 65,178,140,245, 25, 49, 22,237, 4, 88, 87,248, 60,217, 82, 25, 79, 70,190, 86, 26,123, 52, 83, 42,139,125,120, +101,131,229, 83, 66, 51,171, 62,255,124,115,208,246,243,165, 55, 55,159, 41, 86,110, 56,126, 93,123,163,204,192, 81, 28, 5,131, +206,140,138, 10, 26,121,197, 10,243,174,194, 82,205,158, 91,101,202, 29, 69, 37,151,143,149,149,143,185,105, 52,125,212,144, 76, +191,192,240,118,250,106, 69,219, 30,209,143, 80, 52,137, 28, 89,122,249, 71,125, 96,144,183,164, 67,247,126, 21, 28, 83,113,158, +240,252, 66, 88,150,229,221,185,163,119,198,139, 87,215, 53, 93,159, 27,188, 86,148,187, 19,227,207,164,174,165,111, 59,238, 7, +161,181, 20, 52, 22,148,103,231,206,111, 18,154, 67, 78,117,117,181, 12, 0,248,124, 62,222,122,235, 45,228,229,229,193,205,113, +127,123, 24, 1, 24,141, 70,163,177,180,180, 52, 11, 77, 11, 8,212,212,114, 7,200,229, 25, 65, 65, 65, 19,156,245, 20, 27, 12, +134,254, 11, 23, 46,124,242,149, 87, 94,225,122,247,238, 77, 0, 96,201,146, 37,200,207,183,236, 70, 57,100,200, 16,176, 44,139, +225,195,135, 83,211,166, 77,227, 46, 95,190,188,238,249,231,159,127,222,203,171,126,106, 98, 89,206,144,115,240,224,182,194,194, +235,207,155, 77,230, 48,158, 64, 98,224, 17,177,138, 18, 9, 85,148,216,171,156, 22,120, 85,130, 18,221,102,197,102,131, 70, 85, +213, 74,182,251,236,123,230, 83,191,187, 29,247,230, 72, 1, 24, 3,224, 80,157,107,135,172,215,157, 5, 15,192,187, 0, 18, 1, + 84, 53,240, 76,149,245,254,187,112,110, 92,103, 26,128, 3, 0, 84, 13,220, 87, 89,239, 79,115, 35, 79, 30,129, 37,134,224, 67, +235,231, 35, 77,168, 92,241, 86,175,201, 16,107,122,134, 88,207,227, 93,148, 19, 8, 32,192,137,195,213,161,148,161, 0,157, 16, + 39,240, 0, 0, 32, 0, 73, 68, 65, 84, 78,226,110, 4,112,145,213,211,227, 86,156, 71, 93,139,191,174, 71,192, 85,176, 63, 4, +162,243,184,111,106,206, 59,143,251,166,222, 64, 62, 87,228,213, 33, 19,206, 21,121,107,215,174,229,242,242,242,112,250,244,105, +180,107,215,142,251,229,151, 95,160, 86,171,113,233,210,165,123, 44,218,119,223,125, 55,167, 71,143, 30,177, 91,183,110,109, 80, +222, 23,107,215,114,237,243, 46, 32,244,116, 62,100,237,198,113,189,175, 48, 50, 74,109,130,249, 82,245, 61,207,190,249,238,139, + 57, 17,209,167, 99,139,254,152,210,160,245,124,173,164,228,237, 18,154, 89, 85, 81,169,151,210,122,115, 96,254, 45,181,207,158, +203,165, 85,198,200,190,232, 17, 26, 4, 0,216,115,246, 14,191,160,172,218, 15, 64, 96, 25,109,232,113,211,104, 74, 40, 40, 45, +125,187, 33,153,163,198, 39, 82,221, 70,126,208,155,209,254, 81, 28,209,125,180, 68, 32, 48,211,215,254,200, 82,150, 22, 95,186, + 83, 94,252, 91,177, 90, 94, 10, 80, 20,145,107,104,255, 89,137,253, 29,213, 27, 82,135, 84,234,115,171,215, 10, 4,180, 62,255, + 87, 69,227,255,237, 96,111,245,215,245, 8,184,235, 85, 8, 10,202,110,178, 28, 0, 24, 57,114, 36,119,248,240, 97,176, 63, 4, +128,227, 56,124,252,241,199, 56,114,228,136, 77, 81,115,187, 12, 20, 10,133,145, 16, 50,226,212,169, 83,134,240,240,240,184, 38, +122,117, 2, 0,203,108, 0,235,231, 12, 0,108, 80, 80,144, 51,134,154,106,247,238,221,165,251,247,239,255,106,243,230,205,228, +232,209,163,100,244,232,209,156,141,252, 1,203,118,247, 34,145, 8, 69, 69, 69,216,183,111, 31, 9, 12, 12,100,134, 13, 27,246, + 43,203,214,111,180,119,142,234,114,123,200,144, 33,179, 46, 94,252, 51, 66,173,213,132,113,140,201, 4, 10, 70,198, 72, 85, 27, +141, 70,165, 26,101,183, 88,163,225, 78,105,113,153,241,231, 61,123,215,180, 10, 14, 41,162,105, 93,181,187,121,201,175,167, 97, +216, 10,166,181,245, 56, 92, 71, 81, 56, 12, 96, 1,128,182, 0,202, 28,100, 62,129, 37,118,224, 56,128, 27, 14, 20,142, 27,214, +231,230,161,225, 56, 3, 91,250, 38, 3, 72,113, 32,239,107, 88,134, 24,190,114,144, 62,251,138, 40,133, 37,206, 97, 32, 0, 53, +128,247, 0,156, 6,208, 17, 64,161, 19, 46, 68,123,121,207, 0,120,209, 74,178,122,107, 90,245,214,243,116, 88,226, 1,190,119, + 66,222, 12, 0,175, 56, 89,193, 9, 44,177, 16,223, 56, 72,223, 42, 0,190,176,196, 58,236,182,166, 77,108,213,164,255, 0, 48, +216,234, 17,248, 21,119,227, 53,234, 69, 92, 92, 92,172, 61,209,219, 43, 1,117, 99, 3,226,226,226, 98,179,178,178, 26,125,129, +184,184,184, 88,106,202,221,113,123,246,135, 64, 80, 86, 37,160,238, 88,190,219,242,166, 40, 56,119,228,157, 61,123, 22, 17, 17, + 17,184,124,249,114, 77,157, 25, 54,108, 24,151,155,155,139,241,227,199,223,235,166,242,242,146,137,197, 98,168,213,234,122,229, + 73,207,158,133, 50,162, 13,250, 93, 62, 81, 35,239, 77,191,199, 98,162,114, 85, 50,106,188,248, 30,197,169, 56,159,134, 72,108, +178,212,204,134,149,128,133,104,215,238, 55, 0, 67, 56,112, 60,220,168,120, 67,199, 48, 96, 12, 22,231,216,197,138, 10,220, 48, +208,155,248,132,104, 64,136,169,160,180,116, 91, 99,249,215, 86,218,109, 33,128,212,252,163,243, 11,197, 97,147, 21,165,101,226, +118,101, 37,167,196, 16, 4,117, 42, 44, 50,135, 87,149,221,132, 80, 40, 8,237, 25,230, 61, 77,169, 49,125, 11,224,166, 35,203, +213, 58,247,223,225, 48, 64, 66, 66, 66,108,102,102,102,142,203,236, 94,103, 8,224, 31, 16,168,219,100,175,128,139,223,231,154, + 42,111,212,168,145,156, 76,150, 3,178,205, 18,143,125, 96,177, 47,198, 44,215, 96,228,200,145,112,113,218,223, 61,176,141,213, + 63,252,240,195,186,102, 80,232, 20, 65, 65, 65,211,237,140, 83,163, 92, 46,223,227,228,119, 25, 0,229,187,118,237,146, 61,245, +212, 83,209, 43, 86,172,232, 99, 54,155,137, 68, 34, 65, 92, 92, 28,126,249,229, 23,176, 44,139,113,227,198,113,243,231,207, 39, +253,250,245, 51, 78,158, 60, 57, 50, 33, 33,225, 78,191,126,253,234, 87,192,230, 36, 51, 49,143,140,217,212,171,119, 31,255, 83, + 39, 79,174,252,157,207,239,213, 33,178,195,151,126,193, 33, 37,130, 16, 49,119,120,223,161, 64,185,162,106, 68,120, 80,200,251, + 93,186,116, 57,236, 19,230,189,254,147,101,159,211, 13,201,115, 85, 1,224, 1,136, 6, 48, 12,192, 50, 0,175, 89, 43,131,119, + 29,242,251, 6,150,113,246,127,193, 50, 36,144,215,136,135,225, 33,171,245,235,140, 59,254,184,213,187, 64, 53, 34, 47, 4, 64, +164,149,152, 27,147,121,218,250, 92, 40, 44,227,249, 13,201, 19, 90, 45,231, 36, 88,166, 17, 62, 3, 32,223, 42, 59,223,122,190, + 25,150,113,242, 77,176, 12, 93,208, 14,228, 77, 1,240, 5,128,110, 86, 37,201, 62,157,183, 97, 9, 90,188,108,125,246, 7, 7, +242, 94,135,101,118,131,206,137,252,243, 2,176, 31,192,119, 14,202,227,105, 0,255,177,126,254,110,151, 62,129,181, 44, 51, 1, +172, 1,176,220,122,255,118, 67, 63,152,149,149,149, 3, 0,197,197,197, 50, 91,180,127, 93,171,191,184,184, 88,102,255,108, 99, +176, 61,179,233, 87,186, 38, 58,191,174,149,190,233, 87, 26, 15, 66, 94,110,110, 46, 70,140, 24,129,203,151, 47,223, 37,113,169, + 52,118,235,214,173,178, 14, 29, 58,196,178, 44, 43,139,140,140,228, 88,150,133, 94,175,199,207, 63,255,140,232,232,232,216,125, +251,246,213, 43,175,107,110, 46,190, 15, 14,173,149, 87,221,231,142,129,118,229, 77,224,209, 80,112, 44, 48, 39,242, 43,174,154, +245,129, 92,239, 7,121,126, 16,250,142,216, 29,123,105, 71,227,110,246,107, 37, 37,219, 1,108,239, 24,209,182, 43,128, 55,140, +102, 22,219,206, 23, 98, 68,152,101,184,147,112,156, 70,195, 48,203,202,203,203,239, 56, 65,166, 43, 57,142,243,206,191, 44,127, + 86,121,122,107,171,242,219,114,148,223,209,128,207,175,242,174, 86,112, 80,170,205, 92,104,136, 48,128,207, 98,146,222,104,254, +126,217,235, 15, 7,252,235,147,227, 74, 7, 68,147,227, 68,167, 77, 92,137,100,191, 7,163,173,158,151,236, 68, 87,191,105,243, +134, 57,138,202,183,127,142, 56, 43,143, 36, 42,208, 68,121,247, 88,236,153,153,153, 24, 56,112, 96, 75,210, 69,184,156, 57, 23, + 0, 27,249,159,103,176, 65,102,105, 99, 77, 37,127, 91,221,224,241,120, 33,124, 62,191,252,248,241,227, 95, 62,252,240,195,238, +174,243, 0, 0, 17,114,185,124,157, 85,177,152, 34,151,203,127,176,125, 58,227, 84, 4, 80, 13,160,114,197,138, 21,125,231,205, +155, 87,122,246,252,249, 54,122,189,158,200,100,135, 32, 18,139, 64, 17, 10,135, 14, 29, 34, 61,122,244,208, 37, 36, 36, 12,158, + 60,121,178,195, 54,151,115,232, 0, 51,225,169, 9,107,250,246,237,223,129,102,140,143, 95,203,191,250, 34, 91, 88,240, 2, 0, +136, 65,113,189, 59,117, 61, 21, 26, 26,146,195,227, 11,223,254,207,226,148,234, 79,150,125,236,118, 70,214,167, 0,188, 97,213, +134,198, 3,184, 4,192,167,158,239,237,181, 90,236,241,176,204, 35, 79,106,196,253,223, 25,150,232,114,103, 20,128, 42,235,243, +188, 70,228,197, 0,184,234,164,188,171,214,231,119, 52, 34,111, 22,128,153, 0, 46, 0,152,111,125, 47,123,217, 50,171,245, 63, +199,106, 13,111,180, 90,217, 13,201,155, 97,205,143,126, 86, 47, 66,125,233, 84, 91,239,219, 60, 1, 27, 27,145,247,181,181, 83, +240,114,178,243,250,218, 65,254,125,100,245,108, 28,176, 42, 53,168, 35,251, 23, 0, 61,172,101,145,111, 85,164, 28,186,118, 87, +175, 94,205, 1,144, 53,211, 66, 64,100,230, 26, 45, 55,115,141,182,158,133,123,220, 10,114,106, 22,121,127,254,249, 39,249,243, +207, 63,107, 93,251,238,187,239,114, 0,144, 31,126,248, 1, 0, 72, 81, 81,237,152,186,134,200, 31, 0,218,255,249, 39, 1,106, +203,123,249,131, 5, 22,114,252,208,154,166,186, 33,122, 59, 92,232,133,205, 92, 33,248, 0,175, 26, 53,228,111,101,245, 59, 98, +177,216,169, 69, 68, 56,142, 35,132,144, 37, 11, 19,123,122,133,181,139,156,192,194,171,115, 73,113, 25,207,100, 80,114,173, 67, +125,136,143,183,128, 48, 38, 22, 10, 37,205, 16, 9,145,168, 52, 76,167, 70, 12,130,134,234,108,221,255, 31,164,139,222,126, 56, +162, 33, 98,225,224,222, 44,128,230,144, 87,175,197,222,161, 67, 7,156, 62,125,186, 69,144, 63,251, 67, 32, 14,156,103, 0, 0, + 27,101, 52,190, 63, 78,219,188, 48,164,185,202,199,108, 54, 87, 1,192,128, 1, 3,154,180, 32,144,141,252,173,168,180,126, 58, +187,192,142,208,106,152,157, 1,128, 79, 63,253, 52,252,249,153,207, 47,122,104, 96,244, 12,141, 90,237,207,152, 25, 83, 88, 88, +216,157,240,240,240,171,106,181,122,249,228,201,147,243,157, 77,215, 79, 63,254,196, 0,120,237,217,233, 47, 14, 31, 54,124,248, +120,137, 68,210,138,128, 51, 91,102, 78,112, 85,122,173, 98,221,149,243,197,183,189, 69,194, 38, 45,124, 87, 87, 1, 48,195, 18, +164,230,204, 56,252, 41,235, 97, 70,195,203,139,154, 97,137,168,119,118,190,166, 12, 64,182, 3,121,187, 96, 9, 90,115, 6,207, + 58,145,190,207, 1,124,233,168,239, 7,240,170,221,119, 26,147,247,141,213, 99,224, 8,133, 86,203,222,153,244,185, 50,223,245, +115, 7,242, 30,117, 66,158,205,219,176,209,154, 55,206, 44, 31, 75,226,226,226, 98,234, 70,253, 91,221,234, 57,238, 52,244,184, +184,184, 24,187,149,250, 90,154,188, 22,143,235,165,183,141, 84,187,118, 27, 95, 89,153, 62,211,118,141, 22, 80,223, 25,116,236, +254,178,226, 98,141, 83,153, 70, 8,247,159, 89, 67,200,123,159,255,182,240,231, 53,161, 59, 79,156,188, 61, 59,196,159,125,146, + 10,242, 11,224, 56,128, 16,206,104,100,216, 50, 22,168,164,141,108, 64,233,109,189, 75,171,147, 89,221,252,178, 58,231, 45, 37, + 11, 91,220, 74,128,127, 23, 60,182, 92,115,191,223,145, 5,208, 70, 44, 22,223, 30, 48, 96,192,163,103,206,156,105,178, 64,185, + 92,126, 48, 40, 40,104,166, 92, 46,223,232,130, 2,192, 88, 61,167, 0,128, 13, 27, 55,164,192, 50, 60,221, 44,248,246,187, 47, +127,133,101, 40,246,190,160, 62, 5,192,224,142,214,215, 72, 33, 25, 61,242,254,177,242,106,193, 74,164,164,206, 53,183, 43,103, + 75,151,247,119,128, 92,167,123, 1,240, 50, 1, 8, 97,193,149, 26, 12,244,230,178,178,138,115,214,142,203, 41,188,247,249,111, +220,143, 31,141, 37,227, 95,219,159, 11, 32, 55, 97,112,215, 55,130,130, 68,139,248, 60,194,221,174, 50, 92,185, 77, 51,155, 36, + 2, 74, 44,225,243,120, 38,134, 21,187,146,190,204,204,204, 28,219,242,182,214, 79,183,148,177,123,166,254,217,185,254,157,152, + 22,216, 88,189, 39, 46, 92,255,171,229,221, 55,197,167, 41, 74, 24, 53, 69, 1, 66, 8,158,156, 56,171,222, 62,100,215,143, 25, +205,245,174,101, 0, 72,115,144,191,157, 18,176,209,133,199, 3,173,237, 72,251,119,237, 31,248,245, 84,196,230,140,152,241,200, +251,103,203,243,160,165, 43, 0,114, 57, 39,151,203,103, 53, 85,206, 83,111,238,231, 0,224,217,145, 61,200,183, 71, 46,126,172, +231,230,172,121,109,234,241, 30,180,150, 68, 5, 9,248,173, 64,136,206, 71,194,175,232,213,205, 47,127,219, 1,215,100, 91, 93, +217, 77, 89,111,254,126,145,231,223,197, 3, 64, 90,146,215, 36, 35, 35,157, 75, 78,158, 77,118,253,152,241, 79,111, 94,225, 86, +131,217, 23,150, 61, 1,254,118, 32,238,238, 35,236,129, 7, 30,252, 13, 53,126, 30,224, 37, 34, 96, 89, 14, 32, 4,213,122, 79, +243,247,192,131,255,217,254,192,147, 5, 30,120,240,191, 3,198, 12,168,117, 78, 47, 59,239,129, 7, 30,252,131, 65,121,178,192, + 3, 15, 60,240,192, 3, 15, 60, 10,128, 7, 30,120,224,129, 7, 30,120,224, 81, 0, 60,240,192, 3, 15, 60,240,192,131,127, 34, +106,197, 0,156, 61,123,214,237,104,212,250,130, 9,235,147, 55,254,145,232,152, 94,125, 58,201,218,180, 11,143,213,232,181,178, +195,178,220,216,172, 67,231,114,220,149,215,123,240,152,152,126,125, 6,203,238,148,150,194, 91,226,141,155, 37, 5,177,121, 39, +246,186, 45,175,185,223,119,238, 52, 42,102,200,224, 14, 50,137, 55, 15,124, 30, 5, 34, 38,120,114,234, 69,226,174,188,228,255, +151, 27,243,208,224,135,100,254, 62, 60,128, 15, 36, 12,174,127,142,211,131,122, 95,143,188, 22, 43,175,209,169,102, 45,253,125, + 59, 12,120,154,243, 99, 11,238,107,250,126,127,183,200,237,142,180,255, 7,145,247, 92,251,184, 85,169,219,242,222,168,188,119, +195, 85, 79,125,254, 75,228,241, 81,207, 20, 89, 87,228,197,198,198, 70, 25, 12, 6, 69,110,110,174,242, 65,190,175,203, 10, 64, + 67, 88, 29,131,206, 0, 58,192,178, 78, 64,193,252, 28,220,112,246, 7,198, 12,239, 16, 67,192, 34, 36, 32, 8,185,135,207,200, +222,153, 59, 3,195, 70, 15, 3,163,213,201,122,116, 27, 9,150,133,108,222,139, 15,199,246,239,223, 7,215,174, 21, 65,165,212, + 98,237,198, 35, 57, 13,201, 27, 56,226,153, 24, 14, 4,145,157, 58,200,146,223, 92,142, 23,158,121, 12,223,252,247, 51, 0, 98, +236, 61, 87, 2,138,130,108,245,146,197,200,207,191, 2,169, 52, 18, 34, 9, 31,183, 74,242, 99,161,171, 63,201,139, 30,235,203, + 9,133, 66, 72, 36, 18, 20, 20, 20,160,109,168, 31, 90,241,125,208, 54, 34, 0,129, 18,127,120, 19, 51, 40,138, 2,199,154,161, + 19,241,161,186,163,194,164,255,102, 57, 44,168,212,133,125, 56, 95,137, 10,126, 1, 66,248,120,243, 33,148, 80,224,243, 0, 74, +200, 71,206,207,209,156,137,227, 33,110,194, 9,167, 11,188,247, 83,171, 99,194,195,195,209,174, 99, 59,153,222, 96, 4, 37,146, + 0, 38, 96, 78,218,169, 24,189, 78,139,175,254, 21,147,243, 0, 21,201,150, 54,143,249,127, 25,174,150,133,211,207, 39,188,179, +200, 27,192, 67,173, 37, 94,255, 41, 45, 45,237, 38, 16,139,192,122,121,125, 8, 96,125,230,135, 41,213, 45, 37, 3,162,122,140, +138,185,113,241,112,125,123, 13,252, 35,234,104, 70, 70, 6,249,102,211,166,203, 34,161, 80,194,178,172,191,183,143,143,207,132, + 39,159,244, 2, 64, 39, 39, 39,115, 45, 52,205, 20, 0, 36, 39, 39,179,205, 32,206,207,223,223,127, 65,215,174, 93, 39,139, 68, +162,118, 37, 37, 37, 37,165,165,165, 39,105,154,254, 0, 64,129, 27,242, 2, 2, 3, 3,151, 63,242,200, 35,143,135,133,133, 73, + 79,157, 58,117,231,194,133, 11,199, 13, 6,195, 82, 88, 86,136,117, 26,163, 70,141, 74,141,136,136,120,219,219,219, 27,190,190, +190,167, 15, 28, 56, 16,253,183,241, 0, 52, 64,254, 60,111, 17,255,161, 25,195, 59,174, 98, 57,206,112,244,202,157, 79, 87,199, +168, 14,204,207,193, 69, 71,223,149,223, 62,200, 25,171,229, 48, 85, 43,193, 55, 83,248,227,226, 21, 60,247,220,252,154,251, 20, + 5,252,150,187, 17,173, 34,194,101,108,181, 26, 52, 75,112,232, 80,110,236,218,141, 71, 26,144, 24,201,157, 62,113, 17,196,203, + 15,103, 46, 22,227,220,197,231,241,213,247,191,212,220,101, 89, 96,236,208,161, 64,117, 25, 0, 95, 20, 92,184, 4, 65,171, 0, + 12, 27,210, 75,166,212, 53,162,179, 16, 10, 32, 20,250,245, 25,128,214,222, 66,180,109, 37,134, 95,112, 16, 2, 69,190, 8, 20, +243, 32,224,241, 96, 50,155,161,100, 88,156,170,116,188,220,230,210, 87,219,115, 18,158, 2,126, 94, 94, 8,105, 21, 12, 63, 63, + 47,112,148, 25, 12, 91, 13, 51,204,240,241,241, 66,171,214,237, 80,112,185, 11,215,177,219, 55,141,118, 74,253,227,215,112,254, +190,222,240, 15, 8, 68, 72,171, 96,104,181, 90, 8, 69, 98, 8, 12,150,197,249,162,164,145, 50,185, 66,137, 71, 94,220, 24, 91, + 92,114, 11,138,178, 34, 84,157,203,112,164, 12, 56,221, 73,140,158, 57, 58, 54,123, 99,118,142, 19,178,238,171, 18, 80, 88, 88, +200, 1,128, 84, 42, 37, 45, 69, 94,120,120,248,115, 52, 77,111, 4,128,201,177,177, 84,198,214,173,238,116,190,150, 53, 82,237, + 28, 57, 28,199,129, 16, 82,243,105,187,102,123,206,193, 78,106,174,172, 39,239, 10,249,247,240, 54, 49,219,125, 3,252,187, 1, +128, 80, 34, 6,173, 55,128,213,234, 82,143, 31, 57,188, 36,225,157, 69,221, 51, 63, 76, 41,118, 36,231,211,119,231,114, 86, 11, +139,129,101, 8,146,181,246, 67,245,246, 69,125, 71, 61,142, 81,143, 61,225, 82, 25,221,184,120, 88,214,169, 87, 76,236,181, 63, +114, 92, 87,138, 19,228, 46, 61,158,152,152,136,173, 9,217,141, 62, 19,155, 93,123, 43,146, 30, 1,150, 87, 45, 55,176,208, 51, +150,114,213, 90, 63, 51, 6, 7,160,139,175,160, 81,121,171, 86,173,202,121,247,245,183, 66, 39, 78,158,228, 99, 48,232,177,250, +227,143,168,181,107,215, 26,230,206,157, 27, 14,224, 86,115,183,189, 73,147, 38,141,222,185,115,103,150,171, 74,212,204,153, 51, +185,194,194, 66, 84, 85, 85, 97,197,138, 21,240,245,245, 69, 76, 76, 12,164, 82, 41, 54,110,220,232,110,187, 27, 57, 96,192,128, + 77,111,190,249,230,181,174, 93,187,110,236,223,191,255,165, 59,119,238,180,203,205,205, 29,240,194, 11, 47,236, 81,171,213,169, +176,108, 0,231, 44, 98, 39, 79,158,156,153,146,146, 18,108, 50,153, 32,145, 72,224,237,237,221, 70,171,213, 62, 61,113,226,196, + 9,231,207,159,159, 11,224,191,206, 10,139,136,136,104,187,104,209, 34,228,229,229,113, 26,141, 38,160,206,109, 30,156, 91, 85, +181, 89,112,246,236,217,186, 94, 2,231, 20,128,213, 49,104, 15,203, 14,120, 60, 0,102,173,145,185,153,123,181,252,147,161,157, + 67,231, 63,210,163,205,146,214,254,146,182,171, 81,182, 5,192,149,249, 57, 13,111, 82, 99,172,150,163,117,167, 71,177,252,237, +201,216,104,199, 73,135,143,167, 67,171, 51, 98,220,232,249,120,120,216, 76, 60,147,248, 8, 36, 18, 17,104, 51, 3,141,142,150, + 53, 92,201,138, 0, 26,152, 60,125, 61, 94,126,115,118,205,213,177, 15,199, 64, 44, 22,225,199, 67,191, 96,239,177, 92,108,218, +240, 25, 12,122, 35,132, 60, 62,124,188,132,208, 86,149,196, 42, 75, 80,239,238, 99, 28,199, 1, 28,107, 57, 40, 22, 28,199,193, + 72,139, 44,221,147, 8,224,104, 51,204, 60,192, 12, 51,204, 52, 11,198,220,184, 2,187,240, 69, 41, 23,232,199,192,207,215, 27, +225,237,162,208,173,119, 39,248,250, 72,160,170,174, 64, 89, 69, 25, 20,170, 59, 48, 25, 8,188,188,188, 16, 18, 50, 12,149,229, + 33, 92,171,208,143,234,119,227,143, 92,204, 49,122, 29,244,124, 64, 40, 22, 66,175, 19,130,214, 9, 97, 16,139,192, 39, 12, 56, +240, 96,208, 87, 67,175,211,160, 93,187,182, 50, 33,143, 15, 57,212, 8,165,167,163,238, 26,243,117,177,114,211, 74,135, 21,232, +237,164,183, 27,239, 43, 19, 18,106,237,239,158,144,144, 48, 48, 40, 40, 40,159, 16, 98,224, 56,142, 31, 24, 24,232, 85, 80, 80, + 16,108, 93,221,173,173,187, 21,121,238,220,185, 83,237,126, 35,198,221,213,226,234,101, 75, 66,184, 57,115,230,196,174, 93,187, +214, 37,153,225,225,225,201,131, 6, 13,250, 96,120,191,126, 48,137, 68, 72, 75, 75, 99,103, 79,153, 18,151,254,195, 15,217, 46, +254, 62, 86, 45, 89, 82,115,190,224,253,247,145,182,116,105,163,231,206,136,173, 67,238,156,117,179, 24,110,244,232, 14, 61, 1, + 92, 79, 73,201,212,187, 72,254,185,189,123,246,244,179,181, 25,111,177, 4,183, 43,202,161, 86, 40, 49, 96,208, 96,175,159,191, +218,144,157,240,206,162,158,153, 31,166, 56, 90,155,157,153,247,193, 90,254,179, 79, 79,224,119,150, 74, 89,171, 18,128,247,211, +214,212, 86,162, 23,188, 6, 0,120,247,245,185,110,109, 39,237, 22,249,219,144, 25,228,194,195,163, 93, 18,237,205, 39, 56,183, +244, 69, 16,191, 86, 48, 95, 63, 7,227,245, 63,145, 47,215, 34,122, 95,185, 83,223,239, 63, 96,192,209, 89,211,146, 34,147, 94, +122, 33, 32,243,187,239, 89,169, 84, 74, 45, 79, 73,133,239,146,229,248,241,199, 31, 75, 51, 50, 50,168,230,242, 2, 76,154, 52, + 41,110,231,206,157, 7,118,238,220,105, 59, 31, 99,251,223,129,130, 18,115,224,192, 1, 89, 81, 81, 17, 58,118,236,136, 17, 35, + 70,192,223,223, 31, 74,165, 18,183,110,221,194,141, 27, 55, 48,102,204, 24,110,204,152, 49,177,111,189,245,150, 43,229, 52,233, +145, 71, 30, 89,189,106,213,170, 45,253,251,247, 95, 77, 8,185,101,215,143,147,248,248,120, 31, 0,185,214,195, 41,121,115,231, +206,221, 54,103,206, 28,234,244,233,211, 32,132, 32, 56, 56,184,230,216,183,111,159,112,200,144, 33,159,221,188,121,243,132, 35, + 65,147, 39, 79, 38, 59,118,236,224,138,138,138, 34,242,243,243,113,253,250,117,162, 82,169, 58, 2,224, 79,156, 56,209,188,107, +215, 46,238, 65,146,191,237, 90, 93, 37,128, 95, 15,249, 7, 71, 71, 5, 39,245,139, 12,154, 78, 8, 17,112, 28,103, 98, 45, 7, +109, 54, 25,244, 66,138,109,219,187,181,248,237, 86,126, 29, 59,237, 60,117,227,251,213, 49,236,209,249, 57, 13,239, 22, 7, 8, +209,163,123, 87, 80, 84, 14,242,149, 85, 0, 46, 65, 85,122, 21, 2,177, 8,187,246,124, 10, 93,165, 25,211,159,127, 3, 44, 11, + 60, 57, 97, 40,204,124, 31,135, 47,151,159,127, 9, 44, 11,140,235, 75,172,188, 18, 9,131,145, 70,252,216, 49, 16, 7, 80,216, +180,121, 63, 40, 10,216,246,253, 70,148, 94,255, 51,118,223,150, 85, 57, 13,109,151,200,114, 0,203,178, 96, 89, 22,102,179, 25, + 70, 1, 7, 19, 49,129,166,105,232,188, 12, 0, 43, 6,197,153, 97, 22,114,168,166, 13,208,170, 85,141,166, 45,196,199, 8, 62, + 95,130,224,224, 96,116,234,212, 9, 97,173, 7, 3, 60, 10,102,243,105, 80,156, 18, 6, 45, 3, 51,171, 69,217, 45, 57, 66,130, + 43, 17, 28, 48, 12, 31,174,250, 57,230,251,111,239,149, 37, 49, 48,224,140,149,128, 65, 4,154, 50, 65, 43,228,163, 90, 34, 0, + 95, 32, 4, 88,111, 16, 30, 65,181, 86, 7, 69, 89, 17, 10, 78, 31,131,188,184, 24, 44,203,130,226,120,110, 85,154,175,214,223, + 85,156, 95,120,229, 5,199,253,100,237,213,199, 12,153,153,153,139,222,124,243,205,217,197,197,197, 20, 33, 36, 36, 35, 35,227, +123, 88, 54,119,242,114,183, 34,207, 74, 72, 16,172, 91,183,110,243,157, 59,119,176,109,219, 54, 68,119,237,202,107,142, 6, 34, +149, 74, 73, 98, 98, 98, 12,199,113,178,181,107,215,186,188, 97, 17, 77,211,233,195,173,117, 74, 40, 20,162, 75,151, 46,216,126, +232, 80, 86, 72, 72, 8, 42, 42, 42,156,150,115, 31,183,170, 37, 3, 7, 14,228,108, 27,196,216,125,254, 57,106,212,168,210, 69, +139, 18,252, 83, 82, 28,175, 30,151,240,206, 34,111,111, 19,179,189,119,207,158,126, 60,138,194,171,207, 78,135,222, 96, 68,218, +151, 95,194, 75, 34,129,193, 96,128, 65,175, 71,223,254,253, 58,255,242,221,119,115,208,240, 86,222, 53,125,206,210, 5,175,177, + 0,168,171,133,133, 84, 93,194,175,219, 60,221,121,241,246,221, 70,198,222,188,124,132,139,123,242,197,216,172,221, 95,186,165, + 8,216,239,218,199,109, 13,116,120,221, 17,122, 4,240, 81, 84,109,198,225,184, 16, 8,230,103, 64, 61, 61, 10,252,192, 80,151, +200, 63, 49, 49,177,204,164,213,221,122,233,213,217,237,223,121, 99, 33,214,110, 72,191, 56,104,192,128, 14,233,107,210,189, 94, + 95,248, 22,190, 27, 58, 24,155, 55,111,158, 1,203,174,165, 77, 33,254,152,157, 59,119,202,108,100,159,145,145, 81, 0,203, 54, +237, 7,157, 81, 0, 14, 28, 56, 32, 11, 9, 9, 65,255,254,253, 25,138,162,248, 22,239, 44, 11,129, 64,128,160,160, 32,180,110, +221, 26, 55,110,220,192,129, 3, 7,100, 46,180,185,132,241,227,199,127,180,106,213,170, 53, 93,187,118, 93, 79, 8, 97, 1,124, + 6,224, 49, 0, 71, 8, 33, 75, 97,217, 95,229, 45, 0, 75,157,145,183,106,238,220, 31,134, 39, 36,144,221,187,119,131,207,231, + 67, 38,147,225,220,185,115,232,212,169, 19,150, 45, 91,134, 94,189,122, 97,246,236,217,252,247,222,123,111,149, 35, 97, 59,118, +236,224, 0,192,203,203,235,118, 64, 64, 0,196, 98, 49,132, 66, 97, 53, 0,198,129,199,238,190,145,255,172, 69, 31,214, 92,251, + 60,229,157,122,149,128,250,102, 1, 80,124, 30,197,103, 88, 78,163, 55, 49,183, 8, 33, 34, 31, 17,175,143,159, 16,209,146,158, +163, 58, 34,246,101,160,219, 8,180,241,230, 38,205, 24, 22,245, 78,144,159, 87,220,234, 24,248, 55,156, 28, 22, 60,158,173,207, +246, 3,208, 14,254,225,227,161, 55, 27,176, 62, 99, 3,190,217,188, 13, 99, 98,135, 1, 0,116, 58,128,199,111, 88,148,196,171, + 43, 0,192,108,182, 87,164,202, 0,228,130,226,137,144,244,220,139,136, 79, 76,196,207,123, 44, 68,230,229, 13,104,171,111, 55, +154, 89, 38,240,106,200,223,196,152, 97, 84,155,160, 83,234,160, 52,209,144,235,104, 40,140, 26, 40, 53,213, 80,148,107, 32, 87, + 26, 32,175,110,120, 9,245, 87,159,233,192, 17, 66,192,227, 17, 16, 74, 4,179,153, 3,163, 43,134, 86,121, 21,165,101, 42,200, + 21,213, 80,105,204,144, 43, 12, 40, 41, 41,195,197,203,103,161, 84,157,197,224, 1, 3, 27,220, 27,157, 7,128,210, 24,160,191, +118, 11, 85,127, 92, 66, 85,113, 17,212, 42, 57,212, 42, 57,138, 46,158,198,241,204,175,144,187,117, 19, 42,174, 93,131,153,102, + 45,173,137,247,151, 13, 3, 18,235, 65,199,199,199,119, 95,190,124,249,155,109,218,180,209,110,219,182,173, 79,102,102,230, 79, + 0,250, 91, 11,221,237, 5,167,132, 97, 97, 11, 0, 96, 72,175, 94,152, 51,103, 78,249,169,203,151,179, 31,234,214, 45,166, 57, + 18,191,117,235,214, 28, 0,100,238, 92,139,149, 57,119,238, 92,151,228,154, 68, 34, 0,192,246,237,219, 17, 26, 26,138,119,230, +206,197,130, 5, 11, 16, 18, 18,210, 34,198, 97,109,164,159,145,145, 81,115, 0,192,225,195,135,195, 1, 76,112, 82,204, 67, 1, +129,129,221,120, 20,133,231,227,227,161, 84,169, 81,114,251, 22, 4, 2, 62,248,124,203, 33, 16, 8, 32,146,120,161,163, 84,250, +113,255,209,163,157,178,216,175, 22, 22,226,219,237, 63,213, 28, 54,188,159,182, 6,239,167,173,193, 94,217, 97,151,223,119,116, +194,123, 49, 0,112,243,242,145,156,209, 22,242,151,161,133,172,118,116,254,235, 79, 80,254,242, 0,140,202,170, 64,143, 0, 62, +120,126, 65, 96, 20,229,136,222, 87, 14,111,190,133, 31,120, 14,230,100,221,184,118,173,234,243,140,255,118,253,250,191, 95,227, +211, 47, 63, 43,250,108,213, 71,239,191,249,218,188, 9,203, 63, 88, 14,137,175, 55, 70, 12, 25,134, 83, 39, 79,125,253,108,210, +179,110,191,179,141,252,109,231,187,119,239,198, 67, 15, 61,212, 17,192,116,103,221,254, 38,147, 9, 3, 6, 12, 96,205,102, 51, + 95,165, 82,193,104, 52,194,104, 52,226,242,229,203,144,201,100, 56,118,236, 24,218,180,105, 3,147,201,132,153, 51,103, 58,147, +214,169,137,137,137,159, 76,158, 60,217,111,253,250,245,126,132, 16, 33,128,195, 0, 84, 0, 6, 0,248,201, 78,241, 60, 8,160, +151, 35,121, 59,223,124,243,135, 9,125,251,146,239,226,227, 81,250,251,239,248,232,163,143,216,159,127,254,249,255,221,188,121, + 51, 84, 38,147,189,188,104,209, 34,152, 76, 38, 12, 27, 54, 12,222,222,222, 67,157,205,191,128,128,128,202,214,173, 91,195,199, +199,135,243,246,246,190,105,205,195, 7, 94, 7,237,149,129, 70, 61, 0,243,115, 80,177, 26, 21,233,191, 93,171,200,138,142, 10, +142, 29, 40, 13,178,172, 35, 62,126, 25,126,243, 25,131,131,127,148, 99,104,207, 64, 60, 34,253, 25,190,191,124,208,127,108, 63, +233,244,205, 71, 46,254, 81,159,240, 54,157, 19, 8,199,149,112, 19,159,155,143, 5,175,125, 6, 64, 14,203,178,201, 70, 68,118, + 29, 0,177,136, 15,189,214, 8,208, 22, 5,193,215,215, 23,229,242, 6,247,203,134, 94,119,133, 0,224, 46,254,246, 37, 40,106, +109, 45, 35,129,213,255, 9,131,209, 4,137,143, 24, 16, 90, 20, 4,141, 90,141,161, 67,135,226,200, 79,223, 53,108,142,176, 52, + 88,150, 15,134, 97, 96, 52, 26, 81,205,231,129, 79, 83,192,109, 53, 24, 47, 6,102, 33, 11, 78,192,131,142,199, 7,163,213, 65, +105,108, 56,214,201,215, 71, 11,134, 33, 48,210,102, 40, 85,106,228, 95, 43, 70,201,237, 74,232,105, 19,212,213,114, 84,107,148, + 48,152,105, 16, 62,129, 86,167,130, 90,119, 3, 69,165, 42, 84,105, 26,222, 75,194,108,167,165, 49, 42, 45, 74,206, 94,194,157, + 75, 55,160,214, 92,131, 70,169, 4, 7, 62, 4, 60, 2,142, 8, 64, 81, 22,175,175, 43,234,230,219, 73,111, 59, 53, 28,224, 0, +119, 0,220, 89,188,120,177, 30, 0, 22, 45, 90,116, 42, 37, 37,197,219,154,116, 3,128, 98,119, 5,175, 91,183,110, 69,124,124, + 60, 0, 32, 42, 36, 36,212, 58, 38,206,107,206,198, 97,115,255, 91, 61, 1, 14,179, 47, 60, 60,124, 52, 77,211, 72, 75, 75,195, +211, 79, 63,141,201, 99,198,220,237,232,207,159,183,120,130, 66, 66, 56,103,227, 2, 22,188,255,126,205,152, 63, 0,188,181,100, + 73, 45,207,128,147,110,255, 90,176, 89,255, 54,210,183, 33, 35, 35, 3,201,201,201,200,206,190,254, 45,128,239, 28,118,104,124, +254,127, 12,180, 17, 60, 30, 15,151,175, 23,128,227, 56, 92,204,191, 10,154, 54,129, 2, 1,159,207, 7, 33, 4,172,217, 12,189, + 86,135,171,191,253,118,200,137, 60,164,236, 73,255,217,167, 39,216, 91,252, 20, 0,156, 56,115, 30,157,163, 34, 93,154,166,156, +157,249,159, 26,107, 63,219, 98,249,219,134, 66,184,199, 39,189, 24,187,111,167,123,222,128,102,129,252, 54,132, 17, 93, 80, 62, + 71, 12,209, 35, 83, 97,206,219, 15,179,218, 18,111, 80, 62,231, 97, 68,102,228,194,204, 54, 94, 85,186,118,238,218,214,203,203, +219,235,211, 47,214, 25, 98, 71,141, 18, 14, 30, 58,228,187, 3,123,127,121,252,242,181,124,128,229, 32, 22,137, 48,108,224, 48, +236,217,189, 7, 99,199,142,229,246,239,223,239,116, 87, 80,215,234, 63,112,224, 0,174, 95,191, 78, 3, 16,158, 60,121,146,158, + 61,123,246,180,140,140,140,103, 29,201, 41, 44, 44, 68,199,142, 29, 1,128, 42, 44, 44,196,185,115,231, 16, 25, 25,137,168,168, + 40, 40, 20, 10,228,229,229,161, 67,135, 14, 8, 13, 13, 69,100,100, 36, 10, 11, 11, 27,175, 40, 20,149,148,152,152,248,193,200, +145, 35,125, 78,157, 58,229,199, 48,204, 75, 18,137,100,162, 94,175, 95, 5,203,214,231,176, 42, 0,107, 96,217,157,143, 70, 35, +211,219, 5, 2, 65, 82,230,188,121, 27, 31, 14, 9, 33, 21, 11, 23, 98, 40,203, 98,205,238,221, 92,169, 78,247, 34,238,110,203, +190,241,226,197,139,235, 25,134,225,251,248,248, 32, 60, 60,220,199,100, 50, 65, 32, 16, 56,122,125,175,210,210,210,174, 55,111, +222,132, 86,171, 37, 10,133,162, 59,159,207,143, 99, 24,166,197,238, 56, 86,223, 16, 64, 24,128,142,147,162, 35, 94,109, 31,236, + 61, 29, 38, 61,208, 53, 14,103, 66, 38,225,145,185, 95, 65, 95,169, 4,207,207, 23,178,213, 73, 24,209,227, 55, 4,157,207, 26, + 9, 32,162,161, 31,232,228,215, 14,127,156,223, 97,231,112,208, 2, 48, 89, 14,147, 17,124,150, 7,202, 74,226, 59,127,116,188, +139,200,254, 11, 28,198,246,239, 85,199, 8,229, 3, 16, 0, 2, 49, 24, 98,134,213, 14,198,148,233,243, 0, 64,150,242,238,220, + 6, 27,130,153,229,192,176, 20, 40,134, 1, 69, 27,161,163, 44,117, 71,207,227,193,155,209, 67,173,231, 64, 4, 4,102,179, 25, + 58, 51, 80,174,109,120,183, 83,134,102, 97, 16,240,192,234, 24, 48,172, 10,154,106, 19,120, 68, 0, 35, 99, 2,205,209, 96, 76, + 52, 32,100, 65, 17,128,136, 88,168,244,102,148, 85,232,160, 53, 50,245, 26,201, 20, 49,215, 12, 26, 17,114,119, 72,215,100,208, + 67, 37,151,131, 34, 60,240,249, 28,192,241,193, 35,238,155, 58, 87,138,174,208, 93, 35,187, 10,157,113,251, 55,164,155,193,110, + 15,237,148,148,148, 9, 0,110, 46, 90,180,168,191,191,191,127,128, 74,165, 42, 74, 73,113,125,135,204,185,115,231,190,176,110, +221, 58,180,110,221,218,254,154,114,205,154, 53,217, 15,117,235, 54,250,212,229,203, 7,155,171, 33,204,157, 59, 55,214,110, 40, +160, 49,242,143, 25, 52,104, 80,248,240,126,253, 64,124,125,145,146,146,130,133, 11, 23, 66, 32, 16,192,164, 80,192,223,223, 31, +239,204,157, 91, 19, 23,144,156,152,232, 80, 9,168, 59,198,239, 40, 38,160,177, 17,133,186,214,191, 3,239,128,195, 42,163,144, +203,187,249,248,250,162, 82,161,128,236,196, 9,240, 41, 30,140, 38, 19,116,122, 61, 88,150,173, 81, 92, 24, 19, 13,218,104,116, +102, 72,131, 5, 64, 89,135, 1, 88,187,138,111,176, 94,199,251,105,107,132, 0,208, 89, 42, 45,191, 81,191,109,225,146,151,170, + 93,199,232,152,125, 59,191,116,197,221,220,112, 6,187,224,246,175,229,150,221,250, 95,244,123,238, 13,136,162,250, 88,250,138, +202,219,200,151, 91, 20,127,209,208,241, 40, 54, 51,240, 90,219,248, 80,179, 90,173, 14, 16, 73,196,232, 20, 21, 37,190, 81,114, +179, 77, 85, 69, 21,166, 60, 59, 93,182,247, 96, 22, 86,127,152,182,109,231,222,221,241,157,163, 58, 35,233,233, 25,200, 61,115, + 12, 99,199,140,225,246, 31, 56,224,240,157,237,173,254, 3, 7, 14, 32, 46, 46,206,166, 44, 10,111,221,186,133,217,179,103, 11, + 1,192,153,216,130,170,170, 42,140, 24, 49, 2,102,179, 25,133,133,133, 56,118,236, 24,122,244,232, 1,127,127,127,180,111,223, + 30,253,250,245, 3, 69, 81,160, 40, 10,109,218,180,113, 84, 79,123,244,234,213,235,147,161, 67,135,242,206,159, 63,239,103, 54, +155,203,182,111,223,174,214,235,245, 41, 0,236, 7, 77, 95,125,252,241,199,139,247,238,221, 27, 69, 8,185,141,134,119,180,237, +159, 60,124,248,198,193,124, 62,169,248,224, 3,112, 38, 19,100, 60, 30,155,171,211,205,132,101, 27,119, 27, 94, 89,188,120, 49, +159,162, 40,200,229,114, 92,191,126,189,188, 87,175, 94,161,206,148,115,120,120,120,144,153,227,160,215,233,112,241,226, 69, 48, + 12,211,162,103,158,240,235,144,127,231, 48,127,201,240,199,251,134,207,246,147, 8, 6, 49,102, 86,193,231,204,126, 8,104,195, +187,173, 52, 64, 95,169, 2,132,124,152,149, 26,148, 40,104, 32, 56, 2, 20, 75,139, 27,115,241, 94, 83,171,209, 37,192, 15,140, + 17,184,150,243, 45, 58,197, 60, 86, 99,192,153,104, 19, 4,160, 80,109,176,236, 80, 59, 54,102, 0, 36,193,225, 88,181,241,167, + 6, 19, 60,182, 55,193,222,115, 28, 4, 98, 64, 24,241, 24,232,226,163, 53, 94, 0,129, 80, 4, 19, 12,240,145, 88,118, 36,221, +189,119, 11,254, 56,153,211,168, 75,146,101, 89, 8,105, 61, 76, 16,130,162, 24,192, 96,233,216, 76, 38, 19,140, 6, 1,120,124, + 1, 96, 0, 56,214, 50, 68, 16, 41,141, 2,114,235,159, 81,160, 51,176,224,241, 8, 76,140, 9, 6, 35, 11,181,198, 82, 15, 77, + 44, 7,218,200, 2,124,128, 39,224,129, 47, 6,136,222, 12,150, 48, 96,161,135, 70, 15, 88,118,150,108, 28,102, 0, 20, 11,112, + 4,160, 40, 22,132,240,192,114, 4, 20,101, 53,156, 88, 10, 44, 69,129,176,206, 25,200,118, 65,126,194, 38,214, 35,111, 0, 33, +139, 22, 45, 42, 79, 73, 73,137, 5,240,212,162, 69,139,198,164,164,164,104, 1, 84,185,229,178, 74, 72, 16,174, 91,183,238,203, +248,248,120, 72, 91,181,170,185, 46,109,213, 42,192,234, 5, 8,121, 16, 13,134,166,105,153,109,236,159,211,104,240,175,127,253, + 11,198,170, 42,216, 34,223, 58, 89,149, 21,129,209,136, 9, 19, 38,148,151,150,151, 79,115,198,210,110,198, 33,153, 90, 30,128, + 70, 60, 4, 56,125,250, 52,169, 79,121,168,165,212, 26,105, 40,105, 57, 12, 6, 3, 2,252,253, 33, 22,138, 96, 50, 51,224, 56, + 14,102,179, 25, 52, 77,195,100, 50,129,101,204,206,198, 51,176, 87, 11, 11,169,206, 82,169,205, 34, 96,175, 22, 22, 82,223,110, +255, 73,108,239, 17,232, 44,149, 42,155,203,125, 95, 82,144,215,108,150,191,187, 49, 0,163,178, 42, 80, 46,221, 6, 97, 68, 23, +144,168, 62,136,220,240, 59, 42, 13, 44,188,249, 4,244,175, 63,226,202,245, 27,112,180,107,177,158,161,113, 58,247, 36, 62, 89, +245, 49, 30,142, 25,142,197,255,111, 9,126,217,247, 11,190,219,244, 13,134,142, 28, 30,223, 94, 26, 1,190,151, 0, 7,143, 30, +196,230,175,191,193,142, 31,183, 67, 40, 22,115,187,119,239,110,116,125,136,157, 59,119,214, 34,126, 27,148, 74,215, 55,184,211, +104, 52,240,247,247, 63, 1, 96,176, 84,103, 60,227,177, 0, 0, 32, 0, 73, 68, 65, 84, 42,197,192,129, 3,193,227, 89,134, 89, + 35, 35, 35, 33, 18,137,160, 82,169, 32,149, 74,225,235,235, 91,164,209,104, 34, 27, 17,119,241,252,249,243, 43,118,236,216, 49, +174,115,231,206,221,182,111,223, 94,173, 80, 40,150, 2,216,108,175,191,140, 26, 53,234,205, 13, 27, 54,108, 5, 80, 14, 32, 1, +192,111, 0,250,214, 35,239,247,181, 50,217,138,128,188,188,119,159, 97, 24,124, 12,176, 95, 86, 87,207,168, 35,239,169,121,243, +230,125, 60,107,214, 44,220,184,113, 3,123,246,236, 1,195, 48,135, 0, 60,227,196,235, 83, 1, 60, 94,149, 15, 77, 67,251,251, +239, 92, 8,203,106,174, 1,154,191,186,143,234,215,175, 31,206,158, 61, 91, 51,238,223,104,130,235,156,119,152, 20, 29,177,220, + 79, 34, 24, 84,161, 54,252,114,252,106, 69, 10,120, 34,224,202, 81, 60, 42,229,240,127,175, 77,192,192,158, 82,204, 75,126, 28, + 79,118,164,129, 11, 7,192, 9, 36, 12, 26, 13,214, 81, 34, 95, 89, 12,190, 8, 24,251,228, 27,216,252,233,135, 22, 99, 81,103, +132, 89, 15,252, 40, 59,139,236, 83,150, 25,133,237, 34,162, 64,241, 29,147,215,184,190, 4, 38, 3,176,123,207,126, 68,143,121, +205, 98,253, 67, 0,158, 4, 72, 28,159,128,113, 35, 39, 90, 26,126, 81, 1, 24, 3,221,184, 70,207,113, 96,136,133,224,141,180, + 37,248,207,104,208, 67,167,211,161,186,186, 26, 26,181, 10, 26,141, 6,106, 77, 53, 12,213,213,208,235,245, 13, 87,254,106, 2, +189,193, 12,189,193, 12,173,206, 4, 77,181, 17, 10,141, 17, 74, 53, 13,149,198, 4,165,210,242, 41,175, 98, 32, 87, 48,144,171, + 24, 84,202,105,220,169,108, 56,141, 20,199,193, 12,128,152, 9, 8,197,130, 35, 28,192,113,224, 56, 30,204,236,221,226, 99,173, +189,135,171,190,241,238, 67,187,227,216,222, 99,248,229,208, 47, 53, 74,193,149,162, 43,174,214,185,112, 0, 29, 83, 83, 83,207, + 1, 88,251,206, 59,239,188,222,161, 67, 7, 38, 35, 35,131,164,165,165,185,172, 1,207, 74, 72, 32,194,176,176,157, 0, 16, 22, + 22,118,207,253, 57,115,230, 48,121, 87,174,108,105,174, 88, 0,155,251,223,217,125,227,109, 99,255, 0,240,195, 15, 63,224, 90, + 89, 25, 0,224,231,156,156, 90,247,174, 92,185, 18, 26, 18, 18,162,120, 16,138,202,232,209, 29,108,243,174,107, 93,183,157,219, +238, 59,244,105,250,249, 94,102,205,102,168,229, 10, 84, 86, 86,162, 74,169,128, 86,167,131, 86,167,131,166,186, 26, 90,149, 26, + 26,165, 18, 6,189, 14,180,193, 0,150,113, 24,232, 76,117,150, 74,109,125, 6, 11,128,182, 31, 14, 0,128,111,183,255,132,247, +211,214, 4, 0, 8,115,185, 34,118,140,142,169,171, 56, 68,245, 24, 21,131, 7,140,219, 83,164,136,220,240, 59, 72, 84, 31, 24, + 15,111, 67,209,243,253,225,205, 39, 56, 26, 23, 2, 70, 85,129,232,253,229,224, 59,168,126, 89, 89, 89,228,229,249,175,224,218, +149, 43,200,205, 57, 10,127, 95,127, 76,157, 50, 21, 1,193, 65, 56,115, 50, 15, 62, 66, 49,188,189,189,209, 70,218, 22, 91,190, +223,130,119,222,123, 23,213, 74,247,119,169, 29, 48, 96,128,203,223,241,245,245,133, 74,165, 26, 76, 81, 20,221,190,125,123, 12, + 26, 52, 8, 61,123,246, 68,171, 86,173, 32, 22,139, 33,149, 74,209,183,111, 95, 4, 4, 4, 64,163,209, 68,250,250,250, 58, 18, +185,242,240,225,195, 89,155, 54,109, 18, 40, 20,138,197,117,200, 58, 97,196,136, 17,159,108,216,176,225,171,176,176,176, 15, 8, + 33, 62, 0,222, 1,208,152,155,236,189,229, 26,205,202, 23, 25,198,252,165, 94, 63,173,142,188,248,103,146,255,189,227,181,215, + 23,240,174, 92,185,130, 19, 39, 78, 96,195,134, 13,213, 0,254,207,201,215,167,188,140, 70, 49,119,233, 18,218,103,103,147,240, +210, 82, 30, 30, 80, 12, 74,221,160,247,134,130,224,235,118, 2, 34, 30, 69,124,139,171,180,223,109,201,189,241,127,103,139,228, + 39,245,102,114, 13,149, 55, 32,222,241, 42, 62, 24,166, 65,222,210, 65, 88, 29, 91, 13,239, 31,231, 0,242, 18, 84,115,226, 11, + 86,205,171, 1,220,141,234, 63,119,254, 39,252,251,223,155,208,201,175, 55,254, 60,126, 14, 7,100,151, 16, 59,180, 39,226, 70, + 88, 42, 26,199,227,131,118, 97,162,196,216,254,221,176,124,229,135,216,127, 65, 13, 31,105, 15,140, 31, 63, 1,191, 28,218,137, + 61,191,108,177,188,156,217, 4,145,160,241,126,142, 99,205, 48,179, 22,107, 6, 86,107,134,166,105, 24, 12, 6,232,245,122,104, +117,122,232,117, 90,232,117, 90,232,140, 6,208, 70, 67,195,238, 47,189, 47, 84,213,102,168,245, 44,212,122,214,242,191,134, 69, +181,150, 65,181,142,129, 66,110, 70,149,220,132, 42,133, 9, 85, 85, 38, 84, 86,210,184, 83,105,106, 84, 1,184,235,254,191,215, + 84,227,243, 56,240, 8, 1, 87, 39,234,159, 35,142,235,220,219, 73,111,163,251,208,238, 53,231,217, 27,179,107, 60, 2,199,246, + 30,195,149,162, 43, 55, 92,169,112,219,182,109,251,149,227,184, 94,241,241,241, 73, 81, 81, 81, 33, 0, 40,150,101, 69, 38,147, + 41,112,254,252,249,126, 13,184,130,235,133, 48, 44,236,253,117,235,214,141,139,143,143, 71, 84, 72,136, 83, 67, 87, 77,116,255, +199, 0, 64,116,183,110, 14, 3,216, 58,183,110, 29,155,150,150,134, 63,139,138,212, 59, 14, 28,192,229,203,151,107,172,254,174, + 93,187,194,122,143,222,113,224, 0,138,138,138,112, 37, 47, 79,239, 72,230,130,247,223,199, 91, 75,150,212,184,247,109,255,219, +206,109,255,187, 18, 11,144,146,146,201,141, 26, 53,234, 85,123,210,183,125, 14, 28, 56, 16, 41, 41,153, 78,117, 76, 87, 47, 23, +228, 49, 12, 3,154, 54, 66,126,167, 28, 21,183,203, 80, 89,118, 7,149,101,119, 32, 47,175,128,178,170, 10, 70,173,214, 18, 63, +163, 84,194,137, 32, 64,230,253,180, 53,252,247,211,214,240, 1,168, 1,176,131, 7,244,185,231, 33,187,184, 0,167,209,182, 99, +116, 76,105, 65,158,172,239,160,187,105,232,216,255,201, 24,101,197,117, 89, 83,234, 7, 73, 84,212,178,252,221, 65,190, 92,139, +226,151, 30, 2,119,227, 60, 66,255,123, 6,222,235, 79,227,246, 20, 41, 6,238, 47, 7, 17,136,192, 39, 0,159,114,172,128,158, +191,112,129,252,235,195,229,152,247,214,155, 48,177,102, 92, 46,188,138,233, 83,167, 65, 40, 22, 99,215,143,187, 1,147, 25, 70, +131, 17, 71,243,142, 67,175,175,198,172,153, 51, 15,191,252,242,203,141,149, 53,153, 52,105, 82,236,152, 49, 99, 64, 8, 65, 86, + 86,214, 61, 46,253,183,223,126,219,233,247, 12, 14, 14,198,173, 91,183, 0,128,159,158,158,142,138,138, 10,244,238,221, 27, 1, + 1, 1,160, 40, 10, 39, 79,158, 4, 69, 81, 32,132,224,214,173, 91, 8, 14, 14,118, 70,236, 7, 52, 77,143, 4,240,131,221,181, +169, 35, 70,140, 72,123,233,165,151, 2,211,211,211,197,132, 16, 10,192, 78, 88,102, 1,220,113, 32,111,225, 9,147, 41,186,174, +188,103, 22,237,216,250,244,180, 57,100,220, 43,233,200, 57,113, 17,105,105,105,172, 90,173,126, 1,150,217, 5, 78,121,183, 58, +249,250, 6,180, 47, 43,195,112,157, 14,109, 4, 2,111,111, 30,239,129, 45,183,223,175, 95,191,154,195,169, 33, 0, 0, 5, 91, +142,223,152, 43,215, 26, 79, 3,200, 7,208, 38,247,106,197,231, 35,187,133,189,199,191,113, 34, 8, 27,102, 0, 34,111,192,168, + 5, 56, 14, 38,158,248,206,209, 63,111,127,137, 70, 86, 95,218,252,221,103,177,211,166, 39,201, 0, 64,203,154,112, 77, 89, 12, +192,140, 78,126, 81,136,141,237,131,176, 86,255,159,189, 43, 13,107,234,218,218,239, 62, 25, 8,160, 34, 56,139, 86,197,138, 90, +181, 14, 88, 17,181,146, 40, 90,171,181,195, 87,163,182, 94, 91, 63,109, 9,106,175, 83, 7,180,181,215,222, 94, 91,245,222,139, +218, 81, 98,135, 79,219, 91,111, 53, 88, 91,167, 58,160, 9, 42, 34,136, 86,235, 12,130,138,160,136,146, 48, 37, 64,166,253,253, + 72, 78, 12, 33,144,147,128,162,237,121,159, 39, 15, 57, 67, 22,251,236,189,207, 94,239, 90,123,237,181,219,163,184,180,204,230, + 43, 48,154,113,179, 68, 95,239, 67,117,122, 36, 10,249,121,246,101,158, 68,136,113,253,109, 49, 0,123,206,152,176,119,103, 18, +110,221,185,129, 86, 45,109, 43, 9, 90,138, 69,120,124,240, 0,168,127,174,199,165, 11, 33,196, 86, 51, 44, 16,192, 74, 8, 24, +139, 21, 48,153, 97, 17, 9, 1,194,128,125, 39,173, 20,182, 92, 1,245,224, 87,245, 21,242,244,136,230, 52, 64, 76, 33, 20, 57, +121, 24, 76,128,153, 2, 85, 70,192, 82,109, 1, 33, 4, 68, 76, 96,182, 0,250,106, 32, 35,173,148, 12, 24,208,153,186,117,249, +179, 61,139,177,130,216,221,255, 54, 82, 64, 96,177, 50, 96, 4,246,149, 2, 0,168,128, 2,148,155, 23,192, 89,249,187, 59, 78, +221,157,218,141,107, 71,155, 52,105, 82,159,164,164,164, 53, 0, 6, 36, 37, 37,237, 73, 74, 74, 58, 60,105,210,164, 55,186,119, +239,110, 34,132,180,250,228,147, 79,246, 45, 94,188,120,218,202,149, 43, 83,234, 33,159,172,245, 47,124,235,173,183,150,189,245, +214, 91,216,179,103, 15,244,183,106,191,203,221,218,180,193,149, 43, 87, 0, 64,205, 37,145, 79, 93, 73,127,222,120,227, 13,233, + 23, 95,124,161,254,252,243,207, 49,184,103, 79,217,241, 11, 23, 60,186,138,143,158, 57,163, 25,222,191,255, 83, 23,143, 31,239, + 10,192, 15,192,167, 38, 63, 63,136,170,171,209,163, 67, 7, 44, 90,180, 8,169,169,169,171,194,195,195, 83, 82, 83, 83, 15,228, +231,231,123, 32,119,181,243, 0, 52, 32, 6,160, 6, 15, 76, 73, 73, 33,241,241,242,227,199,142, 21,165, 42, 20, 10, 49, 0,196, +199,203,135,173, 90,165, 74, 3,199, 36, 64, 93,251, 63,246,110,229,205,194,177, 86,179,165,151,190,180, 20,165,119,110,131, 16, + 6,148, 90, 81, 85, 85, 5, 74, 41, 40,165,184,114,254, 2, 76,198,106,252,150,156,236,169, 14,157,199,156,150, 0,152,241,178, +104,235,120, 89, 52,156,151, 5,218,167, 8, 56,163, 83,143, 33,210,252,236, 12, 53, 0,116,237,210, 5,167, 51,108, 60, 57,231, +183,237, 0,128, 54,143, 12,146,221,206, 59,217,100, 30,128,193,191, 22, 33,243,105, 96, 64, 68, 12,138,230, 14, 67,251, 47,143, + 34, 75,171, 71,176,152,160, 88,171,131,144, 16,143, 30, 0,199,187,153,154, 90,227,206,238,221,187,211,241, 19,158,198,206,237, + 59,177,101,203, 22,124,240,222,251,216,167, 57, 0,129, 80,128,208, 78,161,209,165,165,245, 47, 93,222,182,109,155,198, 78, 4, +164, 99,199,142,173, 17, 11,176,127,255,126, 92,190,124,185, 74,169, 84,118,112,245, 38,185,237, 47, 93,187, 34, 55, 55, 23,143, + 61,246,152,121,193,130, 5,226, 31,127,252, 17, 65, 65, 65,184,120,241, 98, 45,207,107,110,110, 46,186,114,111,103,231,196,115, +211,159,120,226,137, 15, 95,122,233,165,160,204,204,204,230, 85, 85, 85,255,235,239,239,255,140, 61, 48,240, 23,142,242,156, 23, +202, 79,127,230,175, 63,110, 28, 49,250, 5,242,207,100,128,116,124, 22, 31,175,125,151,106,179, 47,206, 4,160,242,162,153, 73, +185,201, 84, 34,246,243, 67, 11,177, 24,254, 22, 75,181,190,230,146,181, 7, 14, 53, 8,192,124, 13,206,125, 34,173,206,154,175, +113, 76,105,230,125, 34, 45,249,181,188,202,172,143,124,180,245,248,144, 0,193, 19,130,234,170, 64, 51,101,202,139,203,141,199, +210, 46, 23,238, 45,208, 26, 82,230,107,112,179, 46,146, 49,237, 47, 75, 53,135,142,166,201, 0,168,173, 2,118,154, 79,128,203, +101, 55,241,183, 55,102,194, 96,168, 70, 89,165, 45, 6,192,200,248, 97,243,182,250,211,236,230,231,165,145, 23,158,253,171, 77, + 89, 90, 88,203,217,140,113,253, 8,166,206, 89,141,128, 0, 63,180,240,151,200, 0,168,179,207,158,148,109,248,108, 91,189, 3, +146,144,154, 97, 36, 54, 18, 0, 66, 96,161,212, 70, 4,204,246,229,126,132,129,208,106,133,217, 30, 28,232,137, 4,148, 84,182, + 68,101,117, 49,196, 66,198,145,230,204,108, 5, 76, 38, 10,147,153,162,162,210, 10, 34, 32,176,128,192,100,189,235,186,119, 7, +139,149, 1, 67, 44, 32, 22, 2,202, 80,135,251,159,212, 97, 60,179,146,206, 93,252,145,120,202, 13,125, 33,237, 66, 67,251,142, +195,109,209,175, 95,191,155, 97, 97, 97, 47, 92,189,122,181,199,150, 45, 91, 50, 0, 60,151,148,148,244,156,243,205, 43, 87,174, +212, 44, 94,188, 88,182,114,229, 74, 79, 10,194, 81, 33,113,113,113,117,222,244,226,171,175,218,124,128,222, 37, 6,162, 46,110, +127, 0,192,144,222,189,101, 25, 28,148,191, 99, 0, 62,125,218, 17,173, 58,172, 95, 63,107, 66, 66,194,231, 19, 39, 78, 52, 95, +186,116, 73,120,237,218, 53,116,109,213, 42,109,231,206,157,156, 2, 20,239, 81, 30, 0,103,229,126, 43, 37, 37,197, 57,198,227, +140, 83, 61,123, 36, 1,170,149,171,244,242,197,241, 47, 94, 60,112, 48,173,101, 96, 96,139, 50, 93, 9,204,102, 51,168,253, 61, +208,221, 42, 66,153, 78, 7, 74, 41, 6,198,196,200,126, 75,246,152, 7,201,140,187, 49, 39,140,125, 57, 32, 19, 57,232,113,140, +151, 69, 59, 86, 1,100, 95,189,202,153, 4,196, 76,120, 73,154,188,235,191, 14, 43,255, 23,213, 55,106, 0,104, 19, 54, 92,118, + 59, 55, 85, 3, 0, 77,163,252,105,109, 18,128,175, 48, 32,238,111, 40,180, 90,209,127, 67, 6, 50,198,181, 67,159,157,183, 32, + 36, 64,115,145,111,198,226,206,157, 59,201,148,151,166,208, 81, 99, 70, 99,251,214,159,241,143, 85, 43, 17, 95, 90, 10,106,181, + 98,243,230,173, 40, 40, 40,120, 6,192, 78, 79,114,220, 17, 1, 0,120,225,133, 23, 78,129,227, 92,246,134, 13, 27,200,216,177, + 99,233,201,147, 39,197,131, 6, 13,194,232,209,163,161, 86,171,241,200, 35,143,160,186,186, 26,209,209,209,160,148, 90, 79,158, + 60,201,136, 68, 34, 95, 50, 2, 62, 22, 20, 20,180,102,202,148, 41,162,243,231,207,183,168,174,174,174, 43, 48,144, 43, 6,134, + 14,152,188,113,192,200, 41,228,155, 20,160,172, 18, 48, 94,217, 99,213,102,171,103,160,102, 96, 32, 39,125,170, 45, 45, 53,139, + 77, 38, 24,196, 98, 8,205,102, 15,211,227,247, 6,108, 30, 0,103,203,223,221, 57,183,174, 84, 39,229,207, 30, 95,248, 68, 90, +145,119,237, 78, 69, 26,128, 14,246,151,183, 26, 64, 1,128,220,249, 26,120,116,113, 42,191,220,165, 25, 49,162,159,204, 66,155, +169,157, 95,142, 10,125,153,109,221, 63, 19,128,156,114,144,181, 95,110,226,244,128,219,182,127, 70,110,107,115,165, 96, 12,106, +231,234,109,214, 44, 8, 22,147, 14,160,122,140,235,199,109, 66,215, 4, 1, 64,169, 77, 81, 67, 0, 49,181, 19, 1,187,242,183, +229, 0, 4,192,145,200,165,157,184, 78, 34,250,118,160,102,147, 22, 66,187,247,135, 82, 10,139,153,162,202, 4,148,149,155, 97, + 2,133,153, 50, 16,138, 8,238,220, 50,213, 89,206,227,199, 87, 17, 0, 24, 22,245, 54, 37, 38,155,245, 79, 1, 80, 74, 0,106, +183, 24,168, 0, 68, 96,133,213, 42, 68, 86,246, 86, 78,207,252,218, 63, 94,147, 93,205,185, 90,159, 2, 22,193,182, 84,163, 62, +237,228,168,249,101,203,150,177,254,209,211,118,171,248,174,162,126,241, 69,233,214,173, 91,213,118, 18,160,246, 68, 2,214,171, + 84,166,223,206,156,145,119,237,215,207,242, 68,175, 94,122,123, 31,173,134, 75, 22, 45,249,184,113, 54,139,163, 95, 63,207,211, + 29,111,191, 45, 3,128,193, 61,123,214,186,150,121,233,146, 38,227,130,239,100,168, 95,239,222, 95, 50, 12, 99,185,120,252,120, + 96,187,118,237,238,164,230,231,111,244,100,245,223, 7,173,227,220, 15,244,246,128, 63,118,106,160,194,165,173,185,144,128,243, +242,197,241,145,219,191,254,102,107, 88,183,174,143, 85, 87, 87,193, 98, 50,195,106,181,162,121,112, 48, 74,181, 90, 86,249,115, + 33, 81, 37,127,127,243,175,109, 1, 24,179,175, 94, 21,179,243,255,233, 39,127,199,120, 89,180,117, 89,194,103,158,146, 3, 57, + 48,103, 94, 60,189,120,233,162,204, 89,249, 3,192,168,167,158,147, 29,220,251,139,230,118,110,170,239,149, 88, 71,128,159,251, +243,220,117,216,224, 95,139,128, 95,223,112, 28, 63,250, 75,161,227,123,169,201,119, 99,113,243,127, 55,147,225,195,135, 63, 61, +118,194,184,221,175, 79,159,117,228,241,254,253, 70,108,255,101, 7,210, 78,157,192,137, 19, 39,118,213,231, 6,174,135, 8,204, +218,182,109,219,215,219,182,109, 27,186,109,219, 54,206,133, 27, 59,118,236,168,125,251,246, 29,220,185,115, 39,194,194,194, 48, +102,204, 24, 4, 5, 5,101,149,150,150,134,159, 59,119, 14,185,185,185,140, 72, 36,194,216,177, 99, 99,246,237,219,231,237,163, +158, 47, 45, 45, 93,181, 99,199,142,250, 2, 3,189,193,111, 5,167,182,172,248, 57,233,217,119, 43, 67,167,161,242,248, 82,235, +141,195, 31, 77,247, 81, 94,213,181,162, 34,209,155, 89, 89,249, 22,131,129, 57,205, 48,162,246, 2, 65, 97, 97, 19, 57, 1,220, +101, 3,244, 52, 5,224, 22,243, 53,208, 3,248,221,254,241, 9, 71,142,156,209,196,197, 45,150, 37, 42,255,161, 14,237,210, 3, + 64, 53, 68,126, 18,228,223, 44,195,166,157,169,196,123,121,187, 52, 51, 94, 91,136, 13,223,254, 4, 88,175, 1, 16,194, 92, 85, +137,208, 14, 65,178,143,222,158,197,217,154,131,197, 10, 33, 99,133,137, 8, 33,162,230,187, 68, 0,102,128, 90,192, 53, 48,204, + 25, 39,206,222, 36, 0,208, 62,132,161, 34,161,205,218, 55, 91,109, 9,140, 74,202, 41, 44,102, 64, 32,180,194, 98,230, 54,114, + 28, 77,251, 23, 1,128,200, 33,139, 40,216,156,240, 12, 96, 37, 54,119,255,165,236, 29, 94, 21,242,235,247,191,214, 52, 66,255, +226,100,174,176,202,223,201, 19,224,113, 57,214,241,139, 23,147,142,187,184, 12,235,185,215,227, 61,141,153, 58,184, 22,185,181, + 45,241, 75,180,217,214,103,124,146,209,200,121, 0, 92,235, 86,239, 97,169, 21,167,190,163, 90,185,234,162,124,113,124, 95, 0, +130,139, 41, 41,166, 42, 67, 37,172, 22, 11,122, 71, 68,200, 58,132, 63,134,227,191,238,224, 86,199,148, 76,217,251,235, 46,199, +225,176,199,194, 28,223,247,254,186,171,214,113,125,161,241, 95,126,106, 35,200,163,159,122, 94,118,254, 98, 14,110, 94, 59,163, + 6,128,131,123,127, 81,183,123,164,175,236, 86,222, 89,175,219,125,242,228,201,240, 54,189,175,133,248,213,123, 61,239,133,246, +248,245, 70,213, 61, 31,240, 83, 83, 83,127, 85, 42,149, 76,102,102,166,245,192,177, 20,180,106,221,202,117,165,135, 87,216,182, +109,219, 55, 74,165,242, 59,133, 66, 97,242,230,119,111,189,245,150, 26, 0,153, 49, 99, 6,205,201,201, 65, 70, 70, 6,202,203, +203,195,155, 55,111,142, 86,173, 90, 57,246, 2,240, 65,249,179,248, 87, 74, 74,138, 40, 45, 45,173,159,209,104, 92,138,154,115, +249,190,224,189,179,155,255, 34, 10,234,254,221,162,210,156,125,211, 26, 32,207,252, 99,122,250, 51, 0,198, 0,248, 13, 86,107, + 57, 60,199, 35, 52, 58,216, 85, 0,238,206,251, 68, 0, 60, 14,130, 74,165,112,221,186,117,158, 93, 85,123,143,106, 58,117, 29, + 77,110,229,167,209,182,161,157,161, 45, 55, 99,211,246, 35, 62,119,208, 13, 95,175,177,255,182, 29, 5,110, 33,184,185, 16, 31, + 45,121,221,171,151,254,171, 99,217,247,108,157,102,161,214, 74, 0, 64,226, 47,162,198, 74, 19,172, 0, 2, 2, 2, 96, 48, 27, +136,197,236,189,188,244, 12,219,158, 1,145, 79, 44,164, 86, 42,192,213, 43,187,155,114,141, 41,215,165,131,252, 46,129, 28,234, +199, 89,225, 55,242,180,128, 49, 62, 94,238, 7,192,178,106,149,170, 65,166,136,106,229, 42,118, 35, 31, 71,155,230,156,245,110, +157,254,188, 21,159,249, 68,198, 92,183, 2,118,198,129,189, 63,107, 92,251,218,173, 60,223,242, 7,120,218,216,199,149, 3,155, +137, 31, 42,153,250, 87,164,230,148,155, 17,222, 92,120, 95, 94, 21,251, 90,253, 70,123,231,188, 85,254, 53,198,103,223, 55,252, +225,130,143,141, 70,227,207,128,231, 77,233, 56,226,157,210,156,125,155, 80, 51, 54,192, 91,152, 0,148,192,187,184,129,123, 70, + 2, 56, 13, 62,190,238, 35,204,131,135, 51,122,244,232,129,236,236,108,190, 34,120,240,224,193,227, 33, 1,195, 87, 1,143,198, + 0,175,252,121,240,224,193,131, 39, 0, 60,120,240,224,193,131, 7, 15,158, 0,240,224,193,131, 7, 15, 30, 60,120, 2,192,131, + 7, 15, 30, 60,120,240,104,114,212, 8, 77, 61,117,234,148,207, 81,155,238,130, 9,121,121,188, 60, 94,222, 3, 35,175,222,232, +112,190,254,120,121,188,188, 63,150, 60,175, 9,128,211, 64,225, 45, 60, 13, 60,141, 41,143,199,131, 9,202,183,219, 67,217, 14, +156,239, 87, 42,149,129, 0,158, 56,114,228,200, 71, 2,129, 96,152,159,159, 31, 12, 6,195,209, 17, 35, 70,188, 7, 32, 67,161, + 80, 24, 30,132, 10,176,103,135, 84,255,153,199, 21, 74, 41, 61,123,246, 44,250,245,235,199,191,147, 60,188, 34, 0, 94,173, 67, +230,146, 40,199,157, 60,231,196, 39,222,202,251, 19, 14,232,156,240,212, 83, 79,201,246,238,221,171,225, 42, 51, 52, 52,180,214, +133,130,130, 2,215,193, 20, 42,149,138,112, 44,227, 61, 35, 1,117,229,243,111, 42,121,171, 87,175, 30,189,117,235,214,228,172, +172, 44, 0, 64, 88, 88,216,179,233,233,233, 59,124,109, 95,231,126, 79, 41,117,188, 31,236,121,246, 93,177,159, 39, 30,200, 51, +215,118,240, 70,249, 63,118,246,236,217,173,101,101,101,189,186,116,233,130, 59,119,238,160,170,170, 10, 0,134,109,221,186, 85, + 29, 24, 24,120, 81,169, 84, 62,175, 80, 40,234,221, 74,242,236,217,179, 94, 25, 4,169,169,169, 50,133, 66,161,241,230, 55, 42, +149, 74, 45,151,203,101,190, 36,128,162, 94, 38, 97,152, 60,121,178, 55,239, 7, 0,160, 75, 23,219, 14,184,229,229,229,168,174, +182,165, 65,215,235,245,222,188,111,245,226,204,153, 51,116,216,176, 97,232,221,187, 55,252,252,252,138,170,171,171, 31,225,135, +209, 63, 31, 92,147, 1,221,179, 68, 64,188, 21,123,111,241, 75,226, 56,143,247, 60, 63,123,143, 87, 50,213,234,187, 6, 82, 86, + 86, 22, 2, 3, 3, 29,131, 16, 11, 46,155,127,200,229,114,170, 82,169, 92,143, 73, 29,247,248, 84,183,209,209,119,183,115,117, + 39,191, 33, 32,132,208,145, 35, 71,202, 82, 82, 82,188, 82, 22, 91,183,110, 77,110,219,182, 45, 94,121,229, 21,232,116, 58,107, + 66, 66,194,246,149, 43, 87, 78, 93,188,120,241,102, 47,255, 63,126,253,245, 87,199,241,184,113,227,176,103,207,158,122,143,185, +136,117,233,203, 52, 34, 34, 2, 0,168, 83,102, 56,175,148,127,105,105,105, 90,247,238,221, 91, 0,128, 68, 34,129,191,191, 63, +138,138,138, 80, 82, 82,130,160,160, 32, 20, 21, 21,245,218,179,103, 79,134, 82,169,236,169, 80, 40, 10,235,147,215,183,111, 95, +200,229,114,132,133,221,205,250,183,106,213,170, 26,247,196,199,199, 3, 0,142, 29, 59,166,246,165,223, 52, 36,251,227,218,181, +107,235,186,228,216,171,192, 87, 4, 6, 6,226,252,249,243, 16,137, 68, 48, 26,141,216,179,103, 15,178,179,179,177,100,201,146, + 6,245,227,224,224, 96, 1,128,152, 67,135, 14,237,137,142,142,190,245,252,243,207,183, 75, 78, 78,134, 64, 32,104,211,178,101, + 75, 1,120,252,169,149, 63,123,206,149, 4,252, 97,130, 0, 35, 35, 35,165,247,219,226,110, 74,132, 14, 94,238,248,248, 10,157, + 78,231,176,248,245,122, 61,214,175, 95,239,248,120, 49,208,186, 61,158, 52,105, 18,149,203,229, 20, 0,117,189,199, 91, 28, 58, +116, 72,253,246,219,111,163, 91,183,110,141, 86,127, 93,187,118, 37,239,188,243, 14, 40,165, 72, 73, 73, 81,123,219,238, 89, 89, + 89, 24, 55,110,156, 21, 0,196, 98, 49, 19, 30, 30,142,132,132,132, 31,219,180,105, 67, 35, 35, 35,199,123, 97,113,222,171, 46, + 66, 34, 34, 34, 40,251, 92, 39, 78,156, 96,247, 3, 96,219,133,179,219, 95,167,211,109, 21,139,197, 45, 0, 96,238,220,185,152, + 54,109, 26,196, 98, 49,252,253,253, 33,145, 72, 64, 8,129, 64, 32, 64,105,105,105, 11, 0, 9, 74,165,178, 94,217,241,241,241, + 8, 11, 11, 67,110,110,174,227, 19, 31, 31, 95,227,211, 16,200,229,114,153,253, 57,125, 30, 19, 22, 46, 92,232,248, 56,143,151, + 46,231, 57,111,244,210,165, 75, 23, 4, 6, 6, 98,233,210,165, 8, 12, 12,196,246,237,219, 81, 89, 89,217, 40,202,223,254, 46, + 83,157, 78,247,191,211,167, 79, 71,143, 30, 61,218,237,217,179, 7,183,110,221,194,245,235,215, 81, 82, 82, 98,188,159, 99,147, + 82,169,148,230,231,231, 83,165, 82, 41,117,119, 45, 59, 59,155, 94,190,124,249, 79,145,128,142, 82,218,171, 41,149,127,108,252, + 74,196,198,175,172,147, 24,220, 23, 2, 64,220,160,190,243,190, 32, 61, 61, 93,221, 24, 36, 96,218,180,105, 15, 13, 9,104, 40, + 12, 6, 67, 45,171,223,151,230,101,149,201,164, 73,147, 28, 86,126, 82, 82, 18, 26,170,248,157,173,127,149, 74, 69, 70,142, 28, + 41, 83,169, 84, 53, 60, 2, 13,193,150, 45, 91, 8, 0, 18, 29, 29, 45,115,245, 52,112, 28,116,205,118,111, 0,218,182,109,139, +229,203,151, 87,189,249,230,155,198,220,220,220, 93, 43, 87,174, 28,211,212,237,235,180, 7, 0,113,110, 39, 47,219,229,137,236, +236,236, 94, 0, 48,107,214, 44,148,150,150,226,198,141, 27, 16,137, 68, 16, 10,133, 16, 10,133, 16,137, 68,240,247,247, 71,101, +101, 37,146,147,147, 95, 6, 16,236, 73,104,110,110, 46, 84, 42,149,227,227,236, 9, 88,181,106, 21,146,147,147,125,126,110,149, + 74,165,177, 79, 1,168, 27,233, 93,174, 43,113, 55,231,241,243,234,213,171,216,181,107, 23,150, 47, 95,142, 46, 93,186,160,117, +235,214, 72, 73, 73,193,146, 37, 75, 16, 24, 24, 8, 0, 16, 8, 26,100,168,119,152, 57,115,230,148,127,253,235, 95, 72, 79, 79, +199,141, 27, 55, 96, 54,155, 95,105,213,170, 85, 48, 0,211,253,238,123,161,161,161,136,141,141, 85,231,228,228, 80,103,229, 31, + 27, 27,171,126,244,209, 71,241,128,239,146,219,187,129,191,247, 3,208,117,213,170, 85,207,164,167,167, 71, 3,232,223, 20, 15, +225,172,248,157,191, 55,133, 7,128,186,249,212,119,190,201, 72,192,248,241,227, 27,131, 4, 80, 47, 62,156,241,226, 27,123, 27, +173, 65,178,178,178,160,215,235,235,116,243, 31, 61,122,180, 49,136, 65,131,113,232,208, 33,181,157, 88, 32, 37, 37, 69, 67, 8, + 65,219,182,109,213,141,217, 57, 89,247,191,221, 19, 80, 47, 86,175, 94, 61,126,248,240,225, 20, 0, 18, 18, 18,196,223,126,251, + 45, 94,121,229, 21,214, 53, 47,249,253,247,223,197,246,107,251, 34, 35, 35,159,227,242,255,199,141, 27,135,167,159,126,218,225, +222,103,191,179,199,236,119,142,238,127, 0,128,221,250,119,215, 14,196,229,122,189,216,179,103,207, 71,173, 91,183, 6, 0, 92, +190,124, 25,121,121,121, 56,121,242, 36,140, 70, 35, 8, 33, 16, 10,133, 32,132,192, 98,177,192, 96, 48, 96,219,182,109,224, 50, +224,185, 76, 27,185, 37, 47,185,185,185, 13, 34, 1, 78,207,222, 32,111, 0, 26, 97,170,212,100, 50, 97,208,160, 65,208,104, 52, +184,122,245, 42, 6, 15, 30,236,184,166,209,104, 16, 18, 18,226, 32, 2, 62,160,227,204,153, 51,243,191,249,230, 27,196,196,216, + 54, 50,234,216,177, 35, 44, 22,203,247,176,229,166,191,175, 80, 40, 20, 26,150,124,134,133,133,225,248,241,227,148, 85,254, 44, +249,235,217,179, 39,151,241, 97, 8,128,239, 96,219,243,172, 62, 76, 0, 16, 11,160, 77, 35, 41,255,134, 18,128, 14,115,231,206, +149,189,243,206, 59,162,182,109,219,202, 1, 68, 61,168, 76,231,190,196, 0,220,207, 32, 64, 59, 9,144,165,167,167,107,124,149, +209,181,107, 87, 76,155, 54, 13, 63,252,240,131,175, 49, 1, 4, 0,253,225,135, 31,220, 94,220,189,123, 55,236,215,188,150,125, +236,202, 99, 24,218,237, 60, 10, 50,151, 54,168,158,156,231,252,147,147,147, 17, 19, 19,131,216,216, 88,135,242,239,220,185,115, + 99,144,190, 6, 17,129,232,232,104,233,161, 67,135,112,231,206, 29, 25,123, 78, 42,149,202, 84, 42,149, 58, 58, 58, 90,234,237, +188,189,135,255, 37,227, 66, 0,182,110,221,186,139,157,251,215,235,245, 88,181,106, 21, 42, 42, 42, 32, 18,137,224,231,231,135, + 43, 87,174, 96,249,242,229,208,233,116, 72, 72, 72,248,121,229,202,149,163, 22, 47, 94,172,246,160,100,107,144, 1, 79, 49, 1, + 28,234, 28, 30,118, 0,116, 76, 7,120,122,222,144,144,144, 97,213,213,213, 48,155,205, 56,122,244, 40, 4, 2, 1,140, 70, 35, + 42, 43, 43, 97,181, 90, 29,239,177,201,100, 66,117,117, 53,251, 78,247,245, 36,183, 46, 55,127,124,124,188, 35, 30, 32, 44, 44, + 12, 69, 69, 69, 13, 38,162, 78,171, 2,184,246, 69, 45,128, 16,119, 23,214,172, 89,227, 83, 33, 18, 18, 18,240,246,219,111, 99, +224,192,129, 14, 15, 8,155, 62,123,224,192,129,184,116,233, 18,218,182,109,235,139,232, 46, 51,103,206,188,250,205, 55,223, 56, +143,159,161, 55,110,220,184,209,148,138,101,240,224,193,132, 85,250,131, 7, 15,198,224,193,131,213, 0,112,233,210, 37,244,234, +213,139,107, 59,156, 2,224, 15,224, 71, 0, 83,225,178, 37,184, 29,111, 0,248,204,254,253, 61, 0,189, 0,207, 91,212,123, 80, +254,255, 3,224, 39, 95,159,125,213,170, 85,125,223,121,231,157, 82, 0, 47,118,235,214,173,208, 78, 80, 18,239, 87,221,179,187, + 1,174, 95,181,216, 97,249,175, 95,181,216,113,237,190, 19,128,251,141, 7,133, 4, 76,155, 54,141,190,247,222,123,181, 92,129, +190, 40,255,198,180,254, 1,184,181,254, 89,171, 95, 36, 18,161,176,176,176, 73,149,191,179,245,239, 28,208,165, 86,171,157,189, + 0,247, 61, 96, 51, 43, 43, 11,175,188,242,138, 1, 64, 64, 96, 96, 32,222,127,255,125,136, 68, 34,199,245, 25, 51,102, 0, 0, +130,131,131, 49,113,226, 68, 28, 57,114,228,224,125, 44, 39,113,246, 0,212, 71, 2, 34, 34, 34, 92,183,138,117, 75, 6,140, 70, + 35,180, 90, 45,170,170,170, 16, 20, 20, 4, 63, 63, 63,152,205,102, 80, 74, 97,177, 88, 96, 52, 26, 97, 50,153, 96,177, 88,156, + 9,253,157,250, 10,153,155,155, 91, 35, 0,144,157, 14,112,246, 8, 56, 95,111, 40,124, 8, 8,148,212,117,193, 57, 38,192, 27, + 50,176,124,249,114, 76,152, 48, 1, 93,187,118, 69, 64, 64, 0,164, 82, 41,180, 90, 45, 2, 3, 3,161,211,233,176, 97,195, 6, + 48,140,215, 14,217, 78, 51,103,206,188,186, 96,193, 2,108,223,190, 29,207, 61,247, 28, 0,180, 71, 19,108, 65, 91,151, 39, 32, + 40, 40, 72, 54,101,202, 20, 53, 0,108,222,188, 89, 54,117,234, 84,111,218,194, 8, 96, 26,128, 31,234, 33, 1,206, 83,109,143, + 0,232, 7, 32,195, 71,229,255, 24,128, 23, 26,104,236,246,202,200,200,232,116,229,202, 21,185, 93,249,179, 59,104, 54, 9, 88, +197, 95, 23,254,144,153, 0, 27,170,252, 89,248,106,165, 59, 15,200, 31,125,244, 81,131,149, 63,139, 65, 3, 7,224,192, 65, 53, + 54, 29, 12,112,144,130, 99, 87, 30,107,208, 51, 70, 68, 68, 32, 55, 55, 23, 73, 73, 73,232,220,185, 51, 54,110,220,232,181,213, +165, 84, 38, 74,157, 60, 56,141,162,252,217,249,248,162,162, 34,153,235,181,145, 35, 71,202,146,146,146, 26, 45, 22, 0,176,185, +255,185,122,159,116, 58,221, 5,251, 75,109,221,188,121, 51, 54,108,216, 0, 0,248,241,199, 31,161,211,233,216,219,204,151, 46, + 93, 66,155, 54,109,154,228, 29,112,137,246,175, 69,206,184,238, 19,159,155,155,123,212, 98,177, 64,167,211,225,206,157, 59,208, +233,116, 48, 24, 12, 48, 24, 12,168,168,168, 64, 89, 89, 25, 74, 75, 75, 81, 89, 89,137,234,234,106,118,110, 55,173, 62,153,174, +202,221, 93, 32,169,235,170, 0,174,176,187,250,169,155,115,222, 32,160,177,219, 99,227,198,141,144, 74,165, 8, 8, 8,192,249, +243,231,161,209,104, 16, 24, 24,136,191,253,237,111, 56,114,228, 8,150, 44, 89,226, 45, 1,104, 63,115,230,204,235, 83,167, 78, +197, 79, 63,253,196, 42,255,142, 15,138,242,183,141, 11, 74, 41,171,252, 1, 96,202,148, 41,234,139, 23, 47,122, 59,181,202,146, + 0,216, 73,128,235,116,192,101,167,239,121, 0,206, 52, 64,249,255,143,125,220,242,217,250, 39,132, 92,140,140,140, 76, 11, 11, + 11, 75, 34,132, 4, 17, 66,154,217,203,221, 36,112, 13, 2,108, 18, 2,112, 63,130, 0, 27, 91,249,219, 21,119, 99, 88,110,228, +163,143, 62,106,144,242,127,241,141,189, 24, 52,240,174,235,102,235, 79,219, 28, 30,129, 3, 7,213, 62,145, 0,133, 66, 1,251, +210, 48, 24, 12, 6,236,223,191, 31,203,151,219, 86, 20,156, 57,115, 6,102,179,217, 11, 89,113, 26,192, 22,248, 71, 41,101,131, + 1, 27,164,252, 89,235,191, 62, 55,127, 99,197, 2,176, 68, 66, 42,149,202, 60,221, 27, 22, 22, 54, 54, 33, 33, 33, 34, 61, 61, + 93,248,221,119,223, 49, 23, 47, 94,196,140, 25, 51,204,108, 61, 38, 36, 36, 32, 61, 61, 29,223,125,247,157,240,218,181,107,136, +140,140,244, 40,243, 94,196, 0,176,150,180, 11, 9,160, 44,233,227,138,240,240,240, 76,179,217, 12,163,209,136,219,183,111,163, +176,176, 16,183,110,221,194,173, 91,183,112,251,246,109,104,181, 90, 24, 12, 6, 84, 87, 87,163,180,180,148,253,159,249,245,201, +100, 3,253,156, 73,104, 61,101,247, 74,249,179, 57, 0, 92,207, 53,164,127,184, 89, 13,224, 32,121, 92,101,100,103,103,227,210, +165, 75, 48, 24, 12,136,138,138, 66,255,254,253,177,113,227, 70,188,251,238,187, 16,139,197, 16, 8, 4, 16, 10, 57, 59,100, 59, +205,156, 57,243,230,212,169, 83,145,145,145,129, 15, 62,248,128,181,126,111,226, 1, 89,198,156,153,153, 73,217, 57,255,147, 39, + 79, 98,253,250,245, 50, 0,232,217,179, 39,156, 3, 3, 27, 72, 2,230,195,230, 94,159, 4, 96, 14,128, 72,248,230,254,191, 0, + 96,171,253,127, 76,107, 8, 1,176,227, 52,128,117, 0,158, 1,240, 60,128,205,247,179,238,217, 72,127,119, 65,128,174,171, 0, +238,215, 20, 0,245,242,252, 31, 69,249, 59, 72, 64, 3,166, 18,106, 40,127,119,199, 7, 14,122, 63,190, 57, 15,186, 1, 1, 1, +232,221,187,102,220, 75,122,122,186, 87,242, 38, 77,154,132,164,164, 36,176, 68, 0, 0,181,159,243,122,221,249,198,141, 27,213, + 0,176,103,207, 30,153,187,136,245,148,148, 20,205,213,171, 87,221, 90,143,238, 80, 87,210, 31,150,104,164,164,164, 32, 58, 58, + 90,166, 86,171, 61,246,157,244,244,244,253, 43, 86,172, 24,157,154,154,122, 32, 60, 60, 28, 89, 89, 89,208,233,116,194,224,224, + 96,204,156, 57, 19, 90,173,246, 90,106,106,106,151,240,240,112,164,166,166,146,184,184, 56, 79,228,184,214,156,127, 3, 98, 0, +106,188, 91,108,190, 4,123,238, 4,135,103,198,105,254,223, 99,123, 12, 29, 58,244, 93,141, 70, 51,207, 98,177,160,172,172, 12, + 38,147,201, 49,239, 95, 85, 85, 5, 74, 41, 40,165,184,116,233, 18,140, 70, 35, 98, 98, 98, 94, 82, 40, 20,102,119, 73, 71,234, + 66, 76, 76, 12, 98, 98, 98,106, 4,253,121, 59, 5,224,172,232,237, 46,127,234,220, 63,236,171, 2, 26,123, 92,227, 60,126,178, + 75,253,222,124,243, 77,104, 52, 26,200,100, 50,100,103,103,163, 89,179,102,200,203,203,131, 64, 32,224,234, 1, 32, 51,103,206, +188, 62,125,250,116, 28, 62,124, 24,127,251,219,223, 0, 32, 20,192, 13,220,205,255,208,228,150, 63, 59,190,228,230,230, 34, 34, + 34,130,237,103,178,216,216, 88,117, 88, 88, 24, 46, 93,186, 68, 57, 6, 2, 58,147,128,169,118, 2,240, 35,128,163, 0, 20, 0, +164, 0, 10,193,163,241, 58,112, 99,103,227,115, 23,240,179,106,213,170, 58,207, 55,165,242,183,175, 0,184, 23, 44,218,103,153, +215,243, 61,247,111,127,127,239,188,150,158,130,196,188, 69, 76, 76,140, 44, 41, 41, 73, 51,121,242,100,186,101,203,150, 26, 68, +192,133,240,113,174,135,184,184, 56,143,204,198,203,196, 64,212,133, 72,216, 70, 37,153,140,147,242,119, 26,204, 29,243,250,145, +145,145,127, 73, 72, 72,248,126,226,196,137,184,116,233, 18,174, 93,187,214,101,233,210,165,178,184,184, 56, 78,242,238, 81, 30, +128, 26,245, 92,135,226,227,148, 49, 80,161, 80,232, 19, 19, 19,151,237,222,189,251,239,102,179, 25, 37, 37, 37,142, 24, 0, 0, +184,125,251, 54, 74, 74, 74, 64, 41,101,173,118,175,180, 44, 59,255, 31, 17, 17,225,136, 96,103,207,115, 37, 1,110,172,252, 90, +211, 80,247, 64,249,123, 13,150, 4, 44, 94,188, 24, 41, 41, 41,152, 56,113, 34, 86,172, 88,129,183,222,122, 11, 66,161, 16, 18, +137,196,227, 24, 66, 41,181,206,154, 53, 11,223,127,255, 61,190,253,246, 91, 0,232,108,202,132,133,197, 0, 0, 32, 0, 73, 68, + 65, 84, 87,254,141,110, 80, 53, 4, 5, 5, 5,216,181,107, 87,141, 44,142,246,239,178, 81,163, 70,169,125, 92,242,104,177,147, +128,157,118,235,127, 40,175,252,235,134,187, 32, 64, 78, 4,192,155, 68, 28,190, 42,236,198, 70, 99, 40,255,134, 42,234,123,129, +249,243,231,203, 46, 94,188,216,168, 50,237, 46,210, 70, 93, 74,199, 42, 60,251,218,122,214, 43, 64, 9, 33,176, 90,173,216,186, +117, 43,103, 18,240,246,219,111,179,229,172, 21, 3,192, 48, 12,172, 86, 43,222,121,231, 29, 53, 87,229, 89,159,188,148,148, 20, +141,115, 86, 68, 31,250,221,127, 86,172, 88,113, 59, 53, 53,117, 15, 87,171,255, 62,120,219,136,171,183,167, 14,194,199,137, 4, +196,197,197,125,168, 84, 42,147,126,248,225,135,115, 98,177, 24,236,170, 0,171,213,138,150, 45, 91, 66,167,211, 65, 46,151, 35, + 38, 38, 38, 64,161, 80,120, 92,224,205,142, 47,206,193,127, 39, 78,156, 64, 76, 76, 76,141,241,196,211, 56, 20, 31, 31, 79,115, +115,115,101,174, 46,126, 95,211, 0, 59,195, 77,128,159, 25,128,121,205,154, 53, 18,187, 53,202, 56,125,188, 34, 1,206,137,127, +230,204,153,227,248, 94, 86, 86,230,113,108, 34,132,144,153, 51,103,210,239,190,251,238,121, 0,191, 60,136,138,199,174,232,137, +183,215,184,144,118, 23,220,124, 24,198,240,251, 13,118, 21,128, 59,197,207,105, 21, 64, 99, 43,245,186,228, 61, 40,228,225, 65, +238, 56,159,124,242,137,166,177,101,186,172,145,190,103,112,113,255,115,125,169,185,230, 66, 39, 94, 60,239, 61,125,214, 37, 75, +150,236,109, 72,125,142, 27, 55,174,198,178,216,167,159,126,186,134,103,192,203,185,127,226,165,183,135, 83,185, 21, 10,197,121, +165, 82,217,108,223,190,125, 31,231,229,229,205,171,172,172,132,197, 98,193,128, 1, 3, 48,120,240,224,132,152,152,152,120, 46, +202, 31, 0,142, 29, 59,230,248, 30, 29, 29, 93,227,188,235,177,135,113,133, 56, 19, 90,150, 76,216,227, 0,124,106,247,201,147, + 39,215,117, 73,232, 52, 94,138,239,213,184,226,193, 83, 97, 5,128,111,191,253,150,223, 48,133, 7,103, 18, 80,151,242,175,139, + 0, 52,118,231,226, 59, 43, 15,226, 37,179,255,211,213,141,179,194,191, 7,211, 2,141,242, 14, 42, 20, 10, 61,108,174,215,249, +236,185, 11, 23, 46,112, 81, 92, 14,244,237,219,183,209,199, 3,119,132,214, 87,151,255,189, 38,139, 60,120,253,113, 63, 73,128, +199,202,245,117, 31, 97, 30, 60,120,240,224,193,131,199,195, 11,134,175, 2, 30, 60,120,240,224,193,131, 39, 0, 60,120,240,224, +193,131, 7, 15,158, 0,240,224,193,131, 7,143,135, 16,102,120,177, 93, 49,143, 63, 39,132,124, 21,240,224,193,131, 7, 63,182, +243,248,147,119,146, 83,167, 78,249, 28,113,233, 46,152,208,131,188,122,215, 31,251, 32,175,177,203,199,203,227,229,253,169,229, +253,246,238, 53,159, 7,150,129, 31,119,193,189,150,119, 98,137,239,242, 34, 86,212,150,199,214,159, 82,169,148,154, 76, 38, 92, +185,114, 69,109, 52, 26, 33, 20, 10,145,159,159,143,151,130,186, 98,111,102, 38, 42, 31,239,140,161, 67,135,202, 4, 2, 1,187, +174,189,201,218, 87,169, 84, 62, 6,160,237,185,115,231,118,117,236,216,145,209,106,181,146,142, 29, 59, 46,247,247,247, 95,167, + 80, 40,110, 0, 64, 98, 98, 34,147,152,152,104,169, 75, 94, 98, 98, 98,115,187,183,192, 16, 23, 23, 71, 1, 96,233, 95,159,252, + 74,241,100,222,204, 77,153,225, 87,132,109,199, 14,109,214,188, 69, 5, 0, 74, 41, 21, 2, 8, 78, 76, 76,188,206,191,111, 15, +182,188,123,205, 18,185,110,250,226,109, 10, 92,175, 83,230,174,138,122, 74, 42, 12, 9, 82,231,100, 93,150, 61,234,215, 12,139, +206, 30,210, 60, 72, 44,171,158,124,228,252, 18,151, 38,198,132, 9, 19,164,187,119,239, 86, 39,188,107, 59,254,249,240,147, 56, +116,232, 16,167,118,249,203,140, 87,165, 12, 33,234, 75, 23, 47, 66,167,211,161, 75,151, 46,104,214,188, 57,182, 37,109,229,220, +174,147, 38, 77,170,241,226, 38, 37, 37,213,187,151,130, 61,187,162, 79,253,134,221,168,137, 82,218,176,126, 39,215,214,124, 85, + 85, 33,190,203,138, 88, 3,132,189,106,251,158,187, 1, 56,177,168,225,141, 58,233, 78,205,242, 37,181,230,244, 51,165, 82, 73, +245,122,189,108,219,182,109,234,220,220, 92,200, 69,173,208,190,115, 27, 84,233, 43,225,111, 48, 99,248, 91,175, 99,228,196, 41, +216,249, 77, 34,118, 28, 56,160, 30, 59,118,172,236, 1,232,194, 89, 22,139,165, 67,110,110,174,181,127,255,254,226,240,240,112, +156, 60,121,242,221,170,170,170, 9, 74,165, 50, 70,161, 80,104,227,226,226,172,245, 45, 9,139,139,139, 43,119, 62,254,226,139, + 47,152, 61,255,137,239,209,105,214, 64,188, 51,164, 79,155, 99,251,254,189,101,235, 25,233,169, 30,125, 71,173, 32,132,104, 21, + 10, 69,254,128, 1, 3,172,118,210,192,123, 26,254,100,110, 34,111,153, 6,167,108, 99,190, 40,255, 47,163,159,149, 70,181,233, +164, 38,160,200,174, 40, 65,135,142, 93,213, 38,171, 5, 75,250, 13, 67, 81,151, 54,178,111,118,254,194,137, 8,196, 78, 5,237, +213,157, 61, 18, 96,219, 62, 43, 14, 31,167,136,157, 10,244,234, 14, 44,250,168, 97,138,155,221,160,164,161,217,201,220,145,137, +198,146,219, 16, 80, 74, 41,150, 17,144, 15,235,189, 7, 88, 70, 48,249,130,252,129, 89,107,125, 87,249, 83,187,242, 31,137, 35, + 71,142,112,250,109,218,177, 23,169,217,212, 11, 42,213, 77,164,167,217, 18,214,100, 93,188, 4, 0,216,181,139,208, 75,151, 39, +201, 22,205,231,214, 46, 99,198,140,177,238,223,191,159, 73, 74, 74,194,193,131, 7,107, 36,195,113,133,143, 41, 84, 29,205,228, +166, 35, 83,234, 3,161, 96,211,133, 55, 56,103, 65,216,171,142,141,118,214,172, 89,211, 56, 4,192,169,158,236,187, 19,114, 66, + 78, 78, 14, 52, 91,182,168, 63,140,153,140, 1,211,230, 64,220, 46, 24, 16,218,147,253, 89, 41, 96, 21,193, 90, 77, 49,254,213, + 88,228,125,186, 18, 71,143, 30, 85, 43,149,202, 26,233,110,155, 0, 22,134, 97,218,182,110,221, 26, 26,141, 70,216,191,127,127, + 12, 25, 50,132, 41, 44, 44, 28,120,250,244,233,179, 74,165,114,144, 66,161, 40,180, 43,107,134, 99,221, 53, 27, 61,106, 76,216, +138,213,219,153,248, 25,103, 90, 12, 29, 55, 91, 54, 52, 50,249,201,183, 62,203,127, 38,252,137, 87, 34, 0,148,195, 22, 99,192, +212,165, 31,156, 19, 91,121,234, 71, 13, 38,164, 60, 92, 61, 9,158,188, 5,142,239,222, 4, 1, 82,182,113, 7,188,210, 15, 74, +165,146,241, 66, 17,186,110, 82, 65, 35, 34, 34, 16, 17, 17,225,115,158,120,229,203,177,210,151, 7, 70,169,123,118, 8, 69,247, + 14,161,120,188, 77, 71,132,250, 55,131,196, 10,116,243,107,134,160,236, 27,234,153,207, 60, 39,229, 34,171, 87,119,224, 98, 14, +131, 11,151, 3,112, 54,167, 5,158, 31, 19,136,213,239, 9,208,171, 59,105, 52, 35,189,161, 74,154,221,230, 52, 44, 44, 76,157, +153,153,137,204,204, 76,252,253, 63,167,241,232,248,120, 53, 0,234,229,150,167,148,235, 71, 46,151,123,126,139,151,217,234, 40, + 34, 34, 2,114,185,220,237,135,189,199, 91, 76,236,255,129,212,185, 60, 19,250, 45,147, 54, 70,123, 76,152, 48, 65,186,107,215, + 46, 53, 33, 4,111,126, 76,240,243,225,145, 56,124,248, 48,167,223,110,217, 50, 77, 58, 52, 50, 14, 35, 70,220,196,167,159,126, + 90,227,218,203, 47, 3,227,199, 3, 11,231, 37,169, 87,127,194,173, 77, 88,229,175,209,104,192, 48, 12,166, 76,153, 2,129, 64, +208, 16,101, 95,203,242,119, 55, 32, 19,226,155,242,111, 52, 68,172, 6, 0,172, 93,187, 22,107,215,174,181,157, 27,148,208,100, +197, 57,120,240, 32,190,120, 33, 22,131,159,147, 67,216, 42, 4, 68, 36, 0, 35, 18, 64, 32, 17,131,241,151, 0,160,160, 22, 51, +168,209,136,215, 95,157,131,178, 3,153,200,201,201, 81, 43,149, 74, 41,154, 14, 36, 51, 51, 51,170,115,231,206, 98,171,213,138, +148,148, 20,108,223,190, 29, 65, 65, 65,136,138,138,234,176,121,243,230,127,216,239,227, 20, 16,168, 84, 42, 5, 71, 14,252,247, +255, 30, 9,200,111,167, 47, 23,224,229,101, 21,248,252,223,159, 0,205,251, 10,255, 29,223,182, 91,206,201, 31, 94,118,210, 29, + 76, 29,196,144, 56, 41,117, 98, 59, 77, 28,223,157,207,223,163,189, 48,120, 52,178, 7,192,209, 74,155,246,252, 80,210,253,209, +238, 45, 21, 31,190,110,245, 82, 59,146,136,136, 8,202,166, 37,117, 74, 79, 74,189, 77,219,169,124,225, 85,233, 83,157, 31, 85, +139,171,204,240,255,247,219, 48, 27,140,144,188,249, 17,130,196, 18, 84,137, 42,161,175,170,132, 63, 8,170,175, 23,169,255,249, +207,127,202,222,121,231,157,122,149,239,197, 28, 96,253,143, 86, 0, 6,251, 7,120,242, 9, 6, 47,140, 37, 53,222,155,216,169, +192,122, 31,118,118,182, 91,233,212, 87,107,157,181,250, 51, 51, 51,239,214,193, 17, 19, 42,141,122, 0,192,232,248,253, 80,173, + 26,227,149,151, 33,103,101, 14, 68, 36,251,110, 71, 32, 5, 32,173,123, 57, 29, 23,161,205,255,190,192,173, 97, 63,116,228,155, + 39,117,165,157, 37,118,210,119,226, 4,183,118, 86, 60,251,185,116,253,246,191,170,119,156,254, 0, 43, 22,252,140, 72,105, 56, + 54,125,121, 24, 95,239,179,109, 16, 52,251, 47, 31,200,214,253,231, 3,159, 72, 85,194,187,160,192, 46,168,190, 59, 7, 74, 41, +154,183,125, 28,135, 15, 31,134,125,223,130,122,203,183,250, 19,185, 84, 46,111,165, 6,190, 0,240, 51,210,211,129,200,200,187, +215,255,241,143,187,223, 23,206, 75, 82,251, 7, 44,149,205,126,125,121,189,229,100,149,127,116,116, 52,172, 86, 43, 62,255,252, +243, 70,117,208, 0,128,213,106,173,173,252,105,253,239, 47, 51, 89, 87,227,229,103,135,112,171,220,205,125, 14, 63,159,237, 75, +255,254,181,231,216,153, 41,186, 26, 52,223,106,157,129, 5, 11, 22, 56,174, 47, 88,176, 0,107,215,174, 5,211, 99,214,221,255, +106,191,223,157, 60,225, 20,247,229,115,221,201, 90, 56,133, 91,249,170,170,170,208,190, 75, 87,192,106, 4,227, 7, 16,161, 0, +230,242, 82, 84,229, 94,193,237,252, 2,116, 26, 38, 5, 17,183, 4, 49, 25, 1, 1,131, 85,179,223,194,152,245, 31, 96,209,162, + 69,141, 61, 46,115,210,138, 74,165,146, 80, 74, 91, 86, 86, 86, 14, 11, 9, 9,193,165, 75,151, 96,181, 90,113,229,202, 21,108, +216,176, 1,189,123,247, 70,104,104,232, 43, 0, 94,119, 81,214,117,122, 3, 40,165,173,187, 48,233,210, 14,143,140, 19,151,164, +156, 65,169,206, 15,223,239, 52, 99,247,177,255, 96,158,220, 95, 40, 52, 88, 35,236, 49, 5,110, 9, 0,175,208,155, 30,117, 77, +247,184,243, 12, 48, 28, 58, 34, 59,111, 8,233,146,145, 88,159,162,108,153,115, 57, 7,167,190, 59, 3,165, 82,233,149,245,192, + 42, 7,131,225, 7, 24, 12,155,160,213,198,176,214,177, 87, 15, 56,196,175,133,186,109,149, 5,146,101,115, 96,185,163,133,249, +242, 85, 8,197, 34, 4, 16, 1, 2,137, 0,129, 2, 33, 66, 68, 18,208,114, 61,110, 30, 60,234,113,167, 23,119, 74,253,240,113, +171,227, 61, 92,253, 30, 65,194, 82, 98,247, 8,248,102,253,219,149,179, 26, 62,164,192,117, 85,254, 16, 10,144,123,179, 2, 55, +139,141, 72, 63,111,219, 64,164,199,140, 29,240,102,223,115, 17,201,134,144, 20,192,143, 57,109,251,219,150, 32,248,229, 27, 8, +154,122, 22,126,207, 47, 3, 66, 3,189,243,228,114,216,185,205,155, 45, 94,149,219,223, 80, 15, 13,121, 15, 39, 14, 93,193,255, + 76,154,136,208,214, 61, 49,231,175,175,225,179,165,251, 48, 52,120, 41,214,253,231,239, 62,239,224, 67, 8, 16,183,232,172,195, + 98, 25, 49, 98,132, 93, 33, 89, 61, 54,240,180,169, 34, 53,112, 16,192,207, 40,185,213, 12, 61, 30,105,134,175,190,178, 89,254, +203,150, 1, 97, 97, 54, 17, 37,183,154,161,228, 86, 51, 12,232,119, 65,237, 73,249, 31, 60,120, 16, 86,171,213,161,164, 55,111, +222, 12,139,197,226,149,251,186, 30, 15, 79, 45,229,111,123,159, 61,147,119, 10,144,117, 74,165,140,181,212,172,148,194,106,173, +221,125,217,243, 86, 74,177, 46, 49, 81,150,104,251,141,219,255, 73, 1, 66, 41, 72, 98,162, 82, 70, 41,197, 39,159,124,226,184, +206,126, 79, 76, 76,148, 81,106,187,143, 2,164, 46,121,137, 74, 37,236,215,136,197, 98,129,217, 98,129,217, 92,187,206,216,243, +102,139, 5, 95,174, 91, 39, 91,151,152, 88, 71,249, 40,132,205,155, 3, 34, 1, 44,134, 10,156,219,154,132,191,189,166, 64,167, + 55, 20, 24,184,242, 67, 92,249,237, 36, 4,254, 18,152,138,111,225,204, 49, 13,118, 28,222,139,210,194, 66,156, 61,123,182,209, + 54,214,138,138,138,226,228, 77, 80, 42,149, 65,148,210, 33,153,153,153,191,188,255,254,251,125,206,157, 59, 39, 54, 26,141, 16, + 8, 4,104,222,188, 57,204,102, 51, 50, 50, 50, 64, 8, 17,123, 26,235, 19, 19, 19, 3,149, 74,165,127, 98, 98, 98,104, 73,126, +234,111,127,255,191,188,144,223, 15,239,132, 86,207, 64, 44,100,208, 41, 88,130,210, 59, 98, 40,254,105,198,153, 59, 3, 3, 61, +233, 13,123,172, 9,117,238,139,118, 98, 80,235, 60,175,174,239, 15, 88,229,239, 74, 14, 24, 79, 44,148,221,239,187,134,155,115, +220, 52,239,189,125,118,119,191,193,176, 9, 0, 65, 85,213,183,144, 28,191, 10,195,222, 71,107, 92,247,132,119, 6, 69, 75,131, +180,229,176,138,133, 48,158, 56,135,234, 11,185,168,218,119, 24,168,172,134,152, 82, 4, 64, 0, 33, 8,170,173,102,104,171,171, +240,229,254,157, 30,101,174,126,207,102,221, 59,195,118,204,154, 43, 20,151, 46, 83, 44,250,200,247,254,234,146,175,156,179,203, + 94, 46,151, 59,246,214,102,241,210,218,124, 28, 56,161, 67,222,173, 42, 0, 64,222,173, 42,100,231, 87, 2, 49, 91,216,141, 81, + 60,187,126, 72,129,141, 8,148,159, 65, 96,224,101,248, 73,202, 97,181,106, 97, 50,157,128, 64, 16, 6,163,190,184,201, 58,235, +228,113,127,149, 2, 4,159,255, 60, 11,205,152, 71, 0, 0, 55, 47, 81, 12,154, 40,192, 95,151,143,193,136, 49,125, 0, 80,251, +125,222, 33, 58, 58,154,190,249, 49, 65,179, 54,253, 64, 1,140,123, 97, 54,231,121,255,117, 95, 45,165,109,219,254, 14,224, 44, + 74,110, 53, 67,121,177,109, 11,230,254,253,129, 30, 61,128, 87, 94,185,171,252,203,139,253, 81, 94,236,143,144,128,155,245,202, +156, 52,105, 18,100, 50, 25, 70,141, 26, 85,195,245,239,252,241,101, 74,192,221,123,235, 11,226,156,230,183, 9, 33,142, 79, 93, +231,226, 20, 10,141, 34,214,243,156,120,108,108,172,218,157,229,188, 96,193, 2,196,198,198,214, 80,168,117,201,251, 89,169,196, +217,179,103, 29, 46,120,231, 58, 99,225,122,110,118, 92,156, 38, 78,225,126,171,102, 49,165, 96, 2,252, 96, 42,188, 6,229,210, +165,216,160, 47,129, 46,122,168,227,250, 55,255,217,128, 15,222,122, 13,225,139, 94,194,135,103, 14, 98,139,238, 10,198, 60,251, + 44,194,194,194,188, 14, 6,180, 43,122, 26, 25, 25, 89,163, 15, 31, 59,118, 76, 93,223,118,236, 74,165, 82,164, 84, 42, 7,159, + 57,115, 38, 47, 37, 37, 69,243,230,155,111, 14,253,252,243,207, 37, 21, 21, 21,142,109,154,171,170,170,208,172, 89,179,236,201, +147, 39,247, 28, 62,124,248, 35, 30,136, 4, 67, 8,233,114, 38,109,107, 81,214,222, 69, 87, 23, 45, 73,232,176, 99, 89, 71, 92, + 40, 16,162,180, 66, 0, 43, 1,138, 43,140,160,173,186, 87, 45,124,247,163, 62,207, 60,255,151,215,225, 33,158,192,238,254,175, +225,234,247,240,157, 71, 19, 40,255,186,166, 0, 40, 87, 87,142, 66,161,240,116, 19,117,181,254,109,174,182,111,235,242, 14,120, +252,167,125, 90,183, 83,107,169, 9,226, 98, 45, 36, 63, 31, 4, 17, 50, 64,149, 17,180, 92, 15, 98, 54, 67, 4,192, 66,173,168, +178,152, 81,110, 54, 2, 86,207, 86, 20, 27,228,183,250,189, 58, 57, 45,108, 65,130,141, 66, 88,137, 83, 32,159,199, 23,160,150, +245, 15,224,191,111,116,168,113, 60,120,113, 46, 68,244, 14, 76,164, 53, 84, 42,213, 65,174, 47,150,164, 66,141,144, 15,255,131, +219,111,198,225,142,214, 31, 29, 77,231, 96,177,228, 2, 0,174,157,106,223,100, 29,118,203,158,207,212,175,141, 85,214, 80,254, + 44,134, 6, 47,197,176, 62,147, 16, 21,114, 14, 91,246, 44, 87,123, 51,136,140, 28, 57,146,166,164,164,160,184,120, 52, 90,181, + 58,128,102,173,251,130, 82, 10,134, 97, 56, 5, 34,229,229, 1,185,185,103,237, 71, 21,128,164, 2, 90, 61, 48,100,136,237, 76, +118, 54,240,197, 23, 64,121, 25,160,175, 0, 42,244, 64, 96,112, 25,167,178,213,101,237,231,228,228, 0, 0, 62,254,248, 99, 0, + 64,120,120,248,189,112, 51,115,170,195,249,243,231,215,176,216, 93, 21, 55,103,239,142, 93, 97, 59,230,253,157,240,201, 39,159, + 96,237,218,181, 80, 42,149, 82, 79,193,117,179, 66,195,145,117,238, 60, 10,130,131,213, 12,195, 96,222,188,121,181, 98, 50,188, + 41,223,147,213, 45, 65,173, 21,120,237,227,247,208,111,210, 36, 40, 63,254, 24, 12,115, 87,207, 41,179,207,222,245, 16, 30, 62, +140,253,251,247,227,202,149, 43, 50,133, 66,161,225,178,241,138,179,242, 79, 75, 75, 83, 3, 64, 70, 70,134, 58, 42, 42, 74,150, +150,150,166,137,140,140,148,166,167,167, 35, 42, 42, 74, 86, 89, 89,169,174, 99,204, 53,205,152, 49,163,223,180,105,211, 90,116, +235,214, 13,187,119,239, 54,148,150,150, 10, 43, 43, 43,109,222, 14,251,252,199,182,109,219,194,199,141, 27,231,175, 80, 40, 42, +221,136, 97,156,148, 53,147,123,233,212,218, 15,222,153,217,172, 85, 15, 21,126, 83,189,138,223,175, 19,228,221, 18, 2,148, 65, +181,209, 4, 45,109, 85, 48,119,214,156,161,132,144, 2,118,204,247,230,121,221,120, 8,248,169,130, 7, 4,117,178,184,148,148, +148, 90,159,146, 2, 29, 74, 10,116, 94,181, 53,251,185,107,197,218, 26, 94,114,252, 42,252,206, 22, 64,152,175, 99, 61, 0, 53, +238,175, 75,224,249,252, 60, 28,191,115, 3,231,174,228,226,214,149,171, 40,187,154,143,242,235, 5, 48, 27, 42, 97, 50,153, 81, +110, 49,194, 96, 49,163,154, 90, 96, 1, 5, 37,220, 73,166,115,180,255,197, 28,219,241,162,143, 88,203,159, 65,194,123,141,179, +226,197,219, 56,128,120,149, 14,241, 42, 93, 13,133,207,126,162,226, 51, 32,162,119, 32,164, 58,252,119,150,197,204,121, 10,224, +214,113, 88,244,205, 0, 0,255, 22, 6,161,250,214, 53,100,254,179, 3,178,126,152,128,227,255, 28,128,236, 75, 55,154,180, 99, +246, 31, 18, 6,189, 14,208,235, 0,131,255,121, 0,192, 79,127, 55,225,157, 5,203, 0, 0,195, 99,250,120,109,249,191, 48,242, + 16,180,218, 24, 4, 31, 59,128, 53,239,217, 72,238,200,145, 35, 57,185,254, 1, 96,197, 63,150,147,238,221, 1,231,207,197,139, + 54,247, 63, 0,244,232, 65,177,118, 45,208,165,103, 5, 30, 27,122, 27, 67, 70,223,198,243, 47,153, 56,151,209,217,226,103,143, +195,195,195, 17, 30, 30,142,121,243,230, 53,118, 21,123,124,215,156,177,126,253,122,153, 59,133,237,240,162,173, 94,141,245,235, +215,115,178,132, 95,127,253,117, 53, 27,249,239, 14, 11, 23, 46,172,229, 5,112,135, 67,231,243, 48,115,214, 92,156,216,180, 9, + 75,150, 44,169,147,156,176,229, 59,112,224, 0,234, 11,216, 27,249,216, 35,248,246,155, 47, 16,241,242,203, 88,177, 98, 5,234, + 43,227,130, 5, 11, 48,122,244,104,248,178, 2, 32, 45, 45, 77,237, 20, 44,135, 99,199,142,169, 1, 32, 61, 61, 93, 77, 8, 65, + 90, 90, 90,189, 50, 13, 6, 67,203,157, 59,119,226,252,249,243,200,206,206, 14,208,235,245, 48,153,108,253,204,104, 52, 98,207, +158, 61,196, 78, 22, 42, 57, 20,199, 90, 93, 93, 45, 62,177,245,101, 84,101,125,134,189, 41, 57,184,114, 83,128, 50, 61, 3, 11, + 5, 10,244,254,152,187,232,189,168,184,184,184,124, 14, 6,159,131, 87,176, 75, 78, 57, 78, 7,240,104, 2,235,191, 46, 2, 64, + 0, 16,169, 84, 10,169, 84,138,211,167, 79, 59, 62,185,199,175,161,180,178, 20,173,134,120,191,238,247,196,137, 19, 4, 0, 2, + 2,166, 65,114,252, 42, 68,215,138, 65, 9,129,120, 86,113,141,235, 30, 21,151, 88, 0, 11, 5,242,245, 37,200, 43,213,226,118, +153, 14,165, 85, 85,208, 25, 43,113,187,186, 18, 55,171, 12, 40,168,170,128,214, 84, 13,157,213, 4,163,213,115,240,235,147, 79, +184, 25,240,156,226, 2, 94,155,210, 12, 20, 98, 80,175,183, 1,191, 27,189,239,230, 28,103,228,221,170,194,129, 19, 58, 12, 94, +156, 91,179, 46,232, 29,248, 89,175,193,207,122, 13, 31, 60, 37, 68, 94, 94,158,145,171,204,173, 87,172,104,147,144,232, 56,190, +162,183, 32, 63,167, 0,151, 82,207,161,240,106, 73,147,119,220, 77, 95,166, 0, 0,202,138, 40, 2, 42, 31,131,116,150, 16,255, +179, 76,228,248, 36,108,121, 25,132,187,241, 79,159, 27,145,130, 87, 23,217,148, 63, 33, 4,191,164,218,154,128,235,154,127, 22, +225,189,122,214, 44,231, 38,224,243,207,129,203,151,109,158,128,191,255,157, 58,220,239,148, 82, 4, 7, 7,123, 30,129,237,125, +148,157,247,255,248,227,143,145,147,147,131,172,172, 44,100,101,101, 33, 57, 57, 25,111,189,245, 22,242,242,242,154,172, 61, 88, + 69,231,206,146,158, 63,127, 62, 8, 33,156,149, 33, 33, 4,245,145,137,250,174, 57,227,176, 95, 9, 8,211, 12, 95,191,251, 17, +154,237, 76, 70,108,108, 44, 94,102,217, 24, 0, 69,143,190,152, 31, 49, 12, 1, 1, 1, 24, 57,114, 36,222,127,255,125, 36, 39, + 39,171, 87,172, 88,225,246,253,251,166, 32, 11, 55,251, 60,134,208,208, 80,153,213,106,173,151, 80,212,119,141,131,114,116,120, +156,162,162,162,100, 78,138, 18, 67,135, 14,149,121,240,158,140, 26, 57,114,100,139,188,188, 60, 28, 62,124, 24,143, 62,250, 40, +132, 66,161, 99,138, 35, 52, 52,148,235,116,132,213,254,127, 73,247, 94, 3,227,215,239,107,137,223,119, 47,195,147, 81,189, 17, + 40, 97, 16, 24, 96,129,191, 95, 53,158,126,110,178, 21,128,214,249,135,137,137,137,158,230,162, 28,171, 0, 56, 78, 7,240,120, +208, 60, 0, 0,136, 82,169,108, 62,127,254,124,204,159, 63, 31, 0,140,255,136,251, 7, 76, 69,102,248,251, 75,224, 75,227,201, +229,182,240,225,128,167, 46,131, 10, 24,188,255,147,193,217,250,231,132,128,208, 80,153,185, 89, 0,116,212,130,243,122, 29,206, +150, 22,227, 92,217, 29,156, 43,211,226,188, 94,139,203, 6, 29,138,171,171, 80, 97, 54,227,134, 65,239,248,159,245,225,133,177, + 4,171,223, 19, 96,245,123, 2, 80, 8, 64, 9,131,216,169, 4,175, 79, 21, 99,214,148, 54,232,222,189, 29,172, 16,121,253,200, +172,171,223,121, 94,190,158,164, 64,117,201,144,101,231,219,136,124,230, 74, 91, 16,221,222,183,131, 0, 0, 66,170,131,128,234, + 81,205,216, 34,154,181, 90,109,128, 92, 46,143,241,166,140, 17, 17, 17, 72, 78, 78,198,166, 10, 61, 42,141, 12, 94,253,241,107, + 20, 73,252, 81,105,108,186,109, 34, 38,246,255, 64,150,166,253, 8,155,190,223,226, 56,247,211,223, 77, 24, 26,188,212,113, 28, +251,204, 23, 50, 10, 78,235,135,233,154,165,192,140, 69,163,209,242, 88, 50,100,255,140, 6, 51, 1,208,104, 52, 62,245,225, 46, + 93,106, 70,143,143, 26, 5,180,108, 9,132,133, 1,145,253,155, 67, 34, 22, 64,192,220, 21, 43,241,247,247, 56, 32, 51, 12,227, +176,252,115,114,114, 28, 86, 63,251,249,240,195, 15,241,225,135, 31,226,198, 13,238, 94, 25,119,243,245, 53,175,123,111,125,173, + 95,191, 94,182,102,205, 26,183, 10,155,171,245,239,228,122,174, 21,167,192, 30, 91,173,220, 82,216, 27, 9,129,213, 80, 13, 81, +251, 46, 80, 44, 95,142, 25,129, 45,209, 82,147,230,184, 62,235, 47, 51,240,193,191,191, 70,246,234,255,226,111,253, 70, 97,114, +112, 55,236,223,190, 29,185,185,185,110,223,191,231,227, 20,232,211,183,175,204,106, 47, 19, 75,200,156,167,103,220,157,171, 11, +179,103,207,166,132, 16,202, 6,246,177,243,253,206, 74, 62, 45, 45, 77, 51,116,232, 80, 25,165, 20,236, 84,128,135,122, 75, 17, +137, 68,143, 62,255,252,243, 57,165,165,165,208,233,116,240,247,247, 71,155, 54,109,208,178,101, 75,180,108,217,210, 83,229, 89, + 93,136,157,197,207,207,207,240, 98,220,167,178, 13,199, 7,227,234,245, 50,180, 11, 18, 32,170, 39,193,227,221, 40, 2, 91,180, + 40, 1, 96,169, 71,111,240,251, 13, 60,164,214, 63,224, 97, 25,160, 66,161,168, 80, 42,149,126, 0, 2, 21, 10,133,131, 5,118, +138,238,232, 19,243,101,151,250,201,229,114, 42,158,229,136,252, 39, 78,243,255, 30, 7,228,119,119,109,209,124, 28,243, 28, 12, +230,106,148,233, 13,200, 49,153, 32,178,218,126, 92,106,170,130,149, 82, 80, 0,187,111, 93,129,222,108, 2, 0, 14, 3, 19,193, +162,143,106,246,113, 91, 60,128, 21, 22, 84,227,194,229,114,124,187,185,204,171,135,117, 86,244,118,151, 63,181,127,119, 40,118, + 46,171, 31,108,191, 85, 65, 52,250, 75, 0, 97, 40, 46,190, 27,156, 39,182,222,132,145,233,128,185,253,178,112,243,166,195,114, + 58,192,165,124,113, 63,173,175, 65,188, 84, 42, 21,216,210,252,120,230, 40, 98, 98, 98,154,172,227,238, 56,109, 91,222,151,154, +124, 14, 0, 48,172,143, 45, 51,222, 59, 11,150,225,232,185, 62,248,247,150,151,161,220, 57,135,243,252,255,171,139, 98, 16, 18, +146,108, 63,210,216,201, 82, 12, 40,181, 89, 99, 0, 69, 72, 72, 50, 39, 89,251,247,238,115,228,180,120,249,101, 64, 38, 35,184, +115, 61, 8,122,157, 4,149,101, 98,252,184,145, 96,254,124,138,107, 69,229,136,140, 26,138,148,131,106, 78, 86,177,197, 98,113, +204,247, 39, 39,219,202,234,172,240,139,138,138, 80, 84, 84,196, 89,255, 59, 41, 12,202, 48, 76, 45,165, 74, 41,136,183, 73,128, + 20, 10,133,230,245,215, 95,175, 17, 11,192,122, 4,188,113,133, 19, 39, 86, 98,117, 89, 86, 64, 8,247, 57, 59, 66, 8,204,229, +229, 16,181, 14,129, 32,160, 25,250,188, 56, 9, 31,142, 29,131,119,217,101,123, 3, 7,193, 82, 89, 5, 81,171,118,232, 55, 84, +138,174,157,186,225,211, 11,105,232,219,183,175,236,248,241,227,181, 72, 64,156, 66, 1,128,168, 1, 96, 78, 92,156, 99,233,160, +217, 69,217, 11,133, 2,128,222, 93,168, 88, 87,129,215,173, 91, 71, 0, 80,187,139,159,100,100,100,184,117,241,167,165,165,105, +184, 40,255,196,196, 68, 66, 8, 89,218,178,101,203, 62, 67,135, 14,237,126,241,226, 69,156, 60,121, 18, 22,139, 5,129,129,129, + 48, 24, 12, 69, 33, 33, 33, 87,189, 49,250,148, 74, 37,211,174, 93,187,253,207, 61,247, 92,187, 99, 71, 50,176, 86,181, 31, 45, +136, 24, 61,219, 85,227,242,157, 64,140,232,105,186, 2,192,117, 30,203, 82, 95,155, 56,103,156, 34,132, 56, 31,186,230,125,225, +209,196, 16,114,120,233,141, 0,140, 78,131, 10,205, 79,241,122,126,184,134,114,175, 67,241,113,206, 24, 88,166,213,201, 76, 1, + 18,117, 41, 99, 69, 97, 85, 5, 96, 50,193, 98, 95,215,116,161,162, 4, 5,134, 50, 80, 74, 97,207, 47,160,225, 82,188,216,169, + 4,235,127,188,219, 39, 47,230, 0,189,186,155, 33,128,190, 65,202,223,165,179,123,170,131, 58,189, 0, 42,213, 28, 53,144, 9, +173, 86,107,204,203,203, 19,174, 26, 3, 38,126,255, 72, 44,232,123,212, 97,133,113, 37, 21,238,188, 46,174,199,172, 18,226,106, +205, 97, 25,193, 96,251, 74, 14,119,203,253,182,108,217, 98,203, 4, 40,151, 83, 46, 57, 31,226, 38,126, 41, 83,238,152,171, 78, +219, 66, 17, 21,114, 14,195, 99,250,224,200,254,115, 56,166, 91, 14, 2, 2,197,196, 47,100,137, 59,230,114, 42, 95, 72, 72, 50, + 8, 33,120,225,133, 23,240,213, 87,101, 96, 85,140,237, 47,101, 9, 1,173,105,217,223,169, 83, 94,244, 40,153, 44,229,160, 90, + 61,106, 20, 96, 44,236,140,235, 37,126,176,218,103, 91, 59,232,219,225,237,216,114,236, 63,214, 19,205, 59,245,148,177, 89, 2, +235, 3,171,248,243,243,243, 1, 0,133,133,133, 14,207,192,173, 91,183, 28, 3,171,143, 32, 78,110,103,215,151,146,112,201, 7, +224,140,175,190,250, 74,182,118,237, 90, 53, 75, 0,214,172, 89,227,181,245,239,170, 48,124,133, 68, 34, 65,225,181,171,232,214, +189, 7,172,230,106, 16,179, 5,194,230, 45,208,124,208, 96, 52, 27,248, 4,172,122, 51, 44,134,106, 80,179, 5,176, 88, 17,191, +238,223,152,242,242, 20, 72, 36, 18,183,242,204, 63, 6,115,250,191,238,238,139, 88,225,254,222,168,168, 40,153,157, 0, 80, 74, + 41,134, 15, 31, 46, 75, 77, 77,173,117,159, 39,229,111,175, 43, 43,128, 61, 61,123,246, 28,248,217,103,159, 25,111,223,190, 93, + 53,102,204,152,231, 50, 51, 51,255,102, 48, 24,138, 91,183,110,173,248,244,211, 79,181, 92,235, 79,169, 84,138, 0, 60, 50, 52, + 50,178, 77,220,172, 56, 92,201,191,162,157, 62, 43,238,201,244,253, 27, 19,110,150,107,135, 13,142, 30, 99,109,215, 41,252,127, + 92,173,252,250, 82, 11,219,251, 24,113,226,159,196,141, 14,112,253,206,227, 65, 37, 0,245, 89, 23,190, 40,127, 86,217,212,145, + 48,134, 19, 9, 88,121,242,144, 6, 0,153, 58, 40,138,194, 95, 2, 29, 53,195,104, 54,195, 74,173,104, 21, 20,132,124,125, 41, +188, 73, 46,228,110,121,223,221, 24, 0,239,214, 98,187,115,241, 55, 52, 93,175, 61,143,192,196,193,131, 7,239,136,143,143, 23, +135,132,132, 88,111,222,188,137, 5,125,111,186, 42,127,206,255,163,174,132, 61, 62,193,158,229,207, 77,146,167, 90,247,112, 69, +226,142, 57, 26, 0,100, 66,191,101,210, 93,103,254,174, 78,219, 2, 16, 16, 76,236,255,129,108,199,233, 15, 52, 92,149, 63,219, +151,138,139, 71, 83,160,140,181,126,225, 78,239,108, 72, 56,192,246, 7, 82,223,230, 26,118,171,158, 20,235,250, 74, 45,229,229, +106, 34, 0, 12, 85,254, 32,229,102, 8, 25, 33, 12,140, 68, 54,118,242,107,152, 27, 27,231,177, 61,146,146,146, 72, 82, 82, 18, +189,135,239, 31, 40,165,132, 16, 66,157, 35,218,157, 61, 1,222,200, 82, 40, 20,154,216,216, 88, 44, 88,176,192, 65, 40,154, 42, + 21,238,168, 81,163, 48,119,203,122,124, 88, 94,130, 1,209, 35,192,180, 11,182,149,201, 68,109,169,123, 33, 2, 17, 8, 65,196, + 2,124,149,184, 26, 45, 70, 15, 70,247,238,221,189,142,218,111, 8,156,172,123,117,100,100,164, 44, 53, 53,181, 65,117,149,147, +147, 19,115,224,192,129,107, 2,129, 96,251,147, 79, 62,249,143, 57,115,230,220, 94,183,110, 93, 10, 96,155,114,240, 66, 20, 3, + 32,249,228,201,147, 67,190,219,176,145, 17, 11,252,174, 79,122,105, 82,255,185,115,231,234,190,252,242,203, 9, 0,130,236,138, +191,156,221, 32,136,139, 71,129,199,131, 1, 46,238,127, 95, 9, 64,131, 9,131, 7,229,195,121, 64,250,241,100, 26,145, 79,146, + 75,173,151,178,213,250,106, 35,204, 22, 11,186, 15, 25,132,112,115,164,183, 10,183,209,130, 81,216,164, 63, 0,212,172, 53,110, +143, 3,104, 80, 14,124,149, 74,181, 83,169, 84, 10,147,147,147, 23,173, 90,181,234,159, 78,228, 98,148,243,255,226,234, 81, 0, +208,104,201, 75, 38, 95, 96,227, 44,234,126,190,201, 23,228, 62, 49,253, 93,103,254,174, 97,219,135,130, 98,199,233, 15,124, 42, +163, 77,185, 19,188,186,104,212, 93,179,151,220,189,182,232, 35,239,243,145,199,191,125, 86, 19, 15,144,117, 95, 45,149, 86, 26, +108,251, 0,220,205,255, 31,231,245, 59, 98,183,200, 44, 10,133,162,209,231, 85, 89, 18,208, 24,178,236,177, 0,106,246,123, 35, +148,205,167,223,117,239,222, 29,237,231,205,147,173,221,183, 79,157,251,143,159, 33, 23,181, 66, 75,251,230, 61,149, 6, 51,230, +191,181, 4,130,128, 16,236,222,168,196,233,214, 4, 99,135, 13,243, 57,111,191,197, 98,246,121,152,224,234,226,231, 64,190,200, +243,207, 63,127,155, 82,154,208,171, 87,175,255, 43, 46, 46,214,251,160,248,157,235,125,100, 70, 70, 6,172,102,130, 97,195,251, +127, 48,119,238, 92, 29, 0,204,153, 51,199, 10, 64,215,144, 38,117,242, 56,213,248,238,198, 43,202,227, 33,243, 0,220, 19, 82, +224,179, 98, 76,170,145, 96, 7, 25, 57,151,154,188, 82, 93,146,254,176,231, 26, 44, 87,161, 80, 88, 0,252,203,254,241, 89,174, +187,242, 53,240,121, 73, 99,220,115, 47, 97, 83,240, 20,139, 62, 74,110,116,217,158, 82,253,122,209,190,166,123, 89, 7,141,181, +233,138, 66,161,208, 40, 20,138, 70,145, 69, 26, 48, 7,192,150, 65,169, 84,194,190,125, 47,242,156,182,239, 77, 61,176,223,177, +125,239,232,161,163, 97, 39,189,117,254, 63,193, 20, 29,177,108, 14,174,173,152, 56,238, 38,232,137, 4, 52, 70,125, 61,241,196, + 19,213,102,179, 57, 5,128,254,253,247,223,111,144, 18,141,139,139, 35,239,191,255, 62, 53, 26,141, 0,176,175,174,251, 86,174, + 92, 73, 22, 47, 94,236,248, 95,246, 84,192,245,142,237,174,193,157, 60,238, 47,184,122,184,136,175,251, 8,243,224,193,131, 7, +143, 38,129, 25, 64, 21, 0, 73, 35, 27,113,158,118, 12,228,188,163, 32,143,135, 3,124, 99,242,224,193,131,199,195, 5, 33,128, +102, 28,148,191, 1,182, 0,238,198,210, 7, 86,240,203,254,254,112, 29,137, 7, 15, 30, 60,120,252,241, 16,192,235, 11, 30,188, + 7,128, 7, 15, 30, 60,120,240,224,193, 19, 0, 30, 60,120,240,224,193,227,207,142, 26, 46,157, 83,167, 78,249, 28,145,235, 46, +152,240, 65,151, 23, 54,200, 15,254,126,133, 16,137, 75, 96,181,218,150,133, 9, 4, 12, 24, 34,176,253,101, 8, 8, 97, 64,137, + 16,132, 16, 48, 48, 99,199, 46, 17, 40,165, 8, 97, 90,193,155,242,217, 51, 42,182,134, 45,128,167, 28,182, 4, 3, 38,118,201, +215,195, 88,127,188, 60, 94, 30, 47,143,151,199,203,123, 48,229,241, 30, 0, 15, 56,116,228, 50,116,165, 58,152, 76, 20,183,239, + 16,236, 77,246,199,190,253,129, 96,136, 8,251,213,237,177,239, 96, 7,236, 83,119,192,225,227,109, 32,132, 16, 12, 36, 24, 17, +197,192, 79,236,199,249,127, 76,125,117, 58,157,250,234,116,122, 36, 85, 93,101, 98, 72,234,185,179,153,135,212, 71,143,232,147, +147,147,171, 0, 52,231, 57,232,195,143, 49, 79,141,144,206,153, 51,157,122,187,201,211,195, 10,165, 82, 41,165,118,212,183,187, + 30, 87, 80, 23,240, 61,138, 7,143, 38,240, 0,176, 24, 54,124, 8,231,151,240,104,106,134, 71,214,210,216,242, 26, 19, 25,153, + 34,140, 27, 99,193,233,223,253, 33, 22, 9, 33, 20, 8, 33, 18, 81,248, 9, 76,128,176, 57,132,168,196,144, 62,102, 72,196,126, +160, 0, 58,180, 3,158, 29,111,197,129,237,220,148,255,229, 11, 89,120,244,177,238,232, 24,218, 18,249,215, 46,118, 9,106,223, + 13,173, 59, 90,240,235, 47,191, 32, 57, 57,185, 4, 77,188, 35,150, 92, 46, 31,175, 82,169,118, 57, 29, 63,227,124,204,163,110, +204,157, 35,167,230,170,115,178, 33, 17,193,106,171,181, 24,165, 29, 43,213,157,218,143, 70, 69,117, 7,124,181,254, 63,127,216, +157,206, 98, 99, 99,213, 11, 22, 44, 0, 33, 4,107,214,172, 81, 55, 70, 78, 0, 54, 29, 0,175,255,239, 63,188, 34, 93,148,130, + 48, 76,125,237, 77,157,219,147,109,211,187,201,183,106,182,179,243,206,136, 60, 26, 23,108, 54, 64, 39, 47, 1, 55, 2,208, 84, + 96,238,179, 46, 28, 63,214, 4, 10, 1,132, 2, 17,134, 69, 18,180,109,195, 64, 40,100,224, 39, 18,160, 87, 56,131,107,215,205, + 24, 18,193,160, 85,136, 4,191, 30,108, 1, 0, 16,208, 74, 80,106,133,167, 20,193, 83, 95,157, 78,127,207,204, 68,215,142,157, +240,123,218, 49,164, 27, 77,208,221,209, 65,236,215, 28,189, 7, 14, 71,255,225, 99,161,222,161,130,156, 99,110,252,123,160,248, + 71,169, 84,170, 3, 97, 97, 97,200,204,204,100, 59, 76, 9,128,121, 42,149,106,167, 92, 46,143, 81,169, 84, 7,254,104, 47,197, +236, 56, 57,245, 19,106, 33,100,140,168,170,178,160, 84,239,143,239,127, 56,224, 85,253,143, 30, 51, 92,218,194, 95,139, 81,195, +197,232,218,229, 89,117,139, 22, 65, 48,153,205,184,125,251, 14,218,229, 93, 71,118, 78, 46, 94,125,101, 60,221,248,221,110,159, +218, 53,194,190,167, 2,192,125,155,236,251,105,253, 3,119,183,195, 93,179,102, 13,148, 74,165,180,169,210, 1,223,199,247,133, +110,221,186,181,246,126, 10, 77,164,188,148,202, 68, 41, 1, 65,108, 35,212, 59,205,251, 9, 36,253, 53,103, 29,111,207,146,233, +216,247,202,129,215, 18,245, 30,137,220,175,191,254,234, 56, 30, 55,110, 28,246,236,217, 83,239, 49,143,123,175,252,157,207, 57, + 19,129,112,212,249,165, 0, 0, 32, 0, 73, 68, 65, 84,122, 9, 64,234,145,116, 12, 31, 17,121,223, 10,109,245, 46, 59,164,243, +205, 62,189,132,140, 80, 0,157, 86,136,246,109, 69,104,223, 86,140,138, 10, 17, 36, 34, 33, 44, 66, 63, 12,234, 71, 48,224,113, + 1, 24, 34, 2, 33, 4,126, 34, 49, 68, 76, 53,136, 68, 12,179, 1, 48, 67, 95,175,242, 63,114,240, 0,186,117,104,131,179,167, +207, 34,175,232,230,221,242,149, 87, 64,114,238, 56,101, 4, 4,131, 34, 6,225,215, 61,222,233,216,117,235,214, 73, 51, 51, 51, +213,151, 47, 95,134,191,191, 63,252,253,253,101,219,182,109,211,120, 57,152,201, 84, 42,213, 1, 86,241, 59,117,142,150, 0,198, +126,253,245,215,119, 94,123,237,181,100,185, 92, 62, 70,165, 82, 37, 63,136, 29, 60, 50, 50, 82,154,158,158,206,249,185,165,163, +134, 73,251,134, 55, 87,119,234, 80,132,160, 22,126, 96,152, 0, 84, 86,154, 81,172,173,196,203,242,222, 84,210, 98, 16,190,253, +230, 7, 78,253, 72,132, 66,188,240,204,227,234, 62,125,122,227,102,161, 14, 39,126, 59,137,138, 10, 61,130,130,154, 35, 44,172, + 11, 24,129, 8, 22, 75, 30,226,102, 79,167,137,235,190,255, 67, 89, 55,177,177,177,234,133, 11, 23, 58,142, 23, 44, 88,208,104, + 94,128, 7,217, 3,160, 82,169,136, 92, 46,167, 73, 73, 73,112,183,177,210,253, 54,218, 21,138, 56, 16, 66,176,126,189, 82, 22, + 27,219, 48, 18,192,116,121,209,161,188, 51, 86, 52,115, 59,152,182,111,201, 32, 52,132,121,104,219,239,207, 10,103,101,239,142, + 20,120,244, 0,164, 30, 73, 7,128, 6, 19,129, 35,243,178,235,189, 62,226,211, 30, 62, 15, 22, 78, 57,206,189, 26,132,146, 53, +109, 33, 18,138,208,185, 99, 5,202,203, 69, 56,113,182, 51, 4, 2, 1, 4, 68, 0,177,200,140, 62, 61, 12,232,217, 67, 0, 2, + 6, 98,145, 31,196, 2,130,136,199,141, 8, 9,182, 98,211,255,213, 47,187,119,183,118,184,150, 83, 84, 83,249,219,145,119,227, + 26, 33,140,144,118,136,122, 28,193, 45,155,163, 68,119,135, 83,121,215,174, 93, 43, 93,185,114,165,250,218,181,107,206,167,213, +227,199,143,199,238,221,220,173, 77,149, 74,117,208, 89,249,187, 65,235,132,132,132,146, 55,223,124,115, 63,154,120,138,162, 30, +229,175,246,166,108,225, 97, 33,234,208,118,101,104,221, 42, 16,157, 66,219, 35, 32, 48, 0,215,174, 21,192, 98,177, 34,180, 99, +115,156,187,144,134,168, 17, 67,164,105, 71, 50,234, 29, 76,223,120, 99, 58,125, 60, 92,135, 71, 30,233,132,243, 23,174,225,196, +137, 11,184,125,167, 28,148, 2,193,193,254, 48, 24, 42, 48,112, 96, 31,148,148,148,162,224,196,111, 24,254,100,164, 52,245, 48, +119,162,242, 32,131,181,254,237,219, 78,131,245, 4,172, 93,187,214,107, 47, 0, 59,221,239,154, 9,216,205,118,178, 13,238,127, +157, 58,117,162,157, 59,119,110,112, 46,126,149, 74, 69, 38, 79,158, 76,183,108,217, 2,118, 99,165,250, 20,158,125, 43,220, 90, +229,143,138,138,146,178,155, 3,213, 65, 98,169, 7,153,142,255,173, 80,196,169, 27,242,142,186,202, 27,178,164, 2,199, 87, 52, +171,161,248,121, 60,156,214,191,171,203,191, 65, 83, 0, 13, 37, 2, 35, 62,237, 81, 39, 9,240, 69,249,179, 72, 73, 73, 65, 65, + 65, 1, 0, 32, 52, 52,148,122,243, 50, 8,104, 37,132,196, 2,177, 72,132,223,206,182,129, 64, 40, 68,115,145,222, 22, 7,208, +140, 65, 65, 65,115, 60,222,199, 10, 66, 8,228,207,154, 65,173, 12, 64,252, 64, 64, 97, 11,228,119, 15, 67,201,117, 20,106, 43, +144, 85, 80, 80,103, 89, 74, 74,181,208,221, 46,180,203,226, 60, 0,185, 42,127, 0,192,238,221,187,241,212, 83, 79, 73,247,238, +221,235,113,128,147,203,229,163,114,115,115,221,118,152,210,210, 82,231,211, 45,151, 45, 91,134,243,231,207,143,126,144,166, 2, +156,148, 63,103, 72, 71, 13,147, 74,132, 55,225,239,223, 18, 18, 63, 49,186,117,235,138,206, 93,187,162,172, 76, 3,173,182, 2, + 98,177, 0, 33,193, 18, 8,253, 91,122, 28, 76,133,180, 0,205,155,181,130,161,210,140,179,103,179,113,163,176, 20, 55, 11, 43, + 80, 89, 45,193, 35,161,102, 72,252, 4,200,206,202,197,163,221,187,227,198,205, 50, 84,154, 91,112, 26,160,157,221,254,117,157, +247,118, 58,160, 46,153,190,200, 98,173,255, 5, 11, 22,212, 58,191,112,225, 66,159,188, 0,238,118, 39,116,157, 59,110, 44,175, + 66, 90, 90,154,186,161, 27,242, 76,158, 60,153,170, 84, 42,200,229,114,184,155, 14,224,226,169, 98,149, 63, 0,100,100,100,212, + 42,147,253,186, 71,163,135,221, 97,176,177, 60, 46, 91, 22, 6, 98,242, 26,189, 91,197, 31, 26,194,216, 71, 41,110,205, 59,110, +220,184, 26, 94,146,167,159,126,186, 70, 93,241,110,255, 7, 7, 94,199, 0, 52,150, 71,160, 49,145,157,109, 35, 22, 5, 5, 5, + 94,145, 0,161, 80, 8,145, 64, 4,145,136, 96,228,112,192,160,175,198,149, 28, 49, 68, 66, 17,132, 22, 33,134, 70, 82,136, 69, + 34, 8, 4, 12, 64, 9,180, 58,224,248, 73, 33,172, 86, 43,128,219,117,202, 61,249, 91, 14, 42, 42,234,206,192,217,173,125,123, +170, 55, 19, 84, 86,150,194, 98, 53,115,126,206,147, 39, 79,214, 77, 58, 12, 6, 78,138,198,213,245,239,142, 25,238,216,177,195, +249,254,228,166,240, 2,184,115,241, 59, 43,127,251, 0,200,205, 2, 12,109,167,102,152,235, 48, 91,172, 48,154,204,184,125, 71, + 11,145, 88,130,234,106, 19, 76,102, 11,204,102, 43,204, 22,202,201, 19, 35, 22,233, 33,241,239,132,226,226, 82,148,149, 27,160, +213, 85,162, 69,171,254, 24,246,248,227,200, 72,221,131,142, 70, 51, 74,203, 74,209,179,103,119,248,137,133,208,151,107,255, 16, + 3,133, 61,242,223, 49,247,239,226,153,242, 41, 22, 96,193,130, 5, 53,188, 9,174,215,184, 18, 0,173, 54,198,113, 99, 92, 92, + 8,182,108,217, 82,163,191,178, 6, 66, 94, 94,158,207,187,114,202,229,114,186,101,203, 22,199, 54,227,117,197, 4,184, 42, 87, + 87, 79, 85, 90, 90,154,154, 13,124,163,148,210, 99,199,142,213,184,126,236,216, 49,181, 39,167, 7, 75, 26, 88, 18,224,108,197, +215,101,232,123,120, 54, 76,138, 74,198,102, 0, 83,214,232,241,196,146,138, 6,145, 47,215, 57,126, 79, 49, 1, 60,238,189, 55, +160, 46, 15,192,125,245,239,184,179,244, 27, 98,253,187, 88,172,200,206,206,102, 7, 20, 78,189, 87, 32, 16, 98,232, 16, 43, 4, +140, 16,199, 51, 37,184,148, 45,193,132,167,128,103,158, 6, 38,142, 35,232,208, 78, 12,137,216, 15, 18,177, 31,252, 37,126, 8, +237,224, 7,137, 88, 2,137,135,101,128,249,121,215, 73,137,246, 22,169,107, 32,233,222,173, 11,130, 90, 6, 66, 98, 53,162,194, + 96,186,239,157,226,200,145, 35, 7,142, 28, 57, 82, 67,225, 59,127, 0,160,184,184, 24, 19, 39, 78,108, 50, 43,223,110, 29, 73, + 93,207,217,191,123,101,201, 89, 44,128,222, 96,130, 94,111, 68, 89, 89, 53,110,221,210,225,198,141, 59, 40, 47,175, 70, 69,133, + 9, 21, 21, 70,232,245, 38,148,150,148,122,148, 85, 93,109, 70, 85,149, 5, 38,147, 17,205,155,139,209, 57,180, 5, 2, 2, 3, + 1, 0, 97,221,187,162, 83,199, 22, 8,106, 33, 1,165, 22,152,204, 86, 84, 87,235,255, 16, 3, 73,108,108,172,122,209,162, 69, +245, 42,243,216,216, 88,206, 22,169,125, 75,225, 58,175,175, 89,179, 6, 95,125,245,149,215, 91, 13, 59,109, 59,235,248,176, 10, +181,160,160,128,221, 61,211, 43,237, 54,121,242,100,154,148,148, 4,103,242,160, 82,169,200,164, 73,147,234,253,221,236,217,179, + 65, 8, 1,219,143, 35, 35, 35,165, 0, 48,116,232, 80, 25,171,200, 89,171,159,189, 78, 41,117, 92,231,240,180, 53,172,120,119, +196,129,203, 12, 74,235,214,173, 65,156, 88, 66, 67,229,241,120,240,148,191,187, 99,159, 60, 0, 15,146,229,127,119,128,183, 64, + 32, 16,120,253,187,225, 67,172,104,219,198, 15,101,101, 66,248, 9,205,240, 19, 11,160, 73, 23, 99,130, 76, 4,177, 72,132,178, + 50, 17, 82, 51, 3,209, 66, 66,192, 48, 12,198,197, 24,241,220, 4, 10,134,161, 88,126,202,251,114,202,229,114, 42, 8,144, 64, + 43,106,141, 0, 83, 62, 46, 23, 80,140,146,142,228,188,165,239,192,129, 3,113,244,232, 81,183,215, 2, 2, 2, 56, 15,150, 58, +157,110, 52, 0,108,216,176, 1, 51,102,204,112,156, 47, 46, 46,118,124,159, 49, 99, 6,138,138,138,154,164, 61,211,211,211, 53, +132, 16,176,243,164, 12,195,128,117,119,214, 51,111, 90, 39,242,174,223,144,181,105, 97, 80,251,137, 5, 48,154,172,168,170,206, +199,245,252, 98,104,117,101,208,106, 13, 40,214, 86,162, 88, 91,137,150, 33, 93, 1,228,212, 43,235,214, 29,138,194, 91,119,208, +187,119,119,148,232,116, 16, 9, 25,148,149,231, 67, 95, 98,197, 99,143,234,209,174, 77, 27, 4, 4, 4,192,207,207, 31, 55, 11, +203, 65, 4,193,156,202,232,236,146,111,172, 85, 0,141,189,130,160, 46,107, 29,184, 27, 11,192, 21, 10,133, 66, 19, 27, 27,139, +249,243,231,215,242, 42,176,211, 12,190,174, 44,152, 60,121,114, 13, 11,150,125,191, 8, 33,120,241,197, 23,145,148,148, 68,184, +146, 0, 87,203,223,249,154,171,167,193, 21,235,214,173, 35, 0, 28, 86,126, 70, 70,134,218,222,175, 53,118,111, 0,251, 87, 13, +128,164,167,167, 59,174,215,183,157,107, 90, 90,154,122,248,240, 97,178,163, 71,109,239,196,236,217,179,113,234,212,111, 50, 86, +133, 31, 59,118, 76,205, 62,255,208,161, 67, 61,122,202,214,173, 91,135, 47,100,193,152,178,214, 96,123,174,133,129, 53,174, 79, + 89,107,112,212,231, 76,153, 8,223, 28, 52,130,199, 67, 64,218,227, 87,214, 36,221,171, 22,227,212,169, 83,220, 87, 1,220, 11, +197,239, 28, 11,208, 16,235,191,166, 37, 95, 83,249,219,221, 76, 30,167, 2, 90,183, 22,128, 33, 2,180,105, 45, 64,143,238, 20, + 55,110, 8,193, 8, 8, 68, 66, 33, 68, 66, 17,126, 63, 19,136,144, 64, 17, 4, 2, 1,134, 71, 90,224,239,239, 7,171,149, 2, +212,226,147,242,111,214,174, 51,110, 85, 80,232, 47,107, 32, 36, 2, 92,190,145, 71, 46,115, 84,254,246,129, 77,118,253,250,117, +245,245,235,215,221, 61,175,134, 99, 57,198, 20, 23, 23,239,103,149, 60, 0, 76,156, 56, 17, 27, 54,108,112,220, 83, 86, 86,134, +162,162, 34,236,220,185,147, 93, 46,120,223, 59,175,125,224, 82,103,100,100,168,217, 96, 49,251, 57,175,149, 66,234,225,116,141, + 76, 26, 1, 90, 80, 6, 67,165, 9, 58,191, 42, 80,232, 80, 85,101, 70, 89, 89, 53,138,238, 24,112,227,102, 5,158,148,117, 1, +144, 90,175,172, 74, 99,107,228, 94,185,141,176,110,143,160, 91,183, 78, 40, 46,190,131,224,150, 22,244,232, 17,132,182,109,194, + 32,241,247, 71, 73, 73, 5, 78,156,188,136,252,130, 50,180,239,212,231,161, 29, 64, 18,149, 74, 74, 8,100,172, 46,117, 86,170, +245,173,219, 79, 84, 42,165,137,235,214,113,242, 2,172, 93,187, 86,237, 74, 0, 86,175, 94,141,245,235,215,203, 60,201, 75, 76, + 76,164,113,113,113, 68,161, 8,118, 42, 19,117,167,152, 41, 0, 76,154, 52,137,147,251,223,121, 74,161, 85,171, 36,248, 58,109, +192, 90,249,118, 2, 64, 41,165, 24, 62,124,184, 44, 53, 53,181,206,235,158, 20, 54, 59,183,158,154,122, 84, 77, 8, 1, 33, 4, + 3, 6,244,151,173, 91,183, 78, 83,251,222,187, 36,195,147, 60,102,178, 14,172, 60,249,168,174, 53,248,209,228, 53,231, 29,242, +184,128,143, 1,120,120,224,145, 0, 60,136, 22, 63,139,169, 83,167, 54,232,247, 12,195, 64, 32,176,125,122,135, 51, 24,216,207, + 2, 63,177,196, 70, 0, 68, 34, 12,139, 4,252,252, 0,145,192, 15,173, 91, 75, 32, 16,232, 97,177, 88, 97,181,122,239,182, 55, +104, 11, 33,233,212, 11, 87,146,255,131, 54, 66, 6, 71,242,174,121, 61,160, 44, 88,176, 64,179,110,221, 58, 89, 67,150, 1,178, +203,250,222,120,227, 13,199, 57,214,210, 47, 43, 43,131,193, 96,192,204,153, 51, 1, 0, 95,126,249, 37, 0,168,155,162,109,211, +210,210, 52,118,107, 95, 13, 0, 67,134, 12,105, 80, 0, 87,167, 46, 61,145,121,108, 47,218,182, 14, 64, 64,128,173,219, 87, 87, + 91, 80, 86,110,132, 86, 87,137,206,221,250,224,251,141,155, 60,182,201, 47,191,236, 35, 47, 62, 63,148, 30,203, 56,135, 39,135, +247, 71,151, 46, 93, 96, 50, 86, 97,224,128,199, 17, 24, 20,132,107,185,121, 40,184, 81,130,212,180, 11,208,149, 7, 97,207,134, + 77, 15,173,207,116,118,156,194,222,254, 4,179, 21, 10,199,178,112,171,139,210,103, 24, 2, 80,135,202,160,179, 21, 10,244,119, + 99,193, 18, 2, 10, 39, 90, 30, 23, 23, 7, 87, 47,192,252,249,243, 65, 8, 65, 92,156, 66,109,215,231,152, 29,167, 64,255,254, +181,229,197,197,197, 57,220,241,158,148, 28, 87,229,239,138, 73,147, 38, 97,244,232,209, 50, 95, 73,176,243, 92,125,100,100,164, + 44, 53, 53, 85, 83,215,117, 46, 65,138,246, 85, 5,148, 37, 95, 81, 81, 81, 50,133, 34, 78,227, 74, 58,156,228,195, 27,121, 91, + 22, 54,179, 29, 74,218,221,245,116, 44,204,115, 16,130,189,167,235, 31,251,220,229, 1,224, 99, 0, 30, 82, 2, 48,108,248,144, +123, 50,231,211, 88,150,191,115, 71,242, 5, 90, 29, 65,135,118, 12, 8, 97, 64, 24, 6,251, 14,216,230,247,253,252, 36,240, 19, +251, 97,226,211, 4, 18, 63, 49,252, 37, 4,218, 98, 1, 50, 78, 52,135,197,106, 65,231, 78,222,205,235,202,229,114,122, 35,255, + 10,116,153,187,209,163,179, 8,103, 11,124,159, 23,158, 61,123,182, 6, 13, 12,202,147,203,229,178,207, 63,255, 92,205,186,249, +139,139,139,167, 68, 70, 70, 86,236,223,191,127,215,115,207, 61, 55,182,184,184,152, 76,159, 62,125,175, 61, 95, 64,147,117,206, +244,244,116, 77,100,100,164,140,253,222, 16, 89,223,111,220, 68,166,191,250, 50,205,186,120, 30, 55,114,175,129, 97, 8, 44, 22, + 10,137,127, 8,194,123,247,197,158, 95,147, 57,215,233,141,219, 86,153,182,248,134,186,170,202,140,126,125,195, 16,218,177, 53, +242,174,223,130,238, 76, 14, 46,101,229,225,192,193,223,113,173,128,226,120,230, 89,159,218,233, 65, 73,254, 99,221, 28,236,243, +125, 3, 63,230, 40, 47,231,255,176,118,237, 90, 7, 1, 88,187,118, 45,144,187,161,214,189,238,228,113, 5,165,148, 52,164, 31, +199,197,197, 53,168,239, 57, 41,121,141, 47,215,221,121, 21,156,127,235, 78,158, 87,237,124,109, 43,146,214,190, 98, 27, 27, 70, + 61, 82, 67,249, 3,128,124,252, 19,182, 47,186, 83, 30, 9, 0,159, 7,224,193,193,250, 85,139,107, 77, 3,120, 69, 0, 30,240, +128,143, 6, 23, 46,243,164, 31, 36, 98, 49, 38,142, 39, 96, 8,193,144,193,102,156, 57,235, 15,134,216,230,252, 75, 74, 24,116, +108, 47, 0, 67,196, 56,125, 70, 12,137, 31, 96, 52, 25,113, 45,207,223, 43,229,159,147,245, 27, 34, 71, 63, 3, 97,235, 72,228, +100,101, 64, 88,152,132,160, 22, 33,180,180, 76,219, 36, 21,172, 82,169, 52,114,185, 92, 54,120,240, 96,117,124,124, 60,250,246, +237, 91,164,211,233, 48,120,240, 96,153, 78,167,195,188,121,243,212,118,229,175,105,234, 70,110,168,226,119, 37, 1, 0, 16, 53, + 98,136,180, 67,251, 14,234,192,192, 64,124,191,113, 19, 57,123, 46,199,187, 1, 61, 53, 67, 3,128, 88,208,154,158,191,148,142, + 14,237,154, 65, 34, 17,161,162,194,136,130,155,101, 32,194,206, 56,158,153,202, 71, 75,113,193,201, 55,129,238,255,139, 26,203, + 11, 79, 44,106,210, 34,197,197,133, 56,165,173,109, 28,133,230, 73, 41,123,163,180, 27,154,207,192,221, 56, 47,143,242,179, 61, +107,229, 77,219,135,199, 67,139, 1, 3, 6, 56, 2,254,214,175, 90, 92,235,154, 71, 2,208,216,249,248,239,119,126,127,239, 88, + 4,129, 78, 71, 16,208,158,160, 85, 8,193,224, 65, 38, 72,196, 2,248,137, 77,104, 21, 34,177, 15, 2, 4, 67, 7, 91,144,113, + 82,100,243, 22,112, 36, 70,114,185,156,246,233,217, 2,111,206,255, 16,149,226, 78,248, 41,185, 0,221,195,135, 0, 0,154, 29, +223,137,172, 60,208,138,242,166, 35, 1, 0, 72,110,110,174,116,213,170, 85,106,103,239, 0, 0,210,148,150,255,189,134, 61,217, + 79,131,235,253,208,225,147,100,250,171, 47,211,219,197,183, 81, 89,104,128, 68,210, 10,157,186, 61,206,105, 42,225, 97,135, 45, + 29,118, 35, 61,102,238, 6, 56, 86, 4,228,110,108,242,103,243, 20,220,247, 71,195,216,103,166, 52,170,229,206,199, 0, 60, 88, + 36,160, 46,229,239,209, 3,240,103, 0,133, 45,170,159, 48, 20, 20, 20, 33, 45, 41, 82,142, 8, 33, 17,139,224, 39, 22,226,217, +241, 20,148, 90, 17,220,202, 12,179,133,192,106,181,216, 7, 63,207,120,188,107, 5, 38,188, 40, 71,133,176, 7,218, 54, 11,196, +203, 47,132, 96,211,182, 51, 14, 18, 96,178,252,132, 51, 23,155,118,157, 56, 75, 4,156,142,249,183,199, 7,175,194, 31, 17,100, +178,142,208, 45,193,181, 53,131, 42,196, 39,121,235,117, 43, 17, 27,188,184,246,133, 19,139,154,220,234,255, 51, 99,255,239,166, +198,236,195,196, 70, 16,169, 19, 89,228,167, 5,154,138, 4,120,108, 44, 95,247, 17,230,193,131, 7, 15, 30, 60,120, 60,188,224, + 19, 61,243,224,193,131, 7, 15, 30, 60, 1,224,193,131, 7, 15, 30, 60,120,240, 4,128, 7, 15, 30, 60,120,240,224,193, 19, 0, + 30, 60,120,240,224,193,131,199, 31, 3, 53, 86, 1,156, 58,117,202,231,104, 80,119,193,132,141, 45,111,218,204, 56,143,191,211, +107, 11, 29,223, 3, 67,218, 59,190,255,240,109, 98,173,123,219,200, 94,243, 40,111,255,154,187, 25,243,198, 44,252,220,241,253, +182,250,107,248, 82,190,186,224,107,249,234,130,187,242, 61, 63, 93,225,241,119,153,234, 93,232,218,181, 43,174, 94,189,138,193, +178, 9,142,243, 63,127,175,188,231,245,231,169,191, 36,132,134, 74,223, 44, 40,112,206, 76, 72,238,103,255,115,149, 55, 97,194, + 4,233,238,221,187,107,100, 74, 28, 63,126,188,108,215,174, 93,154,166,120, 63, 30,100,121, 13,145,245, 71,174,191,232,232,232, +151,250,245,235,183,233,204,153, 51, 47,166,164,164,252,212, 8,229,163, 15,202,251,193,203,107, 90,121, 94, 19, 0, 87,124,241, +197, 23,210,170,170, 42, 16,129, 8,132, 16, 88,204, 38,136, 69, 66,204,155, 55, 79,211, 80,230,241,197, 23, 95, 72, 1, 96,238, +220,185, 13,146,165,215, 22, 34, 48,164,189, 67,241,183,239,220, 21, 0, 80,120,253,170, 79,242,246,175,121, 3, 99, 22,126,238, + 80, 92, 95,108,207,248,127,246,174, 60,188,137,170,123,191,147,164, 89,186,175,148,125, 43, 84, 86, 41, 20, 17, 89, 19,217,132, + 2,202, 82,180, 84, 63, 17,161, 1, 17,101, 83,164,159,191, 15, 63, 23, 4, 69,138,178, 6, 68,224,131,178, 21, 68, 89, 10,133, + 66, 74,217,180, 82,160,236,148, 82, 74, 55,160,123,218,102, 79,102,126,127, 52, 19,211,144, 54,147, 52,172,206,251, 60,243, 36, +179,228,100,230,206,189,247, 61,231,220,115,207, 5, 0,204, 24,221,235,185,212, 0,207,201, 15,162,167, 36, 2,231,228, 7,107, + 72,109,124, 52, 0, 32, 39,231,201,151, 95, 40, 32,206, 4,228,161,128, 36, 19,144,207, 45, 40, 64,218,252, 79, 1, 0,189,150, +124,247, 68,203, 45, 42, 42,138,218,177, 99, 7, 52, 26, 77,173,227, 66,161, 80, 30, 21, 21,133,237,219,183, 63,173,211, 3,251, +189,208,166,217,102,202,104, 84,101,230,222, 95, 0,224, 0,107, 7,213,141,159,126,250,233,213, 11, 23, 46,120, 23, 22, 22, 54, +246,247,247,247, 13, 15, 15, 47,152, 55,111,222, 22,103,229, 13, 28, 56,112,208,196,137, 19, 79,108,219,182,109, 10, 0,159,183, +222,155, 54, 25, 0,121,249,242,229,127,201,100,178,223,164, 82, 41,233,160, 72, 58,185, 50,229,130,254,202,154, 68, 92, 85,135, +169, 71, 32,147,133,171, 61, 0,150,248,126,233, 15, 98,159, 22, 93,229, 3,187,118,128,187,192, 13, 20, 69,193,104,164,112,229, +214, 93,252, 16,247,163, 68, 36,112,195, 7, 31,124,224, 20,121,199,111, 94, 32,238,220, 62, 85,126, 37,179,173,196,217, 27,167, + 9, 95,228, 19, 0,101,217,125, 51,241,215,231, 17, 96, 98,169,246,138,254, 12, 71,227, 62, 52, 55,164,186,174,171,111,142,165, +245,127,242,249,252,154, 86, 64, 81, 32,201,154,246,109, 52, 26,205,247,207,225,186, 49,182,162, 1,160, 73,163,154, 84,157,186, +202, 10,104, 13, 6, 0, 64,181,161, 70, 94,155,161,239,163, 93,231,238,140,136, 31, 0,186,245, 25,132,115,242,131,102,226,175, +235,186,199, 89,126,116,167,145, 9, 96,152,135, 7,146,148, 74, 57, 77,252, 0,112,243,200,209,250, 58,173,122,241,221,214,111, +196,233, 37,127,161, 32, 55, 3,237, 91,245,198,198,143,183, 59, 92,135, 35, 34, 34, 94,223,185,115, 39, 77,254, 6, 0, 26, 0, +238, 0, 72,141, 70,195, 19,137, 68,136,136,136, 16,219,242, 4, 60, 97, 4,191, 20,214,245, 80,210,246,181,158,202,130,235,232, + 23, 57,125,219,221,114,253,191, 0,252,246,180,117, 76,145,145,145,148,179, 11,240, 88, 17,163, 83, 88,185,114,165, 56, 45, 45, + 77,190,121,243,223,137,137, 74, 74, 74,144,153,153,137,145, 35, 71,254, 79, 44, 22, 75,230,205,155,199,232,253,202,100, 50,206, +182,109,219,254, 11,224,149,126,195,222, 16,109,219,182, 45,248,173,247,166,121, 1, 48, 2,104, 98,186,236, 5, 0,156,129, 3, + 7, 14, 0, 30, 94,234,188, 46, 82,237, 21,253, 25,210,226, 23, 83,117,181, 55, 7,218, 7,149,122, 54, 13, 92, 46, 15, 70,163, + 1,138,170,106, 76, 28,247, 58, 85, 85, 85,213, 80,194,166, 92,249, 94, 88,216,135,173,101,127, 45, 60, 5,246, 21,128,101,203, + 87,136,197, 35,198,203, 91, 52,242,129,187,144, 7,146, 36, 97, 36, 1, 30,151,128,191, 79, 7,116,110,223, 82,158,156,116, 80, +178,122,245,106,177,163, 74,192,138, 21, 43,196, 29, 67, 78,203,187,117,184, 3, 46,199, 40, 95,177,114,165,100,230,135, 31, 58, + 36, 67, 89,118, 31, 34,159, 0,248,120,123, 1,128,249,211,214,117,141, 91,180,182,235, 13, 56, 26,247, 33,122, 69,127,134,119, +223, 28, 11, 0,230, 79, 91,215,173,218,151,230,144,118,205,229,114,209,188,121,115,112,185, 92,232,116, 58, 40,149, 74, 24,141, + 70,148,151,151, 59,245,114, 61,121, 92,252,178,124, 47, 4, 62,192,131, 28,224,175,234, 2, 20,223,207,194,150,184, 5, 14, 89, +253,221,250, 12, 66,243,166, 53, 67, 36,205,109,144,127,235,214,173,205,195, 1, 0,144,159,159,239,146,242, 99,152, 92,149, 26, +230,225,129,175, 62,156, 1, 0,248,202,130,248,183,102,102,214,238, 76, 28,200,214, 58,113, 65,127,113,121,175,100,249,103, 45, +223,134,150, 28, 12, 1, 73, 97,200,235, 70,108,252,126,151,228,232, 42, 48,237,204,121,211,166, 77,251, 77,173, 86, 99,211,166, + 77,154, 73,147, 38, 9, 1,120, 2, 32, 55,109,218,164,155, 52,105, 18, 79,173, 86, 67, 40, 20,202, 27,218,209, 13, 27, 54, 76, +124,228,200, 17,185,105,193,150, 6,195,147,207,249,207,138,175, 62, 21,249, 94,219, 14,209,205,227,248,226, 85, 63,175,143,246, + 23,127, 89,165,163,158, 42, 5,128, 94,130,183,188,124, 8,229,239,159,236,240,179,191,252,242,203,226, 63,255,252,211,105,178, + 89,182,108,153,120,247,238,221,242,170,170, 42,155,231,239,221,187,135,221,187,119,203,223,123,239, 61,201,198,141, 27, 83,236, +212, 23, 98,219,182,109, 91,250, 13,123, 99, 66,230,133, 51,188,230, 77, 27, 27,222,122,111, 90,173,126,247,248,193, 95,209,181, +107,215, 14,219,182,109, 27,222,181,107,215,125, 0,112,234,212,169,122,219, 7,147,246, 86,211, 62, 8,192, 78, 34,158,238,221, +187, 83,135,146,142,226,194,149,107,230, 99, 26,141, 22,223,173, 88, 87, 61,125, 82, 20, 75,216,207, 49, 30, 10, 2, 92,186,116, +169,184,223,208, 49,242, 14, 45, 3, 32,112,227,128, 36, 73,220,191,127, 31,151, 51, 46, 64,103, 32, 65,146, 20, 2,124,220, 49, +116,248, 72,185, 90,107,112,248, 15, 5,110, 69, 8,105,121, 31,224, 18,232,212, 62, 15, 2,222, 3,135, 45,127, 75,242,183,134, +162,178, 10,247,243,114, 32,242, 9,168,211, 43, 80, 31,121, 89, 99,243,206, 95, 49, 99,116, 47,244,138,254, 12,245,104,217, 15, +129,207,231,131,203,229,194,219,219, 27,217,217,217, 40, 47, 47,175, 81,164,156, 36,255, 38,141,130,225,201,227, 98,204,204,175, + 49,124, 98, 31, 28,184, 82,128,251,106, 52,152,252,173,145, 95,120, 31, 87,207,157, 70,144,159,119, 13,249,243,184, 46, 41,191, +215,198,189, 11, 0,240,227,185, 57, 68,254, 0,240,127, 43, 87,225,255, 86,174, 50,147,127,146, 82,137, 79,134,142,172, 57, 25, +196,103,244,220,125, 98,219,136,167,206,125, 69,254, 94,171, 15,224,198,241,132, 7,220,193, 1, 23,205,130,251,226,195,175,230, +200,231,239,239,192, 72,141, 72, 73, 73,209, 3,192,230,205,155, 85, 0,132,244, 50,202,155, 54,109, 34, 1,184, 91, 46,171, 28, + 21, 21,229,212,184, 92, 92, 92,156,216,145,227, 12,208,175,103,247,110,170,132, 95,247, 74,187,119, 9,229, 42,175, 29, 67, 78, + 81, 21,238, 85,168, 64, 82,148, 83,129,192, 20, 69, 81,101,101,131,169, 1, 3, 6,184, 52,145,152, 5,249,195,223, 63,217, 41, + 25,105,105,105,114, 0, 4, 65, 16,120,249,229,151, 29, 46,179,228,228,228,135,200,255,220,185,115,152, 56,113,162,121, 95,175, +215,227,198,141, 27,242,184,184,184,122,189,152,219,182,109,251,176,223,176, 55, 70,126, 19, 59,155,151,144,144,128,159, 87, 44, +229,153, 60, 70,102,242, 79, 72, 72,192,202,149, 43,209,181,107,215,125,246,218,155, 53,249,215,213,222,134,247, 53,121, 1,189, + 60,236,202,251, 97,197, 26, 51,249, 23,149,148,162,168,164, 20,138,170,106,184,185,241, 60,215,108,218,174,129,171, 22, 68, 96, +241, 88, 17, 22, 22,246,208, 86,175, 2,176,122,245,106, 42,160,245,139,104,221,216, 23, 26,189, 17, 4, 1, 36, 37, 29,198,255, + 54,111,194,165,140, 12,124, 50,103, 22,184, 92, 14, 72, 35, 9,111,119, 1, 90,191,216, 79,190,124,249,114,198, 13,108,229,202, +149,226,206,237,239,202,189, 61, 85,248,101,115, 17, 56, 4,133, 94, 93,111,202, 87,174, 92,233, 80, 35,181, 69,254, 52,241,171, + 21,165,181, 20, 4, 69,101,149, 93,121,182, 26, 19,221,144,210,226, 23,215, 34,184,205, 59,127,101,116,143, 33, 33, 33, 8, 8, + 8, 64,101,101, 37,248,124, 62, 56, 28, 14,212,106, 53,202,203,203,193,229,214, 52,114, 71, 22, 91,218,243,219, 94,204, 90,126, + 4,123, 87,124,142, 38,141,130,225,238,225,143, 60, 99, 1,182,196, 45,128,167,169,211,224, 50,148,103,139,252,105,226, 87, 20, +222, 70,135,230,141, 80,165,210, 64,224, 46, 0,140, 70,187,241, 0,246,202,111,193,250, 3,184,122,254, 44,186,180,237, 4,133, +209,190,210, 72,147,255,205, 35, 71,241,127, 43, 87,153,143, 39, 41,149, 72, 82, 42,145, 45,253, 47,142, 92,187,132,206,189,218, + 2,165,246,151,102, 30, 56,175,173,120,250, 71,131,228, 65, 30, 29,161,166,170, 0,109, 17,248,218, 50,104,141, 85,208,144,106, +144,124, 79, 52,235,223, 19, 67,166,183,162,236, 89,115,244,184,191, 84, 42,117,151, 74,165, 64,205, 16, 0,164, 82, 41, 76,251, + 38, 11, 74,131, 29, 59,118, 56,220,104,103,207,158, 45,158, 51,103,142,188, 83,167, 78, 20, 65, 16,114, 0,120,251,237,183,169, + 86,173, 90, 81,159,127,254,185, 83, 75, 51,123, 9, 56,155, 86,125,246,158,104, 88, 51, 45,247,204,141,251, 56,144,195,193,103, +135, 30,104,255,155, 82,173, 80,234,241,174, 51, 50,203,203,135, 60, 74,203, 31,254,254,201,136,142,142,118,120,136,208,146,240, + 41,138, 34,232,229,164,153,226,221,119,223, 21, 63,120,192,204, 40,209,233,116,184,124,249,242,241,250,234, 11, 0,113,243,166, +141,249,145,145,145, 0,128,244,244,116, 28, 63,248,171, 48,191,240, 62, 73,147,191,233,217,205,237,237,242,229,203,113, 13,105, +111,223, 77, 26,137, 43,183,243,208,184,109, 19, 64,169, 98,252,236, 69, 37,165,208,235, 13, 38, 5,199, 0,189,222,128,188,187, + 57,194, 6,190, 86,194,206, 62,139, 39,136, 90,174, 40,173, 86,139,238, 29, 58,200,221, 69,110, 32, 73, 10, 70, 18, 56,125,242, + 20,254,251,213,215, 32, 41,224, 86, 86, 22, 46,101, 92, 68,151, 46,221,192,229, 18,120,161,109,115,100,159,103,238, 5,224,243, +138, 16,218,186, 16,224, 17,200,187,167, 7,120, 4, 94,236,112, 23,105,151,139,156,126, 0, 75,247,190, 45,207,128, 90, 81, 90, +107, 54,128, 61, 88,186,247,109,105,218,105,241,139, 49,100,246, 74,155, 81,236,150, 48, 24, 12,112,119,119, 7,135,195,129,159, +159, 31, 84, 42, 21,148,202,154,101,128,131,130,130, 80, 90, 90,234, 80,142,108, 77, 57,208, 75, 36,194, 39, 43, 78, 98, 72, 55, +224,238, 5,224, 47,211,185, 79, 86,156,196, 79,179, 37, 48,146, 70,135,203,239,234,185,211,230,239,131,194, 59,128,231,197, 65, + 82,202, 53,116,239,208, 2,222,158, 2,108,222,157,140,158,146, 8,228,219,152, 5, 96,175,252,246, 93,163,128,123,192,232, 65, + 4,214, 31,200, 70,128, 95, 27,140,237, 75, 48, 42, 63,218,221,159,164,252,123,233,100,234,139, 56,160,153, 2,196,212,133,160, +254,251, 21,192, 81,131, 72, 91, 68,119, 42,117, 22,102,200, 56, 79,121, 43,223,112, 84, 26,171,161, 45,207,194,150,220,109, 56, + 53,186, 28,157,166, 72, 48,116,166, 39, 68,126, 47, 64,200,243, 3,111,180, 2, 83, 12, 83,168,159,215,255,108,179,147,146, 74, +165, 20,173,180,113, 56, 28, 80, 20,165, 51, 41,209, 26, 14,135,163,162, 40,202, 31, 0,137, 6, 76,175,141,139,139, 75, 25, 54, +108,152,164,180,180, 84,158,148,148, 84,163,248, 36, 37,161, 99,199,142,232,208,161,131,132, 62,230, 8,170,180,228, 71,147,255, +239,167,253,223, 71, 52,230, 80, 26, 5,166,198,103,234, 13,122,253, 74,173, 17,139, 0, 56,181, 24,197, 27,111,232, 30, 57,249, +199,199,199,167, 56, 99,253, 91, 14,153, 16, 4,129, 94,189,122,137,153,174, 42,105, 52, 26, 29, 82, 24,238,220,185, 3,153, 76, + 70,172, 89,179,198,214,105, 33,128, 78, 0,120,175, 70,140,173,200,206,206,246, 77, 79, 79, 71, 66, 66, 2,194,179,179, 57,233, +233,233, 0,128,240,240,112,188, 54,176, 39,188, 61, 5, 88,185,113,111,209,196,137, 19, 99,215,172, 89, 51,219,209,246,118,239, +183,197,240,234, 44,132,103,251, 89,216,181,120, 10,186,117,105,140, 23, 70,126,109,183,125, 40, 42,171, 32, 20, 10, 0, 0,110, +110, 60,168, 84, 26, 87,243, 12, 75,250, 79, 0, 76, 22, 3,170,213, 81,145, 36, 9,119, 1, 31, 58, 3, 5,146, 2, 56, 4,176, +240,203,175, 97, 36,129,234,234,106,220,191,127, 15,193,193,141, 65, 81, 36, 12, 6, 35,132,110, 60,112,221,152,185, 96, 87,173, + 90, 37,110,223, 58, 95, 30,232, 87, 89, 83, 29, 76, 27, 65, 80,232,209,249,150,156,158, 21,224, 8,104,235,158,118,247, 91,147, + 63, 19,235,223, 90,139,166,137,127,213,190,180,135,200,159,169,245, 15,212, 4, 12, 9, 4, 2,248,248,248,152, 93,134,116,224, +159,143,143, 15, 26, 55,110, 12,131,129,185,242,180, 49,249, 4,124, 90, 3,226,208,154,253, 76, 67,141,251, 31,168, 57,246,249, +215,114, 84,232, 28, 27,146,201, 47,172, 9, 86,108,217,200, 31, 94, 62, 30,224,121,115,161, 41, 81, 3, 28, 14,154,180,106,142, +211, 25, 57, 78,149,223,187,115,191,193,128,222,175,130,119, 31,168, 14, 6,220, 57, 28,244,110,221, 6,210,209,193,140,228, 88, +143,245,111,125,115, 10,198,188,209, 31,104,167, 1, 46,241, 0, 79, 30, 48, 42, 28,205,215,174,103,230,141,105,230, 15,157,174, + 12,132,182, 20, 91,114,183,225,236, 36, 31, 12, 24, 51, 9,253, 26,189, 38,185,114,196, 0, 3,169,132,155, 78, 9, 67, 7, 18, +197, 15,152, 5,141,154,148, 55,205,164, 73,147, 56, 0,202, 41,211, 10, 81,166,253, 6, 33, 41, 41, 41,165, 99,199,142, 18,119, +119,119, 4, 6, 6,194,221,221, 29,169,169,169, 68, 82, 82, 82,138, 19,226, 26,143, 28, 57,114,253,170,117,191,112, 22,166, 84, +147,187,207,100, 65,171,211, 43, 53, 70,204,115,132,252,173, 93,254,169,169,169, 4,189, 61, 45,228,111,203,221,239,168, 23,160, +186,186,218,252,253,220,185,115,230, 13, 0,230,204,153, 83,107,223,226,122, 65, 29,226,154, 2,104,109, 82, 10,221, 95, 27,247, +182,198,210, 19, 64, 91,254,175,244,237,107,217,222, 14, 72,165, 82,141, 35,237, 45,102,212, 0,188, 24,222, 1, 94,221,188, 80, +112, 44, 23, 16, 10, 48,110,230,191,208,235,157,159, 24, 61,179,193, 96, 68,193,189, 7, 6,218,242,167,145,119, 55,167,161,175, +150,170, 99, 99,241, 20, 40, 4,176,101,169, 80,166,206,141,164, 0, 35, 89,163, 4, 16, 4,240,235,158,221, 24, 51,118, 60, 2, +131, 26,153, 59, 64,202,129,119,201,229, 20,161,115,187, 60,243,254,139, 93,220,205,186, 97,143, 78,217,224,114, 28,247, 2, 88, +187,251,109,157,119,196,250,183,118,247,219, 58,111, 57,151,189, 62, 84, 86, 86,162,170,170, 10, 90,173, 22, 36, 73,162,184,184, +216,236,254, 87,169, 84,168,174,174,118,104, 8, 96,239,138,207,145,114, 5, 80,228, 0,122, 53,240,211,124,137,217,253,127,254, + 2,112,241,222,105,112, 29, 44, 63, 69,225,109,248,251,120, 32,192,223, 3, 47,132,118, 68,246,157, 98,100, 22,148,162,101,128, + 15,180, 15,138,144,117, 43,171, 86, 46, 0, 38,229,215, 71,252, 58,250, 73,162,176,119,255, 46,200, 83,119, 97,219,178,185, 24, + 55,119, 17, 46,233,129,226,210, 34, 70,229,103, 57,214,255, 94,159,151, 17,221,169, 21,118,237, 61,142, 75,151,114,176,236,114, + 58,118, 12,249, 23,176,225, 12, 10, 10,138, 25, 89, 23,205, 53, 2, 24,117, 37,208,233,106, 34,171,131,155,181, 64,135,142, 29, + 37,149,162,154, 88, 12, 53,169, 2, 71,171,132, 72,201,197,131,123,245, 43, 0,244, 59,211,104, 52,208,104, 52, 66, 0, 58, 0, + 94, 26,141,198,219,122, 74, 96, 3,188, 0,226,212,212, 84,121,199,142, 29,241,246,219,111, 75, 74, 74, 74, 48,118,236, 88, 71, + 58,206,126,124, 62,191,218,211,211,211, 48,100,200,144,123,243,231,207,111, 26, 27, 27,155,253,215,133, 75, 35,118, 92,213,222, +208,147,112,120, 61,214, 71,225,242,119, 37,249, 91, 91,255,180,194, 66,191, 51,166,177, 0,110,110,127,199,168, 44, 91,182,204, +188,217,218, 7,204, 51,124,234,122, 55,124,211,198, 1,192, 83, 20,222,182,233, 78,167,219,219,133,243, 23,238, 76,156, 56, 49, +198,145,246,214,255,165, 23, 48,184,111, 40,190,249,114, 41,126, 88,158,136,255,108, 61,142,105,175,246,196,253,223, 19,161, 40, +175,100,210, 62,136,200,209,175, 65,175, 55, 92,208,235, 13, 6, 75, 5, 0, 0, 22, 45, 92,208, 16, 11,158,181,252,159, 32,108, +141,253, 91, 43, 1,181, 20, 0, 14,135, 3, 69,181, 10, 92, 14, 1,131,193, 8,146,162, 96, 32,107,130, 72, 51, 46, 94,192,171, +131,134,213,184,201, 40, 10, 92, 14, 23, 85, 42, 29, 12, 58,173,125,235,127,245,106,113,155,102,247,228, 65,254, 10,179,150,209, +167,151,167, 41, 70,151, 0, 65, 80,232,222, 49, 75,190,106,245,106,198, 94, 0,218,186,175, 47, 24,208, 41,235,181,158,224, 26, + 71,224,231,231,135,226,226, 98, 8, 4, 2, 84, 85, 85, 33, 40, 40,200, 28, 20,168,209,104, 80, 81, 81,225,144, 2, 16,243,205, + 14,252, 52, 95, 2,159,214, 64,202, 21,224,163, 37,114,120,242,184, 24,251,241,183,200, 39,239, 35,126,217,167,224,114,152,203, +163,173,255,240,240, 80, 4,181,109,141, 70, 65,129,224,115, 8, 24, 8, 10,197, 74, 53,202,171, 52, 78,149,223, 15,139,127,195, + 27, 29,219,192,219, 59, 0,238, 65, 77,161, 47, 43,199,133, 3,219, 81, 81,150,235, 84, 37,254,101,241,135,192,236,193,224, 25, +116,104,173, 4,138,184,149,248,233,222, 95, 0,223,155,177,140,243,251,255,144,148,112,212,200,229,171,208,179,157, 4,157,254, +229,137,108,191, 20,121, 80,208, 5,121,139,222,217, 80,112,170,160,165,212, 80,109, 37, 33,244,244, 98, 98,249, 91,118,240,244, + 44, 0,190,171, 26,238,225,195,135, 1, 0,209,209,209,146,184,184,184,148, 49, 99,198,152, 45, 70, 38,228, 31, 20, 20,116,104, +253,250,245, 30, 50,153,140, 59,123,246,108,204,154, 53,139, 58,115,230, 76,111, 0, 73,106, 3, 58, 2,248,211,209,123,146, 74, +253,234,116,251, 59, 27, 16,232, 74,242,183, 38,120, 75,133,133,162, 40,194, 20, 24,104,191, 93,228,231,159,161,191,111,219,182, +205,188, 89, 31,163,225,239,239, 15,169, 84, 90, 87, 39,152, 15,160, 2, 0, 39,191,240, 62,206,158, 61,107, 30,243, 15, 15, 15, + 7, 80,179,252,246,206,125,137, 40,175,210,168, 0, 44,156, 15, 74, 29, 0, 0, 32, 0, 73, 68, 65, 84,146, 74,165, 70, 71,218, +219,239,123,191,192,176,249, 51, 49, 98,196, 32, 4, 10,184,168, 34, 40, 36,101,230,225,236,149, 2,135,136,122,250,164,168,151, +178,179,178,120,121,119,115, 64,111, 38,242, 7,107,181, 63,155,196,111,125,204, 22,106,197, 0, 8, 4, 2,220,186,118, 73,210, +186,169,191, 92,228,198,131,209, 72,130, 32, 8, 16, 4, 16, 35,157, 1,138, 34, 97, 52,229, 3, 80,105, 52,184,158,153, 13, 62, +223,110, 84, 55, 12,250, 50,116,239,116,199,178,199,192, 7,179,239, 96,207,214,246,230,170,213,179,203,109,252,145,209,209, 97, +235,223, 22,241,171, 21,165, 0,224,148,245,111,171,161,165,197, 47, 6, 0,198,214, 63, 80, 51,207,191,113,227,198,208,106,181, +120,240,224, 1,140, 70, 35, 2, 3, 3, 81, 90, 90,138,192,192, 64, 83,185, 50, 39,236,226,251, 89,248,252,107, 57, 20, 57,192, +247,115,251,163,218, 96,196,156, 37, 9,248,113,126, 36,230, 46, 59, 0, 30, 65,192, 1,254,135,162,240, 54,154, 4,250,194, 13, +110, 48,130,192,189, 59, 87,113,183, 72,129,144, 32,127,252,126,254, 12,174, 95,131,195,214,255,184,201,115,224,230, 15,112,184, +192,166,196, 59,216,179,250, 19, 76, 94, 44,195,156, 81,221, 48, 99, 80, 43,135,202, 47, 73,169,196, 15,163, 39, 0, 21, 66,128, +112, 3,126, 88,138,241,127,157,196,145, 65,211, 65,124, 59, 19,196, 31,159, 50,182, 48, 46,222, 11,192,203,106, 5,170, 69, 92, +168,132, 66,132,140,115,131,150, 82, 67,193,113,131, 1,161,160,140, 42,232, 75,238,225,244, 10, 5,162, 39,134, 32, 69, 46,127, +236,141, 54, 38, 38,134, 2,128,117,235,214,209,174,126, 98,246,236,154, 97,224,173, 91,183, 50,125,179,125,155, 54,109,122,248, +219,111,191,245,184,117,235, 22,220,220,220,224,237,237,141, 75,151, 46,233, 1, 20, 55,228,254,234,155,147,239,140,119,192,149, +228,111,109,253,215, 16,243,195,211, 7, 77,211, 3, 83,236,220,215,173,157, 59,119,246, 97, 58, 60, 39, 20, 10, 39,215,173, 52, + 73,171, 6, 14, 28,120, 7, 64,120,230,133, 51,176, 28,243,255, 96,242, 4, 28,110,219, 22, 9, 9, 9, 72, 79, 79,199,161,182, +109,221, 39, 78,156,184,241,196,137, 19,140,219,219,155,131, 95,134, 15,233, 7, 21,220,176, 39,110, 38, 86, 31,184,136, 79, 94, +235,135, 73,203,182, 97,252,162, 45,142, 90,224,196,162,133, 11,108, 37, 2,162, 44,148, 0,214,162,127,206, 80,203, 3,240,193, + 7, 31, 16, 21,247,178,112, 59,175, 20, 60, 55, 46, 12, 70, 18,122,131, 17,231,207,167,227,127,255,219, 8,157,145,130,222, 72, +130,207,227,160,168,188, 26, 5,215,207, 74,102,205,154, 85,111,131, 90,189,122,181,184, 99,200,221,191,173,127, 83,189,218,179, + 53,180,166, 62,113, 40,128, 67,129,195, 33,209,187,219,117,249,106, 6, 94, 0, 91,214,191,229, 44, 0, 15,255,198, 14,145,191, + 45,235,223, 50,170,118,200,236,149, 14,145, 87, 77,167, 88,142,234,234,106,184,185,185,153,173,127,146, 36,205,159,142, 42, 0, + 91,226, 22,224,124,193, 9,120, 54,174, 9,250,243,226,113, 81,124, 63, 11,222, 2, 55, 84,148,229,131,203, 33,192,227, 48, 27, +126,166,173,255, 22,254, 94,184,150,125, 7, 6,157, 14, 2, 30, 31,213,213, 26,252, 46, 63,131,158,146, 8,135,200,159, 46,191, +215, 63,252, 10,241, 63,253, 8, 21, 9,180, 8,105,142, 43, 87,255,192,156, 81,221,156, 42, 63, 0,152, 19,210, 19,251,111, 29, + 7, 20, 6, 64, 24,136,163,105,215, 64,124, 59,147,238,152, 24, 23,222,137,165,217, 41,167,143,166, 1,186, 42, 84, 19, 85, 40, +231, 84, 67,193,211, 67,111,172,132, 64,163,130,176,240, 14,118,196,222, 66,235,176, 80,212, 21, 0,104, 13,145, 72,100, 73, 2, + 16, 10,133, 54,207, 49,197,250,245,235,177,126,253,250, 6, 53,102, 47, 47,175,143,178,178,178, 60,188,189,189, 33, 18,137,224, +239,239,143,226,226, 98, 16, 4,161,114,101,167, 65, 91,252,145,145,145, 20, 80, 19, 16,232, 72, 80,160,171,201,255,229,151, 95, + 22,219, 11,168,101, 26, 11,224,225,225, 17,195,227,241,110, 91, 31, 95,182,108, 89, 45,203, 31, 0, 90,181,106,133,193,131, 7, +111,178,103,255,228, 23,222,175, 21,237,255,249,255,205,134,128,199, 71,112,112, 48,232,152, 0,211,121, 15, 71,218,219, 20,241, +139,152,181,244, 71, 84, 61, 40, 66,144,119, 35, 92,189,150,139, 73,203,182, 57,220, 62,172, 8,159,176,250,189,165, 28,214, 19, +240, 12,224,226,197,139,245, 38, 3,170,211, 3, 0, 0,243,230,205, 75,249,126, 41, 33,161,168,209,242,214, 77, 3,224,229, 46, + 64,167, 46, 97,232,212,185, 27,120, 28,160, 90,109, 68,238,189, 50,164,165, 28,148,120,122,184,219,253, 3,165, 74,133,208, 86, +247,160,209, 10, 77, 89, 91,106,170,145, 72,168, 1, 69, 1,101, 21, 2,128, 0,188, 60, 12,232, 26,154,131,147,231,236,103,177, +179,180,254, 45, 45,126,145, 79, 0,220, 40, 61, 96,248,187,191, 51,242,236,223,163,165,245,111,105,241,211,199,178,174, 94, 48, + 95,203, 36,203,158,165, 18, 0, 0,141, 27,215, 40, 35,101,101,101,240,246,246, 54,187,255, 29, 81, 0,104, 37, 0,248, 22,211, + 35, 7, 2, 63,157,196,234,127, 71, 96,252,220, 31,177,109,241, 12,240, 8, 2,124, 1,179, 25, 59,180,245,127, 45,183, 8,237, + 90, 4, 98,195,207, 59,208,186,117,107,248, 52, 13, 65,183,166, 33,208,107,255,118,255,187, 49,144, 73, 91,255, 95, 79, 30,132, +143, 22,110, 66,139,182, 68,131,202,143,182,254,135,238,253, 5, 71,162,163, 64, 52,239, 13,160, 38, 43, 32, 0,220, 81, 42,205, + 74, 98, 38,152, 37,240, 89, 53,233, 54, 49,112, 30, 37, 14, 25, 91, 37,111,221,190, 11, 42, 69,192, 29,220, 69, 85, 78, 49,138, + 23, 25, 81, 93,222, 28, 55, 78,103, 50,126, 33, 36, 73, 18, 34,145,136, 82,171,213,176,176, 60, 41,145, 72, 4,146, 36,137, 39, +209, 89, 86, 85, 85,125, 63, 99,198,140,209,235,215,175, 23,250,248,248, 64, 46,151, 99,249,242,229,149, 58,157,238, 53, 87,254, + 15,109,241,211,211,229, 28, 13, 4, 76, 72, 72, 32, 76, 73,126, 26, 76,254, 0, 96, 65,236,118,203,220, 94,134, 65,169, 84,170, +147,201,100,189,119,237,218,117, 73,169, 84, 54,209,235,107,166,153, 90,147,127,167, 78,157,208,187,119,239,145, 82,169,212,222, +127,242, 20,133,183,241,205, 23,159,227,215,253,135, 48,172, 95, 15, 28, 75,254,163,198,128,105, 26, 2,159,166, 33, 8,207,206, +198,107,227,222, 46,201, 45, 85, 13, 5,176,155,169,245, 63,107,221,126,196,190, 63, 20, 77, 27,139,205,202,133,117, 57, 52, 48, +155, 34,235, 9,120,142,148, 2, 70, 10, 0, 0,124, 50,111,110,202,247,223,147,146, 59,205, 95, 64,219,246, 29,229,222, 30, 34, +144, 20,160,214,234,144,157,157,141,226,236,139, 18, 47, 79, 15, 76,159, 62,221,110,195, 21, 9,133,216,117,120,160,132,142,128, +175,215, 29,193,225,192,195,131,185,245, 68, 79, 1,244,240,111, 12,210,168,175, 33,127, 19,244,132,155,221, 20,187,214,160,167, +212, 12,153,189,178, 22,105, 57, 67,254,150, 74,128,101,226,159,178,178, 50,251, 47,192,142, 18,176,197, 98,150,240,250, 69, 31, +252,189,163,175,134, 39, 67, 57, 45,252,189,176,235,220, 69, 92,185,113, 19, 61, 37, 17,181, 72,223, 17,242,167,241,250,135, 95, + 97, 79, 15, 15,124, 56,166,131, 75,202,111, 78, 72, 79,204,221,183, 11,196, 55, 11,113, 40,248,101, 44,175,190, 82,235,252, 88, + 31, 95, 44, 86, 84, 56, 68, 28, 39,150,102,167,248,241,134, 32,191,252, 54,138, 75,239,225, 65,166, 39,184, 70,111,244,125,177, + 63,118,156,222,241, 68, 59, 53, 23,101,251, 59,183,113,227,198, 33, 4, 65, 28,253,241,199, 31,133,111,188,241, 70,165, 74,165, + 26, 10, 39,198,252,235,131, 43,166, 0, 74,165,126, 46, 33,127, 27, 86,170, 61,229,131,193,189, 73, 75,100, 50, 89, 72, 85, 85, +213, 55,233,233,233,179, 11, 10, 10,160, 84, 42,193,231,243,209,164, 73, 19, 4, 5, 5,189, 33,147,201,126,223,178,133,209,146, + 0,215, 1,132,183,240,247,194, 43,175,188,130,139,183, 10, 16,216,166,115,173,246,246,218,184,183, 85, 0, 86,124, 19, 59,123, + 55,211,231,152, 34,126, 17, 67,146,255, 68,244,194,255, 97,192,128, 1, 8, 14, 14,182,169,104,185,240,181, 19, 78,144, 63, 85, +207,113, 86,137,120, 2,164,207, 40, 21, 48, 0,124,242,201, 39, 41,171, 86,173, 18,159, 79,201,148, 0, 53,145,180, 20, 69, 65, + 32, 16,224,211, 79,230, 49,110,180, 31, 58,152,230,151, 41,104, 87, 63,215,160, 2, 12, 42,115, 4, 60, 77,252,142,206,197,162, + 93,253, 89, 87, 47, 32,235,234, 5, 4, 5, 5,161,184,184,216, 41,226,247, 9,106, 10, 29,131,224, 72,166,136,254,106, 11,206, +156,116, 93, 49,230,228,228,152, 87,251,211,107, 53, 15,145,191, 35,196, 79,227, 95, 61, 60, 92, 86,126, 0, 64,196,125,106, 38, +126,154,252,239, 40,149,146,177, 62,190, 72, 2, 82, 22, 43, 42,156,122,246,223, 22, 31,181,232,120,212, 0,128, 29, 87,153, 39, +236,161, 40,138, 16, 8, 4,102, 47, 0,253, 29, 0, 4, 2, 1, 97,235,251, 99,198,169, 95,126,249,101,192,238,221,187,231, 84, + 86, 86,198, 1, 72,115,245, 31,184, 98,234,159,139,201,201,229,144, 74,165,106, 0,115, 76, 91,131,222,199,229,203,151,251, 2, +104, 19,216,166,179, 74,175,213,184,155,218, 91, 37, 0, 5,128,235, 45, 3,220,223,148, 74,165, 14, 85,232, 33,159,175,127, 92, +196,239,148,162,229,228,245, 44, 92,128,176,176, 48, 70,228,111,215, 0,109,232, 74,125,143, 2,244,216, 62, 77,252,104, 32,241, +211, 99,211,138,162,124, 40,138,242, 17, 20, 20,212, 32,139, 31, 0, 12, 70,210, 97,239, 67,125, 40, 42, 83, 56,125, 47,214,160, +199,246, 93, 69,252,143,160,252, 8, 0, 24,230,225, 65, 89, 90,253,221,121,110, 13, 34,254,127, 24,254,170,172,172,140, 98,139, +225,201,227,196,137, 19, 50,153, 76,246,191,220, 82,149, 74,175,213, 88,142, 71,122,183, 12,112,247,115, 98,245, 63, 2,168, 25, +202,120,214,148, 42, 22,143, 87, 9, 96, 84,153,156, 93, 71,152, 5, 11, 22, 44, 88,176, 96,241,236,130,195, 22, 1, 11, 22, 44, + 88,176, 96,193, 42, 0, 44, 88,176, 96,193,130, 5, 11, 86, 1, 96,193,130, 5, 11, 22, 44, 88,176, 10, 0, 11, 22, 44, 88,176, + 96,193,226,185, 64,173, 89, 0, 23, 47, 94,116, 58,138,212, 86, 48, 33, 43,143,149,231, 42,121,166,181,213, 57, 0, 72, 91,201, + 87,216,242,171, 91, 94, 88, 88, 24, 93,118,244, 92,110,234,226,197,139, 36, 91,126,172,188,103, 73, 94,120,120, 56, 47, 61, 61, +221, 0, 0,189,122,245,162,218,183,111,143,248,248,120,130, 45, 63,219,242, 28, 86, 0,158, 19, 52, 40,201, 68,100,100,164, 24, +128,101,202, 80, 73, 66, 66, 66, 10,171, 43, 62, 25,124,247,221,119,239, 92,190,124,185,219,217,179,103,231, 10, 4, 2,168, 84, +170, 79,101, 50,217, 82, 6, 25,216, 88,252,221,177, 80, 0,140,108, 73, 60,221,136,136,136, 16, 31, 60,120, 48,197,201,223, 74, + 18, 19, 19,143,187, 40,161, 20, 34, 34, 34,222, 76, 76, 76,220,177,118,237, 90,127, 0, 85, 0,140, 79,186,205,209,228, 31, 29, + 29, 77,109,221,186, 21, 61,123,246,100, 43, 77, 3,241, 92, 13, 1,152,200,187, 65,191,223,181,107,151,117,190,112,121, 67,228, + 70, 70, 70,138, 77,115,118,169,200,200, 72,202, 81, 89,148,131,176, 53, 63,184,129,242,196, 79,226, 93,202,100, 50, 98,230,204, +153, 75,175, 94,189,250, 83,171, 86,173,230, 10,133, 66,104,181, 90, 0,248,110,207,158, 61,228,152, 49, 99, 36, 79,168,201, 80, +142,111,143, 83, 94,157,107,176, 91,174,197,238,212,250,236,145,145,145, 98,138,162, 40,234, 63,182,101,211,231,236,213, 65, 91, +200,201,201,161,114,114,114, 92, 70, 48,101,101,131,107,173, 87,224,106,162, 38, 8,194, 33,185, 36, 73, 81, 70, 35, 69,145,164, +237, 45, 34, 34, 66,156,152,152,232,212, 42, 84,235,214,173,123,245,208,161, 67,199, 7, 14, 28, 8,130, 32,168,237,219,183, 15, +118,244,222,172,183, 67,135, 14,237,120,171, 15, 31,210,105,210,178,219,158,217,187,167, 78,141, 33,233,115,246,228, 41,149, 74, + 74,169, 84,214, 91, 15,233,107,156,125, 63, 55,206, 73,144,188, 46, 3,225,225,225,172, 33,192,220, 16,120, 40, 65, 16,207, 78, +131,183,153, 55,219, 94, 62,237, 39,136, 6, 45,227,182,107,215, 46,249,132, 9, 19, 0,212, 36,213,176,168,156,114,103,188, 10, +180, 66, 65,231,252, 55,165, 33,149, 71, 70, 70, 58,230, 85, 72,240,119,224, 95,237,183,125,229,168, 15,152,139,115,124, 93,155, +186, 26, 36,227,242,147,201,100,132, 66,161,216,217,165, 75,151,113, 0, 56, 20, 69, 65, 36, 18,161,168,168, 8, 21, 21, 21,240, +241,241, 65, 81, 81,209,241, 49, 99,198, 72,246,238,221,155,226,224, 59,161,232,116,176, 4, 65, 96,220,184,113, 24, 60,120,176, +100,218,180,105,140,229,236,219,247,155,249,251,232,209,111,216,221,183, 7,245,153, 15,255, 46,238, 62, 43,107,237, 91, 31, 19, +245,177,191,168, 18,189,156,176, 37, 82, 83, 83,177,104,209,162,135,222, 69,255,254,253,169,147, 39, 79, 50,170,203, 9, 9, 9, +114, 44, 36,232,253,135, 19,207, 44, 36, 26,220, 25, 63,197,125, 75, 45, 75, 91, 38,147, 73, 98, 98, 98, 48, 96,192, 0,234,212, +169, 83,140,126,123,166,142,156,140,123, 19,230, 34, 49, 49, 81, 78, 47, 18, 54, 96,192, 0,170,178,178,178, 62,194, 23,199,196, +196,152,235,235,239,191,255,238, 78, 16, 4,162,162,162, 30, 0, 8,158, 56,113,226, 81,153, 76,198,113,196, 98, 95,122,116,169, +249,251,253,164,123, 32, 8, 2,219, 62,118, 7, 64,224,251,183,191,123, 61, 48, 48, 16, 0,176,125,243, 54,198,101, 21, 30, 30, +142,182,109,219,186,164,220,195,195,195, 57,233,233,233,100,175, 94,189,168,173, 91,183,226, 65,102,107,160,196,143,101,117, 7, +200,223, 81, 15, 0,149,144,144,240,144,134,101,209,129, 82, 78, 52,110,151, 90,147,214,242, 18, 18, 18, 44, 23,196,112, 24, 4, + 65, 16, 9, 9, 9, 4,221, 1,153, 62,157,182, 52,105,242, 55,221, 19, 97,113,111, 14, 43, 42,196,132,114,243,198,228,184, 61, +120, 30, 88, 99,222,152, 28,119,132,252, 41,138, 2,189, 58, 27, 69, 57, 86, 77,100, 50, 25,167,188,188,252,127, 62, 62, 62,227, + 0,112, 38, 79,158,140,232,232,104,240,249,124,136, 68, 34, 8,133, 66, 16, 4, 1, 46,151, 11,133, 66,193,184, 28,135, 12, 25, + 34, 6, 64,237,222,189, 27,244, 59,161, 40, 10,123,246,236,193,180,105,211,228,166,243, 79, 29,108, 41, 4, 79,194,179,150,144, +144, 32, 7, 64,188,121, 99, 2, 38, 92,183,217,198,168, 9,215, 35, 37,196,151, 78,181, 59,234,147, 79, 62, 65,155, 54,109, 92, +114,191, 4, 65, 80, 82,169, 31, 2, 2,142,185,180, 28,134, 15, 31, 62, 40, 57, 57,249, 56, 69, 81, 68, 76, 76, 76,138, 35,228, + 95, 23,246, 38,204, 69, 92, 92, 28, 72,146,196,220,185,115, 25, 41, 20,150,228, 15, 0,135, 14, 29,218, 63, 96,192, 0, 0,240, +139,138,138, 50, 12, 28, 56, 16, 82,169,148, 52,197,205, 48,241, 50,214,218, 95,190,124, 57,222,124,165,198, 54,220,246,177, 8, +111,245,225,227,211, 97,159, 48,126, 38, 15, 15, 15, 12, 24, 48, 0,233,233,233,230,254,212,122,163,175, 97,170,236,165,167,167, +147, 64,205, 50,235, 0,224,237, 94,194,178,122, 3,201,191, 94, 5,128, 38,171,244,244,116,115,218, 73, 75,235,201, 81,162,181, +232, 68, 92,221, 41, 89, 43, 3, 46,117, 13,219, 24, 18,112, 24,150, 10,133,201,250,127, 30,235, 25,101,217,153, 20, 20, 20,152, + 79,228,231,231, 51, 86, 24, 21, 10,197,183, 42,149,234,109, 14,135,195,153, 56,113, 34, 20, 10, 5, 10, 11, 11,225,230,230, 6, + 30,143, 7, 30,143, 7, 55, 55, 55,136, 68, 34,168,213,106, 48,113, 33,174, 93,187, 86,124,244,232, 81, 57, 65, 16, 24, 63,126, + 60, 40,138,162,149, 60, 98,252,248,241, 0,128,228,228,100, 57,219, 85,212, 79,254,166,247, 43,177, 84,146,233,119,111,233,213, +114,198,130, 79, 72, 72, 32, 76,239, 5,107,215,174,117,137, 50,182, 96,193, 2,218, 40,104,176,103, 98,216,176, 97, 67,206,157, + 59,151,220,186,117,107,180,107,215,142,234,219,183,175,217,115, 98, 90,253,209, 41,242, 95,182,108, 25, 8,130, 0,135,195,193, +185,115,231,192,196, 27, 99,229,145,120,157, 32, 8,188,245,214, 91, 6,211, 33, 93, 84, 84, 84,165, 88, 44,198,180,105,211,200, + 17, 35, 70,216,125,118,203, 85, 73,239, 39,221, 3, 8, 32,254,163,191,179, 22,111,251,216, 29, 81,125, 5,152,255,218,167,140, +239,139,137,229,207,228,154,232,232,104, 42, 60, 60,220,188,157, 59,119, 14,213,185,225,128, 78, 13,194,211,128,228,175,175,195, +242, 60,189,177, 45,183, 54,249,199,204, 95,108,243, 60,175,190, 6, 25, 30, 30, 78,165,167,167,131,246, 4,208,196, 21, 30, 30, +238, 80, 35,127,212,228,111,105, 85, 63,237, 1,123,150, 67, 2,207,157, 6, 64, 81, 40, 40, 40,192,253,251,247,205,199,172,247, +237, 88,255,220,195,135, 15,143, 8, 13, 13, 5,151,203, 69, 86, 86, 22, 40,138,194,205,155, 55,161,211,233, 64, 16, 4,120, 60, + 30, 8,130,128,209,104,132, 74,165,194,222,189,123,237,202, 61,118,236,152, 28, 0,198,143, 31,255, 80,189,165,135,122,104,162, + 96, 82,175,173,221,250,246,246,153, 88,249, 52,234, 26, 14, 96,226,250,183, 70,106,106, 42, 76,150, 97,195, 20,224,133, 4,136, + 47,107, 20, 56, 75,229,149,162, 40, 96, 33,129, 9,215, 35,157, 14,148, 37, 8,130, 50,189, 23, 51, 25,153,222, 23,209, 16,121, +237,219,183,127,136,220,156,133, 64, 32,160,174, 94,189,138,226,226, 98,162,184,184, 24, 97, 97, 97, 84, 78, 78, 14,184, 92, 46, + 12, 6,131, 83,127, 48,176, 47,151, 86, 30, 48,111,222, 60, 44, 95,190, 28, 39, 79,158, 4, 65, 16, 24, 53,122, 42,238,230, 48, + 91,192,241,208,161, 67,191,153,222,177, 6, 0,105,218, 16, 21, 21, 85, 1,192, 55, 49, 49, 17, 17, 17, 17, 98, 75,133,188, 62, +212, 88,255, 15,175, 99, 82, 51, 28, 0,108,223,118,193, 33,121, 13,197,141, 27, 55,112,238,220,185, 90,199,140, 21,119, 96,208, +147, 0, 81, 5,223,215,244, 56,103,181,216, 53, 27, 28,200,140,252,235,245, 0,152,172,127,194,210, 19, 64, 91,254,233,233,233, + 13, 33,127,123, 1, 74, 78,201,179,240, 76,136,225, 68,128,211, 35,176,156, 40,139,206,199,124, 63,244, 49, 87, 5, 39, 81,187, +252,204,155, 43, 80, 61,114,186,121,115,192,242,167,232,206,182,121,243,230,232,217,179,167,185, 17,210,251,214,215,214, 1, 95, +127,127,255, 46, 90,173, 22,101,101,101, 56,115,230, 12,210,210,210, 80, 92, 92, 12,181, 90, 13,122,140,148,162, 40,232,245,122, +104,181, 90, 70, 67, 12,116,221,168,139,220, 19, 18, 18, 8,130, 32,192,212, 51,179,111,223,111,230,141,201,190, 61,168,207,124, + 88,139,232,233,205,114,223,242, 26,166, 24, 48, 96, 0, 82, 83, 83, 27, 86, 33, 44,198,252, 81, 51,140, 37, 49,145, 51, 65,159, + 67, 3, 99,111, 44,223, 11,237, 5,112, 21, 92,225, 5,104,214,172, 25,242,243,243, 9,107,101,215, 89,242,223,155, 48,215, 92, +135,105,244,235,215, 15, 0,112,226, 52,243,201, 26, 17, 17, 17,195, 76, 99,255,215, 0,168, 76,253, 57,189,153,181,110,166,193, +133,181,199,254,109, 40, 87, 14,202,115, 5,210,211,211,137,158, 61,123,162,234,218,112,148,159,105,130,138, 83, 34, 80,229, 21, + 64, 53,192, 81, 25, 80,121,146, 3,245,159,124, 84,156,105,132,195,219,134,160,103,207,158, 14,241,211, 63, 29, 60, 38,141,147, +246, 4, 56,106,249,207,159, 63,159, 90,178,100,137,203,110,214,158, 60, 83, 39,229,178,202,201,116, 12,173, 62,210,177,144, 85, + 45,149, 74, 61,235, 58,239, 44, 44,199,254, 93,161, 4, 88,142,253, 51, 85, 2,162,163,163,225,225,225, 1, 79, 79, 79,120,121, +121,193,199,199,135,244,243,243,227, 36, 38, 38,226,157,119,222, 49, 95, 39, 20, 10, 49,116,232, 80,212,163, 4, 4,232,116, 58, +148,149,149, 65,163,209,192,199,199, 7, 2,129, 0, 6,131, 1, 20, 69,193,104, 52, 66,167,211, 65,175,215,195,104, 52, 58, 20, + 95, 96, 10, 90,171,243,188,165, 21,250, 36, 97, 47, 32,208, 81, 52, 84, 9, 32,190,172,123,184,111,194,245, 72, 19,185, 58, 41, +219,202,250,183, 56,142,241,227,199, 59, 28, 12,104,109,253, 91,202,115, 22,225,225,225,148,209,104, 68, 88, 88, 24,117,241,226, + 69, 34, 44, 44,140,210,235,245, 80, 40, 20, 13, 33,181,154,206,151,199,195,236,217,179,113,238,220, 57,252, 61,238,207,188, 78, + 31, 62,124,248,112,255,254,253, 1,192,203, 68,250, 42, 0,216,177, 99, 71,163, 19, 39, 78,120,155,218, 7, 97,250,180, 43,120, +249,143,203,241, 86,239,135,173,255,232,159, 84,216,113, 70, 15,138,162,208,125, 98,119, 92,216,118,129,120,156,198, 85,122,122, + 58, 33,249, 87, 56,117,120,121, 43,240,170, 43, 1, 67,205, 95,147, 0,248, 60,160,224,190, 47,142,231,134, 27,215,109, 47,230, +166,167,167, 19,225,225,225, 66, 58, 86,128,181,254, 23,215,123,157,221,105,128,145,145,145, 20, 93, 97, 45,227, 1,152, 96,201, +146, 37,180,197,224, 18, 48,144,231,244,248,186,105,138, 94,173, 45, 57, 57,153,164,103, 5, 52,212, 98,143,137,137,241,124,158, + 43,220,186,117,235,176,108,217,178, 90,245,138, 38,255,209,163, 71, 99,244,232,209, 53, 22,206,137, 19,245,137,241,207,206,206, +214, 24,141, 70,148,151,151,163,164,164, 4,229,229,229, 80,169, 84, 80,169, 84,168,174,174, 70,101,101, 37, 20, 10, 5,212,106, + 53,180, 90, 45,152, 52,116,130, 32,176,123,247,110,135, 20,182,103, 25,169,169,169,181, 54, 75,204,158, 61, 91,108,185,207,100, +204,217,198,152,127, 45,203,189, 33, 81,251,182,126, 75, 81, 20,177,123,247,110,151,198, 2,236,222,189,219,225, 54,220,163, 71, + 15,202,104, 52,154, 19,180,132,133,133, 81, 36, 73,226,193,131, 7, 80, 42,149, 78, 61,243,191,231, 15,196,137, 19, 39, 64,238, +244, 5, 69, 81,136,139,139, 51,191,163,212, 51, 36,152,142,124, 68, 68, 68,188, 1, 0, 81, 81, 81, 5, 38, 5, 64,187,125,123, +124,163,233,211,167, 55, 58,113,226, 4,134, 15, 31, 62,196,145,156, 0,247,147,238,129, 0,129,120, 11,235,127,226,143, 42,112, +223, 82, 96,251, 25, 29,102,205,154,133, 37,135,191,123,236,117, 57, 60, 60,156, 75, 43, 1,175,205, 50,128, 82,251, 0,149, 0, + 42, 1,110, 21, 80,249, 0, 56,116,161, 9, 44,200,159,151,158,158,174, 97,201,223, 62,249,219,245, 0, 88,143,251, 91,198, 3, + 48,117,179, 36, 36, 36,164,152, 2,132,228, 86,158, 36,103, 59,140,135,228,209,195, 2,166,113, 72,151,184,127, 6, 15, 30,124, + 37, 57, 57,185,203,211,248,130,105,171,223, 85,110,127,218,234,119,192,237, 95, 11,241,241,241,230,239,255,253,239,127,177,113, +227, 70, 0,208, 1,224,211,196, 15, 0, 67,135, 14,181,167, 0,168, 67, 67, 67,161, 82,169,160,211,233, 80, 92, 92, 12,129, 64, + 0, 30,143,103,246, 0, 40,149, 74,168, 84, 42,104,181, 90, 40, 20, 10,140, 27, 55, 78,178,103,207,158,122,239,143,182, 50,237, + 76,107,197,248,241,227,237, 42, 10, 53, 10,205,163,139, 1,112,230,188, 53, 44,166,251, 61,132,184,184, 56,249,236,217,179, 37, +113,113,113, 41, 79,180, 14,215, 97,253, 91,194,145, 88,128,186,172,127,103,209,163, 71, 15,234,252,249,243, 68, 88, 88,216, 23, +116,213, 54, 26,141, 11, 61, 60, 60, 80, 82, 82,226, 84, 31,243,249,103, 3,145,146,146, 2, 98,119, 0, 0,224,200,231, 94, 24, +250,117, 21, 6, 12, 24,128,111,150,156, 0, 69, 81,140,189, 21,135, 14, 29,218, 59,112,224, 64, 0, 40,222,177, 99, 91,179, 19, + 39, 78,250, 82, 4,133, 17,195, 71,140, 62,120,240,224,254,131, 7, 15, 58,228,229, 92,190,124, 57,222,234,227, 86,219,226, 7, +133,217,179,102, 35,120,104, 99, 60,169,184,165,244,244,244, 90, 26, 62, 85, 5, 8,116, 0, 73, 17, 48, 24, 41, 8, 40, 32, 88, +196,177,188,222, 0, 22, 53, 70,217,146,207,234, 84, 16,194,194,194,234, 87, 0, 44, 35,254, 77,228,111, 14,150,162, 61, 1, 76, + 53,127, 27,164,221, 32,216,144,231,242, 49,169,152,152,152, 46,201,201,201,174,236,240,158,215,122, 70,160, 38, 10,220,108, 73, +191,247,222,123, 0,192,183,168, 75,230,115,166, 78,171, 46, 92,237,221,187,247, 59, 41, 41, 41, 9, 70,163, 17,149,149,149,208, +235,245,230,113,127,141, 70, 99,158, 98, 72, 7, 6,238,217,179, 39,133, 65,125, 33, 96,154, 2,104, 93,111, 35, 35, 35, 41,154, +244, 7, 15, 30, 44, 97,162, 0, 60,170, 60, 0,150, 99,255,150,228,111, 61, 44,192,224,125,212, 7, 42, 46, 46, 78,254,230,155, +111, 98,231,206,157,206,122,203,196,150,158, 19,122,159, 14, 24,156,112, 61,146,186,117,235, 86,157,191,167, 19,254, 28, 62,124, +184, 78,143,221,157, 59,119, 24,123,102,202,202, 6, 83, 0, 48,100, 72, 54,178,179,179,109, 70,151,151,150, 14, 2, 80, 14,192, +126,191,213,169, 83, 39,234,252,249,243,132,169,179,252, 2, 0, 56, 28,206,194,187,119,239,162,188,188,220,169,134,204,225, 16, + 53, 10, 59, 77,254,151, 12,216, 40,215, 1, 0,190, 89,114,194,225, 62,130,110, 19,211,167, 79, 15,163, 40, 10, 17, 35, 35,198, + 29,216,127,224, 87,166,196,111, 41,234,141, 49,175, 95, 35, 8,162, 19, 69, 1,220,183, 20,160, 40, 10,179,231,204, 70,227,161, + 77, 26,152, 87,181,102, 90, 47, 93,239, 26,146, 73, 48, 60, 60,156,218,245, 89, 83,120,150,222,193,237,202,230,104, 35, 40, 6, + 60,130,193, 83, 62,128,183,178, 20, 64, 35,179,199,192, 90,105, 96,225,132, 7,192,114,186,159,213, 52, 54, 42, 33, 33,193, 97, +151,169, 5,105,187,228,198, 45,229,209,243,255,159,211,233,117,207, 4,172,202,190,214, 20,177, 58,206, 61,212, 25, 72,165, 82, +131, 76, 38,219, 51,112,224,192,153,137,137,137, 43, 12, 6, 3, 42, 42, 42,204, 49, 0, 0, 80, 92, 92,140,138,138, 10, 80, 20, + 5, 71,234,211,144, 33, 67, 36, 71,143, 30,149, 39, 36, 36,212,178, 62,233,223, 15, 25, 50,196,161,100, 64,143, 2,234, 51, 31, + 58, 67,248, 15, 17,188,157, 46,155, 32, 8,130,114,134,252, 77,158,182, 20, 91,109, 17, 0, 44,130, 2, 25, 97,218,180,105,114, + 6,255, 73, 57, 48, 87,188,214,103,109, 34, 98,150, 28,175, 77,155, 54,212,181,107,215,104,151,255, 23, 0, 22,106,181, 90,220, +190,125, 27, 10,133,194, 89, 42,164,200,157,126, 56,114,169,198, 56,221, 36,215, 97,199, 25, 29, 40,138,194,201,179,206,143, 44, +166,166,166, 98,248,240,225,146,131, 7, 15,166, 28,216,127,192, 89, 49, 28,146, 36,221, 0, 96,231, 89, 61,102,205,154,133,198, +195,154, 48, 87, 39,109, 64,169, 84, 2, 0,178,179,179,169,117,235,214,153, 21, 50,203, 88,146, 77,155, 54, 89,246, 15,140,254, +165, 21, 71, 9, 4,133,225,157,245, 10, 0,193, 53,101, 48, 35, 16, 45,121,121,248,122,112, 17, 54,183,127,139,218,177, 99,199, + 63, 62, 0,144,182,238,109, 89,254,214,231,235, 27, 2, 32, 76, 67, 0, 15, 77,155,114,100, 8,192,102, 71,225, 58,210,177,148, +231,210,249,255,244,216,191,179,176,167,144, 56,170,176,212,229,238,119,118, 24,160, 46,119,191,147,195, 0,150, 65, 65,132, 3, +231, 96, 67, 9,160, 0,172,148,201,100,107,227,227,227,245,124, 62, 31, 90,173, 22, 6,131, 1, 36, 73,194,215,215, 23,229,229, +229,112, 52,155,226,209,163, 71, 83, 80, 51,239,159,218,189,123, 55, 76,138,128,121,106,224,209,163, 71,255, 17,157,195,155,111, +190, 73, 41,149, 74, 28, 56,112,192,209,250, 44,182, 83,222,212,132,235,145, 18, 38,222,184, 79, 62,249,228, 33,227,194, 26,159, +126,250, 41,197, 52,200, 83, 42,245,179, 43, 79, 42,245, 99, 36, 76, 36, 18,209,157, 36, 69, 81, 20, 84, 42, 21, 10, 11, 11,157, + 30,243,183,196,176,175,171,106,237, 55,132,252,141, 70, 35, 1, 0, 78, 88,252,214, 32,247,253,190,191,189,101, 38, 64, 87,161, + 62,133,204, 66, 1, 96,100,253, 75,199,135, 20,254,146,137,166,178,221,183,107, 69,249, 15, 88, 21, 78, 29,159,246, 2,110, 61, + 16,161, 62,175, 19, 11, 7, 61, 0,166, 23, 71, 56,114,252, 9, 91,160, 41, 79,217,253, 16, 14, 88,204,118, 20,145,193, 46,187, +175, 9, 19, 38, 72,156, 72,239, 91,175,133,102,195, 2,173,207, 58,101, 20, 52, 38,149, 74, 13, 0,136,113,227,198,137,115,115, +115,229,106,181, 26, 70,163, 17,157, 58,117,146,244,236,217,211,233,247,189,123,247,110,203, 41,103, 78,121,141, 30,117, 12,128, +189,125, 38,250,162, 41, 58,188, 54,225,156, 60,233,176,219,223, 52,215,159,154,112,253, 97, 5,142,162, 40,138,206, 17, 96,161, +144,153, 3,230,156,109, 27, 0,176,107,215, 46,194, 85,109,141,233, 53, 0, 80, 86, 86,134, 54,109,218, 80,149,149,149,104,213, +170, 21, 50, 50, 50, 92,210,215,113,222, 44, 7, 65, 16, 24,253,122, 12,237,134,193,210, 37,211,204,223, 29,205,152,233, 42, 72, +165, 82,114,237,137,181, 46,149, 57,105,210, 36,147,215, 69,230, 9,192, 96,218, 40,169, 84, 74, 90, 92,227,208, 3,203,118,223, +110,106,201, 61,180,171, 63, 61, 61,157,144, 30,123,139, 98,201,255, 17, 40, 0,207, 16, 26,220, 72,159,214,252,227,174,190,175, + 71,224,133,121,164,229,102, 26,227, 55,255,199,245,235,215,159,240, 27, 33,137,167, 91, 94, 77, 89, 57,154, 81,174, 78, 44,172, +181,142, 5,101,235,156,201,242, 78,121, 30, 58,146,251,247,239,155,223, 71,118,118,182,203,222,137, 76,182,150,146, 74,167, 17, +191,255, 38, 99,244, 3,103,151,119,117, 6,166,105,125, 46,239, 19,234, 83,174, 29,236, 55, 60, 80, 19, 83,164,183, 48, 66,205, +227,252,172,219, 31, 76,235,212,195, 21,243,113, 86, 52, 22, 44, 88,176, 96,193,130,197,211, 1, 14, 91, 4, 44, 88,176, 96,193, +130, 5,171, 0,176, 96,193,130, 5, 11, 22, 44, 88, 5,128, 5, 11, 22, 44, 88,176, 96,193, 42, 0, 44, 88,176, 96,193,130, 5, +139,231, 2,181,102, 1,208, 57,175,157,129,173, 96, 66, 86, 30, 43,143,149,247,248,228,197,198,198,214,214,238, 57, 28,115,118, + 57,203,169,102,116, 54, 69,203,169,103,182,210, 7,123,122,122, 66, 40, 20,154,127,207,225,112,192,229,114, 31,146, 71, 47,204, + 68,146, 53,179,188,234, 90, 44,135,125,191,117, 67, 38, 91, 39,230,242, 4,160, 72, 3,166, 78,125, 63,197, 25,121,107,215,174, +149,100,100,100,240,194,194,194,146,173,179,238, 57, 41, 79,156,145,145,129, 53,107,214,164,176,237,237,217,147,231,176, 2,240, + 79, 68, 96,224,251,181, 10,174,164,100, 3,241, 84,201,123, 63,144, 2,128,146, 13, 37,132,229,247, 6,136,108, 96,114,207, 71, + 46,239, 31,139,245, 43,150,137,139,175,156,193, 0,191, 98,121, 51, 67, 30, 50,169, 54, 56,167,244,151,120,135,190,140,153,115, +230,165,216,251,253,169, 83,167,208,175, 95, 63, 51,241,211,132, 77, 16,196, 67,132, 77,146,164,121,187,123,247,174, 77,121,231, +207,159, 71,120,120, 56, 68, 34, 17,120, 60, 30,184, 92,110, 45,153, 52,233, 27,141, 70,243,166,213,106,145,158,158,142,118,237, +218, 61,119,239, 71, 38,147, 17, 82,169,148, 90,187,118,173,248,230,205,155,184,117,235,150,220,215,215, 23, 91,183,110,109, 80, +253, 95,183,110,189, 88, 32,244,135,175,223, 11,114,101,117,129,100,221,186,159,197,171, 87, 59,150,251, 97,205,154, 53,226,132, +132,132,227,153,153,153, 56,112,224, 0, 66, 67, 67, 49,119,238, 92,174,229,220,123, 39,228,201,179,111,103,161, 93, 72, 91,240, + 5, 2,204,154, 53,251,213,152,152, 24, 57,219, 82,159, 83, 15,192,179,132, 33, 67,134,216,213,120,142, 30, 61,106,183, 97,210, + 4,109, 77,220,206,194,213,242, 30, 1, 8, 7, 73,219,110,106, 89, 23,203, 99,242,123,235,255,127,182,137,101,237, 90,241,181, + 83, 71,144,187,227,123,185, 74,165,133,254,101, 14, 68,205, 9,180,207,189,132,151,188, 40,121,121,241, 95,104,186,246, 63,146, +113,211,190,172, 87, 9,184,118,237, 26,184, 92, 46,250,247,239, 15, 30,143,103,222,104,133,128,182,250, 13, 6, 3,140, 70, 35, +244,122, 61,238,222,189,139,227,199,143,219,148,167, 82,169,112,225,194, 5,244,238,221, 27,124, 62, 31,110,110,110,181,100,146, + 36, 9,131,193, 0,131,193, 0,189, 94, 15,181, 90,141, 11, 23, 46,160,186,186,250,105, 32,107,142,169,110,112, 0, 24, 26,146, +135, 94, 38,147, 17,177,177,177,100,108,108, 44, 2, 2, 2,240,239,127,255, 27,227,199,143, 71, 85, 85, 21, 2, 2, 2,156,202, + 64, 26, 16, 16, 96,190,159, 5, 11, 62,195,150,109,233, 16,137, 26,129,203,229,203,171,171,242, 28,150,153,150,150,134,234,234, +106,244,238,221,251,238,224,193,131,155,148,150,150,226,200,145, 35,198,169, 83,167, 98,253,250,245,245,182, 17,109, 78,214, 67, +101,115,249,198, 13,164,120,185, 99, 78,220,151,121,221,123,116,105,113, 47,191, 8, 71, 18, 83,142,111,223,190, 99,112, 84,212, + 91,199, 88,234,124,250, 65,167,254,181,242, 20, 48, 82, 0,172, 83,183,218,219,127,236,228,255,193, 7, 31,212,123, 77,121,121, + 57, 0, 80, 76,148, 0,154,172, 27,106,173, 63, 10,121,150,150,191, 11,172,127, 71, 73,155, 41, 89,187, 90,158,229,181,150,159, + 0,128,178,178,154,204,136,254,254,201,207, 69, 67,205,249, 51, 25,237,242,228,242, 60, 21,137,177,237,184,120, 33,200, 0,210, +159,130,155, 63, 23, 85,165,124,136,170,212,232,152,177, 82,190, 37, 46, 86,242,206,236, 69,117, 42, 1, 4, 65,224,250,245,235, +224,243,249,120,245,213, 87,205,164,237,230,230, 6, 14,135, 3,138,162,160,215,235, 97, 48, 24,160,213,106,145,151,151, 7,185, + 92, 94,231,146,202, 28, 14, 7,122,189, 30, 25, 25, 25,232,223,191, 63, 68, 34, 17, 4, 2,129, 89, 30,173, 0,104,181, 90, 84, + 87, 87,227,242,229,203,208,104, 52,230, 97, 2, 38,136,138,138, 18,115,185, 92,121, 85, 85, 21,248,124, 62,138,138,138, 62, 28, + 59,118,108,149, 80, 40,220,226, 12,105, 71, 69, 69, 77,224,114,185, 59, 19, 19, 19,105,121,153, 99,199,142,189, 41,147,201,198, + 75,165, 82,157, 51,150,112,108,108,172,124,209,162, 69, 69, 48,173, 56, 19, 27, 27,139,107,215,174,161, 81,163, 70, 8, 11, 11, +195,230,205,155, 29, 38,255, 95, 38, 79,198,136,238,221, 1, 0,141,103,206,132,200, 61, 24,213,149,185,168, 84,220,150,196,196, + 76, 73,169, 43,159,123, 93,120,241,197, 23, 81, 84, 84,132, 83,167, 78,181,226,112, 56,184,124,249, 50,252,253,253,145,154,154, +138,119,223,125,151,202,200,200,168,247,247,165,223,206,169,181,239,169,211,163,169, 65,131, 89,159, 44,108, 17,183,244,191,248, +126,233,106, 52,227, 24,177,122,233,178,228,119,223,125, 23,246,228,177,120,250,200,159, 62,206,116, 45,128,135,242,127,219,219, +127,156,112,229, 74,125,207, 2, 44,149,128,199,228, 9,112,212, 82, 39,236, 88,231,206,200,179,245,249, 92, 37,174,250,113,201, + 55,226,208,140, 95,228, 69, 92, 35,218,249, 0,173, 90, 82,224,190,200, 7,175,109, 91,240,181, 26,104, 79,231, 65,171,224,129, + 75,186, 65,147,188, 69,190,126,213, 82,201,212, 25,182,135, 3,104,247,124, 86, 86, 22,252,252,252, 32,145, 72, 32, 20, 10,193, +231,243,193,227,241,204, 86,191, 70,163, 65, 97, 97, 33, 78,156, 56, 1, 14,135, 3, 14,135,131,250,228, 25,141, 70, 92,189,122, + 21,253,250,245,131,183,183, 55,132, 66, 33,184, 92, 46, 12, 6, 3,116, 58, 29, 42, 43, 43,241,215, 95,127, 65,171,213,130,199, +227,153, 99, 1,236,161,127,255,254,226, 27, 55,110,200,239,220,185,131,202,202, 74,240,249,124, 52,110,220,120,229,201,147, 39, +209,167, 79, 31,158, 76, 38,219,232,136, 18,208,191,127,255, 49, 55,110,220,216,105, 37, 47,244,228,201,147,161,125,250,244,217, +110, 82, 2, 24,201, 91,179,102,141, 88,167,211,225,254,253,251,180,203,219, 92, 72,139, 22, 45, 42,136,141,141,109, 54,126,252, +248, 87, 63,254,248, 99,135,250,191,245, 63,111, 20,127, 54,127, 94,173, 99,247, 87,172, 64,227, 55,154,227,251,239,127,148, 76, +158,252,182, 83,253,233,169, 83,167,228,127,254,249, 39, 62,251,236,179, 74, 46,151,235, 45, 20, 10,209,167, 79, 31,200,229,114, + 36, 38, 38,162, 89,179,102, 14,180, 60, 2, 91,179,238, 97,207,173, 2,236,251,125, 51,184, 92, 2,115,102,190, 67,118,107, 28, +200, 89, 55,107, 33,214, 59, 42,143,197, 19, 33,127,107, 37,210,150, 82,224,244, 44,128, 39,189,188,109,126,185,231,118, 0, 0, + 32, 0, 73, 68, 65, 84,219,182,109, 37,246,182,199,109,173, 63, 10,121, 46,180,250,153,146,182, 51,100, 13, 75,235,156,182,208, + 77,114, 40, 39,229,213,217, 81,251,251, 39, 59,101,253,175, 90,181, 74, 60,101,202, 20,170,174, 99,214,231,234,130,229,245,171, + 86,173, 18, 91,159,179, 62, 86,111,121, 93, 61, 47, 47, 44,168, 68, 35, 47, 30,218,122, 81,224, 5,146,224,189,242, 26, 60,186, +109,129,168,199, 15, 16,248,136,192,175, 86, 67,165, 50,162, 37, 87,133,212,248,186, 83,201,114, 56, 28,240,120, 60,184,185,185, +225,214,173, 91,184,124,249, 50,188,189,189, 17, 16, 16,128,128,128, 0, 4, 6, 6,194,215,215, 23, 10,133, 2,169,169,169,224, +114,185,230,177,125, 91,160,207,243,249,124, 24,141, 70,100,102,102,194,221,221, 29,129,129,129,104,212,168, 17,130,130,130,224, +233,233,137,204,204, 76,232,245,122,243, 16, 65, 93, 10,133,181,229,255,224,193, 3,249,237,219,183,209,166, 77, 27, 12, 27, 54, + 12,189,122,245,130, 74,165,194,241,227,199,145,145,145,177, 65,163,209,188,237,128,229, 47,121, 80, 84,252,107,246, 61, 5,188, +218,245, 70,232,176,247,209,172,215,104,148,107, 57, 56,154,124, 12, 25, 25, 25, 99, 53, 26,205, 84,166,228, 95, 89, 89,137, 75, +151, 46,201, 79,157, 58,133, 23, 95,124, 17,177,177,177,129, 0, 72,147, 7,160, 25, 0, 8,133, 66,198,100,189,254,231,141,226, +173,241,251,197,254, 1, 93,228,241, 59, 46, 97,242, 47,191, 32,241,194, 5, 36, 94,184,128,198, 51,103, 2, 0,244,122,229, 9, +103,218,220,235,175,191, 78,237,219,183, 15,227,198,141,187,235,229,229,197,113,119,119, 79, 79, 75, 75,195,169, 83,167, 80, 82, + 82,130,208,208, 80,199,148,210, 11,183,176,244,143, 43, 88,191,116,193, 37, 30, 87, 13,142,177, 10,223, 45,255,133,179, 51, 53, + 29,133, 28, 30, 94,120,225, 5,150,101,159, 19,240,156, 37,248, 39,181,120,197, 35,179,176,255,217,138,192, 35, 25, 87,111,160, +171,158,176,115,220, 33,165, 98,233,210,165,226, 99,199,142,201,179,178,178,234, 60,150,150,150,198, 72, 22,125, 93, 90, 90, 26, +202,202,202,228, 75,151, 46,149,204,155, 87, 99,149,219, 58, 86, 31,188, 53,165, 72,204,213,160, 89, 57, 23,221,189, 9, 4, 21, + 3,237,120, 62,224, 16, 1,160, 52, 15,160,124, 64,224,106, 46,137,251, 74, 13,120, 28, 14,186,250, 11,228,117, 61,183,165, 2, + 32, 16, 8,112,251,246,109, 52,107,214, 12, 67,134, 12, 1,151,203, 5, 73,146, 40, 45, 45,197,169, 83,167,224,230,230, 6, 62, +159, 15,157, 78, 87,167, 2, 64,123, 7,104, 37,128,162, 40,100,103,103,163, 93,187,118,240,241,241, 65,117,117, 53, 46, 92,184, + 0,163,209, 8,129, 64, 0,173, 86, 11,173, 86, 91,103,223, 65, 7,209, 1, 64,113,113,177, 60, 63, 63, 31,221,186,117,131, 88, + 44, 70,243,230,205, 37, 74,165, 18, 65, 65, 65,242,228,228,100,156, 61,123, 22,190,190,190,189,101, 50,217, 54,169, 84,106,119, +125,247,226,226,226,227, 15,202, 20,240, 15,237,141,182,253,223,132,111,243, 80,104,149, 21,200,253,243, 32,110, 29,219, 76,203, + 99,244,126, 77,177, 15,242,194,194, 66, 4, 7, 7, 67, 40, 20, 74, 46, 93,186, 36,143,141,141,229,152, 60, 0, 0,112, 35, 54, + 54,150,100, 82, 7,127,222,176, 89,236,235,247,130,220,215,255, 5,112, 56,110,208,235,149,216,176, 81,142,201,239, 73,104,143, + 2,166, 78,157,138,160,160, 32,210,209,182,247,206, 59,239, 80,241,241,241,232,223,191, 63,122,244,232,209, 10,128,225,216,177, + 99,225, 57, 57, 57, 16,137, 68, 16,137, 68,136,136,136,120,117,215,174, 93,199,153,200,219,118, 51, 15, 63,252,117, 3, 63, 47, +158, 95,214,252,133, 86, 47, 42,171,203,241,251,161,191,112,233,242, 77,248, 82, 36,248,247, 31, 32,226,195,232,193, 59,119,238, +250,103,185, 96,159, 33,216, 26, 62,170,203, 43, 80,151,170, 78,140, 31, 63,222,210,130, 38, 34, 35, 35,235,219,127,102, 81, 82, +178,129,176,220,158, 54,121,192, 35,113,255,215,103,181, 55,232,158,157,181,206, 29,241, 0, 56,138,168,168, 40,241,254,253,251, +107,145,191,173, 99,206, 32, 43, 43, 11,251,247,239,151, 71, 69, 69,137,235, 59, 86, 39,113,149,228,225,204, 61, 53, 84, 70, 18, + 39,243, 72,220, 55,240, 96,212,166,163,252,218, 7,216, 60, 51, 6, 7,142, 40,112,185,148,194,197, 98, 3,174,150, 26, 80, 90, +120,191, 94,175,156,165, 18, 32, 20, 10,113,247,238, 93,220,184,113, 3, 64, 77, 92,204, 31,127,252, 81,107, 44,191,190,241,122, +130, 32,204, 94, 0, 90, 30, 69, 81,200,203,203, 67,203,150, 45, 81, 88, 88, 8,146, 36, 33, 20, 10,205,178,234, 27, 82,176, 68, +110,110, 46, 52, 26, 13,194,195,195,209,188,121,115, 9,151,203,133,183,183, 55, 94,126,249,101,137,167,167, 39,114,115,115, 81, + 89, 89,121,153,105, 61,200,205,205, 5,201,225,163, 89,216, 96,248, 54, 15, 5,135,235, 6,145,119, 16, 90,190, 28, 1,190,135, + 31, 45, 47,199,158,156,181,107,215,138, 43, 42, 42,228, 5, 5, 5,104,209,162, 5, 36, 18,137,100,203,150, 45, 41,165,165,165, + 4, 0,244,238,221,219, 96,186, 52,212,199,199, 7, 50,153,204,110,192,131, 80, 24,128,128,160,110, 48, 26,180, 40,186,151,134, +251, 5,167, 6,149, 20, 95, 88, 96,146, 7, 0,120,112,255, 62, 76,242,220,152,214, 61,169, 84, 58, 62, 62, 62, 30,209,209,209, +152, 56,113, 34, 0,144, 71,142, 28,225,237,223,191, 31,147, 39, 79, 30,122,254,252,121,226,244,233,211, 68,108,108, 44,163,200, +253,204, 74, 21,230,159,184,136,111,231,198,160,255,200,193,254, 70,202,128, 93,191,158,192, 79, 43,183,224,208,236,119,177,190, + 91, 75,180,244,225, 97,193,130, 88, 54, 8,240, 25,193,197,139, 23,235, 36,255,122, 61, 0,214, 99,251,246,246,159, 71, 60,130, + 41,120, 78,225,235,151,190,150, 76,155, 54,237, 89, 40,239, 90, 67, 10,143, 56, 72,143,209,123,136,136,136, 16,223,186,117, 75, +174,211,233,234, 61,214, 16,148,151,151, 67,169, 84,202, 35, 34, 34, 36,121,121,121, 15, 29, 59,120,240, 96,157,239, 46,163, 76, + 13,133,142, 68, 70,177, 1,133, 21, 6, 4,255,193,195,139,187,178,112, 55,231, 42,110,254,169,131,129,199,133,142, 4, 52, 58, + 10,229, 20,137,160,122,150,181,167,167,251,209, 99,247,116,196,254,131, 7, 15,208,170, 85, 43,228,228,228,152, 93,254, 60, 30, +207,124,189,163,195,121,150, 57, 4,232,207, 71, 52, 36, 88, 1,215,198,124,216, 37,107,146, 36,161, 84, 42,107, 58, 71, 30, 79, +242,193, 7, 31,212,122,119, 85, 85, 85,188,125,251,246, 97,244,232,209,156,249,243,231, 63, 88,178,100,137,193, 94, 93, 36,136, + 26,133, 72,173,122,128,234,170, 60,201,148, 41,239,166,200,100,178, 84, 0,223, 86, 85, 85, 97,223,190,125,102,197,177, 93,187, +118, 58, 38,117,123,241,226,197,163,191,255,254,251,132,136,136, 8,244,235,215, 15, 0,200,211,167, 79,115,126,251,237, 55,136, +197,226,145,171, 86,173, 58,234, 72,193,220, 83,105,241, 78,226, 31,152, 53, 33, 2,227,223, 25, 7,149,166, 18,123,247,165, 96, +249,234,109,248,223,208,151,208,182, 40,159,101,211,231, 64, 25, 96,234, 1,112, 53, 40,171,134,108,111,159,133, 5, 30, 53,249, +187,208,106,175,203,163,224,236,248,127,125,245,130, 81,125, 57,120,240, 96, 74,251,246,237, 37,126,126,126,245, 30,107, 8,252, +252,252,208,190,125,251, 90, 68,111,235,152, 45,168,141,222,208, 19,192,185, 18, 45,138,140, 70, 28,203,214, 96, 87,130, 6,199, +243,131,144,197,247, 65,190, 66,143,188, 42, 18, 74, 3,160, 50, 80, 16, 4, 52,182, 75,204,244,252,126,163,209, 8,131,193,128, +128,128, 0,120,122,122,162, 85,171, 86,208,235,245,230,227,182, 18, 2, 89,203,163,231,247, 27, 12, 6,168,213,106, 80, 20,133, + 22, 45, 90,160,160,160, 0, 77,154, 52, 1,143,199,131, 86,171,133, 78,167, 51,255, 47,147,225,193,150, 45, 91, 66, 40, 20, 34, + 61, 61, 29,249,249,249,114,163,209,136,202,202, 74,226,207, 63,255,148, 87, 87, 87,163,101,203,150,240,246,246,126,141,105, 31, +213,178,101, 75,112, 72, 29, 10, 46, 36,163, 34, 63, 19,164, 81, 15,117,101, 49,114,255, 60, 8,157,178,156,150,215,154,137,114, + 67, 35, 32, 32, 64,190,102,205, 26,179, 23,167,180,180,148,184,122,245, 42, 76,164, 77, 2, 8,182,149,240,200, 26, 6,131, 26, + 6,125, 53, 68, 30,141, 33, 20,249, 67, 38, 91, 39,150, 74,165,134, 69,139, 22, 5, 88,200,195,250,245,235,161, 80, 40,232, 41, +140, 15, 97,209,162, 69, 84,223,190,125,169, 30, 61,122, 80, 95,126,249,229,239,163, 71,143,198,200,145, 35, 1, 0,231,207,159, +175,220,191,127, 63,198,143, 31, 63,250,216,177, 99, 7,153,148,217,162, 69,139,168,126,253,250, 81,111,125,240, 33, 94,221,125, + 2,243,254, 53, 22, 31,125, 58, 29, 26, 93, 53,238,220,206,131, 76,182, 11,191,141,234, 3,113,139, 70, 78,183,141,225,195,135, +179,253,250, 19, 68, 88, 88, 88, 45,210,183, 14, 4,124,172,169,128, 35, 35, 35,197,142,236, 63, 54, 75,191,142, 57,251,214,214, + 62, 83,235,191, 46,121,239, 7, 6, 82,239, 7,254,237,206,183,222,183,231,137,112,149,188, 58, 44,105,103,136,250,145,193, 74, +137,112,218, 3, 0, 0,219,183,111, 79, 25, 53,106,148,196, 50, 57,141,173, 99,206,160, 93,187,118, 24, 53,106,148,100,251,246, +237, 41,245, 29,171,243,247,237,219,161,189, 7, 23, 94, 4,160,167, 40, 92, 47,215, 33, 62, 75,139,237,103, 10,241,215,237, 50, + 20,170,129, 82,141, 17,183,171, 41,220,211, 82,168,214,233, 37,245,145, 23, 61, 53, 79,167,211, 65,173, 86,163, 73,147, 38,232, +210,165,139, 73,209,243, 71,175, 94,189,204,132, 77,147,118, 93,132, 77, 19,186, 94,175,135, 78,167, 3, 65, 16, 8, 9, 9, 65, + 69, 69, 5,242,242,242, 80, 86, 86,134,214,173, 91,131,195,225, 64,167,211, 65,171,213,154,127, 99, 15, 65, 65, 65,146,230,205, +155,227,234,213,171, 56,124,248, 48, 14, 28, 56, 32, 63,112,224,192,241,147, 39, 79,130,203,229,226,149, 87, 94, 65,219,182,109, +213, 48, 5,222, 49,144, 55, 58,216,223, 7,165,217, 23,113,243,232, 70, 92, 61,184, 6,215, 15,202,112,247,236,111, 16,112, 72, + 90, 94,129, 61, 57, 51,102,204, 72, 9, 14, 14,150,120,123,123, 35, 35, 35, 3,249,249,249,242,184,184, 56,177,165, 34, 96,242, + 4,112,226,227,227,209,185,115,103,187,247,166,211, 42,160,168,200,130,155,155, 7,124,253, 59,200, 61, 60,155,225,151, 95,182, +138, 9,130,211,155,190,198,171, 34, 25,242,255,125,132, 33, 29,170,235,172,219, 7, 15, 30,132, 72, 36, 66,231,206,157,209,186, +117,107,122,248,192, 80, 94, 94, 94,189,123,247,110,223,176,176,176,209, 59,119,238,220,207,180,238, 38, 38, 30,132,183,183, 39, + 6, 12,124, 89, 21,214,227, 69,140,249, 96, 50, 84,132, 1,197, 69,101,152, 54,243, 43, 44,233,217, 14, 61, 26, 57,175, 36, 15, + 31, 62,156,250,238,187,239, 88, 37,224, 41, 81, 4,108,225,169, 89, 11,224, 73,207, 42,112,134,128, 29,197,134,146, 26, 5,194, +146,168,233, 99, 79,131,188,167,213,163, 96,229, 9,160, 28,241, 0,208,152, 55,111, 94,202,160, 65,131, 36,189,122,245,170,243, +152,229,185,250, 96,121,253,160, 65,131,106, 5,251,217, 58, 86,175,117, 40,240,144,116,109, 18,136,190, 1, 2,188,228,199, 71, + 83, 33, 7, 2,138,130, 80,107, 64, 75, 79, 30,202, 41, 10, 87,170, 13,200, 84, 26,208,172, 81, 0, 90,191, 52,176, 78, 89,180, +213, 79, 79,245,107,217,178, 37,186,117,235,134,242,242,114, 84, 84, 84,160,162,162, 2, 94, 94, 94,232,221,187, 55,116, 58,157, + 57, 39, 64, 93,132, 77, 43, 19,122,189, 30, 4, 65, 32, 52, 52, 20,106,181, 26,197,197,197, 40, 42, 42, 66,113,113, 49,148, 74, + 37, 66, 67, 67,193,227,241,204,242,234,202, 43, 96,173,148, 5, 7, 7, 75, 66, 66, 66,112,231,206, 29, 36, 37, 37, 33, 45, 45, + 13,238,238,238,120,245,213, 87,209,173, 91,183,131, 66,161,112, 14,211,105,123,219,183,111,223, 31,220, 40,232,237,144, 38,190, +168,190,253, 39, 50,147, 54,160, 32,237,119,248, 9,140, 24, 60,232, 85,116,235,214,109,210,199, 31,127,188,143,137, 44,111,111, +111,244,232,209, 3, 20, 69,225,204,153, 51, 72, 79, 79,151, 23, 20, 20,200,191,253,246, 91,113,108,108,172,132,206,156,216,179, +103, 79,164,166,166,218,149, 55,117,234,228, 20, 69,121,150,164,172,248, 50, 4, 66,127, 52,110,250,138, 60,168,113, 47,185,151, +119,235,131,223, 47,253,105, 20, 45,111,251,199,238,216,113, 90,139,186,148,158,204,204, 76, 4, 6, 6,162, 95,191,126,228, 75, + 47,189, 4,149, 74, 5,165, 82,137,149, 43, 87,122,118,232,208,225, 13,185, 92,190,223,145, 54,113,243,102, 38, 90,181,108,142, +183,222, 26,237,254,249,191,103,161,180, 74,129,146,210, 18,196,124,244, 21,190, 26, 51, 8,131, 90, 6, 55,136,252,151, 47, 95, +142, 46, 93,186, 96,197,138, 21,172, 18,240, 24, 97, 57,238,111, 15,143, 45, 19,160, 43,103, 21,152,146,251,184, 36, 19,160, 61, + 88, 39,226,113,133, 18,224, 74,178,118,181, 60, 87,188,106,184, 32, 61,176,149, 2, 65,212,225,177,112, 8, 51,102,204, 72,177, +254,157,229,177,159,127,254,153,145, 76,250, 58, 91,215, 51,149, 65, 99,211,246,157, 41,243,223,153, 0, 67, 90, 34,114, 20,128, + 39,225,134, 86,158, 28, 20, 24, 9,112, 5, 60,164, 22, 25,161, 33,129, 32, 1, 23, 33, 61, 7,224,227,165,235, 83,234, 83, 0, +244,122, 61,184, 92, 46,218,180,105,131, 30, 61,122,160,178,178, 18, 26,141,198, 60, 63, 95,167,211,193,223,223, 31,253,250,245, +195,254,253,251,205, 67, 2,182, 96, 52, 26,205, 89, 4, 59,118,236, 8,147,155, 30, 26,141,198,220,158,105, 79, 66,199,142, 29, + 81, 86, 86,134,234,234,234, 58,219,178, 53,153,159, 60,121, 50, 37, 42, 42,234,213,206,157, 59, 31,183, 72, 4, 84,209,191,127, +255,227, 66,161, 48, 90, 42,149,106, 28, 41,203,147, 39, 79,198, 71, 69, 69, 85,118,238,220,121,159,133,188,146,254,253,251,175, +252,248,227,143, 25,103,235,153, 62,125,122,202,154, 53,107, 36,195,134, 13,195,157, 59,119,228, 55,110,220, 64,110,110, 46,188, +188,188,228,190,190,190, 24, 50,100, 8,126,254,249,103,244,236,217,147,241,189,189,255,254, 59, 41, 63,255,188, 73,162,209,148, +193,215, 47, 84,238,233,213, 2, 94,222, 45,161,172, 42,216,191,120,201, 6, 68,189, 53, 24,219, 63,118, 55,151,147, 45,139,109, +196,136, 17, 72, 76, 76, 68,126,126, 62,167,172,172, 12, 26,141, 6,169,169,169, 60,147,210, 89,121,250,244,105,135,218, 67, 68, +196, 8,236,221,187, 31,149, 21,165,200, 47,188,135,143,103,252, 75,247,201,103,139,248, 99, 94,237,131,126,218, 74,192,205, 57, +122, 24, 62,124, 56,245,197, 23, 95,152,211, 65,135,132,132,224,187,239,190, 3, 0,234,208,161, 67,108,218,240, 39,164, 20, 60, + 73, 5,128, 24, 63,126,188,165, 11,141,176,114,247, 19,142,186,255, 93, 65,238,102,146, 47,217, 0,123,217,246, 28, 9,254, 43, + 41,217, 0, 75, 87,188, 37, 49, 91,187,236,153,144,118,201,134, 18,151,202,123, 6,240,143,234, 36, 90,247,145, 72, 46,105, 13, +242,226,227,199,224,102, 80,227, 82, 21,133,228, 42, 3,248, 4,129, 0,138,130,164,137, 47,252, 26, 7, 73,154,191, 44, 6, 54, +237,180,235, 1,104,221,186, 53,122,245,234, 5,181, 90, 13,189, 94, 15, 62,159,111, 38,108,218, 74, 15, 10, 10, 66,223,190,125, +145,148,148, 84,175, 7,128,199,227,161, 91,183,110, 32, 8, 2, 42,149,202,236, 93,160,149,118, 58,187, 32, 73,146,232,218,181, + 43,254,248,227, 15, 56, 18, 92,185,125,251,118, 57, 0, 66, 38,147, 17, 0, 60, 81,147,109, 47, 87, 42,149,234,157, 41,203,237, +219,183,239, 55,201,243, 4,224, 15,160, 76, 42,149, 58,156,155,120,250,244,233, 41, 0,176,106,213, 42,137,155,155, 27,178,179, +179,225,239,239, 47, 7,128,130,130, 2, 12, 31, 62, 28,203,150, 45,115, 72,230,148, 41,147, 82,100,178,117, 98,157, 78, 33, 17, + 85,230,200,189,125, 67,224,238,217, 20,238,158, 77,113,228,216, 3, 16,131,234,183,184, 55,111,222, 76, 76,157, 58,149, 42, 43, + 43,195,136, 17, 35,116, 1, 1, 1,124,146, 36,145,155,155,235,176, 71, 12, 0, 54,109,218, 76, 72,165, 49,148,247,181,116,204, +152,241, 62,154,135,182,231,127, 55,235,125,114,211,234,205,156,149, 92,141, 83,117,121,248,240,225,212,252,249,243,225,235,235, +139,194,194, 66,136, 68, 34,144, 36, 9, 15, 15, 15,124,243,205, 55,172, 18,240, 24, 16, 22, 22, 86,167, 23,128,105, 42, 96,151, +227, 41,159, 85, 64,148,108, 40,177,121,194, 73,235,159,216, 80,242,176, 60,107, 75,157,118,221, 51, 32,109, 87,203, 99,241, 20, +193, 68, 54,196,155, 17,195,197, 62, 6,173,156,123, 55, 27,237,244,247,224, 21, 16,140, 62, 93, 59, 32,160, 89,160,228,211, 53, +219, 82,118,164, 77,183,235, 69,107,211,166, 13,250,245,235,103, 30,143,231,114,185,208,106,181,230,212,189,150,195, 4, 45, 90, +180, 64,223,190,125,145,146, 98,187,233,137, 68, 34,132,133,133,129,199,227, 65,167,211,153,127,103, 57,117,208,114, 33, 32, 14, +135,131,238,221,187, 35, 61, 61,221,225, 50, 48,121, 7,170, 76, 91,131, 97, 34,253, 6, 47, 74, 96,242, 16,153,219,225,154, 53, +107,196, 42,149, 10, 90,173, 22, 29, 58,116, 64, 92, 92,156,220,177,251,138, 73, 1, 0,153,108,157, 68,173, 46,134, 64,224, 7, + 55,190,151,156,195,225, 97,107,252, 65,201,219,209, 17,245,202, 91,191,126, 61, 33,147,201,136, 31,126,248,129, 84,171,213, 0, +128,208,208, 80,135,210, 47, 91, 66, 38, 91, 71,252,252,243,250,225,147,191,248, 33,177, 70, 30,197, 9, 13,125, 1,161,111,188, +241,246,140, 25, 51,226,157,145,185,100,201, 18,182, 81, 63, 37, 74, 64,125,228,255, 88, 21,128,103, 21,174,156,246,103, 77,204, + 13, 37,106, 23,202,115,181,194,192, 42, 32, 78, 96,231,193, 67, 41,181,202,174, 50, 23, 39,239,228, 50,254,125,100,100, 36,252, +252,252,204, 17,254, 36, 73,154, 93,248,180, 7,128, 14,250,163, 87, 4, 12, 9, 9, 1, 65, 16,216,177, 99,199, 67,242,150, 47, + 95,142,132,132, 4,243,181, 70,163,209,238,114,192,124, 62, 31, 61,123,246, 4,147,232,248,103, 88, 89,107,112, 93,167, 21,129, + 26, 82,223,128,154,112, 44, 82,206, 68,158, 73, 89, 34, 0, 96,205,154, 53,212,244,233,211,137, 99,199,156,159,154, 63,101,202, +212, 67, 38,175, 9,135, 36, 73, 35,135,195, 17, 57, 58,252, 66,131,181,238,159, 46, 37,192,110, 71,237,236, 58,194, 44, 88,176, + 96,193,130, 5,139,103, 23, 28,182, 8, 88,176, 96,193,130, 5, 11, 86, 1, 96,193,130, 5, 11, 22, 44, 88,176, 10, 0, 11, 22, + 44, 88,176, 96,193,130, 85, 0, 88,176, 96,193,130, 5, 11, 22,207, 5,106,205, 2,184,120,241,162,211, 17,156,182,130, 9, 89, +121,172, 60, 86,222,115, 41,143,122,253, 13, 41,126,255, 77, 6,153, 76,198,177,149,173,143, 45, 63, 86, 94,203,150, 45,205,215, +228,230,230, 18, 79,155,188,231,253,125, 56,172, 0,208,141,187,158,235,157,185,193,103, 89,158, 51, 50,159,246,231,173, 5,153, + 76,198, 7,224, 13,192,221, 84, 31, 72, 0, 37,206, 36, 79,121,196,160, 92,245,204,117,148,233, 19,153,190,180,116,233, 82,241, +153, 51,103,228, 39, 78,156, 0, 0, 12, 28, 56, 16,125,250,244, 97,156, 74,248, 73,188,135,215,223,144, 98,196,240, 30, 6, 64, +202,147, 74,165, 36,216,105,159, 44,172,208,178,101, 75,106,212,168, 16,243,254,254,253,160,236,145,182, 61,121, 11, 22,244, 55, +239,127,251,237,201, 6,201, 99, 81,183, 2, 0,106,215,195, 11, 64, 16, 19,202, 27,242, 63,132, 19,196,251,216,228,217,122,222, + 6, 62,243, 83,253,188, 52,241, 95,189,116,114,227,174,237, 43, 7, 53,110, 22, 18,172, 80,232,225,227,227,134,251, 5,183,201, +206,157,187,149,201,100,178, 94, 82,169,244,142, 35, 50,165,147,186, 81,217,183, 51,113, 59, 71,131,188,123, 20, 90, 52, 33, 16, +210, 90,136,182, 33,161,144,109,202,120, 90, 26,171, 45, 69,130, 94,107,224,177,223,227,229,203,151,229, 97, 97,135,177,118,173, + 10, 41, 41,192,194,133, 71,144,151,151, 39, 31, 53,106, 20,132, 66, 33, 10, 11, 11, 37, 99,198,140,129, 43, 20,130,183,223,126, +155, 82, 40, 20,146, 33, 67,134,224,163,143, 62, 74,113,162,206,112,164, 82, 41, 70, 12,239, 65,198,196,196,240,128,117,248,253, + 55, 64, 38,147, 17, 76,115,246,179,248,231, 64,167,155,143,164,164, 24, 12, 27,182, 14,163, 70, 45,193,254,253, 53,109,207, 89, +226,190,121,115, 14,126,253,117, 12,198,142,221,139, 5, 11,106,148,128,134,200,123,222,193, 38, 2,114,132, 97, 45,200,158, 32, + 0,114,167,223,115,251,172, 43, 87, 44,123,231,192,190, 95, 98,219,181,107,223, 97,236, 27, 3,209,162,153, 55,124,125, 4, 40, +175,208,160,224, 94, 11,206,173,236,242,192, 3,251,126,145,175, 92,177,236,135, 15,103,206, 89, 97, 79,222,199, 31, 78, 20,223, +201, 60, 32, 47, 42,204,192,155, 17, 64,223,112, 32,164, 21,144,149, 67,225,212, 57, 53, 18,229, 25, 24, 61,212,155,106, 19, 58, + 82,242,227,202,109,206, 18,153, 43, 45,127,194,134,236, 39,162, 4,148,149,149,225,163,143, 84, 8, 10, 2, 34, 35,129,197,139, +171,113,225,194, 5, 24, 12, 6, 8,133, 66, 52,106,212, 72,126,224,192, 1, 76,157, 58, 85,178,126,253,122,135,202,110,250,244, +233,226, 43, 87,174, 32, 56, 56, 88,190,123,247,110, 98,235,214,173, 0, 32, 79, 78, 78,198,251,239,191,143, 13, 27, 54, 56,250, +172,124, 0, 72, 60,116,158, 3,172, 35,107, 62, 31,206,241,207,130,181,254, 1, 96,220,184, 61, 72, 74,170,249,140,137,185, 13, +218, 35,224,168, 55,128,150,247,206, 59, 91,240,235,175, 53,159, 99,198,156, 4,237, 17, 96,189, 1,245, 19,191,229,113,107, 37, +128, 13, 2,180,225, 5,120,158,201, 95, 38,147,241,142, 38,237,250, 92, 50,160, 71,135,177, 17,161,232,214,185, 17, 2,252, 68, + 32, 64,192,219, 83,128,208, 16,127, 12, 25,216, 26, 3,251,117,111,117, 52,105,215,231, 50,153,172,177, 61,153,119, 50, 15,200, +251,135, 87, 98,215, 74, 96,114, 36,208,193,228,249,243,112, 7, 58,182, 3,190,156, 13,244,238, 86,137, 59,153, 7,228, 13,121, + 69, 13,245,122,216, 81, 36,158, 72, 7,226,239,239,143, 3, 7, 68, 40, 46, 6, 18, 18,128,242,114, 30,218,181,107,135,145, 35, + 71,210,203,189, 34, 37, 37, 5,233,233,233,242,165, 75,151,138,153,202, 29, 54,108,152,248,234,213,171,114, 62,159, 47, 47, 47, +175,237,201, 82,171,213,216,176, 97, 3, 36, 18,137,163,229, 73, 2,192,239,191,201,144,120,232, 60,231,247,223,100, 13,122,246, + 41, 83,166, 80,244, 86,223, 49,134,245,130,114,226, 88,189, 88,183,118,173,120,221,236,217,226,139, 83,167, 82,121, 35, 70, 80, +103, 39, 77,162, 86,125,244,145,120,221,218,181,226,134, 60,115, 67,235,140, 45, 25, 76,143, 61,106,121,180,235,127,212,168, 16, +196,196, 36,213,250,164, 49,106, 84, 72,173,241,124,123,242, 22, 44,232,143, 5, 11,250, 99,204,152, 95,107,125,210, 88,176,160, + 63, 99,121,255, 36,132,133,133,213,218,108, 41, 7,172, 2,240, 52,176,192, 99,196,213, 75, 39, 23,183,107,215, 46,180, 87,143, + 38,181, 43, 2,135, 0,159,207,133, 72,200,131,155, 27, 7, 33,109,252, 16, 18,210,174,209,213, 75, 39, 15,200,100,178, 58, 61, + 69,210, 73,221, 40, 46, 42, 49,123, 50,160,209, 2,119,242,128,114, 5, 80, 81, 9,108,219, 7,204,252, 2,136, 93, 10,244,233, + 1,112,168, 74, 72, 39,117, 99, 27,170, 5,186,118,237, 42,249,253,247,142,104,212, 8,152, 56,145,135,198,141, 95,194,192,129, + 3, 37, 7, 14, 28, 32, 70,142, 28, 41, 25, 54,108, 24,130,131,131,113,254,252,121,236,220,185, 83, 62,110,220, 56,241, 79, 63, +253, 84, 47, 1,245,239,223, 95,172,213,106,229,110,110,110,245,254,183, 92, 46,199,160, 65,131,152,144, 25, 21, 29, 29, 77, 73, +165, 82,157, 41,102, 4, 22,228, 79, 0, 64,116,116,180,195, 10, 90, 90, 90,154,121,171,239,152,147,205,150,104, 72,243, 94,183, +118,173,184,237,141, 27,242, 49, 23, 47,202, 91,100,102,129, 95, 89,137, 38,153, 55, 32,254,227,172, 60, 40, 35, 67, 46,115, 82, + 9, 72, 75, 75,195,148, 41, 83,168,153, 51,103, 58,173, 68,208, 50,152, 28, 99, 42,207,154,232,153, 28,179, 7,154,244,233, 79, +221,168,118, 13,106, 43, 52,233,211,159, 55,123, 5,177, 29, 72, 61,196,207, 4,207,170, 2, 64,217,216, 92, 38,248, 17,222, 31, +229,226,219,164, 28, 45,139,171,215, 50,134,135,134,248,155, 73,223,214, 50,205, 66, 1, 15, 6, 3,137,208, 16,127, 92,189,150, + 17, 2,192,167, 46,121,217,183, 51, 17,241,106,205,247,195,169,192,251,159, 1,107,183, 1,133, 15,128, 27, 89,192,133,171, 20, +146, 79, 3,199,206, 0,195, 6,214, 92,223, 0,221,140,120,132,175,248,137, 40, 38,243,230,205, 75,169,174,174,137,183,156, 56, +113, 34,206,158, 61, 75,200,100,178, 20,250, 92, 89, 89,153,164, 99, 71, 30,166, 78, 5,186,119, 63, 7,163,241,134, 60, 63, 63, +191, 78, 79,202,244,233,211,197, 4, 65,200,153, 46, 14, 83, 84, 84,100,215, 43, 19, 29, 29,141,248,248,120, 0,160, 82, 83, 83, +117, 22,239,130,160,137, 63, 62, 62, 30,209,209,209, 79,178, 63,112,246,152, 77,104,175, 92, 65,155, 63,255, 52, 45,130,164,131, +129, 36, 65,234,141, 32,245, 6, 4,157, 76, 69, 37,195,245,214,235, 34,220,191,254,250, 75,254,202, 43,175, 60,114, 37,192, 25, +239, 66, 67,201, 95, 55,170,157,205, 45, 41, 38,201,169,123,186,217, 43,200,230,246,235,152, 95, 89,182,111, 32,108, 42, 0,196, +132,242,135, 54,103, 9,135, 1, 33, 58, 42,143,168,103,123, 42,148, 13,106,151,159,205,173, 1,202,203, 67,215,219,249, 15,155, +144,201,100,188,198, 77, 67, 58, 53,109,236, 9,138, 2, 82,207,228,225,240,177,108, 28, 62,150,141,162, 18, 21, 40,138, 66,110, +126, 37,153,114, 58, 23, 89,119,202, 17, 24, 32, 66,211,166,237,124, 81,179, 68,171, 77,220,206,209,160,111, 56,160,213, 3,135, + 78, 0,242,179, 20, 86,108, 6,110,100, 3,131,250, 1, 29, 66, 8,240,184, 53, 75,139,247, 14,171,185,158,225,179, 58,243,157, +169,165,104,203, 61,252,196, 28, 64,166,229, 92,241,226,139, 47, 74,172,207,113,185, 92,121,167, 78, 69, 88,184, 16,248,207,127, + 40, 52,109,154,137,156,156,156, 58,101,105, 52, 26,187,150,191, 37,234,147, 69, 35, 62, 62,158, 38,123,179, 34, 64,111, 22,196, + 79,152,174,123, 18, 78, 59,235,246,207,244, 88,157,104, 95, 82, 42,215,233,245,208,233,245,208, 25, 77, 43, 40,146, 36, 72,163, + 17, 70, 35,137,230,247,238, 53,100, 56, 11, 42,149, 10, 74,165, 82, 62,101,202, 20,106,234,212,169, 13,242, 38,184, 74, 9,112, +149,229, 79, 19,253,184, 61,127,127,167, 63,157,241, 2,208, 68,255,206,150,191,191,211,159,172, 23,192, 62, 44,151, 6,102,180, + 28,112, 93,179, 0, 26, 48, 59,160,174, 40,118,103,162,219,169,122,254,131,114,224,255, 25, 61,183,141,223, 50,106, 92,245, 4, + 21, 58, 35,175,206,223,208,255, 67, 0, 32,119,217,141, 93, 32,107,162,253, 5, 0,128,188,194, 74,168,213, 6, 0, 64,187,182, +126, 8, 10, 16, 33,227,106, 17,231,230,173, 50, 8,133, 92,132,180,241, 69,185, 66, 7, 0,117, 10,206,187, 71, 33,164, 85,205, +255,191, 54, 0, 8,235, 68, 64,192, 7, 12, 6, 96,104,127,192,215, 11,200,206, 5,134, 13, 0, 90, 53,175,185,254, 9,163, 46, + 37,224,185, 24,253, 41, 42, 42,114,168, 29, 86, 85, 49, 95,125, 55, 62, 62,158,136,142,142,166, 76, 74,128,165,119,224,137,151, + 93,219,182,109,169,236,236,108,194,217,243,214,112,187,157, 5,173, 94, 7,130,203,131,145,162, 64, 0, 48, 24, 73,232, 13, 36, + 40,163, 17,196,173,155, 46,185,239, 43, 87,174, 32, 48, 48, 80,254,221,119,223, 73, 62,253,244,211, 20,103,149, 0,235, 97, 20, + 71,137,219, 85,228,159,155,155, 75,180,108,217,146, 26,183,231, 97,133, 96,216,186, 97,224,239,207,194,254,253,183,205,145,251, +246,198,238,105,121,239,108,121, 88, 33, 24,187,119, 44, 94, 72, 43,198,183,223,158,100, 44,239,159, 72,254, 52,158,167, 89, 0, +245,145,168,195, 4,219,192, 41,142,117,203,125,196,179, 9,136, 9,229,142,254, 7,225,227,227,134,242, 10, 13, 2,253,221, 17, +249,255,237,125,121, 92, 84,213,251,255,251, 14, 48, 12, 48, 40,184, 34, 26, 9,238,226, 26, 46,168, 89,140,185,141, 8,184,145, +125,202,210,180,152,248,148, 89,185,160,150,102,125,234,167,144, 38,159, 44,117, 76, 83,250,182,104, 35, 26,226,134, 81, 67,105, +106, 37,110,185,148, 2, 38, 38, 34,137,178, 13, 51,204,114,207,239,143,153,139,151, 97,150,123,103, 6,177, 62,247,253,122,241, + 98,230,204,153,103,206, 61,231,222,243,126,158,231, 60,231, 57,241, 61, 97, 52,209,240,245,245,130,151, 72, 4, 66, 8, 38,142, +237,130,216, 49, 93, 64, 81, 64,249, 29, 45, 90,182,244, 1,128,219,246, 4, 62,208,129, 66,225, 85,130,158, 93,128, 81,195,204, +157,253, 91, 1,208,175, 39, 16,220, 2,144,199, 0, 52, 13,120,123, 1,151,174,152,235, 23, 93, 35, 92,199,150,207,107,119, 31, +252,102,217, 6,184, 97,195,134,152,213,171, 87,163,176,176, 16, 63,252,240,131,250,189,247,222,147, 73,165,210,250, 99,103, 77, + 38,147,236,194,133,118,234,183,222,186, 14,138,162, 80, 86,214, 29,221,187,119,198,165, 75,182,151, 82,104,154,182, 89,254,216, + 99,143, 53,234, 31, 66, 8,190,251,238, 59, 94,215,204, 86, 2,238, 39,242,247,132,146,192,198,237, 78, 29, 33,254,237,119, 16, + 31, 64, 76, 19, 80, 20, 96, 48, 25,161, 39, 38,212, 26,141,208,118,237, 9, 92,248,205,237,182,247,233,211, 7, 20, 69,185, 68, +254, 0, 48,100,200, 16,108,222,188,153,234,215,175, 31,113, 84,230, 12,155, 55,111,166,172, 9,223, 86, 25, 31, 36,229,220, 37, +126, 0, 16,103, 23, 52,248,156, 9, 24,204,206, 46,228, 36,111,242,174,187,196, 15, 0, 61,126,254,171,145,188, 37, 75, 70, 98, +229,202,195, 2,243,115, 32,127, 64, 8, 2,180,229, 30,100,187, 9,221,154,220, 8, 1, 68,211,239, 52, 89,163,201, 87,193,230, +223,224,174,192,120,151, 94, 47,188,117,237,186,217,234,123,127,195, 47, 56,125,174, 12, 6, 3, 13,154, 38, 22,165,133,170,143, + 13,184,118,189, 26,165,215, 11,175, 0,176,107, 86,118,233, 44,193,143,249,230,215,109,162,128, 83,231,129,164,127, 1, 93, 31, + 52,187,253,223,249, 16, 16,251, 0, 34, 17,240, 99,190,185,190, 27, 4,237,233, 24, 10,235,241,190,231,214,195,133, 11, 23, 32, +145,152,251,100,223,190,125,248,252,243,207,213,121,121,102, 46, 88,189,122,117, 76,171, 86,173,212, 23, 47, 26,241,241,199,192, +169, 83,131,224,229,213, 83,214,169, 83, 39,153, 61,121, 1, 1, 1,156,127,219,104, 52,254,237, 31, 92, 54,249, 71, 68, 68, 16, +123,127,124,149,133,194,182,237,100,119,244,117,168,210,235,161,213, 27, 80,103, 52,194, 64, 76,168, 53, 24, 80,173,215,163, 36, + 52, 84,230, 78,187,253,253,253, 17, 16, 16, 32,219,188,121, 51,197,119,123,167, 53,209, 59, 43,227,163, 4, 12, 25, 50,196,105, + 25, 23, 47,128, 61,242,103, 91,255,124,228,217, 35,127,182,245, 47,128, 31,249, 11, 10,192, 61, 64, 83,111, 41, 36, 95, 5,131, +128,179,162, 97,140,140,236, 95, 82,112,229, 14,104,154, 96,241,188,104, 92, 42,184,141,139,151,202, 65, 81,104, 16, 16, 72,211, + 4, 5, 87,238, 32, 50,178,255, 57, 0,118,253,196, 17, 93,186, 99,223,119,128,201, 4,144, 34, 64,125, 12,200,254, 22,144, 63, + 11,200,158, 4,242,142,155,235,153, 76,192,190,239,204,245,155, 17, 4,142,115, 1,220,115,220,190,125, 91,221,171,215, 21,252, +252, 51,112,236,152, 9,157, 58,157,197,169, 83,167,212,113,113,113,100,239,222,189,234,156,156, 28,220,188,121, 19, 15, 61,244, + 16,166, 79,159, 46,203,204,204,204,115,148,196,135, 16, 34,179,231, 5,176, 6,163,120,240, 5,179, 4,192, 94, 10,104, 46,176, + 45,250,162,162, 34,202,222,159,173,250,142, 16, 60,112, 32,202, 71, 62,130,219, 90, 29,238, 24,234,160, 51, 26, 81, 99, 48,161, + 82,175, 71,245,168,199,208, 38, 42,202, 69,175, 32,133, 33, 67,134,160,111,223,190,178, 99,199,142,229,185, 35,131, 77,244,182, +202,220, 81, 2,216,115,129,173, 50, 46,176, 69,254,140,165,110,157, 41,144, 11,108,145, 63, 91, 30,123,107,160, 64,254,206,201, + 95, 80, 0,254,238,110, 11, 38, 72,147,227, 50,128, 66,161, 48, 69,246, 27, 57,170,176,176,224,183,159,242, 75, 64,211, 4,242, +209, 17, 56,123,190, 12,239,190,127, 12,239,172, 57, 90, 79,254, 63,229,151,160,176,176,224,106,100,191,145, 47, 41, 20, 10,131, + 61,153,202,109,103, 40, 19, 90, 96,237, 39,102,146,223,248, 14,240,233, 46, 64, 22, 13, 12,236, 13,228,125,105, 46, 95,251, 9, + 96, 66, 11,119, 50, 2,186, 27,232, 73,156,200,105,150,181, 67,141, 70,131,190,125,117, 24, 60, 24, 24, 60, 24, 24, 52,136,160, +168,168, 8,217,217,217, 56,126,220,172, 61,197,196,196, 32, 42, 42,138, 83,122,224,204,204,204, 60, 46,196,110, 52, 26, 17, 24, + 24,200,219,138,181, 68,253,215, 71,252, 51,239, 93,181, 96,153, 63, 71,101,124,148, 0, 79,212, 3, 0, 69,114,114,158,126,232, + 80,217,197,177, 99,100,165, 61,122,160,212,199, 7,165, 61,123,226,210,184,113, 50,211,176,104,153,194,178, 68,195, 23,131, 7, + 15,134, 59, 86, 63, 91,134,179, 50,174,125,104,203,234, 31, 60,120,176,211, 50, 87,192,228, 8,184,155, 20,168,208, 45, 11,158, +201, 17,192, 74, 10, 36,120, 4, 56,146, 63, 32,100, 2,108, 82,203,252,126,252, 13,133, 66, 81,254,225,186,247,211,115, 14,238, + 88,248,231,141,234, 46, 93,195,131, 17, 59,182, 11,130,131, 36,184, 83,161,195,169, 95,111,162,224,202, 29, 20, 22, 22, 28, 29, + 55,126,250, 46, 0,215,156,201, 12,239, 62, 81,118, 56,127,175,250,104,126, 21, 98, 71, 1, 31,175, 52,103, 2, 44,188, 10,108, +249,202,108,249,155,208, 2,225,221, 39,202,112,232, 11, 79, 16,184,167,191,219,108,187, 0,110,220,184, 33, 11, 14,110,163, 62, +113,194,108,213, 92,186,212, 2,131, 7,247, 70,235,214,173, 33,145, 72,112,227,198, 13,217,196,137, 19,121,165, 2,238,220,185, +179,236,247,223,127, 87,219,179,216,140, 70, 35,186,118,237,138, 45, 91,182,240, 34, 33,235,181,127,214,123,226, 74, 44,128, 45, +107,213, 85, 11,214, 25,185,243, 33,127,182, 18,208,224,190, 56,123,214,237,241,118,215, 66,231,211,111, 92,127,203,211,242, 28, +145, 63, 27,250,184,174, 0,199,245,127,123,228,207,134,176, 35,192,190, 39,192,158, 98,224,109,207,178,228, 83,206, 99, 2,246, +148,213, 69, 92,252,236,158,180,207, 73, 63,121,164,125,238, 4, 46,190, 52,247, 53,165, 82,169,220,126,254,236,225,245,187,179, +190,143, 8,233,216, 37,154,117, 22,192,241,200,200,254, 63, 79,140,159,189, 84,161, 80,104,184,200,179,164,247,165, 20,179,250, +147, 29,251, 46,225,255,125,100,231, 44, 0,215,201,223, 35, 14,147,251,141,252, 1,224,137, 39,158,192,153, 51,103,240,236,179, + 39, 0, 0,131, 6, 13,194,227,143,247,151,189,250,234,171,245,228,252,227,143, 63,242,146,185, 97,195,134, 60, 0, 84,108,108, +108, 76,117,117,181,218,203,203, 11, 34,145, 8, 70,163, 17, 98,177, 24, 82,169, 84,230, 46,249, 3,240,136, 18, 32,224,159,137, +226,226, 98, 42, 39, 41,135,132,206, 13,149,161,179,237, 58, 37, 73, 57,106,174,214,122,113,113, 49,181,107,242, 46,210, 45,181, +155,236,215, 32,219,117, 46, 79, 62,172, 22,172,127,126,240,230, 49, 81,122,122,226,109, 10,121,212,125,222,190,251, 65, 30,227, + 9,168, 84, 42,149, 51, 34,251,141,100, 50,198, 72, 1,180, 1,112, 3,128,214,114,202, 27, 47, 88,187,247,139,174, 17, 20, 93, +211, 2,135,207, 52,119, 63, 80,247,186,127,185,194, 66,244,245,109, 56,119,238,156,199,100,239,219,183, 47,207, 83,215,199, 90, +247,167,172,202, 41, 88,242, 1, 8, 16, 96, 77,218,197, 11,139, 61,246, 76, 23, 23, 23, 83,197,255, 42,198,253,250, 44,223, 47, +224,154, 5, 16, 0, 40, 87,207, 17, 22, 32, 64,128, 0, 1, 2, 4,252,125, 33, 4, 1, 10, 16, 32, 64,128, 0, 1,130, 2, 32, + 64,128, 0, 1, 2, 4,131, 1, 0,215, 0, 0, 32, 0, 73, 68, 65, 84, 8, 16, 20, 0, 1, 2, 4, 8, 16, 32, 64,128,160, 0, + 8, 16, 32, 64,128, 0, 1, 2,254, 25,104,176, 11,224,244,233,211, 46, 71, 81,218, 10, 38, 20,228, 53,153, 60,167,135,216, 52, +167,188,196,196,196, 24, 0,106,149, 74,229, 17,121,211,167, 79,143,161,105,218, 99,242,132,251,175,121,228, 37, 39, 39, 79, 87, + 40, 20, 95, 53,101,251,148, 74,165, 15, 0,137,229,158,214, 1,160, 1, 16,133, 66, 65,132,241, 16,228,253, 47,201,243,148, 7, +128,112,248,227, 3, 79,203,187,103, 32,183,211, 8,169, 73,231,220, 62, 11, 17,122,236,122, 89,242,176,102,205, 26,153,131,254, +228, 45,239,220, 71, 45,224,174, 60, 6,147, 6,239, 87,135,183,200, 6, 0, 68, 69, 69,185, 61,158,221,219,239,192,131,109,191, +133,159,159, 31, 70,143, 30,125,223,220, 31, 74,165,178, 45, 21, 32, 61,168, 84, 42,219,122, 72, 94,152,200,215, 63,199,158, 60, +165, 82,233,163, 84, 42, 41, 39, 50,124,152,182, 73, 36,254, 7,149, 74,101, 91,165, 82,233,229,236,123,174, 60, 14, 46,220, 27, +199,154,106, 44, 54,109,218, 52, 97,243,230,205, 11,124,124,124,118,139,197,226,124,177, 88,252, 27, 0,165,151,151,151,138,162, +168,245, 74,165,178, 77, 19,244,129, 0, 1,141, 80,187,104, 17,241,240,131,214,100,115,158,179, 76,128,132, 16,251,191,205, 51, + 55, 52,177, 8,244,148, 60, 94, 22,172, 39, 49,109,218, 52, 82, 80, 80,224,148, 92, 85, 42,149, 58, 37, 37, 5,237,218,181,179, +153,114,117,254,252,249,156,207, 20,103,228,173, 89,179, 70, 54,127,254,124,245,241,227,199,213, 86,138,128, 75,242,232, 11,203, + 33,234,253, 54, 62,253, 78, 15, 0,160, 47, 44,191,171, 29,246,126,155, 87,191,124,249, 94, 0,161, 9,176,253,160, 89,150,252, + 81, 31, 68,118, 61, 15,192,172, 4,228,231,231,243, 26,155,180,143,100, 49, 21,127,148,163, 70, 31,172,214,212, 5, 64, 62,174, + 2, 29, 67, 40,132,135,207, 36, 85, 85, 58,236,216,177,163, 89, 39,244,228,121,243, 94, 6, 77,143, 77,158, 55,239,101, 0,203, +220,150, 55,119,222,243,132,166,199, 36,207,181, 45,207, 81, 74,102,118, 29,165, 82, 73,205,157, 59,239,101,154, 54,141,157, 59, +119,222,203,122,189,110,153, 13, 69, 65,228, 74,174, 7, 55,161,103,223,127, 59,119,238, 84, 79,153, 50, 69,150,153,153,153,231, +142,208,205,155, 55,203,189,189,189, 31,241,246,246,126,194,203,203, 43, 88, 36, 18, 73, 83, 83, 83, 69, 11, 23, 46,156,109, 50, +153, 96, 52,227, 9,147,201, 20,167, 84, 42,127,180,120, 3,244,150,249,175,201,151, 65,227,227,227, 9,215,249, 46, 43, 43,139, +215, 61,157,144,144, 64,220,249,190, 0,207,195, 47, 45,205,163,242,180,139, 22, 1,110,200,100, 50, 2,242, 61, 14,216, 41,249, + 71, 69, 69, 33, 63, 63,159, 15, 57, 59, 36,121,142,242, 26,201, 79, 73, 73, 65, 81, 81, 17, 44, 46, 98,143, 29,235, 74, 74,162, + 8,252,186,131, 10,254,146, 2, 0,170,213, 34,106,218,180,105, 78,181, 49, 54, 89,151,149,149,169,237,145,127, 74, 74, 10, 82, + 83, 83,121,145,191,229, 61,162,163,163,101,209,209,209,110,201, 99,200,158,249,191,234, 63,104, 64,254,139,166, 74,144,150,169, +227,212, 87,219,211,165,164, 79,184, 8, 26, 45,193,107, 79, 75,112,252,188, 17, 90, 13, 65,173, 30,144, 13, 56,143,243,151, 76, +136,138,138, 34, 92,149,128,148, 55,122,146,194, 83, 85, 8,108, 33, 70, 72, 7, 41,218,182,239,138,171,133,122,116,238,109,128, +143,164, 12,185,187,111, 97,252,248,241,228,224,193,131,205, 53,225,249,182,106,221,122,222,103,199,127,166,228, 61,186,189, 12, +224, 29, 0,117,238,200,107,221,170,245,188,237,223, 29,167,198, 12,232,225,150, 60,133, 66, 33, 14, 9,233, 48,239,144,250, 48, + 53,168,127,164, 77, 89,205, 64,254, 0, 80,127,252,160, 74,165, 82,199,197,197, 33, 51, 51, 83,109,235,121,253,229,151, 95,200, + 91,111,189,133,189,123,247, 58, 28,223, 45, 91,182,140, 18,139,197,125,196, 98,241, 92,177, 88,236,127,237,218, 53,116,235,214, + 13, 94, 94, 94, 8, 12, 12, 68, 65, 65, 1,164, 82,169,247, 47,191,252, 18,116,236,216,177,195, 47,190,248, 98,103, 0, 87, 1, +136, 97, 94, 30,176, 59,241,177,231, 63,246,188,197,148, 83, 20, 5,138,131,213,178,103,207, 30,187, 50,216,229,142,230, 91,123, +200,202,202,114,235,251, 77,170, 32, 39, 39,199, 88,178, 82,186,141,183,223,126,155,208, 52, 13,136, 42,160,175,211, 65,236, 43, + 1,232, 32,136, 68, 34, 44, 95,190,156, 58,102,197, 51,201, 14,100,157, 63,127,158,100,102,102,194,158,188,169, 83,167, 34, 50, + 50,146,114,181,125, 88,158,142, 21,111,191, 66,216,237,115,231,218,253,211,210,120,127,223, 94, 26, 96,174, 10, 0, 39,242,231, +138,148,148, 20,167,117,184, 16,151, 61,242, 95,181,106, 21, 22, 47, 94,108,173,116,184,212,233,228, 68, 20, 65,235,238,160,194, +191,164,216, 22,255,206,157, 59, 41, 0, 96,254,219, 91,115,177, 38,107, 71,228,111,241, 12, 56,181,218, 85, 42,149,218,218,194, +103,202,216,125,204, 87,158, 35, 11,127,209, 84,238, 39,197,101,166, 7,144,110, 15,138,224,231, 75,225,193, 80, 47,220,186, 67, +195, 96,244, 66,121, 5, 65,101, 13, 65,193,159, 52, 32, 2,218,248,159,101,250,199,225,164,176,244,245, 30, 49,221,187, 68,224, + 88,233, 77,132,135,181, 69,159,126, 17,240,242,109,133, 7,195,239,224,142, 86,135,178, 82, 19,254,188,169,131,191,119, 17, 39, +121, 77,132,167,158, 94,184, 80, 92,212, 33, 20,190, 81,131, 68,186,195, 63, 60, 5,224, 19,190, 66, 88,150,248, 83, 51, 95, 94, + 32,254, 83, 28, 2,105,247,135, 68, 85,231,142,184, 36,143,105,219,139,243, 94, 21,195, 55, 16,225, 61, 34, 69,191,255,122,210, + 29, 89,158, 4,205,178,254, 33,145, 72,100, 0,212,214, 99,120,226,196, 9, 78,228, 15, 0, 62, 62, 62, 65, 18,137,100,214,173, + 91,183,252,187,119,239,142,129, 3, 7,194,219,219, 27, 31,124,240, 1, 76, 38, 19,250,246,237,139, 93,187,118,225,151, 95,126, +193,217,179,103,225,229,229,181, 94,169, 84, 38,108,216,176,193,145, 85, 93, 63,207,121,194, 99,169, 84, 42,101, 33, 33, 33,106, + 66,136,195,239,148,150,150,202, 20, 10, 5,223,251, 71, 22, 18, 18,162,118,245,251, 12, 81, 95,188,120,209,225,188,209,171, 87, + 47, 25, 95, 50,191,120,241,162,250,201, 39,159, 68,203,150, 45,101,238, 40, 2,138, 23,102,146,164,228,177, 8, 8,240,107,244, +153, 70,163,197,242,229,203, 49, 12,160,254,220,179,135, 92,139,143,183, 63,183,207,232,110, 30,204,149,147,209, 97,212, 68, 72, + 30, 26, 4, 83,247,200, 6,117, 12,219, 51, 16,188,114,242,221,186, 0,180,227,159,195,240,213, 95, 56,108,223,204,103,199,160, + 85,107,127,115,193,242,116,204, 95,240, 44, 0,224,118,121, 45,174,151, 20, 18,229,198, 12,151,149,128,218, 69,139,136, 43, 74, +128,171, 10, 0,225, 98,169,223, 47, 40, 42, 42,194,226,197,139, 93, 85, 32,236, 98,218,180,105,132, 10,221, 73, 77,155, 22, 78, + 84,155,134, 0,219, 30, 38,148,244, 21,167,131, 96,139,172,173, 73,217,209,178,128, 61,176, 21,138,227,199,143,171,163,163,163, + 27,184,254,249,202,251, 98,161,212,238,228,246,212,106, 13,103, 57, 27, 54,108,136,241,245, 90, 8,145, 8,240,247, 3, 42,170, +104,212, 17,130, 0, 63, 10, 58, 26,208,214, 17,116,106, 43, 2,109, 4, 46, 95, 51,161,168,168, 72,237, 72, 57,155,247,242,152, +152,240, 7,253,213, 98, 49,193,243,179,134,194,100, 34, 40, 45,211,163,248,122, 5,224,115, 13,126,193,117,184, 81,246, 7, 68, +226, 74, 92,184, 80,129,150,193,142,229, 53,157,249,223,106,249, 19,207, 60,227,251, 6, 13, 4, 47,126, 93,122,243,204,233,101, +116, 85,149, 43, 36, 75, 0, 64,210,178,213,242,127,205,120,198,119,245, 21, 19, 58, 77, 79,145,254, 94,116,118,153,169,182,161, + 60,165, 82, 73, 89, 7,179,217, 66,139,150, 65,203,159,154,241,180,239,217,226, 59,136,127, 50, 73,250,225,127,230, 47,211,214, +106,220, 85, 0,184,158,151,225,104, 44, 76,204, 51, 50,113,226, 68, 48,164,175,213,106,235,199,144,177,252,179,179,179, 57,141, +169,175,175,239,112,141, 70,211,179, 87,175, 94,144,201,100,152, 63,127, 62,230,204,153, 99,158,204, 13, 6,108,219,182, 13,249, +249,249, 56,121,242, 36,118,236,216, 1,173, 86,219,149,166,105,185, 19,139,221,163,247,211,190,125,251, 56, 45,205, 81, 20,197, +251, 94,102,203,118,229,251,150,103, 56,239,201, 39,159, 68, 73, 73,137,205,207, 67, 67, 67,225, 42,129,151,148,148,160,164,164, +196, 45, 69,224,236,153, 75,248,191,140,189, 24, 57,114, 56, 34,251,118,188,107,201,255,122, 29,135, 15, 31,197,176, 97,195,136, +106,201, 18, 92,139,143,135,223,136, 17,208,218, 57, 59,131,250,236, 18, 5, 0, 11,134,247, 33,253,202, 14,226,233,239,246,194, +212, 61, 18,218, 5, 43, 0, 0,126,171, 87, 64,122,233, 60, 22, 22,137,177,250,232,185,187,253,248,217, 34,135, 65,118, 76,251, + 70,143, 25,209,168,125,185,223,252,136,179,103, 46,185,117,255,184,178,164,192,118,247, 59,242, 6,120,243,181,216, 61, 77,180, +238,194,226,246,119,125, 86,139, 2, 65, 7,128,218,107,126,112,168, 65,249,212,180,105,225,245,131,189,115,231, 78, 10,155,134, + 16,107, 79, 0, 87,178, 46, 43, 43,107, 64,206,174,144, 53, 87,176,148, 14,167, 36,193,197, 93,200,114,255,219,172,188,113,227, + 70,242,215,249, 87,209,161,187, 23, 52,218,187, 85,180, 38, 2,157, 30, 48, 88,202, 12, 70, 2, 34, 50,191,254,245,108, 62, 18, + 19, 19, 99, 46, 95,190,108,243, 55, 3, 3, 43,213, 26,173, 8,109, 90, 5,161,226,118, 45, 42, 42, 43,112,252, 68, 41,174,223, + 36, 16, 7,212,162, 99,215, 26,104,107,111,161, 91, 63, 3, 58,247,170,195,142,143,243, 49,121,242,228,152, 43, 87,174,220,147, +251,205, 98,177,143,158, 56,117, 90,251,146,150,193, 40, 52, 2,126,163,199, 66, 20,220,186, 13, 93, 85, 53, 22,192, 33,134,172, + 1,248, 40, 20, 10,189,179,121, 31,192,152,184,201, 83,219,255, 37,106,137,171, 53, 6, 4, 61, 52, 26,222,129,193,109, 76,181, +119,229, 1, 0, 23,242, 7, 48,110,210,228, 41,237,137,151, 47, 42, 53,117,232, 19, 53, 12,210, 22, 45,219,104,107, 53, 13,100, + 53, 23, 24,235,159,162, 40, 76,156, 56,145, 0,192,222,189,123,145,152,152, 24,147,146,146,162,230, 67,254, 74,165,210,183,162, +162, 98,166,193, 96, 16,249,251,251,227,145, 71, 30,193,234,213,171,225,227,227, 3,133, 66,129,140,140, 12,228,231,231,227,248, +241,227,248,246,219,111,241,235,175,191,162, 77,155, 54,109,140, 70,227,131,176,227,254,103,187, 64,157, 45, 1,136, 68, 34, 78, +237,108,202, 37,128, 61,123,246,120,100, 9,160,101,203,150,178,146,146, 18,181,189,207,220, 29,119, 87, 20,129, 75,139, 22,145, +242,180, 52,224,216, 49,224,216, 49,220,158, 58, 1,107,250,119,175,119,217, 71,246,238,141,199,167,199,162,243,157, 91,184, 22, + 31,143,214,139, 22,161,123, 90, 90,163,229, 0,107,136,101, 15,163,187, 60, 6, 11, 23,189,131,247,112, 30,107,162, 71,161,207, +224,161,232,122,187, 8,219,130, 6,162,168,229, 77,100,100,100,144,153, 51,103,114, 26, 95,217,168,254,120,122,230, 68,252,252, +211,175, 56,152,115, 8,111, 2, 88,179,122, 43, 34,123,247,198,211, 51, 39,162, 86, 91,142, 23, 94,120,129,179, 60,107,184, 27, + 3,192,215, 3,240,119, 2,101,135,156,120,119,244,180,105,211,136,106,241, 21,192, 75, 12, 4,249, 0, 65,157, 65,237,180, 8, +227,184,246,223, 4, 32,108,171, 31, 0,216,150,191,141,201, 21,209,209,209, 50, 7,193,128,188,175,225,243, 5, 1,118, 61, 2, +129, 85,243,241,135,158,160,244, 22, 13, 64, 4,169,191,217,197,105, 48, 18,232,234, 0,157, 30,208,213, 1,122, 3,160,211, 2, +250,186,187, 94, 18, 91, 1, 41,159,127, 20, 64,114,143, 87,227,129,112, 41,136,143, 55,110,105,181, 80,127,127, 13, 23, 10,174, +227,246,237, 26, 68, 70,153,160,209, 25,161,171, 51, 65, 91, 75,163,180, 24,208,106,128,221,187,119,171,249, 28,128,225, 14, 20, + 10, 5,237, 21, 20,180,252,217, 37, 75, 36, 59, 88, 20, 18,188,228,117,233,237,197, 11,150,153, 42, 42, 14,177,200, 90,207,101, +140,189,165, 65,203,231,188,186, 88,114,224,186,169,190,176,211, 19,139,165, 87,183, 44, 89,102,172,169, 56,196,199, 11,224, 47, + 13, 92,246,242,107, 11, 36,133, 37,119, 79,139,140,123, 50, 73,186,125,211,154,101,181, 53,213,135,220,124,214,108,221, 75,124, +158, 53,194, 88,255, 18,137, 68,166, 82,169,242,152, 45,163, 90,173, 86, 61,104,208, 32, 62,178,140, 0,186, 2,160, 7, 12, 24, + 64, 75, 36, 18, 81, 70, 70, 6,102,207,158,141,149, 43, 87,130, 16,130,159,126,250, 9,223,127,255, 61,206,158, 61,139,202,202, + 74,116,235,214, 13, 85, 85, 85,254, 34,145,168,157, 51,225,147, 38, 77,178, 75,168,206,150, 6,236,185,233,239,215, 37, 0, 71, + 94, 0,119,172,127,119, 21,129, 59, 21, 21,245,175,219,189,254, 2,250,188,158,140,145, 86,117,174,140,159,131, 78, 63,156, 64, +225,130,231,241, 83,104, 40, 0, 96, 24, 64, 13,176, 49,215,165,167,167,147, 78,157, 90,224,228,169,159, 17,249, 80, 47, 32,237, + 13,188,186,101, 55,102,117, 57,131,254,117, 5, 88,120, 83,140,255,124,190, 20, 43,223,221,128,179,191, 30, 65,122,122, 58,121, +229, 21,251, 94, 95,182,188, 86,173,253, 49,126,194, 80,140,159, 48, 20,111,209,233,208,215, 45,198,169, 83,192,169, 83,192,225, +195, 19,241,225,186, 75,120,226,137,139, 36, 44,236, 65,164,165,249,243,226,167,220,135,223,192, 34,172,112,120,195, 29, 58, 52, +252,127, 70, 1, 32,137,137,137, 50,214,154,161,181, 18, 64,177,173, 13,139, 75,222, 37,205,139, 33,253,157, 59,119, 82,170, 77, + 67, 0,177, 24,212,206,157,247,244, 98,153,168,127,149, 74, 69, 37, 38, 38, 18,103,222, 16,235,216, 0, 62,132,110, 11,142,234, +206, 92,162, 65,104,123, 17,158,140, 19, 67, 87, 7,180, 12,164, 32,162, 44, 86, 63, 8,116,181,128, 70, 79,160,209, 18,104,116, + 4, 52, 1, 68, 14, 98,174,103,206,211,160,111,255, 34,132,244,188,141,111, 14,148,225,246,109, 29, 6, 12,171, 66,191, 86, 53, +128, 79, 29,116,181, 52,202,174, 19,104, 52, 20,140, 70, 10,173,218, 80, 0,117,207, 99,217, 34, 7,246,239, 63, 40, 56, 44, 12, + 71,239,242, 53,164, 79,206,192,237,148,249, 81, 0,122, 3,184,192, 67,161,232, 53,120,196,163,131, 90,135,134,225,196,207,245, + 49,114,104, 43,251, 23,174,126,188,184,145, 60, 39, 94,128,222, 3,251, 15, 24, 20, 26,218, 9, 23, 78,222,245,136,140,120, 44, + 22, 95, 42, 87,243,110, 91, 83, 42,180,204,243,107, 29,191, 17, 23, 23,215, 40,254,200, 70, 44, 0, 51,232, 93, 1,156, 94,180, +104,209,112,111,111,111,233,167,159,126,138,173, 91,183,226,217,103,159,197,170, 85,171, 64, 81, 20,254,248,227, 15,104,181, 90, +164,164,164,192,104, 52,226,133, 23, 94,160, 41,138,114,250, 0,120, 50,154,254,126, 95, 2,112,228, 5,240,132,245,239, 42, 50, + 50, 50,240, 76,210,227,168,172,168, 3,222,221, 8,205,225, 19, 8, 24, 57,168,254,243,178,119, 55,226,188,175, 47,168,151,158, + 67,159,233,227,113,108,219, 1,135,242, 46, 95, 62,135, 97, 35,228, 56,119, 62, 24, 27,215,171, 48,114,228,112,252,231,163,165, +120,107,244, 83,248, 12, 64,207,167,103, 99,227,122, 21,196,226, 96, 36, 76, 26,132, 79,121,200,251,239,251, 95, 97,240,196,190, +120,167,239,106,156,139,149, 34, 56,110, 87,131,186,109,252, 37,248, 57, 79,141,176,103,102,241,238,135, 35, 71,188,145,150,230, +231,176,142,171,246,207,223,210, 3, 96, 99, 29,153,114, 80,143,187,137, 51,200, 28,161, 62,109, 90, 71, 2, 92,134,234,131, 43, +128, 95,247,122, 79, 0,163, 20,112, 89, 6,240, 20, 24,107, 62, 49, 49,145,176,173,127,198, 35,192,126,159,152,152, 8, 86,178, + 28,194,151,208,173,193,218, 5, 96, 83,158,209, 4,104,106, 9,234,244,230, 96,191, 58, 61,129,183,239,221,207,116,181,128,214, + 64, 80,126,155,224,175, 59, 4, 39, 47, 24, 65,211, 64, 98, 98,162,236,242,229,203,141,198,198,104, 4, 74,174,233,113,173,240, + 14,142, 28,187, 3, 66, 40, 92,248,141,198,196, 39,141, 16,123, 19,252,117, 19, 56,114, 8,168,170, 34, 32, 52,240,240, 40, 10, + 18, 9, 32,151, 39,224,234,213,171,156,174, 73, 62, 12,228,192, 49,215, 39, 73,145,180,197,146,231, 87,165,250,100, 17, 81,131, + 14,105,227,235, 11,159,151,230,249,252,177, 46,125,169,190,170,106, 6, 87,121, 94,126,210,165,201,203, 86,249, 28, 42, 33, 13, +228,181, 14,240, 69,159,233, 47,250, 92,248,234,131,165,122, 77,205, 12, 46, 30, 0,137, 95,192,210,197,203, 87,248, 92, 41,173, +108, 32,171, 69, 96, 0, 38, 63,249,172, 79,214, 23,159, 44,213,104, 52, 51,154,249,241,165,246,238,221,219,168,236,205, 55,223, + 36,123,247,238, 69,118,118, 54,231,161, 0,112, 14,192,233, 53,107,214,244, 15, 10, 10,146, 50,110,240, 79, 62,249, 4,179,103, +207,198,214,173, 91,235, 45,245, 53,107,214,160,162,162, 2, 85, 85, 85, 53,181,181,181, 69, 22, 15,130,216,209, 15,208, 52, 77, +172, 93,244,140,245,207,213,253,207,184,233,217,114,172,221,245,247,195, 18,128, 45, 47,128,167,173,127, 70, 38,215, 37,128, 11, +195,134,129,122,126, 58,130, 0,144, 81, 81,168, 61,121, 14,154,119, 55,222,237,183,164,199,209,237,233,199, 33,145,152,175,255, +252,121,199, 91,179,153,207,229, 19,204, 74, 68,254,137,179,248,236,255,182,195,127,232, 16,212, 26,140,208, 67,143, 71, 30, 29, +216,168, 62, 23,121,215, 76,122, 60,217,254, 69,208, 39,235,144,248,222, 40,136,167, 29, 71,239,200,222,136,236,211,181,190,125, + 41, 11,215, 33, 45,237,223,156,239,155,130,170,130,209, 23,112,225,155,248, 22, 92, 60, 6,174, 37, 2,250, 91, 42, 0,249,249, +249, 78,163,191, 45,159,115, 19,232, 27, 0, 85,231, 31,128,143,194, 9,194, 3,128, 46,117,160,122,100, 83,248, 32,170,126,237, +223,157,101, 0,235,173,128,246,182, 6, 58,112,187,214,147,191,117, 0, 32,227, 82,103,202,156,120, 0, 40,107, 75,204,221,201, +252,225, 71,227, 99,174,223, 56,160,166,219,210, 16,121, 3, 62,150,121,209, 64, 19, 24,141, 64,117, 53,129,222, 0, 24, 13,102, +165, 32, 97,146,217,123, 99,199,101, 79, 69, 15,139,143,169,187,181, 95, 29, 25, 73,227,240,247, 38, 80, 34,224,175, 82, 10, 18, + 63,224,251,131,128, 94, 75,129, 34, 64,191,135,124, 80, 82, 76,227,209, 71, 99,145,149,149,197,233, 88,107,249, 48,144,180, 23, +205,215,239,170, 18, 64,104,211, 56, 83,235, 54,162, 3,244, 93, 22,106, 15, 32,132, 2,180, 81, 81,222, 87,140,166,113,188,228, + 17,122, 28, 2, 91,137,212,165,166,122,121,109, 37, 64, 27, 9, 5,255,190, 81,222,231,183,211,227,172, 60, 6,196,145,172,128, +192, 32,209,213,155, 21, 22, 98, 1, 2,253,124, 17,232, 47,198, 67, 3, 6,122,239,254,140,140,107,230, 71,215,102,159, 51, 81, +255,236, 58,140,247,110,234,212,169,178,204,204, 76,123,242,106, 0, 92, 57,117,234, 84,205,200,145, 35,219,130,181,167,255,147, + 79, 62,169, 39, 68,131,193, 0,147,201,132,203,151, 47,163,109,219,182,183,104,154,230,164, 45, 78,154, 52,201,158,165,238,146, +155,254,126, 94, 2,176,229, 5,240,164,245,207,135,248, 25,116, 8, 13,194,199, 31,127,135,248,184, 97,104, 31, 21, 9, 68, 69, +130,122,126,122, 67,165, 23,192,205, 82, 45,246,100, 31, 67,135,208, 32,238,242, 66,252, 16, 53,168, 27,162, 6,117,107, 84,143, +175,188, 71,166,244,194,235,143,126, 0,250,156,153,252,231, 44,156,233,146, 60,107, 44, 9, 92,242,205,202,234,149, 99,154,242, +129,116, 75, 1,176,236,217,191,167, 17,216,140,149,171, 82,169, 24,139,151,178, 81,135, 48,228,207,178,138,121,129,189, 11,128, + 41,227,107,249, 91, 7, 0, 90, 80, 95, 54,127,254,124,181,101, 57,131,147, 60, 54,249,219,138, 9,224, 43,207, 25,210, 50,117, +112, 38, 47, 43, 43, 43,175,117, 16,133,199,162,125, 64, 3, 48,232,105,248,138,205,221, 84,173, 33,168, 51, 16, 24, 77, 64,254, + 57, 19, 76, 52,129,179, 45,123, 89, 89, 89,121,237,219, 82,120, 52,198, 11,147,159,242, 66, 77, 53, 65,117, 37,160,169,166, 16, +222,141,192,100,160,224, 45,146,160,226, 54,141,146, 63,245,184,252, 27,183,128, 49,249, 48,144,244,121, 64,247, 48, 96,221,107, +192,220,247, 93, 83, 2, 72,173,102,202, 75, 81, 3,247,135,100,237,151, 6,143,120, 24,237, 1,180,167, 0,211,209, 35,200,157, + 57,163,198, 80,171,153,204, 71, 30,173,171,157,252,252,232, 65, 7,122,189,245,181,180, 93,191,225,104,227, 75,161,173,132,130, +246,226,143,216,243,198,172, 26,131,182,150,179,188, 58,157,118,242,132,199, 70, 30,152,255,238,122,105,239,254, 81, 8,244, 23, + 35,208,207, 23,133, 23, 78, 99,121,202,203, 53, 90, 30,178, 92, 37,115,103,151,107,139,252, 87,172, 88,209,200,205,191,115,231, + 78, 38, 79, 64,158, 29,235, 31, 48,199, 88,156,238,209,163, 71,161, 78,167,235,232,229,229, 37,241,247, 55,111,197,202,204,204, +196,212,169, 83,161,213,106,161,211,233, 80, 87, 87, 7,169, 84,170, 51,153, 76, 89,132,144, 82,142,214,181, 71,230,182,191,203, + 18, 0,219, 11,192,188,110, 14,226,103, 16, 30, 30,130, 37,175, 39,225,224,129,159,240,245,238,147,240, 21,183,192,159, 37,119, + 87,176, 58,133,246, 70,157,190, 10, 15, 69,245,196,218,244, 36,172,124,119, 3, 47,121,237,218,181,196,249, 11,231,235, 63,143, +236, 29,137,178,178, 74, 94,242, 98,231, 77,198, 84,209, 12,212,157,171, 65,244,220, 62,160,251, 73,240,241,199, 59,234,219, 87, + 89, 89,137,225, 15,247,226, 36,207, 26, 42, 74, 69,169,160, 66, 83,194,101, 5,160, 41,200,159,139, 76, 11,225, 19,203,107, 0, + 32,236,109,137,249,249,249, 13, 8,223,150,130,208,216, 15, 75, 1, 98, 17,224,231, 5, 72,189,129,186,106,168, 86,250, 0,233, +115, 8,252, 90, 1,126,173,120,175,253,219, 33,127,216, 32,107, 78, 15,134, 53,249, 91,199, 4,240,149,199,131,252,157,202, 43, +175, 32,212,190, 60, 3,145, 72, 0,154, 6,250,246,240,186, 59, 30,191,154, 96, 48, 17,152,104, 47, 76,153, 50,133,147,114,114, +243, 47, 66, 29, 56,104, 34, 70, 35,160, 55, 16,152,140,128,136, 2, 98, 98,129,234, 10, 10,191,157,209, 66,171, 19, 33, 62,110, + 10,118,237,218,197,137,252, 87,204, 1,186,118, 50,191,239,210, 17,112,213, 19,160, 84, 42,143, 43, 20, 10,121,105,194,132, 3, + 97,123,246, 75,195, 70, 60, 12,195,209, 35,216, 21, 55,161, 70, 95, 93, 45, 7,112,132,103, 87, 31, 49,105,171,229, 23,223,156, +116, 32,244,189, 44,105,199,193, 35,160,185,120, 20,159,191,148, 80, 83, 87,203, 91,222, 17,157,182, 86,190,230,245,127, 31,248, +207,127,183, 72,163,135, 13, 71,193,249,211,120, 57,105, 70, 77,109, 77,141, 43,109,107, 82, 56, 72,246, 67, 98, 99, 99,185,236, + 6,240, 10, 10, 10, 58,173,213,106, 63, 43, 42, 42,234,220,191,127,255, 8,163,209,232,237,227,227,131,172,172, 44,140, 25, 51, + 6, 58,157, 14,181,181,181,184,124,249,114, 85,112,112,240,119, 90,173,246, 83,154,166, 53,224,152, 1,144, 29,144,192,215,245, +255,119, 91, 2, 96,123, 1, 60, 33,199,149,220, 1,182, 48, 94, 62, 20,227,229, 67, 45,239,220,215, 97, 27,202,155,228,158,114, + 23,180, 19,117,103,106, 48,115,125, 44,254,243,221, 82,183,219,150,174, 79, 39,193,198, 96,204,244,159,121, 79, 12,107,151, 20, +128,230,176,252,109, 88, 31,196,170, 61,158,178, 82,236,122, 4,184,122, 0, 60, 77,254,140,178, 99,229,222, 39,236, 50,190,242, +156,197, 2,240,149,167,209, 17, 74,163, 3, 17,137,128, 35,249,230,181,126, 38,224,207,188,238, 63,133,151,188,234,106, 66, 81, +150,101,118, 74,100,150,241,243, 15,128,166,134, 6,161,129,248,248, 88,236,218,181,203,233,120,200,135,129,164,204, 0,130,164, + 64,201, 45,192,207, 23,160, 9, 16, 32, 1,222, 85,184,166, 4, 0, 56, 66, 87, 87,203,243,227, 39, 28,104,185,226,109,105,222, +138,229, 53,117,174,145,127, 3, 37, 32,111, 81,194, 1,191,151,222,148,230,124,248,150, 43,228, 95, 47,203,104,208, 79, 88,254, +202,243,251,231,206, 79,145,174, 95,155, 90, 83, 91, 83, 35, 87, 42,149,103,216,238, 97,165, 82,233,173, 80, 40,140,124, 29, 32, +158,244, 10,216, 34,127,138,162, 72,108,108, 44, 0, 96,226,196,137,132,162, 40, 71,138,128, 84,175,215,215,136, 68,162,220,208, +208,208, 78,213,213,213, 47,158, 56,113,162,195,192,129, 3,105,163,209, 88, 91, 89, 89,121,243,204,153, 51,127,132,135,135, 23, +182,110,221,186, 72,171,213,102, 26,141,198,155, 73, 73, 73,154, 1, 3, 6,112, 82, 0,152,164, 64,238, 64,169, 84,114, 38, 84, + 87,150, 0,220,249,190, 61, 47,128, 39,230, 76,119,229,232,180, 94, 30,173,239,105,121, 21,119, 68, 72, 53, 42, 16,113, 44, 4, +211, 63,114,174,152, 84,220,113,126,203,221, 75,242,183,171, 0,112,216,235,207,171,129, 60,114, 7,240,145, 75,177,162,252, 93, + 38, 47, 42, 31,212,180,240,241, 4,151, 0, 52,202,215, 80,105,249,227,183,199,220,114,189,106, 79,145,171, 85,191, 16, 38,207, +128, 37, 64,144, 98,121, 67, 92,146,247,249,130, 0,182, 82,224,138,188,122,185, 83,167,222, 29, 19, 38,224, 79,165, 82,229,185, + 34,143,208, 13,199,184,166, 10,136,141,141,197,190,125,251, 40,198,170,226, 52, 30,159,121,238,129, 97,229,227, 63, 98,168,174, +150,127,191,226,205,140,186,234,234,153, 30,176,174,143,232,107,171,229,135,214,191,149,161,171,173,158,165, 84, 42,143,186, 58, +153, 27,141,198,195, 70, 99,141,124,125,122, 90, 70, 77, 77,205, 76, 0, 71,172,101,185, 64,254,158, 64,131, 25,213,154,252,153, +184, 29,118,144, 96, 92, 92,156, 35,121,197,122,189,222,151, 16, 82, 77,211,180, 82,175,215,255, 20, 22, 22,214,166,162,162,130, + 90,182,108, 89, 85,101,101,101,121,199,142, 29,171,107,106,106, 52,122,189,190,202, 96, 48,212, 61,247,220,115, 90,158, 22, 54, +229,129,123, 38,175,169, 58,180, 41,101, 55, 55,222,127,255, 35, 10, 0,121,252,137, 49,136,236, 19,110,183,222,249,115, 87,240, +213,246,111,152,250,247, 76,222,250,245,235,235,229, 57, 52,152, 79, 20,225,171,237,223, 48,245, 29,226, 94,146,191, 61, 5,192, +211, 13,104,178, 11,178,144, 40,101,203, 90,230, 3, 15, 71,245,115,201, 22,232,214, 15,240, 57,244,199, 19,222, 0, 23,198,196, +238,123,119,229,237,219,183,143,215, 88,185, 19,241,207,133,180,117,213, 85, 93, 60, 41, 79, 91, 83,221,197, 67,150,220,145,154, +234,234, 46,247,217,179, 76, 1,192,166, 77,155,136, 72, 36, 2,243,199,118, 97,203,229,114,208, 52, 13,154,166,145,148,148, 68, + 57,217, 21, 64, 25,141, 70,127, 66,136,137,166,233, 58,131,193,240,131,151,151, 23, 37, 18,137,124, 1,248,210, 52, 13,147,201, +228,101, 52, 26,197, 70,163,177,195,115,207, 61,119,145,245,221, 38, 63, 4, 72,128,103,148,128, 33, 67, 70,146,131,251,119,163, +184,172, 10, 33,193,181,245,159,149,222,241, 71, 88,187, 22,232,217,179,167, 83,178,110, 42,121,235,215,175,167, 30,121,228, 17, +178, 46,125, 31, 10,254,188,213, 72, 94,215, 78,109, 16, 17, 17,193,137,252,155, 10,142,114,164, 80,174,158, 35, 44, 64,128, 0, + 1,247, 1,106, 89,132, 78,179, 12, 27,111, 86,249, 13, 0, 45, 97, 14, 26, 23,136, 95,128, 0, 7, 30, 0, 1, 2, 4, 8,248, +187, 64, 98, 81, 2,104, 22,241,139,112,247,228, 65,111, 0, 29, 44,175,105,161,187, 4, 8, 16, 20, 0, 1, 2, 4,252, 51, 32, + 2, 32,101,189,103,136, 95,204, 34,125,218, 82, 79,176,254, 5, 8, 16, 20, 0, 1, 2, 4,252,143,204,105, 2,233, 11, 16,224, + 64,123, 22, 32, 64,128, 0, 1, 2, 4,252, 47,107,203,167, 79,159,102, 31,164, 67,172,146,232, 16, 52, 60,104,167, 88,165, 82, +133, 49,239,109, 5, 19,178,229,241,197, 63, 81,158,141,109,139,148,208,127,194,120,252, 93,228,133,133,133,213,215, 41, 46, 46, +166,248,202, 75, 78, 78,134, 66,161,160,132,251,207, 53,153,194,243, 43,200,227, 35,143,183, 2,192, 19,109, 57,214, 35,137,137, +137,188, 51, 75,217, 59, 47, 30,141,147,145,216, 58, 13,208, 86,157,123, 14,134, 96, 44,123,225,213, 42,149,170, 62, 91, 23,223, +124,226, 77,133,184,184,184,152,236,236,236,122, 18,140,141,141,149,237,219,183, 47,239,159,168,237,218, 26,143,139, 23,205, 59, +195,122,245,234,213,220,205, 35, 9,147, 20,200,250, 90,105,243,158, 77,152,164, 32,150,207,236,222, 56, 9,147, 28,158, 20,136, +172,175,149, 46,223,116, 97, 97, 97, 36, 46,238,238,174,194,236,108, 16,103, 74,128, 51,172, 94,179, 58,102,207,161, 61,136,136, +140, 80,131, 2, 46,158,186, 32, 27, 54, 96, 56,210,223, 79,231,117,255,205,156, 57,179,209,117,103,100,100, 80, 16, 32, 64, 64, +147, 41, 0, 98,174, 21,163,163,163,121, 11,119,160, 0,216, 36, 81,235,131, 54,120, 16,173, 43,154, 19,151,201,133,168, 84, 42, +164,164,164, 32, 53, 53, 85,237, 32, 77, 39,151,223,111, 80,167, 99,248, 3, 0,128,155, 58, 29,140,218, 58,115, 97, 69, 21, 67, +114,220,210, 31,215, 79,228,217, 13,114, 10, 88,114,139,243, 58,227, 93, 68,153,179,235, 49,255, 1,167,175,155, 99,114,110, 48, + 30, 12,241,187, 49, 30,158,188, 6,146, 48, 73,129, 9,242,135,116,128, 66, 98, 33,122,151,126,131,165, 64,120, 28,122,125, 10, +114,114,146, 48,110,220, 38,196,197,165, 34, 59,219,220, 87,174, 40, 2, 79,191,252, 52,169,104,117, 27,107,149,171, 17,236, 31, + 12,218,104,130,142,212,169, 15,254,116,104,220,116,211,227,100,120,196, 8,217,188,121,243,156, 42, 2, 51,103,206, 36,201,201, +201, 54,251, 84, 80, 2, 4,220, 11,196,199,199,215,207, 25,115,230,204,193,150, 45, 91, 26,112,207,236,217,179, 27, 28, 78,229, + 44,185,148, 51,121, 92,143,170, 62,125,250,180,181,151,192,163, 10, 0,175,248, 1, 91,167,216,121, 2, 27,149,202,152, 23,220, + 76,154,194, 39,135, 54, 71,203,157,164,164,164, 96,213,170, 85, 0, 80,255,223,246, 79, 19,126,222,128,160, 22, 56, 91,180, 29, +126,232, 4, 19,126, 68,217,230,147, 56, 83, 88,142, 41,171,182, 54,219, 3,112,246,215,115,232,215,183, 15,104, 2,156, 59,103, +126, 13,220,125,205, 46,167, 9,231, 49, 33, 28,199,131,226, 58, 30,179,102,205, 2,128,250,255, 54,137,157,162, 0,199, 63, 77, + 30,123,236, 0,190,253, 86,238, 81, 37, 96,130,252,161,218,164,164, 36,127, 96, 19,178,190,118,141,216,221,177,240,157, 89,255, + 0, 48,117,106, 38,114,114,204,255,147,146, 10,193,120, 4,248,120, 3, 54,110,220, 24,163,254,253, 59,245,243,201,179, 49,168, +237, 64,248,181,108, 9,162, 55,130, 38, 38,120,121,139,209,117,116,215,156,223,162,126,199,170, 77,169,234,181,107,215,202, 94, +125,245, 85,167, 74,192,173, 91,183, 26,188,143, 29, 25,128,161,243,126,132, 78, 55,189,193, 64,238,216,177,195,229,254,145,203, +229,228,192,129, 3, 30,235, 95, 79,203,107, 74, 36, 39, 39,199,184,155,214, 55, 57, 57, 57, 6,112, 61, 61,176, 82,169,236,247, +218,107,175,221,208,104, 52, 97, 0,198,194,124, 8,103, 47, 0,167, 97, 62, 20, 10, 0, 62, 7,240,219,189,238, 31,246, 89, 15, +115,230,204, 65,118,118,118, 3, 78,153, 61,123, 54,248,100, 46,117, 38,175,254,121,207,202, 34, 9, 9, 9, 20, 23,242,103,202, +172,149,128, 6, 10, 64, 74, 74, 10, 41, 42, 42, 2, 0, 68, 68, 68,128,125,216,140, 74,165,106,240,222,250,115, 71, 22,123, 89, + 89,153, 90,165, 82,113,246, 4, 88,159,117,239,136,132, 95,176,164,194,180,230, 1,190, 46,246, 77,155, 54, 57,173,147,155,155, +203,137,187, 18, 19, 19,237,146,254,226,197,139,145,154,154, 10,182,130,192, 5, 29,195, 31,192,245, 59,149,216,245,194, 84,180, +166, 70,160,240,227, 5,136,152, 28,129,111,154,153,252, 1,212, 19, 62, 0,244,233,211,167, 65, 57,227, 25, 96,151,123,218,178, +119, 66,196, 36, 49, 49,209, 46,233,111,219,182, 13,169,169,169,144,143, 24,136, 3, 63,158, 2, 2, 3,128,170,154,123,222,135, +251, 15,156,244, 7, 54, 97,255,129,147, 30,145,119,243,189,214, 14,181,152,246, 11,203, 57, 61, 32,108,215,127, 82, 82, 14,226, +226,186,212,255,103, 16, 23,215,133,179, 18,240,241,151, 31, 99,229, 71,239, 96,100,183, 24,152,234,234, 96, 52, 25, 65,121, 83, + 0,188, 64, 64,227,230, 95, 37,232,213,182, 39,150,190,176, 20,239,164,189,195,201, 27,101, 61,217,197,134,110,179, 73,248,211, +167, 79, 39,174, 40, 1,114,185,156,236, 95,118, 0, 19,224, 25,210,150,203,229, 36, 45, 45, 13, 0,238,107, 37, 32, 57, 57, 57, +166,178,178,146,241,150,185,213,206,202,202, 74,102, 78,119, 73,142, 66,161, 40, 2, 48, 11,192, 41, 0,159, 2, 24, 3, 96, 60, +128,127,179, 20,128, 91,205,209, 79,236,227,158, 1,224,235,175, 27,107,240, 95,127,253, 53, 8, 33,152, 52,105, 18,197, 87,222, +198,141, 27, 71, 89,230, 57, 2,128, 10, 9, 9,177, 75,252,214, 72, 74, 49,115,204,166,212,197, 54, 63,111,160, 0,164,166,166, + 58, 12, 2,100,191,183,254,220, 81, 16, 2,163, 84,204,159, 63, 95,157,146,146, 2,235,131,114,172, 15,207, 81,169, 84,142,210, + 23, 82, 28,202,154,245,161,250,234,171,175,236, 18,191, 69,209,170, 39,255,197,139, 23,115,146,249,103, 81, 49, 52,187,151, 67, + 58,251,191,232, 24,254, 0,218,183,246, 67,209,238, 34, 51,249, 7,181, 48, 47, 1,248,120,241,110,107, 92, 92,156,140,189, 12, + 96,121,207, 75, 6, 77,128,176, 0,224,195, 25,192,115,219,128,182,254,192,197, 10,219,229,231,239,240,107,159, 61, 69,142,143, +215,230,237,183,223,182, 75,252, 0,144, 54,107, 34,214, 29, 60,142,144,136, 14, 40,189,122,211,169,245, 15, 0, 28,189, 0,156, +189, 4,102, 11, 95, 97,211,210,231,178,254,111, 11,105, 95,120, 54,201, 39, 67,250,204,127,125, 92, 87,136,179, 11, 56,127,191, + 86, 91,139, 17,211,135,171,163, 59, 12, 69,157, 70, 3,111, 95, 95,120,123,223,157,130,138, 10, 10,176, 39, 43,235,250,236,103, +103,117,236,236, 27,134,129,143, 14, 24, 45,213, 5,198,124,242,241, 39,188,172,198,119,247,207,194,247,223,127, 15,160, 97,219, +118,236,216, 65,241, 85, 2, 24,242, 71,231,181,216,191,236, 85,183,149, 0,185, 92, 78,210,211,211,209,189,123,119,172, 91,183, + 14,115,231,206,189,239,148, 0, 43,226,247,136, 60, 70,150, 27,222, 4, 25,128, 71, 1,108, 3, 80, 3, 32, 4,192,239, 0,174, +226,110,238,135,102,129,245,113,207,108,183,189,181, 11, 63, 33, 33,129, 56,115,225,239,223,191,191,193,146,241,158, 61,123,212, +108,171,159,171, 66,204,144, 63,243,122, 83,234,226, 70, 94,128,123,146, 7,128,181,246,138,162,162, 34,180,107,215,174,145,130, +192,148,149,149,149,113,205,115,239, 44, 24,144,243,132,249,248,227,143, 55,217,181,179, 9,204,150,213,111, 33, 33, 91,109,111, + 0, 45,138, 81, 51,121, 40, 72,224, 2, 96,244, 50,212,224, 75, 96,243, 73,139,102,182, 0, 62,207,172,131,209,200, 63,209, 89, +118,118,118, 30,187,159,248,146, 63, 0,148,125, 2,188,181, 17,120,160, 19,112,115,175, 24, 25, 91,244,152,181,221,126, 57, 47, +243,158,120,150,196,216,193,126, 55,190, 94,133,192, 72, 9,164,221, 94,193, 87,171,158, 67,255, 62, 33,232, 49,241, 29, 78,227, +193,165,233, 60,150, 10, 40, 0,196,138,252, 41,134,248, 93, 89,215,231,106,225,115,129, 62,174,171,205,242, 28, 43, 79,128, 51, +220, 40,187,129,177,137, 99, 17,216, 34, 24, 38,202,136,195,223,255,128,234,154, 26,196,197,199,227,175,178, 50,236,204,220,133, + 57,207,206,234,232, 43,241,133,136,248, 96,220, 67,227,114,127, 87,175,115, 73,161,191,115,231,142,219,215,205, 38,127, 0,110, + 43, 1,114,185,156,172, 88,177, 2, 93,187,154,251,179, 75,151, 46,184,159, 60, 1,158, 38,126, 27,214, 63,243,218,149,107,237, +109,121, 38,125, 0,248, 3,136, 4,112, 1, 64, 71, 0, 85, 0, 42, 60,240,204,186, 4,235,227,158,231,204,153, 83, 95,198,184, +240,153,185,140,139,103,218,222,114, 1,155,252,185, 40, 2, 92,112,207, 87,242, 20, 7, 0, 0, 9,178, 73, 68, 65, 84, 18, 1, +181,107,215, 78,150,152,152,216,104, 41,192,114,182, 61, 0,240,142, 17,176, 23, 12,232,200,114,180,167,160, 52, 5, 24,235,222, +158,187,159,171,245, 15, 0, 7,151,172, 64,220,202,247, 97, 28, 61, 2,222, 0,164,199, 10,240, 77, 97, 57, 0,192, 56,122, 46, + 12,191,182, 1,213,246,223,188, 73,138,135,151,197, 46,202, 39,125,137,185,207, 94,195,165, 23, 22, 65,243,173, 30, 33,109, 28, +151,123,194, 3,224,138,114,176,109,219, 54,179, 54, 28,247, 8,142,151,148, 33,176,127, 32,174,231, 20, 2, 18, 95, 76,157,251, + 12, 90,117,154,216,156,243,175,189,168,127,143,120,181, 28,237, 16,112, 22, 59,144,147,148,131,113,155,198, 97,106, 38,144,148, + 99,126,157,147,148,195,219, 11, 80,163,171, 70, 27,191,214, 48,234,106, 65, 68, 4,131,135, 12,193,238,221,187,117,233,239,191, + 47,161, 9,193, 83, 51,158, 66,171,214,173, 80, 91, 83, 3,163,201,136, 64,159, 22, 48,136, 12, 46, 93,111, 69, 69, 69,131,221, + 1,124, 3, 2, 27,145, 63, 3, 23,149, 0,185, 92, 78, 82, 82, 82, 48,100,200,144, 6,229,125,250,244,193,187,239,190,219,172, + 74, 64, 83, 17,191,181,245, 15, 0, 37, 37, 37,174,122, 1,126,130,121,189,191, 10,102,215,255, 88, 0,151, 1,244, 3,144, 5, + 96, 43, 0,135, 55,139, 82,169, 20, 41, 20, 10,143,167,131,102,187,236, 89,129,122,245,159,179,151, 4, 74, 75, 75, 99,156, 29, +244, 69, 8,161, 24,130,103,187,250, 19, 18, 18,108,150,123, 82, 1, 32, 86,164, 72,120,126,238, 16, 17, 17, 17,245,164, 31, 29, + 29, 45, 99, 98, 3, 24,239, 64, 68, 68,132,154, 89, 46,104,174,137,215,147,112,182,214,207,178,254,157, 98,202,198, 76,144,248, +112,220, 28,246, 16, 90, 99, 4,252,166,174,131,241,198, 95, 64, 80, 11,120,151,127,137,189,233,249,128,151,151, 43,215,238,182, + 38,121,230,181,127, 97,208, 0, 32, 98,238, 57, 68, 74,159,197,239, 15, 38, 2, 31, 46,178, 91,222, 92, 30,128,212,212, 84,140, + 28,220, 3,163, 71,116, 71, 92,223, 69, 88,147,190, 1, 23,242,175,227,133, 81,131, 80,154,181, 31,149,119,170, 60,117, 63,216, + 90, 42,112, 74,208,108,194,247, 36,249,219,145,201, 9,197,197,197, 84, 88, 88, 24,153,154,217, 80, 33, 0,128,113,155,198, 65, +156, 93,128,236,236,194,250,157, 0,236, 92, 1,182,110, 55,154,166, 97,162, 1, 66, 27,225,235, 39,193,140,167,159,150,188,245, +230,155,104,223,190, 61,221, 49, 36, 68,164,211,212,192, 68, 0, 66,155, 64,211,206,231,234,140,140, 12,106,204,152, 49,164,188, +188, 28, 85, 85, 85, 13, 20, 71,171,221, 1,156,119, 5,200,229,114,178,230,185,243,128,164, 43, 80,250, 81,227, 10,146,174, 88, +243,220,121,128,163, 18, 32,151,203, 73, 66, 66,130,172, 79,159, 62,234,242,242,242, 70,159,135,133,133, 33, 33, 33, 65,134,251, + 60, 38,192, 93,235,223, 77, 47, 0, 91, 97,232, 0,224, 12,128,201, 0, 56, 31,101,218, 20,228, 15, 56, 94, 2,176, 97,204,228, + 57,187,246,248,248,120,194,124, 63, 62, 62,158, 88,203,219,178,101, 11,226,227,227, 9,223, 93, 1, 92, 20, 0, 62,137,128,108, +125,110, 19,137,137,137, 54,189, 0, 12,217,183,107,215, 78,150,146,146,162,102,214,100, 19, 19, 19, 29, 6, 21, 58,178, 14, 93, +216, 95,223, 36,219, 0, 25,235,222, 81, 48, 32, 31, 20,190,151, 4,159,169,235,160, 45,185, 4,239, 99,235, 96,200,156, 11,106, +194,106,236,249,247, 52, 92,221,115, 5,113,105,159, 2,222,205,147,217,121,145, 10,200, 73,219,141,200,171,227,128, 91, 26, 44, + 28,179,200, 97,185, 39, 60, 0,174, 90,255, 89,187, 87,192,171, 99,111, 72,209, 29,197,223,111, 66, 53, 69,240,243,165,107, 24, +125,238, 58,167,230,124,251,173,220, 46,217, 3,128,229,115,155,245,184,146,191,157,123,212, 45, 98,240,196, 14,129,164,156,187, +196, 15,160,145,229,207, 4, 12,102,103, 23,218,252,126,160, 95, 32, 74, 42, 75, 48,164,243, 80,104,235,116,128, 86, 7,163,222, +128,165, 41, 41,160, 68, 16,213,106,106, 64,211, 38, 24, 77, 4,190,222, 62,248,171,230, 47,248,152,156,239, 54,254,230,155,111, +234,175,109,230,204,153,132,153,111,216,187, 3,110,220,184,193,249, 58,205, 36,108, 86, 2,122,133, 55,254,253,139, 87,244,152, +191, 57, 18, 92,201,218, 82,143, 12, 25, 50, 4, 97, 97, 97,141, 62, 63,119,238, 28,178,178,178,212,205, 69,254, 22,107,156, 98, + 60, 1, 37, 37, 37, 77, 98,253,123,192, 11,192, 96,172,133, 72,235,238, 7, 37,199,209, 18, 0,187,156,239, 18,128,167,150, 20, +248, 40, 0, 77, 2,198,242, 7,128,232,232,104,153, 74,165, 82, 51,174,127, 59,202,129,236,242,229,203,206, 98, 1, 40,142,101, + 30,181, 50,185,118, 56, 99,253,219, 34,126, 70,209,225,211,222, 51,133,229, 48,252,250, 22,110,226, 71,132, 76, 88, 13, 84, 86, +161,112,211, 2,116, 73, 94,139,210,173, 11, 0, 31,111, 64,212, 60,153,157,139, 53, 64,175,118,147, 57,151, 55,135, 7, 32, 53, + 53,181,102,250,232,161, 55, 90,210,193, 15,212,194, 71,146,185,118, 46,214,239, 61,141,133,227, 31,198,172,247,191,192,180,255, +247,127, 77,234, 13,114,116,137, 89, 95, 43, 97, 73, 2, 68,185,171,156,186,227,234,119,228, 5, 72,202,201, 33,182,200,159,109, +253, 59, 67,104,187, 80, 28, 60,156,131,225, 15, 12,135,127,128, 20, 52, 77, 32, 34, 70,208, 20, 5, 66, 8, 76, 4, 48,210, 4, + 70,163, 17,218, 74, 13,246,253,178, 15, 98,147,152,247,214, 97,235, 93, 1,175,207, 29,129,216,208, 34, 80,135,184,203,176,167, + 4,240, 37,127,107, 37, 32, 45, 45, 13, 29, 58,116,184,171,216, 23, 22, 34, 53, 53, 21,247,131,229,239,105, 69,192,150,245,239, +166, 23, 0, 0, 98, 0, 60, 8,224, 13, 52,115,240, 31, 3,165, 82,217,224, 30, 45, 45, 45,133, 82,169,116,228,137,112, 42,143, +189,164, 80, 90, 90, 26,163, 84, 42, 41, 0,164,180,180,148,218,184,113, 35, 97,121,111, 41,133, 27,219,224,239,137, 2, 96, 29, +245,111, 73, 86,211, 72, 57, 96,191,118,211,130,231,125, 99,121,112, 27,160, 77,235,223, 85,226,103, 48,101,213, 86,236, 2, 48, +126,101, 44,136,106, 1,168,199,215,224, 76, 97, 57,168, 86,193, 40,248,179,202,108,253,243, 95, 2,240, 8,236,237,247,119, 39, + 15, 0, 23,133,139,171,114,176,109,219, 54, 61,128,234,231, 98,250, 85,189,178,250,191,250, 37, 75, 83,116,109, 91,180, 43, 63, +127,161,184,253,172, 11, 95, 72,209,204,187, 70, 28,144, 51,123,137,134,231,142, 2,207,195, 22,249, 51,150, 63, 0,167, 1,129, +243,230,205,163,134, 63, 54, 60, 94, 61, 34, 47, 43,177,239, 52, 84,233,170, 64,137, 0,115, 74, 17, 26, 38, 19, 1,109, 52, 34, +192, 55, 16, 71, 43, 79,225,242,177, 2,236, 84,238,204,115,187,225,133,207, 3,224,191, 13,176,129, 18,208,161, 24, 23,111,132, +185, 68,254,214, 74,192,186,117,235, 16, 20, 20,132,242,242,114,172, 88,177, 2,247,155,219,223, 19,138,128, 61,235,223, 69, 47, + 64,123,152,163,254, 69, 0, 6, 2,152, 15,160,240,126,233, 47,133,101, 43,186,167, 96,189,164,176,103,207,158,239,155,170,237, +247, 36, 15,128, 61,143,192,154, 53,107,100,214,138, 66, 98, 98,162,154,239, 69,176,137,224,126, 72,177,203,182,254,173,183,255, + 89,250,151,221,175,156, 27,204, 40, 1,147, 87,126, 2,146, 9,180,153,165, 68,222, 43,211,240,112,234,231,128,143, 15, 2, 36, +226,102,185, 94,246, 30,127, 91,175, 93,204, 3, 96, 4, 32,178,140,173,200,205,241,184, 57,125,244,208,146, 87, 54,101,135, 47, +157, 51,182, 69,104, 72,140, 30,192,217,196,196,196,150, 48, 31, 37,235,210,120, 48,183,220,183,223,202,153,136,127, 87,148, 59, +202,153, 5,207,135,208,155, 42, 25,144, 61, 88,147, 62,227, 17,104,213,170,149, 77,237,236,232,183, 71,247,132,245,124, 0,166, +233,198,179,143, 62,240,104,191,214,129,173,161, 51,232, 64, 8,129,216, 91,140, 10,109, 45,142,255,249, 45,182,125,150, 1, 89, +111,153,108, 39,118,186,221,198,119,247,207, 66, 70, 70, 6, 46, 95,230,159, 3,224,174, 18, 0,183,200,159, 45,111,238,220,185, + 36, 45, 45, 13,139, 22, 45,194,253,188,230,207, 86, 4,242,242,242, 92,250,174,163, 58, 60,100, 38,192,188,223, 95, 7,224, 53, + 0,191, 0, 48,225, 31, 10,235, 37, 0,190, 24, 48, 96, 0, 78,159, 62,141, 77,169,139, 27,229, 1,112,152, 8,168,169,242, 0, +216,242, 8,216, 35,122, 23,189, 0,110,161,169,182, 1, 50, 3,168, 84, 42,145,155,155, 75, 23, 21, 21,177,137, 76,166, 82,169, +120,107,142, 83, 86,109, 5, 88,137,127, 30, 93,186,177,254,181,166,121,238, 87,167,119, 41, 77, 92,234,187,116, 0,183, 97,222, +254, 51,195,205, 54,150, 62, 23,211,175,110, 76,238, 79, 45,158,122,243, 83, 40,149, 74,113,110,110,110, 7, 52, 76,103,237,210, +120, 52,181, 39,192, 89,126,127,167, 51,103, 19, 44, 9,216, 35,127,125, 92, 87, 32,219,185, 97,182,253,163, 29, 84,128,151,148, + 28, 11, 59,142, 17, 67, 71,160, 99, 96, 71,128, 38,248, 75, 87,142,163, 39,143,162,244,124, 41, 70,245, 26, 37,123,249,229,151, +155,125, 60,216, 74,128,167,200,154,241, 4,252, 93, 2,254,220,205, 2,232, 1,108,178,252,253, 79,192,122, 73,193, 29, 23,191, +189, 4, 64, 54, 21,128,166,194,252,249,243,109,146,189,213, 73,108,108,168, 29, 36, 2,178, 75,180,174,162, 41,182, 1,166,166, +166, 66,169, 84, 26,115,115,115,189, 45, 75, 7, 12,249,143,114,112,221, 54, 97, 57, 76, 73,221, 4, 67, 67, 28,148, 83,205,116, +243,251, 90,238,203,101,150, 34,147, 66,161,120,218, 77,177,190, 99,222,248, 56, 95,169, 84, 62,146,155,155,139,220,220, 92, 29, + 0,137,229,207, 19,196, 79,185,147, 26,216, 25,201, 39, 76, 82, 52, 24, 47,190,196,237,137, 37,129,226,226, 98, 42, 39, 41,135, +132,206, 13,149,161,179,237, 58, 37, 73, 57,106,174,241, 0, 91, 62,216, 66,173, 93,187, 54,102,235,202,173, 8,235,250,160, 26, + 0,126, 63,247,155,108,226,152, 56,164,111, 72,207,219,142,237, 46,181, 51, 35, 35,131, 26, 59,118,108,163, 93, 1, 6,131,193, +173,235,247, 52, 89,255,211,162,253,239, 3,210,164, 20, 10, 5,249, 39, 92,139, 39,150, 20, 24, 47,128,117, 25,103, 5,192,153, + 37,206,195, 82,119,245, 70, 39, 77, 44,223, 83,223,183, 41, 47, 49, 49,145,228,230,230,122,179,251,139,237, 97,225,169,160,228, + 53, 17, 33,223,143,147, 80, 32,128, 26,115, 66,126,138, 2,224, 7, 39,251,123, 57,142,199, 31,185,185,185,204, 54,160,170,136, +136,136,182,169,169,169,190,247, 67, 95, 54,165,219,222,147,178,139,139,139,169,226,133,197, 30,235, 3, 86,158,255,250,239, 29, +253,238,152,219,237, 60,116,232,144, 64,174,255,112,178,103,115,152, 66,161, 48,120,146,252,149, 74,101,144, 66,161,168,248,187, +247, 19, 23, 35,154,114,245, 28, 97, 1, 2, 4, 8, 16, 32, 64,192,223, 23, 34,161, 11, 4, 8, 16, 32, 64,128, 0, 65, 1, 16, + 32, 64,128, 0, 1, 2, 4,252, 15,224,255, 3, 40, 50, 24,122,163,191,209,130, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, 0}; diff --git a/source/blender/src/drawview.c b/source/blender/src/drawview.c index 3a054323034..f8d77698489 100644 --- a/source/blender/src/drawview.c +++ b/source/blender/src/drawview.c @@ -3023,9 +3023,12 @@ void drawview3dspace(ScrArea *sa, void *spacedata) for(SETLOOPER(G.scene->set, base)) object_handle_update(base->object); // bke_object.h } - - for(base= G.scene->base.first; base; base= base->next) + + v3d->lay_used = 0; + for(base= G.scene->base.first; base; base= base->next) { object_handle_update(base->object); // bke_object.h + v3d->lay_used |= base->lay; + } /* shadow buffers, before we setup matrices */ if(draw_glsl_material(NULL, v3d->drawtype)) diff --git a/source/blender/src/header_view3d.c b/source/blender/src/header_view3d.c index 5d284f5eab4..c8a006a8221 100644 --- a/source/blender/src/header_view3d.c +++ b/source/blender/src/header_view3d.c @@ -5567,6 +5567,16 @@ static void view3d_header_pulldowns(uiBlock *block, short *xcoord) *xcoord= xco; } +static int view3d_layer_icon(int but_lay, int ob_lay, int used_lay) +{ + if (but_lay & ob_lay) + return ICON_LAYER_ACTIVE; + else if (but_lay & used_lay) + return ICON_LAYER_USED; + else + return ICON_BLANK1; +} + void view3d_buttons(void) { uiBlock *block; @@ -5733,19 +5743,22 @@ void view3d_buttons(void) /* LAYERS */ if(G.obedit==NULL && G.vd->localview==0) { + int ob_lay = ob ? ob->lay : 0; uiBlockBeginAlign(block); - for(a=0; a<5; a++) - uiDefButBitI(block, TOG, 1<lay), 0, 0, 0, 0, "Toggles Layer visibility (Num, Shift Num)"); - for(a=0; a<5; a++) - uiDefButBitI(block, TOG, 1<<(a+10), B_LAY+10+a, "",(short)(xco+a*(XIC/2)), 0, XIC/2, (YIC)/2, &(G.vd->lay), 0, 0, 0, 0, "Toggles Layer visibility (Alt Num, Alt Shift Num)"); - + for(a=0; a<5; a++) { + uiDefIconButBitI(block, TOG, 1<lay_used), (short)(xco+a*(XIC/2)), (short)(YIC/2),(short)(XIC/2),(short)(YIC/2), &(G.vd->lay), 0, 0, 0, 0, "Toggles Layer visibility (Alt Num, Alt Shift Num)"); + } + for(a=0; a<5; a++) { + uiDefIconButBitI(block, TOG, 1<<(a+10), B_LAY+10+a, view3d_layer_icon(1<<(a+10), ob_lay, G.vd->lay_used), (short)(xco+a*(XIC/2)), 0, XIC/2, (YIC)/2, &(G.vd->lay), 0, 0, 0, 0, "Toggles Layer visibility (Alt Num, Alt Shift Num)"); + } xco+= 5; uiBlockBeginAlign(block); - for(a=5; a<10; a++) - uiDefButBitI(block, TOG, 1<lay), 0, 0, 0, 0, "Toggles Layer visibility (Num, Shift Num)"); - for(a=5; a<10; a++) - uiDefButBitI(block, TOG, 1<<(a+10), B_LAY+10+a, "",(short)(xco+a*(XIC/2)), 0, XIC/2, (YIC)/2, &(G.vd->lay), 0, 0, 0, 0, "Toggles Layer visibility (Alt Num, Alt Shift Num)"); - + for(a=5; a<10; a++) { + uiDefIconButBitI(block, TOG, 1<lay_used), (short)(xco+a*(XIC/2)), (short)(YIC/2),(short)(XIC/2),(short)(YIC/2), &(G.vd->lay), 0, 0, 0, 0, "Toggles Layer visibility (Alt Num, Alt Shift Num)"); + } + for(a=5; a<10; a++) { + uiDefIconButBitI(block, TOG, 1<<(a+10), B_LAY+10+a, view3d_layer_icon(1<<(a+10), ob_lay, G.vd->lay_used), (short)(xco+a*(XIC/2)), 0, XIC/2, (YIC)/2, &(G.vd->lay), 0, 0, 0, 0, "Toggles Layer visibility (Alt Num, Alt Shift Num)"); + } uiBlockEndAlign(block); xco+= (a-2)*(XIC/2)+3; From 8569a78cbb57592ebe4407fc337f9c4a02d8f3b5 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sun, 7 Sep 2008 17:13:05 +0000 Subject: [PATCH 33/66] bugfix 17527 Halo render: lines and rings were not using random anymore... got lost in particle upgrade of pre-peach. Tsk! --- source/blender/render/intern/source/convertblender.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 8626fb0f9d0..9ee6f873f3f 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -1766,7 +1766,7 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem psys->lattice=psys_get_lattice(ob,psys); /* 3. start creating renderable things */ - for(a=0,pa=pars; a Date: Sun, 7 Sep 2008 18:18:50 +0000 Subject: [PATCH 34/66] Bugfix #17446 Two menu errors in Node Editor. --- source/blender/src/header_node.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/blender/src/header_node.c b/source/blender/src/header_node.c index b4f7b2ad8b0..d27a41c59f5 100644 --- a/source/blender/src/header_node.c +++ b/source/blender/src/header_node.c @@ -602,11 +602,11 @@ static uiBlock *node_nodemenu(void *arg_unused) if(snode->treetype==NTREE_COMPOSIT) { uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Execute Composite|E", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, ""); uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Read Saved Render Results|R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Read Saved Full Sample Results|R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 13, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Read Saved Full Sample Results|Shift R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 13, ""); uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Connect Node to Viewer|Ctrl LMB", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 14, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Connect Node to Viewer|Ctrl RMB", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 14, ""); uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); } From f3fc5a8b6103f7f8b256fdceee8412e0182a5a8f Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Sun, 7 Sep 2008 19:58:37 +0000 Subject: [PATCH 35/66] BGE bug #17574 fixed: GE Text input doesn't register in 2.47. Force registration of keyboard sensor with no link as this is typically the setting for key logging. --- source/gameengine/Converter/KX_ConvertSensors.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source/gameengine/Converter/KX_ConvertSensors.cpp b/source/gameengine/Converter/KX_ConvertSensors.cpp index 74819431858..f16855955ff 100644 --- a/source/gameengine/Converter/KX_ConvertSensors.cpp +++ b/source/gameengine/Converter/KX_ConvertSensors.cpp @@ -781,6 +781,13 @@ void BL_ConvertSensors(struct Object* blenderobject, "logic may be incorrect\n", sens->name, i+1, sens->totlinks, blenderobject->id.name+2); } } + // special case: Keyboard sensor with no link + // this combination is usually used for key logging. + if (sens->type == SENS_KEYBOARD && sens->totlinks == 0) { + // Force the registration so that the sensor runs + gamesensor->IncLink(); + } + // done with gamesensor gamesensor->Release(); From 26d8da99cc451c4a60fa0d3f8e467c3dd6ae5e7c Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Sun, 7 Sep 2008 20:18:26 +0000 Subject: [PATCH 36/66] Bug [#17454] Wave modifier crash, fix provided by Banlu Kemiyatorn --- source/blender/src/buttons_editing.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c index c83d7b2e124..0a792b05428 100644 --- a/source/blender/src/buttons_editing.c +++ b/source/blender/src/buttons_editing.c @@ -1573,6 +1573,18 @@ static void build_uvlayer_menu_vars(CustomData *data, char **menu_string, } } +void set_wave_uvlayer(void *arg1, void *arg2) +{ + WaveModifierData *wmd=arg1; + CustomDataLayer *layer = arg2; + + /*check we have UV layers*/ + if (wmd->uvlayer_tmp < 1) return; + layer = layer + (wmd->uvlayer_tmp-1); + + strcpy(wmd->uvlayer_name, layer->name); +} + void set_displace_uvlayer(void *arg1, void *arg2) { DisplaceModifierData *dmd=arg1; @@ -2193,7 +2205,7 @@ static void draw_modifier(uiBlock *block, Object *ob, ModifierData *md, int *xco 0.0, 1.0, 0, 0, "Set the UV layer to use"); MEM_freeN(strtmp); i = CustomData_get_layer_index(fdata, CD_MTFACE); - uiButSetFunc(but, set_displace_uvlayer, wmd, + uiButSetFunc(but, set_wave_uvlayer, wmd, &fdata->layers[i]); } if(wmd->texmapping == MOD_DISP_MAP_OBJECT) { From a9d334df67a921dd6c60c4574dbb4eb6443e9c37 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Sun, 7 Sep 2008 20:46:54 +0000 Subject: [PATCH 37/66] Bugfix for #17572 Boids Particles Crash --- source/blender/blenkernel/intern/particle_system.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 96eb4d5d8e3..71dd2f64c72 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -3875,7 +3875,7 @@ static void boid_body(BoidVecFunc *bvf, ParticleData *pa, ParticleSystem *psys, state->vel[2]=0.0; state->co[2]=part->groundz; - if(psys->keyed_ob){ + if(psys->keyed_ob && (psys->keyed_ob->type == OB_MESH)){ Object *zob=psys->keyed_ob; int min_face; float co1[3],co2[3],min_d=2.0,min_w[4],imat[4][4]; From ce7caf203d81168b06f815464c4ae2fa6179a302 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 8 Sep 2008 06:49:19 +0000 Subject: [PATCH 38/66] View 3D - Improvements for Info Drawing: The little info string beside the mini-axis (in bottom left corner) is now more useful when animating fullscreen. ZanQdo feature request. * Info string is drawn in yellow when there is a keyframe on this frame. Hopefully this doesn't introduce any major slowdowns, as it does do a search for keyframes for every redraw. * Name of first marker that occurs on the current frame is now also shown (in angled brackets). No angle brackets are shown if no marker. * Info string is also shown when there is no active object. --- source/blender/src/drawview.c | 221 +++++++++++++++++++++++++++------- 1 file changed, 179 insertions(+), 42 deletions(-) diff --git a/source/blender/src/drawview.c b/source/blender/src/drawview.c index f8d77698489..42576c901d7 100644 --- a/source/blender/src/drawview.c +++ b/source/blender/src/drawview.c @@ -135,6 +135,7 @@ #include "BIF_verse.h" #endif +#include "BDR_drawaction.h" #include "BDR_drawmesh.h" #include "BDR_drawobject.h" #include "BDR_editobject.h" @@ -1207,60 +1208,196 @@ void drawname(Object *ob) BMF_DrawString(G.font, ob->id.name+2); } +static char *get_cfra_marker_name() +{ + ListBase *markers= &G.scene->markers; + TimeMarker *m1, *m2; + + /* search through markers for match */ + for (m1=markers->first, m2=markers->last; m1 && m2; m1=m1->next, m2=m2->prev) { + if (m1->frame==CFRA) + return m1->name; + if (m2->frame==CFRA) + return m2->name; + + if (m1 == m2) + break; + } + + return NULL; +} +// TODO: move this func into some keyframing API +short ob_cfra_has_keyframe (Object *ob) +{ + // fixme... this is slow! + if (ob) { + ListBase keys = {NULL, NULL}; + ActKeyColumn *ak, *akn; + Key *key= ob_get_key(ob); + int cfra, found= 0; + + /* check active action */ + if (ob->action) { + /* get keyframes of action */ + action_to_keylist(ob->action, &keys, NULL, NULL); + + cfra= frame_to_float(CFRA); + cfra= get_action_frame(ob, cfra); + + /* check if a keyframe occurs on current frame */ + for (ak=keys.first, akn=keys.last; ak && akn; ak=ak->next, akn=akn->prev) { + if (cfra == ak->cfra) { + found= 1; + break; + } + else if (cfra == akn->cfra) { + found= 1; + break; + } + + if (ak == akn) + break; + } + + /* free temp list */ + BLI_freelistN(&keys); + keys.first= keys.last= NULL; + + /* return if found */ + if (found) return 1; + } + + /* accumulate keyframes for available ipo's */ + if (ob->ipo) + ipo_to_keylist(ob->ipo, &keys, NULL, NULL); + if (key) + ipo_to_keylist(key->ipo, &keys, NULL, NULL); + + if (keys.first) { + cfra= frame_to_float(CFRA); + found= 0; + + /* check if a keyframe occurs on current frame */ + for (ak=keys.first, akn=keys.last; ak && akn; ak=ak->next, akn=akn->prev) { + if (IS_EQ(cfra, ak->cfra)) { + found= 1; + break; + } + else if (IS_EQ(cfra, akn->cfra)) { + found= 1; + break; + } + + if (ak == akn) + break; + } + + /* free temp list */ + BLI_freelistN(&keys); + keys.first= keys.last= NULL; + + /* return if found */ + if (found) return 1; + } + } + + /* couldn't find a keyframe */ + return 0; +} + +/* draw info beside axes in bottom left-corner: + * framenum, object name, bone name (if available), marker name (if available) + */ static void draw_selected_name(Object *ob) { - char info[128]; + char info[256], *markern; short offset=30; - - if(ob->type==OB_ARMATURE) { - bArmature *arm= ob->data; - char *name= NULL; - - if(ob==G.obedit) { - EditBone *ebo; - for (ebo=G.edbo.first; ebo; ebo=ebo->next){ - if ((ebo->flag & BONE_ACTIVE) && (ebo->layer & arm->layer)) { - name= ebo->name; - break; + + /* get name of marker on current frame (if available) */ + markern= get_cfra_marker_name(); + + /* check if there is an object */ + if(ob) { + /* name(s) to display depends on type of object */ + if(ob->type==OB_ARMATURE) { + bArmature *arm= ob->data; + char *name= NULL; + + /* show name of active bone too (if possible) */ + if(ob==G.obedit) { + EditBone *ebo; + for (ebo=G.edbo.first; ebo; ebo=ebo->next){ + if ((ebo->flag & BONE_ACTIVE) && (ebo->layer & arm->layer)) { + name= ebo->name; + break; + } } } - } - else if(ob->pose && (ob->flag & OB_POSEMODE)) { - bPoseChannel *pchan; - for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) { - if((pchan->bone->flag & BONE_ACTIVE) && (pchan->bone->layer & arm->layer)) { - name= pchan->name; - break; + else if(ob->pose && (ob->flag & OB_POSEMODE)) { + bPoseChannel *pchan; + for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) { + if((pchan->bone->flag & BONE_ACTIVE) && (pchan->bone->layer & arm->layer)) { + name= pchan->name; + break; + } } } + if(name && markern) + sprintf(info, "(%d) %s %s <%s>", CFRA, ob->id.name+2, name, markern); + else if(name) + sprintf(info, "(%d) %s %s", CFRA, ob->id.name+2, name); + else + sprintf(info, "(%d) %s", CFRA, ob->id.name+2); } - if(name) - sprintf(info, "(%d) %s %s", CFRA, ob->id.name+2, name); + else if(ELEM3(ob->type, OB_MESH, OB_LATTICE, OB_CURVE)) { + Key *key= NULL; + KeyBlock *kb = NULL; + char shapes[75]; + + /* try to display active shapekey too */ + shapes[0] = 0; + key = ob_get_key(ob); + if(key){ + kb = BLI_findlink(&key->block, ob->shapenr-1); + if(kb){ + sprintf(shapes, ": %s ", kb->name); + if(ob->shapeflag == OB_SHAPE_LOCK){ + sprintf(shapes, "%s (Pinned)",shapes); + } + } + } + + if(markern) + sprintf(info, "(%d) %s %s <%s>", CFRA, ob->id.name+2, shapes, markern); + else + sprintf(info, "(%d) %s %s", CFRA, ob->id.name+2, shapes); + } + else { + /* standard object */ + if (markern) + sprintf(info, "(%d) %s <%s>", CFRA, ob->id.name+2, markern); + else + sprintf(info, "(%d) %s", CFRA, ob->id.name+2); + } + + /* colour depends on whether there is a keyframe */ + if (ob_cfra_has_keyframe(ob)) + BIF_ThemeColor(TH_VERTEX_SELECT); else - sprintf(info, "(%d) %s", CFRA, ob->id.name+2); + BIF_ThemeColor(TH_TEXT_HI); } - else if(ob->type==OB_MESH) { - Key *key= NULL; - KeyBlock *kb = NULL; - char shapes[75]; + else { + /* no object */ + if (markern) + sprintf(info, "(%d) <%s>", CFRA, markern); + else + sprintf(info, "(%d)", CFRA); - shapes[0] = 0; - key = ob_get_key(ob); - if(key){ - kb = BLI_findlink(&key->block, ob->shapenr-1); - if(kb){ - sprintf(shapes, ": %s ", kb->name); - if(ob->shapeflag == OB_SHAPE_LOCK){ - sprintf(shapes, "%s (Pinned)",shapes); - } - } - } - sprintf(info, "(%d) %s %s", CFRA, ob->id.name+2, shapes); + /* colour is always white */ + BIF_ThemeColor(TH_TEXT_HI); } - else sprintf(info, "(%d) %s", CFRA, ob->id.name+2); - - BIF_ThemeColor(TH_TEXT_HI); + if (U.uiflag & USER_SHOW_ROTVIEWICON) offset = 14 + (U.rvisize * 2); @@ -3257,7 +3394,7 @@ void drawview3dspace(ScrArea *sa, void *spacedata) } ob= OBACT; - if(ob && (U.uiflag & USER_DRAWVIEWINFO)) + if(U.uiflag & USER_DRAWVIEWINFO) draw_selected_name(ob); draw_area_emboss(sa); From 6a83746fb33d3803b212a26ca72882d55127009d Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 8 Sep 2008 10:31:00 +0000 Subject: [PATCH 39/66] Bugfix #17305 3d window didn't refresh correctly when loading a new background image. Fix by Ken Hughes. :) --- source/blender/src/buttons_shading.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/blender/src/buttons_shading.c b/source/blender/src/buttons_shading.c index 3f65f686e93..6d5e1a62ad4 100644 --- a/source/blender/src/buttons_shading.c +++ b/source/blender/src/buttons_shading.c @@ -211,6 +211,7 @@ static void load_image_cb(char *str, void *ima_pp_v, void *iuser_v) /* called fr if(GS(tex->id.name)==ID_TE) { BIF_preview_changed(ID_TE); allqueue(REDRAWBUTSSHADING, 0); + allqueue(REDRAWVIEW3D, 0); allqueue(REDRAWOOPS, 0); } } From da474210de8871ea2a6dfcd2bfa37a71f9f6aed8 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 8 Sep 2008 11:13:34 +0000 Subject: [PATCH 40/66] Bug #17317 Vertexpaint mode: option "paint mask" (Fkey) missed redraw for buttons --- source/blender/include/blendef.h | 1 + source/blender/src/header_view3d.c | 8 ++++++-- source/blender/src/space.c | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/source/blender/include/blendef.h b/source/blender/include/blendef.h index 228530db445..a7f7bc2e4b8 100644 --- a/source/blender/include/blendef.h +++ b/source/blender/include/blendef.h @@ -241,6 +241,7 @@ #define B_SEL_END 168 #define B_MAN_MODE 169 #define B_NDOF 170 +#define B_VIEW_BUTSEDIT 171 /* IPO: 200 */ #define B_IPOHOME 201 diff --git a/source/blender/src/header_view3d.c b/source/blender/src/header_view3d.c index c8a006a8221..704d4bdea54 100644 --- a/source/blender/src/header_view3d.c +++ b/source/blender/src/header_view3d.c @@ -5387,7 +5387,11 @@ void do_view3d_buttons(short event) case B_MAN_MODE: allqueue(REDRAWVIEW3D, 1); break; - + case B_VIEW_BUTSEDIT: + allqueue(REDRAWVIEW3D, 1); + allqueue(REDRAWBUTSEDIT, 1); + break; + default: if(event>=B_LAY && event Date: Mon, 8 Sep 2008 12:06:40 +0000 Subject: [PATCH 41/66] Bugfix: Grease Pencil panel now updates correctly in Sequencer --- source/blender/src/drawgpencil.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/source/blender/src/drawgpencil.c b/source/blender/src/drawgpencil.c index 6e897052218..fb21d94f39a 100644 --- a/source/blender/src/drawgpencil.c +++ b/source/blender/src/drawgpencil.c @@ -98,6 +98,8 @@ void gp_ui_activelayer_cb (void *gpd, void *gpl) { gpencil_layer_setactive(gpd, gpl); + + scrarea_queue_winredraw(curarea); allqueue(REDRAWACTION, 0); } @@ -109,6 +111,8 @@ void gp_ui_renamelayer_cb (void *gpd_arg, void *gpl_arg) BLI_uniquename(&gpd->layers, gpl, "GP_Layer", offsetof(bGPDlayer, info[0]), 128); gpencil_layer_setactive(gpd, gpl); + + scrarea_queue_winredraw(curarea); allqueue(REDRAWACTION, 0); } @@ -116,6 +120,8 @@ void gp_ui_renamelayer_cb (void *gpd_arg, void *gpl_arg) void gp_ui_addlayer_cb (void *gpd, void *dummy) { gpencil_layer_addnew(gpd); + + scrarea_queue_winredraw(curarea); allqueue(REDRAWACTION, 0); } @@ -123,6 +129,8 @@ void gp_ui_addlayer_cb (void *gpd, void *dummy) void gp_ui_dellayer_cb (void *gpd, void *dummy) { gpencil_layer_delactive(gpd); + + scrarea_queue_winredraw(curarea); allqueue(REDRAWACTION, 0); } @@ -133,6 +141,8 @@ void gp_ui_delstroke_cb (void *gpd, void *gpl) gpencil_layer_setactive(gpd, gpl); gpencil_frame_delete_laststroke(gpf); + + scrarea_queue_winredraw(curarea); } /* delete active frame of active layer */ @@ -143,6 +153,7 @@ void gp_ui_delframe_cb (void *gpd, void *gpl) gpencil_layer_setactive(gpd, gpl); gpencil_layer_delframe(gpl, gpf); + scrarea_queue_winredraw(curarea); allqueue(REDRAWACTION, 0); } @@ -151,6 +162,8 @@ void gp_ui_convertlayer_cb (void *gpd, void *gpl) { gpencil_layer_setactive(gpd, gpl); gpencil_convert_menu(); + + scrarea_queue_winredraw(curarea); } /* ------- Drawing Code ------- */ From 2768ee67bd0d78b7af1ef78537257ccf7bba7491 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 8 Sep 2008 12:36:49 +0000 Subject: [PATCH 42/66] Grease Pencil - Defaults Cleanups: * Made new layers default to having thickness of 3, and opacity of 0.9. These values seem to be used more often. * Newly added Grease Pencil blocks will now be expanded by default in the Action Editor * Added support for Image Editor grease-pencil blocks to the Action Editor * Added version-patching for missing colours used by the info-string for GPencil. --- source/blender/src/drawaction.c | 12 ++++++++++++ source/blender/src/gpencil.c | 7 +++---- source/blender/src/resources.c | 2 ++ source/blender/src/usiblender.c | 9 +++++++++ 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/source/blender/src/drawaction.c b/source/blender/src/drawaction.c index 0782ccfc7ee..33eb5262c3d 100644 --- a/source/blender/src/drawaction.c +++ b/source/blender/src/drawaction.c @@ -682,6 +682,18 @@ static void draw_channel_names(void) special= ICON_SEQUENCE; } break; + case SPACE_IMAGE: + { + SpaceImage *sima= sa->spacedata.first; + + if (sima->image) + sprintf(name, "Image: %s", sima->image->id.name+2); + else + sprintf(name, "Image: "); + + special= ICON_IMAGE_COL; + } + break; default: { diff --git a/source/blender/src/gpencil.c b/source/blender/src/gpencil.c index fa3ada89a3a..c7540bc4a1f 100644 --- a/source/blender/src/gpencil.c +++ b/source/blender/src/gpencil.c @@ -224,8 +224,8 @@ bGPDlayer *gpencil_layer_addnew (bGPdata *gpd) BLI_addtail(&gpd->layers, gpl); /* set basic settings */ - gpl->color[3]= 1.0f; - gpl->thickness = 1; + gpl->color[3]= 0.9f; + gpl->thickness = 3; /* auto-name */ sprintf(gpl->info, "GP_Layer"); @@ -247,8 +247,7 @@ bGPdata *gpencil_data_addnew (void) gpd= MEM_callocN(sizeof(bGPdata), "GreasePencilData"); /* initial settings */ - /* it is quite useful to be able to see this info, so on by default */ - gpd->flag = GP_DATA_DISPINFO; + gpd->flag = (GP_DATA_DISPINFO|GP_DATA_EXPAND); return gpd; } diff --git a/source/blender/src/resources.c b/source/blender/src/resources.c index acd14aae7a5..1bef10d0415 100644 --- a/source/blender/src/resources.c +++ b/source/blender/src/resources.c @@ -753,6 +753,8 @@ char *BIF_ThemeColorsPup(int spacetype) str += sprintf(str, "Transition Strip %%x%d|", TH_SEQ_TRANSITION); str += sprintf(str, "Meta Strip %%x%d|", TH_SEQ_META); str += sprintf(str, "Current Frame %%x%d", TH_CFRAME); + str += sprintf(str, "Keyframe %%x%d|", TH_VERTEX_SELECT); + str += sprintf(str, "Draw Action %%x%d|", TH_BONE_POSE); break; case SPACE_SOUND: str += sprintf(str, "Grid %%x%d|", TH_GRID); diff --git a/source/blender/src/usiblender.c b/source/blender/src/usiblender.c index 901daf0ee58..aa49065320b 100644 --- a/source/blender/src/usiblender.c +++ b/source/blender/src/usiblender.c @@ -484,11 +484,20 @@ static void init_userdef_file(void) bTheme *btheme; for(btheme= U.themes.first; btheme; btheme= btheme->next) { char *col; + + /* IPO Editor: Handles/Vertices */ col = btheme->tipo.vertex; SETCOL(btheme->tipo.handle_vertex, col[0], col[1], col[2], 255); col = btheme->tipo.vertex_select; SETCOL(btheme->tipo.handle_vertex_select, col[0], col[1], col[2], 255); btheme->tipo.handle_vertex_size= btheme->tipo.vertex_size; + + /* Sequence/Image Editor: colors for GPencil text */ + col = btheme->tv3d.bone_pose; + SETCOL(btheme->tseq.bone_pose, col[0], col[1], col[2], 255); + SETCOL(btheme->tima.bone_pose, col[0], col[1], col[2], 255); + col = btheme->tv3d.vertex_select; + SETCOL(btheme->tseq.vertex_select, col[0], col[1], col[2], 255); } } From f7a6d032fc7f82fb1cf8947ae6914ab2131155c1 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 8 Sep 2008 13:04:10 +0000 Subject: [PATCH 43/66] Bugfix #17375 Crash on converting object to other type, and replace object. Deleting should trigger a new depsgraph. Oldie bug! --- source/blender/src/editobject.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/blender/src/editobject.c b/source/blender/src/editobject.c index 2094074e3f3..e8084bd45a9 100644 --- a/source/blender/src/editobject.c +++ b/source/blender/src/editobject.c @@ -3023,6 +3023,10 @@ void convertmenu(void) basedel = NULL; } + /* delete object should renew depsgraph */ + if(nr==2) + DAG_scene_sort(G.scene); + /* texspace and normals */ if(!basen) BASACT= base; From de4828036857e76141ca336997b99978ee09fb5f Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 8 Sep 2008 15:15:00 +0000 Subject: [PATCH 44/66] Bugfix #17566 Modifier buttons: now check properly for external lib data, modifiers are on object only. Only "Apply" is locked now. --- source/blender/src/buttons_editing.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c index 0a792b05428..425ec8956cb 100644 --- a/source/blender/src/buttons_editing.c +++ b/source/blender/src/buttons_editing.c @@ -1855,6 +1855,8 @@ static void draw_modifier(uiBlock *block, Object *ob, ModifierData *md, int *xco y -= 18; if (!isVirtual && (md->type!=eModifierType_Collision)) { + uiSetButLock(object_data_is_libdata(ob), ERROR_LIBDATA_MESSAGE); /* only here obdata, the rest of modifiers is ob level */ + uiBlockBeginAlign(block); if (md->type==eModifierType_ParticleSystem) { but = uiDefBut(block, BUT, B_MODIFIER_RECALC, "Convert", lx,(cy-=19),60,19, 0, 0, 0, 0, 0, "Convert the current particles to a mesh object"); @@ -1870,6 +1872,8 @@ static void draw_modifier(uiBlock *block, Object *ob, ModifierData *md, int *xco uiButSetFunc(but, modifiers_copyModifier, ob, md); } uiBlockEndAlign(block); + + uiSetButLock(ob && ob->id.lib, ERROR_LIBDATA_MESSAGE); } lx = x + 10; @@ -2552,7 +2556,7 @@ static void editing_panel_modifiers(Object *ob) block= uiNewBlock(&curarea->uiblocks, "editing_panel_modifiers", UI_EMBOSS, UI_HELV, curarea->win); if( uiNewPanel(curarea, block, "Modifiers", "Editing", 640, 0, 318, 204)==0) return; - uiSetButLock(object_data_is_libdata(ob), ERROR_LIBDATA_MESSAGE); + uiSetButLock((ob && ob->id.lib), ERROR_LIBDATA_MESSAGE); uiNewPanelHeight(block, 204); uiDefBlockBut(block, modifiers_add_menu, ob, "Add Modifier", 0, 190, 130, 20, "Add a new modifier"); From 3f87319428ff6b7b6fc0eb6df8c6ecaad49b49cc Mon Sep 17 00:00:00 2001 From: Ken Hughes Date: Mon, 8 Sep 2008 23:39:32 +0000 Subject: [PATCH 45/66] Python API ---------- Add access to MTex objects from Lamps and Worlds (first pass). Since the MTex structure is slightly difference between materials, lamps, and worlds, a field is added to the BPy MTex object to distinquish which type it wraps. Attempting to access attributes which are unique to materials for lamp or world MTex objects throw an exception. The next pass will implement MTex attributes which are specific to Lamps and Worlds. A new attribute (textures) is added to each module. It is compatible with the previous Material.getTextures(), which returns a tuple of either MTex objects or None. Surprised we never added an attribute for this before in all the changes and refactoring. --- source/blender/python/api2_2x/Lamp.c | 30 +++ source/blender/python/api2_2x/MTex.c | 217 ++++++++++-------- source/blender/python/api2_2x/MTex.h | 8 +- source/blender/python/api2_2x/Material.c | 108 +++++++-- source/blender/python/api2_2x/World.c | 29 +++ source/blender/python/api2_2x/doc/Lamp.py | 2 + source/blender/python/api2_2x/doc/Material.py | 4 +- source/blender/python/api2_2x/doc/Texture.py | 120 ++++++---- source/blender/python/api2_2x/doc/World.py | 2 + 9 files changed, 361 insertions(+), 159 deletions(-) diff --git a/source/blender/python/api2_2x/Lamp.c b/source/blender/python/api2_2x/Lamp.c index 2e58cb71b90..1b9b1041aee 100644 --- a/source/blender/python/api2_2x/Lamp.c +++ b/source/blender/python/api2_2x/Lamp.c @@ -39,6 +39,7 @@ #include "BSE_editipo.h" #include "mydevice.h" #include "Ipo.h" +#include "MTex.h" #include "constant.h" #include "gen_utils.h" #include "gen_library.h" @@ -206,6 +207,7 @@ static PyObject *Lamp_getQuad2( BPy_Lamp * self ); static PyObject *Lamp_getCol( BPy_Lamp * self ); static PyObject *Lamp_getIpo( BPy_Lamp * self ); static PyObject *Lamp_getComponent( BPy_Lamp * self, void * closure ); +static PyObject *Lamp_getTextures( BPy_Lamp * self ); static PyObject *Lamp_clearIpo( BPy_Lamp * self ); static PyObject *Lamp_insertIpoKey( BPy_Lamp * self, PyObject * args ); static PyObject *Lamp_oldsetIpo( BPy_Lamp * self, PyObject * args ); @@ -500,6 +502,10 @@ static PyGetSetDef BPy_Lamp_getseters[] = { (getter)Lamp_getComponent, (setter)Lamp_setComponent, "Lamp color blue component", (void *)EXPP_LAMP_COMP_B}, + {"textures", + (getter)Lamp_getTextures, (setter)NULL, + "The Lamp's texture list as a tuple", + NULL}, {"Modes", (getter)Lamp_getModesConst, (setter)NULL, "Dictionary of values for 'mode' attribute", @@ -1393,6 +1399,30 @@ static PyObject *Lamp_getTypesConst( void ) "Photon", EXPP_LAMP_TYPE_YF_PHOTON ); } +static PyObject *Lamp_getTextures( BPy_Lamp * self ) +{ + int i; + PyObject *tuple; + + /* build a texture list */ + tuple = PyTuple_New( MAX_MTEX ); + if( !tuple ) + return EXPP_ReturnPyObjError( PyExc_MemoryError, + "couldn't create PyTuple" ); + + for( i = 0; i < MAX_MTEX; ++i ) { + struct MTex *mtex = self->lamp->mtex[i]; + if( mtex ) { + PyTuple_SET_ITEM( tuple, i, MTex_CreatePyObject( mtex, ID_LA ) ); + } else { + Py_INCREF( Py_None ); + PyTuple_SET_ITEM( tuple, i, Py_None ); + } + } + + return tuple; +} + /* #####DEPRECATED###### */ static PyObject *Lamp_oldsetSamples( BPy_Lamp * self, PyObject * args ) diff --git a/source/blender/python/api2_2x/MTex.c b/source/blender/python/api2_2x/MTex.c index a95836f0596..fa7c62ac8d6 100644 --- a/source/blender/python/api2_2x/MTex.c +++ b/source/blender/python/api2_2x/MTex.c @@ -26,6 +26,7 @@ * * ***** END GPL LICENSE BLOCK ***** */ + #include "MTex.h" /*This must come first*/ #include "BKE_utildefines.h" @@ -252,7 +253,7 @@ PyObject *MTex_Init( void ) return submodule; } -PyObject *MTex_CreatePyObject( MTex * mtex ) +PyObject *MTex_CreatePyObject( MTex * mtex, unsigned short type ) { BPy_MTex *pymtex; @@ -262,6 +263,7 @@ PyObject *MTex_CreatePyObject( MTex * mtex ) "couldn't create BPy_MTex PyObject" ); pymtex->mtex = mtex; + pymtex->type = type; return ( PyObject * ) pymtex; } @@ -286,7 +288,12 @@ static int MTex_compare( BPy_MTex * a, BPy_MTex * b ) static PyObject *MTex_repr( BPy_MTex * self ) { - return PyString_FromFormat( "[MTex]" ); + if( self->type == ID_MA ) + return PyString_FromFormat( "[MTex (Material)]" ); + else if( self->type == ID_LA ) + return PyString_FromFormat( "[MTex (Lamp)]" ); + else + return PyString_FromFormat( "[MTex (World)]" ); } @@ -350,6 +357,10 @@ static int MTex_setObject( BPy_MTex *self, PyObject *value, void *closure) static PyObject *MTex_getUVLayer( BPy_MTex *self, void *closure ) { + if( self->type != ID_MA ) + return EXPP_ReturnPyObjError( PyExc_AttributeError, + "not a Material MTex object" ); + return PyString_FromString(self->mtex->uvname); } @@ -364,6 +375,10 @@ static int MTex_setUVLayer( BPy_MTex *self, PyObject *value, void *closure) static PyObject *MTex_getMapTo( BPy_MTex *self, void *closure ) { + if( self->type != ID_MA ) + return EXPP_ReturnPyObjError( PyExc_AttributeError, + "not a Material MTex object" ); + return PyInt_FromLong( self->mtex->mapto ); } @@ -371,18 +386,20 @@ static int MTex_setMapTo( BPy_MTex *self, PyObject *value, void *closure) { int mapto; - if( !PyInt_Check( value ) ) { + if( self->type != ID_MA ) + return EXPP_ReturnIntError( PyExc_AttributeError, + "not a material MTex object" ); + + if( !PyInt_Check( value ) ) return EXPP_ReturnIntError( PyExc_TypeError, - "expected an int" ); - } + "expected an int" ); mapto = PyInt_AsLong( value ); /* This method is deprecated anyway. */ - if ( mapto < 0 || mapto > 16383 ) { + if ( mapto < 0 || mapto > 16383 ) return EXPP_ReturnIntError( PyExc_ValueError, "Value must be a sum of values from Texture.MapTo dictionary" ); - } self->mtex->mapto = (short)mapto; @@ -400,11 +417,9 @@ static int MTex_setCol( BPy_MTex *self, PyObject *value, void *closure) float rgb[3]; int i; - if( !PyArg_ParseTuple( value, "fff", - &rgb[0], &rgb[1], &rgb[2] ) ) - + if( !PyArg_ParseTuple( value, "fff", &rgb[0], &rgb[1], &rgb[2] ) ) return EXPP_ReturnIntError( PyExc_TypeError, - "expected tuple of 3 floats" ); + "expected tuple of 3 floats" ); for( i = 0; i < 3; ++i ) if( rgb[i] < 0 || rgb[i] > 1 ) @@ -478,117 +493,84 @@ static PyObject *MTex_getColFac( BPy_MTex *self, void *closure ) static int MTex_setColFac( BPy_MTex *self, PyObject *value, void *closure) { - float f; - - if ( !PyFloat_Check( value ) ) - return EXPP_ReturnIntError( PyExc_TypeError, - "expected a float" ); - - f = (float)PyFloat_AsDouble(value); - - if (f < 0 || f > 1) - return EXPP_ReturnIntError( PyExc_ValueError, - "values must be in range [0,1]" ); - - self->mtex->colfac = f; - - return 0; + return EXPP_setFloatRange( value, &self->mtex->colfac, 0.0f, 1.0f ); } static PyObject *MTex_getNorFac( BPy_MTex *self, void *closure ) { + if( self->type == ID_LA ) + return EXPP_ReturnPyObjError( PyExc_AttributeError, + "not a material or world MTex object" ); + return PyFloat_FromDouble(self->mtex->norfac); } static int MTex_setNorFac( BPy_MTex *self, PyObject *value, void *closure) { - float f; - - if ( !PyFloat_Check( value ) ) - return EXPP_ReturnIntError( PyExc_TypeError, - "expected a float" ); - - f = (float)PyFloat_AsDouble(value); - - if (f < 0 || f > 25) - return EXPP_ReturnIntError( PyExc_ValueError, - "values must be in range [0,25]" ); - - self->mtex->norfac = f; - - return 0; + switch( self->type ) + { + case ID_WO: + return EXPP_setFloatRange( value, &self->mtex->norfac, 0.0f, 1.0f ); + case ID_MA: + return EXPP_setFloatRange( value, &self->mtex->norfac, 0.0f, 25.0f ); + default: + return EXPP_ReturnIntError( PyExc_AttributeError, + "not a material or world MTex object" ); + } } static PyObject *MTex_getVarFac( BPy_MTex *self, void *closure ) { + if( self->type == ID_LA ) + return EXPP_ReturnPyObjError( PyExc_AttributeError, + "not a material or world MTex object" ); + return PyFloat_FromDouble(self->mtex->varfac); } static int MTex_setVarFac( BPy_MTex *self, PyObject *value, void *closure) { - float f; + if( self->type == ID_LA ) + return EXPP_ReturnIntError( PyExc_AttributeError, + "not a material or world MTex object" ); - if ( !PyFloat_Check( value ) ) - return EXPP_ReturnIntError( PyExc_TypeError, - "expected a float" ); - - f = (float)PyFloat_AsDouble(value); - - if (f < 0 || f > 1) - return EXPP_ReturnIntError( PyExc_ValueError, - "values must be in range [0,1]" ); - - self->mtex->varfac = f; - - return 0; + return EXPP_setFloatRange( value, &self->mtex->varfac, 0.0f, 1.0f ); } static PyObject *MTex_getDispFac( BPy_MTex *self, void *closure ) { + if( self->type != ID_MA ) + return EXPP_ReturnPyObjError( PyExc_AttributeError, + "not a material MTex object" ); + return PyFloat_FromDouble(self->mtex->dispfac); } static int MTex_setDispFac( BPy_MTex *self, PyObject *value, void *closure) { - float f; + if( self->type != ID_MA ) + return EXPP_ReturnIntError( PyExc_AttributeError, + "not a material MTex object" ); - if ( !PyFloat_Check( value ) ) - return EXPP_ReturnIntError( PyExc_TypeError, - "expected a float" ); - - f = (float)PyFloat_AsDouble(value); - - if (f < 0 || f > 1) - return EXPP_ReturnIntError( PyExc_ValueError, - "values must be in range [0,1]" ); - - self->mtex->dispfac = f; - - return 0; + return EXPP_setFloatRange( value, &self->mtex->dispfac, 0.0f, 1.0f ); } static PyObject *MTex_getWarpFac( BPy_MTex *self, void *closure ) { + if( self->type != ID_MA ) + return EXPP_ReturnPyObjError( PyExc_AttributeError, + "not a material MTex object" ); + return PyFloat_FromDouble(self->mtex->warpfac); } static int MTex_setWarpFac( BPy_MTex *self, PyObject *value, void *closure) { - float f; + if( self->type != ID_MA ) + return EXPP_ReturnIntError( PyExc_AttributeError, + "not a material MTex object" ); - if ( !PyFloat_Check( value ) ) - return EXPP_ReturnIntError( PyExc_TypeError, - "expected a float" ); - - f = (float)PyFloat_AsDouble(value); - - if (f < 0 || f > 1) - return EXPP_ReturnIntError( PyExc_ValueError, - "values must be in range [0,1]" ); - - self->mtex->warpfac = f; - - return 0; + return EXPP_setFloatRange( value, &self->mtex->warpfac, 0.0f, 1.0f ); } static PyObject *MTex_getOfs( BPy_MTex *self, void *closure ) @@ -601,16 +583,24 @@ static int MTex_setOfs( BPy_MTex *self, PyObject *value, void *closure) { float f[3]; int i; + float max; if( !PyArg_ParseTuple( value, "fff", &f[0], &f[1], &f[2] ) ) - return EXPP_ReturnIntError( PyExc_TypeError, "expected tuple of 3 floats" ); + if( self->type == ID_MA ) + max = 10.0f; + else + max = 20.0f; + for( i = 0; i < 3; ++i ) - if( f[i] < -10 || f[i] > 10 ) - return EXPP_ReturnIntError( PyExc_ValueError, - "values must be in range [-10,10]" ); + if( f[i] < -max || f[i] > max ) { + char errstr[64]; + sprintf( errstr, "values must be in range [-%6.0f,%6.0f]", + max, max ); + return EXPP_ReturnIntError( PyExc_ValueError, errstr ); + } self->mtex->ofs[0] = f[0]; self->mtex->ofs[1] = f[1]; @@ -649,6 +639,10 @@ static int MTex_setSize( BPy_MTex *self, PyObject *value, void *closure) static PyObject *MTex_getMapping( BPy_MTex *self, void *closure ) { + if( self->type != ID_MA ) + return EXPP_ReturnPyObjError( PyExc_AttributeError, + "not a material MTex object" ); + return PyInt_FromLong( self->mtex->mapping ); } @@ -656,6 +650,11 @@ static int MTex_setMapping( BPy_MTex *self, PyObject *value, void *closure) { int n; + if( self->type != ID_MA ) + return EXPP_ReturnIntError( PyExc_AttributeError, + "not a material MTex object" ); + + if ( !PyInt_Check( value ) ) return EXPP_ReturnIntError( PyExc_TypeError, "Value must be member of Texture.Mappings dictionary" ); @@ -664,8 +663,7 @@ static int MTex_setMapping( BPy_MTex *self, PyObject *value, void *closure) /* if (n != MTEX_FLAT && n != MTEX_TUBE && n != MTEX_CUBE && n != MTEX_SPHERE) */ - if (n < 0 || n > 3) - { + if (n < 0 || n > 3) { return EXPP_ReturnIntError( PyExc_ValueError, "Value must be member of Texture.Mappings dictionary" ); } @@ -696,6 +694,10 @@ static int MTex_setFlag( BPy_MTex *self, PyObject *value, void *closure) static PyObject *MTex_getProjX( BPy_MTex *self, void *closure ) { + if( self->type != ID_MA ) + return EXPP_ReturnPyObjError( PyExc_AttributeError, + "not a material MTex object" ); + return PyInt_FromLong( self->mtex->projx ); } @@ -703,6 +705,10 @@ static int MTex_setProjX( BPy_MTex *self, PyObject *value, void *closure) { int proj; + if( self->type != ID_MA ) + return EXPP_ReturnIntError( PyExc_AttributeError, + "not a material MTex object" ); + if( !PyInt_Check( value ) ) { return EXPP_ReturnIntError( PyExc_TypeError, "Value must be a member of Texture.Proj dictionary" ); @@ -722,6 +728,10 @@ static int MTex_setProjX( BPy_MTex *self, PyObject *value, void *closure) static PyObject *MTex_getProjY( BPy_MTex *self, void *closure ) { + if( self->type != ID_MA ) + return EXPP_ReturnPyObjError( PyExc_AttributeError, + "not a material MTex object" ); + return PyInt_FromLong( self->mtex->projy ); } @@ -729,6 +739,10 @@ static int MTex_setProjY( BPy_MTex *self, PyObject *value, void *closure ) { int proj; + if( self->type != ID_MA ) + return EXPP_ReturnIntError( PyExc_AttributeError, + "not a material MTex object" ); + if( !PyInt_Check( value ) ) { return EXPP_ReturnIntError( PyExc_TypeError, "Value must be a member of Texture.Proj dictionary" ); @@ -748,6 +762,10 @@ static int MTex_setProjY( BPy_MTex *self, PyObject *value, void *closure ) static PyObject *MTex_getProjZ( BPy_MTex *self, void *closure ) { + if( self->type != ID_MA ) + return EXPP_ReturnPyObjError( PyExc_AttributeError, + "not a material MTex object" ); + return PyInt_FromLong( self->mtex->projz ); } @@ -755,6 +773,10 @@ static int MTex_setProjZ( BPy_MTex *self, PyObject *value, void *closure) { int proj; + if( self->type != ID_MA ) + return EXPP_ReturnIntError( PyExc_AttributeError, + "not a material MTex object" ); + if( !PyInt_Check( value ) ) { return EXPP_ReturnIntError( PyExc_TypeError, "Value must be a member of Texture.Proj dictionary" ); @@ -776,12 +798,14 @@ static PyObject *MTex_getMapToFlag( BPy_MTex *self, void *closure ) { int flag = GET_INT_FROM_POINTER(closure); + if( self->type != ID_MA ) + return EXPP_ReturnPyObjError( PyExc_AttributeError, + "not a material MTex object" ); + if ( self->mtex->mapto & flag ) - { return PyInt_FromLong( ( self->mtex->maptoneg & flag ) ? -1 : 1 ); - } else { + else return PyInt_FromLong( 0 ); - } } static int MTex_setMapToFlag( BPy_MTex *self, PyObject *value, void *closure) @@ -789,14 +813,17 @@ static int MTex_setMapToFlag( BPy_MTex *self, PyObject *value, void *closure) int flag = GET_INT_FROM_POINTER(closure); int intVal; + if( self->type != ID_MA ) + return EXPP_ReturnIntError( PyExc_AttributeError, + "not a material MTex object" ); + if ( !PyInt_Check( value ) ) return EXPP_ReturnIntError( PyExc_TypeError, "expected an int"); - intVal = PyInt_AsLong( value ); + intVal = PyInt_AsLong( value ) ; - if (flag == MAP_COL || flag == MAP_COLSPEC || flag == MAP_COLMIR || - flag == MAP_WARP) { + if( flag & ( MAP_COL | MAP_COLSPEC | MAP_COLMIR | MAP_WARP ) ) { if (intVal < 0 || intVal > 1) { return EXPP_ReturnIntError( PyExc_ValueError, "value for that mapping must be 0 or 1" ); diff --git a/source/blender/python/api2_2x/MTex.h b/source/blender/python/api2_2x/MTex.h index 5e67ebc47ca..b6c98a40d2e 100644 --- a/source/blender/python/api2_2x/MTex.h +++ b/source/blender/python/api2_2x/MTex.h @@ -38,22 +38,26 @@ /* Python BPy_MTex structure definition */ /*****************************************************************************/ +#define MATERIAL_MTEX_TYPE 1 +#define WORLD_MTEX_TYPE 2 +#define LAMP_MTEX_TYPE 3 + typedef struct { PyObject_HEAD MTex * mtex; + unsigned short type; } BPy_MTex; extern PyTypeObject MTex_Type; #define BPy_MTex_Check(v) ((v)->ob_type == &MTex_Type) - /*****************************************************************************/ /* Module Blender.Texture.MTex - public functions */ /*****************************************************************************/ PyObject *MTex_Init( void ); -PyObject *MTex_CreatePyObject( struct MTex *obj ); +PyObject *MTex_CreatePyObject( struct MTex *obj, unsigned short type ); MTex *MTex_FromPyObject( PyObject * py_obj ); diff --git a/source/blender/python/api2_2x/Material.c b/source/blender/python/api2_2x/Material.c index 54c2d9b20bd..e32b87da240 100644 --- a/source/blender/python/api2_2x/Material.c +++ b/source/blender/python/api2_2x/Material.c @@ -555,6 +555,7 @@ static int Material_setSssFront( BPy_Material * self, PyObject * value ); static int Material_setSssBack( BPy_Material * self, PyObject * value ); static int Material_setSssBack( BPy_Material * self, PyObject * value ); static int Material_setTexChannel( BPy_Material * self, PyObject * value ); +static int Material_setTextures( BPy_Material * self, PyObject * value ); static PyObject *Material_getColorComponent( BPy_Material * self, void * closure ); @@ -1168,6 +1169,10 @@ static PyGetSetDef BPy_Material_getseters[] = { (getter)Material_getColorband, (setter)Material_setColorband, "The specular colorband for this material", (void *) 1}, + {"textures", + (getter)Material_getTextures, (setter)Material_setTextures, + "The Material's texture list as a tuple", + NULL}, /* SSS settings */ {"enableSSS", @@ -1737,27 +1742,23 @@ static PyObject* Material_getSssBack( BPy_Material * self ) static PyObject *Material_getTextures( BPy_Material * self ) { int i; - struct MTex *mtex; - PyObject *t[MAX_MTEX]; PyObject *tuple; /* build a texture list */ - for( i = 0; i < MAX_MTEX; ++i ) { - mtex = self->material->mtex[i]; - - if( mtex ) { - t[i] = MTex_CreatePyObject( mtex ); - } else { - Py_INCREF( Py_None ); - t[i] = Py_None; - } - } - - /* turn the array into a tuple */ - tuple = Py_BuildValue( "NNNNNNNNNNNNNNNNNN", t[0], t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9], t[10], t[11], t[12], t[13], t[14], t[15], t[16], t[17] ); + tuple = PyTuple_New( MAX_MTEX ); if( !tuple ) return EXPP_ReturnPyObjError( PyExc_MemoryError, - "Material_getTextures: couldn't create PyTuple" ); + "couldn't create PyTuple" ); + + for( i = 0; i < MAX_MTEX; ++i ) { + struct MTex *mtex = self->material->mtex[i]; + if( mtex ) { + PyTuple_SET_ITEM( tuple, i, MTex_CreatePyObject( mtex, ID_MA ) ); + } else { + Py_INCREF( Py_None ); + PyTuple_SET_ITEM( tuple, i, Py_None ); + } + } return tuple; } @@ -2432,14 +2433,83 @@ static PyObject *Material_setTexture( BPy_Material * self, PyObject * args ) Py_RETURN_NONE; } +static int Material_setTextures( BPy_Material * self, PyObject * value ) +{ + int i; + + if( !PyList_Check( value ) && !PyTuple_Check( value ) ) + return EXPP_ReturnIntError( PyExc_TypeError, + "expected tuple or list of integers" ); + + /* don't allow more than MAX_MTEX items */ + if( PySequence_Size(value) > MAX_MTEX ) + return EXPP_ReturnIntError( PyExc_AttributeError, + "size of sequence greater than number of allowed textures" ); + + /* get a fast sequence; in Python 2.5, this just return the original + * list or tuple and INCREFs it, so we must DECREF */ + value = PySequence_Fast( value, "" ); + + /* check the list for valid entries */ + for( i= 0; i < PySequence_Size(value) ; ++i ) { + PyObject *item = PySequence_Fast_GET_ITEM( value, i ); + if( item != Py_None && !BPy_MTex_Check( item ) ) { + Py_DECREF(value); + return EXPP_ReturnIntError( PyExc_TypeError, + "expected tuple or list containing MTex objects and NONE" ); + } + } + + /* for each MTex object, copy to this structure */ + for( i= 0; i < PySequence_Size(value) ; ++i ) { + PyObject *item = PySequence_Fast_GET_ITEM( value, i ); + struct MTex *mtex = self->material->mtex[i]; + if( item != Py_None ) { + BPy_MTex *obj = (BPy_MTex *)item; + + /* if MTex is already at this location, just skip it */ + if( obj->mtex == mtex ) continue; + + /* create a new entry if needed, otherwise update reference count + * for texture that is being replaced */ + if( !mtex ) + mtex = self->material->mtex[i] = add_mtex( ); + else + mtex->tex->id.us--; + + /* copy the data */ + mtex->tex = obj->mtex->tex; + id_us_plus( &mtex->tex->id ); + mtex->texco = obj->mtex->texco; + mtex->mapto = obj->mtex->mapto; + } + } + + /* now go back and free any entries now marked as None */ + for( i= 0; i < PySequence_Size(value) ; ++i ) { + PyObject *item = PySequence_Fast_GET_ITEM( value, i ); + struct MTex *mtex = self->material->mtex[i]; + if( item == Py_None && mtex ) { + mtex->tex->id.us--; + MEM_freeN( mtex ); + self->material->mtex[i] = NULL; + } + } + + Py_DECREF(value); + return 0; +} + static PyObject *Material_clearTexture( BPy_Material * self, PyObject * value ) { int texnum = (int)PyInt_AsLong(value); struct MTex *mtex; /* non ints will be -1 */ - if( ( texnum < 0 ) || ( texnum >= MAX_MTEX ) ) - return EXPP_ReturnPyObjError( PyExc_TypeError, - "expected int in [0,9]" ); + if( ( texnum < 0 ) || ( texnum >= MAX_MTEX ) ) { + char errstr[64]; + sprintf( errstr, "expected int in [0,%d]", MAX_MTEX ); + return EXPP_ReturnPyObjError( PyExc_TypeError, errstr ); + } mtex = self->material->mtex[texnum]; if( mtex ) { diff --git a/source/blender/python/api2_2x/World.c b/source/blender/python/api2_2x/World.c index 6021f8552ad..3901e8296fb 100644 --- a/source/blender/python/api2_2x/World.c +++ b/source/blender/python/api2_2x/World.c @@ -52,6 +52,7 @@ #include "BIF_space.h" #include "mydevice.h" #include "Ipo.h" +#include "MTex.h" #include "gen_utils.h" #include "gen_library.h" @@ -99,6 +100,7 @@ static PyObject *World_getScriptLinks( BPy_World * self, PyObject * value ); static PyObject *World_addScriptLink( BPy_World * self, PyObject * args ); static PyObject *World_clearScriptLinks( BPy_World * self, PyObject * args ); static PyObject *World_setCurrent( BPy_World * self ); +static PyObject *World_getTextures( BPy_World * self ); static PyObject *World_copy( BPy_World * self ); @@ -250,6 +252,9 @@ static PyGetSetDef BPy_World_getseters[] = { "world mist settings", NULL}, {"ipo", (getter)World_getIpo, (setter)World_setIpo, "world ipo", NULL}, + {"textures", (getter)World_getTextures, (setter)NULL, + "The World's texture list as a tuple", + NULL}, {NULL,NULL,NULL,NULL,NULL} /* Sentinel */ }; @@ -1029,3 +1034,27 @@ static PyObject *World_insertIpoKey( BPy_World * self, PyObject * args ) Py_RETURN_NONE; } + +static PyObject *World_getTextures( BPy_World * self ) +{ + int i; + PyObject *tuple; + + /* build a texture list */ + tuple = PyTuple_New( MAX_MTEX ); + if( !tuple ) + return EXPP_ReturnPyObjError( PyExc_MemoryError, + "couldn't create PyTuple" ); + + for( i = 0; i < MAX_MTEX; ++i ) { + struct MTex *mtex = self->world->mtex[i]; + if( mtex ) { + PyTuple_SET_ITEM( tuple, i, MTex_CreatePyObject( mtex, ID_WO ) ); + } else { + Py_INCREF( Py_None ); + PyTuple_SET_ITEM( tuple, i, Py_None ); + } + } + + return tuple; +} diff --git a/source/blender/python/api2_2x/doc/Lamp.py b/source/blender/python/api2_2x/doc/Lamp.py index a7a1fb94620..162d94ccff3 100644 --- a/source/blender/python/api2_2x/doc/Lamp.py +++ b/source/blender/python/api2_2x/doc/Lamp.py @@ -161,6 +161,8 @@ class Lamp: @type type: int @ivar falloffType: Lamp falloff type. See L{Falloffs} for values. @type falloffType: int + @type textures: a tuple of Blender MTex objects. + @ivar textures: The Lamp's texture list. Empty texture channels contains None. @warning: Most member variables assume values in some [Min, Max] interval. When trying to set them, the given parameter will be clamped to lie in diff --git a/source/blender/python/api2_2x/doc/Material.py b/source/blender/python/api2_2x/doc/Material.py index 02f7edd77f5..05497cf551c 100644 --- a/source/blender/python/api2_2x/doc/Material.py +++ b/source/blender/python/api2_2x/doc/Material.py @@ -338,7 +338,9 @@ class Material: ch.append(4) mat.enabledTextures = ch print mat.enabledTextures # will print: [0, 4, 6] - + + @type textures: a tuple of Blender MTex objects. + @ivar textures: the Material's Texture list. Empty texture channels contains None. @ivar enableSSS: If True, subsurface scattering will be rendered on this material. @type enableSSS: bool @ivar sssScale: If True, subsurface scattering will be rendered on this material. diff --git a/source/blender/python/api2_2x/doc/Texture.py b/source/blender/python/api2_2x/doc/Texture.py index cebb7de7011..223c5e6ebdd 100644 --- a/source/blender/python/api2_2x/doc/Texture.py +++ b/source/blender/python/api2_2x/doc/Texture.py @@ -500,48 +500,84 @@ class MTex: This object links a material to a texture. It allows the same texture to be used in several different ways. - @ivar tex: The Texture this is linked to. - @type tex: Blender Texture - @ivar texco: Texture coordinates ("Map input"). See L{TexCo} - @ivar mapto: "Map to" field of texture. OR'd values of L{MapTo} - @ivar object: Object whose space to use when texco is Object - @type object: Blender Object - @ivar col: Color that the texture blends with - @ivar dvar: Value that the texture blends with when not blending colors - @ivar blendmode: Texture blending mode. L{BlendModes} - @ivar colfac: Factor by which texture affects color - @ivar norfac: Factor by which texture affects normal - @ivar varfac: Factor by which texture affects most variables - @ivar dispfac: Factor by which texture affects displacement - @ivar warpfac: Factor by which texture affects warp - @ivar ofs: Offset to adjust texture space - @ivar size: Size to scale texture space - @ivar mapping: Mapping of texture coordinates (flat, cube, etc.). L{Mappings} - @ivar stencil: Stencil mode - @ivar neg: Negate texture values mode - @ivar noRGB: Convert texture RGB values to intensity values - @ivar correctNor: Correct normal mapping for Texture space and Object space - @ivar fromDupli: Dupli's instanced from verts, faces or particles, inherit texture coordinate from their parent - @ivar fromOrig: Dupli's derive their object coordinates from the original objects transformation - @ivar xproj: Projection of X axis to Texture space. L{Proj} - @ivar yproj: Projection of Y axis to Texture space. L{Proj} - @ivar zproj: Projection of Z axis to Texture space. L{Proj} - @ivar mtCol: How texture maps to color - @ivar mtNor: How texture maps to normals - @ivar mtCsp: How texture maps to specularity color - @ivar mtCmir: How texture maps to mirror color - @ivar mtRef: How texture maps to reflectivity - @ivar mtSpec: How texture maps to specularity - @ivar mtEmit: How texture maps to emit value - @ivar mtAlpha: How texture maps to alpha value - @ivar mtHard: How texture maps to hardness - @ivar mtRayMir: How texture maps to RayMir value - @ivar mtTranslu: How texture maps to translucency - @ivar mtAmb: How texture maps to ambient value - @ivar mtDisp: How texture maps to displacement - @ivar mtWarp: How texture maps to warp - @ivar uvlayer: The name of the UV Layer this texture is mapped to (when left blank uses render layer) - @type uvlayer: string + @type blendmode: int + @ivar blendmode: Texture blending mode. See L{BlendModes} + @type col: tuple + @ivar col: Color that the texture blends with. Range of. + @type colfac: float + @ivar colfac: Factor by which texture affects color. + @ivar correctNor: Correct normal mapping for Texture space and Object space. + @type correctNor: boolean + @type dispfac: float + @ivar dispfac: Factor by which texture affects displacement. + @type dvar: float + @ivar dvar: Value that the texture blends with when not blending colors. + @type fromDupli: boolean + @ivar fromDupli: Duplis instanced from verts, faces or particles, inherit texture coordinate from their parent. + @type fromOrig: boolean + @ivar fromOrig: Duplis derive their object coordinates from the original objects transformation. + @type mapping: int + @ivar mapping: Mapping of texture coordinates (flat, cube, etc.). See L{Mappings}. + @type mapto: int + @ivar mapto: "Map to" field of texture. OR'd values of L{MapTo}. + @ivar mtAlpha: How texture maps to alpha value. + @type mtAlpha: int + @ivar mtAmb: How texture maps to ambient value. + @type mtAmb: int + @ivar mtCmir: How texture maps to mirror color. + @type mtCmir: int + @ivar mtCol: How texture maps to color. + @type mtCol: int + @ivar mtCsp: How texture maps to specularity color + @type mtCsp: int + @ivar mtDisp: How texture maps to displacement + @type mtDisp: int + @ivar mtEmit: How texture maps to emit value + @type mtEmit: int + @ivar mtHard: How texture maps to hardness + @type mtHard: int + @ivar mtNor: How texture maps to normals + @type mtNor: int + @ivar mtRayMir: How texture maps to RayMir value + @type mtRayMir: int + @ivar mtRef: How texture maps to reflectivity + @type mtRef: int + @ivar mtSpec: How texture maps to specularity + @type mtSpec: int + @ivar mtTranslu: How texture maps to translucency + @type mtTranslu: int + @ivar mtWarp: How texture maps to warp + @type mtWarp: int + @ivar neg: Negate texture values mode + @type neg: boolean + @ivar norfac: Factor by which texture affects normal + @type norfac: float + @ivar noRGB: Convert texture RGB values to intensity values + @type noRGB: boolean + @ivar object: Object whose space to use when texco is Object + @type object: Blender Object or None + @type ofs: tuple + @ivar ofs: Offset to adjust texture space + @type size: tuple + @ivar size: Size to scale texture space + @ivar stencil: Stencil mode + @type stencil: boolean + @ivar tex: The Texture this is linked to. + @type tex: Blender Texture + @ivar texco: Texture coordinates ("Map input"). See L{TexCo} + @type texco: int + @ivar uvlayer: The name of the UV Layer this texture is mapped to (when left blank uses render layer) + @type uvlayer: string + @type varfac: float + @ivar varfac: Factor by which texture affects most variables + @type warpfac: float + @ivar warpfac: Factor by which texture affects warp + @type xproj: int + @ivar xproj: Projection of X axis to Texture space. See L{Proj} + @type yproj: int + @ivar yproj: Projection of Y axis to Texture space. See L{Proj} + @type zproj: int + @ivar zproj: Projection of Z axis to Texture space. See L{Proj} """ def getIpo(): diff --git a/source/blender/python/api2_2x/doc/World.py b/source/blender/python/api2_2x/doc/World.py index d9e9bae750d..d8052c609cd 100644 --- a/source/blender/python/api2_2x/doc/World.py +++ b/source/blender/python/api2_2x/doc/World.py @@ -82,6 +82,8 @@ class World: @ivar mist: the mist parameters of a world object. See getMist for the semantics of these parameters. @type ipo: Blender Ipo @ivar ipo: The world type ipo linked to this world object. + @type textures: a tuple of Blender MTex objects. + @ivar textures: The World's texture list. Empty texture channels contains None. """ def getRange(): From 70be839859852f9fcf3ab234093c390d5b2c9c05 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Tue, 9 Sep 2008 10:16:09 +0000 Subject: [PATCH 46/66] Bugfix #13837 Tonemap didn't correctly accept any buffer type. The coder who added this should check this fix! Any node coder maybe... --- source/blender/nodes/intern/CMP_nodes/CMP_tonemap.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_tonemap.c b/source/blender/nodes/intern/CMP_nodes/CMP_tonemap.c index 5e1803a6774..950ad97a397 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_tonemap.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_tonemap.c @@ -130,13 +130,16 @@ static void node_composit_exec_tonemap(void *data, bNode *node, bNodeStack **in, if ((img==NULL) || (out[0]->hasoutput==0)) return; if (img->type != CB_RGBA) - new = typecheck_compbuf(img, CB_RGBA); - else - new = dupalloc_compbuf(img); + img = typecheck_compbuf(img, CB_RGBA); + + new = dupalloc_compbuf(img); tonemap(node->storage, new, img); out[0]->data = new; + + if(img!=in[0]->data) + free_compbuf(img); } static void node_composit_init_tonemap(bNode* node) From 0995466927632a34ac4f8bbbc48709178d796836 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 9 Sep 2008 10:58:58 +0000 Subject: [PATCH 47/66] wasnt using icon buttons correctly --- source/blender/src/buttons_logic.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/blender/src/buttons_logic.c b/source/blender/src/buttons_logic.c index df76534f3f5..934ff9e008a 100644 --- a/source/blender/src/buttons_logic.c +++ b/source/blender/src/buttons_logic.c @@ -3379,7 +3379,8 @@ void logic_buts(void) uiBlockSetEmboss(block, UI_EMBOSSM); uiDefIconButBitS(block, TOG, SENS_DEL, B_DEL_SENS, ICON_X, xco, yco, 22, 19, &sens->flag, 0, 0, 0, 0, "Delete Sensor"); if (pin) - uiDefIconButBitS(block, ICONTOG, SENS_PIN, B_REDR, (sens->flag & SENS_PIN) ? ICON_PIN_DEHLT:ICON_PIN_HLT, (short)(xco+width-44), yco, 22, 19, &sens->flag, 0, 0, 0, 0, "Display when not linked to a visible states controller"); + uiDefIconButBitS(block, ICONTOG, SENS_PIN, B_REDR, ICON_PIN_DEHLT, (short)(xco+width-44), yco, 22, 19, &sens->flag, 0, 0, 0, 0, "Display when not linked to a visible states controller"); + uiDefIconButBitS(block, ICONTOG, SENS_SHOW, B_REDR, ICON_RIGHTARROW, (short)(xco+width-22), yco, 22, 19, &sens->flag, 0, 0, 0, 0, "Sensor settings"); ycoo= yco; @@ -3456,7 +3457,7 @@ void logic_buts(void) uiBlockSetEmboss(block, UI_EMBOSSM); uiDefIconButBitS(block, TOG, ACT_DEL, B_DEL_ACT, ICON_X, xco, yco, 22, 19, &act->flag, 0, 0, 0, 0, "Delete Actuator"); if (pin) - uiDefIconButBitS(block, ICONTOG, ACT_PIN, B_REDR, (act->flag & ACT_PIN) ? ICON_PIN_DEHLT:ICON_PIN_HLT, (short)(xco+width-44), yco, 22, 19, &act->flag, 0, 0, 0, 0, "Display when not linked to a visible states controller"); + uiDefIconButBitS(block, ICONTOG, ACT_PIN, B_REDR, ICON_PIN_DEHLT, (short)(xco+width-44), yco, 22, 19, &act->flag, 0, 0, 0, 0, "Display when not linked to a visible states controller"); uiDefIconButBitS(block, ICONTOG, ACT_SHOW, B_REDR, ICON_RIGHTARROW, (short)(xco+width-22), yco, 22, 19, &act->flag, 0, 0, 0, 0, "Display the actuator"); if(act->flag & ACT_SHOW) { From ad31f6a4b31183ecdbb7f71ba080e50e3577de4d Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Tue, 9 Sep 2008 11:40:29 +0000 Subject: [PATCH 48/66] Bugfix #13675 Edge render made star render disappear. Wrong Z value comparing... (2 year old bug!) --- source/blender/render/intern/source/rendercore.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index 5b8cedfce78..bda02bea8d7 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -158,7 +158,7 @@ static int calchalo_z(HaloRen *har, int zz) { if(har->type & HA_ONLYSKY) { - if(zz!=0x7FFFFFFF) zz= - 0x7FFFFF; + if(zz < 0x7FFFFFF0) zz= - 0x7FFFFF; /* edge render messes zvalues */ } else { zz= (zz>>8); From 4db3d6c595d696ebe0a9b4125c6df8b9e10cadf4 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Tue, 9 Sep 2008 12:00:38 +0000 Subject: [PATCH 49/66] Bugfix #13653 Autosave disable didn't work. Note however that a disabled autosave only gets active on saving the user settings, and loading blender again. This is a timer that gets set on startup. I didn't code a kill timer. :) --- source/blender/src/editscreen.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/source/blender/src/editscreen.c b/source/blender/src/editscreen.c index 1cd8733a7ea..976e58ed102 100644 --- a/source/blender/src/editscreen.c +++ b/source/blender/src/editscreen.c @@ -1023,8 +1023,11 @@ int blender_test_break(void) return (G.afbreek==1); } -void reset_autosave(void) { - window_set_timer(mainwin, U.savetime*60*1000, AUTOSAVE_FILE); +void reset_autosave(void) +{ + if(U.flag & USER_AUTOSAVE) { + window_set_timer(mainwin, U.savetime*60*1000, AUTOSAVE_FILE); + } } /* ************ handlers ************** */ From 7366834443a65e05e3eb160a00ed689da9a866ad Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Tue, 9 Sep 2008 12:51:22 +0000 Subject: [PATCH 50/66] Bugfix #13596 Wrong popup on single-user particles, it said "make local". --- source/blender/src/buttons_object.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/src/buttons_object.c b/source/blender/src/buttons_object.c index 18384dd90b3..0f968a7c60c 100644 --- a/source/blender/src/buttons_object.c +++ b/source/blender/src/buttons_object.c @@ -3001,7 +3001,7 @@ void do_effects_panels(unsigned short event) if(ob && (psys=psys_get_current(ob))){ if(psys->part) { if(psys->part->id.us>1){ - if(okee("Make local")){ + if(okee("Make Single User")){ part=psys_copy_settings(psys->part); part->id.us=1; psys->part->id.us--; From 68d7f0a3d15b750d0c166114c74f19ee72cea3cb Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Tue, 9 Sep 2008 13:35:38 +0000 Subject: [PATCH 51/66] Bugfix #13592 Sequencer, Time, Sound windows were drawing frame numbers double when too far zoomed in. --- source/blender/src/drawipo.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source/blender/src/drawipo.c b/source/blender/src/drawipo.c index 9b5be04eac1..87e36c4ad24 100644 --- a/source/blender/src/drawipo.c +++ b/source/blender/src/drawipo.c @@ -921,6 +921,13 @@ void drawscroll(int disptype) BIF_ThemeColor(TH_TEXT); val= ipogrid_startx; + + if (ELEM3(curarea->spacetype, SPACE_SEQ, SPACE_SOUND, SPACE_TIME)) { /* prevents printing twice same frame */ + while(ipogrid_dx < 0.9999f) { + ipogrid_dx *= 2.0f; + dfac*= 2.0f; + } + } while(fac < hor.xmax) { if(curarea->spacetype==SPACE_OOPS) { From 160c0de87b7b7d03a4516e2a1e7bd548d6cbcf3d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 9 Sep 2008 14:16:54 +0000 Subject: [PATCH 52/66] Fix for bug #17580: crash rendering instanced objects with halo material attach to the object instead of the mesh. Also for bug #13489: avoid a crash rendering with invalid active vcol layer, most likely caused by a bug that was already fixed. --- .../blender/render/intern/source/convertblender.c | 14 ++++++++------ .../blender/render/intern/source/renderdatabase.c | 14 +++++++------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 9ee6f873f3f..322d2066a6c 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -4578,17 +4578,19 @@ static int allow_render_object(Object *ob, int nolamps, int onlyselected, Object static int allow_render_dupli_instance(Render *re, DupliObject *dob, Object *obd) { ParticleSystem *psys; - Material ***material; + Material *ma; short a, *totmaterial; - /* don't allow objects with halos */ + /* don't allow objects with halos. we need to have + * all halo's to sort them globally in advance */ totmaterial= give_totcolp(obd); - material= give_matarar(obd); - if(totmaterial && material) { - for(a= 0; a<*totmaterial; a++) - if((*material)[a] && (*material)[a]->mode & MA_HALO) + if(totmaterial) { + for(a= 0; a<*totmaterial; a++) { + ma= give_current_material(obd, a); + if(ma && (ma->mode & MA_HALO)) return 0; + } } for(psys=obd->particlesystem.first; psys; psys=psys->next) diff --git a/source/blender/render/intern/source/renderdatabase.c b/source/blender/render/intern/source/renderdatabase.c index 98b1426e8ff..d44b49cc706 100644 --- a/source/blender/render/intern/source/renderdatabase.c +++ b/source/blender/render/intern/source/renderdatabase.c @@ -483,16 +483,16 @@ void RE_set_customdata_names(ObjectRen *obr, CustomData *data) DerivedMesh which stores the layers is freed */ CustomDataLayer *layer; - int numlayers, i, mtfn, mcn; + int numtf = 0, numcol = 0, i, mtfn, mcn; if (CustomData_has_layer(data, CD_MTFACE)) { - numlayers= CustomData_number_of_layers(data, CD_MTFACE); - obr->mtface= MEM_callocN(sizeof(*obr->mtface)*numlayers, "mtfacenames"); + numtf= CustomData_number_of_layers(data, CD_MTFACE); + obr->mtface= MEM_callocN(sizeof(*obr->mtface)*numtf, "mtfacenames"); } if (CustomData_has_layer(data, CD_MCOL)) { - numlayers= CustomData_number_of_layers(data, CD_MCOL); - obr->mcol= MEM_callocN(sizeof(*obr->mcol)*numlayers, "mcolnames"); + numcol= CustomData_number_of_layers(data, CD_MCOL); + obr->mcol= MEM_callocN(sizeof(*obr->mcol)*numcol, "mcolnames"); } for (i=0, mtfn=0, mcn=0; i < data->totlayer; i++) { @@ -500,12 +500,12 @@ void RE_set_customdata_names(ObjectRen *obr, CustomData *data) if (layer->type == CD_MTFACE) { strcpy(obr->mtface[mtfn++], layer->name); - obr->actmtface= layer->active_rnd; + obr->actmtface= CLAMPIS(layer->active_rnd, 0, numtf); obr->bakemtface= layer->active; } else if (layer->type == CD_MCOL) { strcpy(obr->mcol[mcn++], layer->name); - obr->actmcol= layer->active_rnd; + obr->actmcol= CLAMPIS(layer->active_rnd, 0, numcol); } } } From e9b08b64fae2c8c5197f9c1e724f4017244a973c Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 9 Sep 2008 15:15:01 +0000 Subject: [PATCH 53/66] Fix for bug #17402: IK influence blending with pole targets didn't give smooth transition. Now it blends the result of IK solving in that case. --- source/blender/blenkernel/intern/armature.c | 21 ++++++++++++++++---- source/blender/blenlib/BLI_arithb.h | 1 + source/blender/blenlib/intern/arithb.c | 22 +++++++++++++++++++++ 3 files changed, 40 insertions(+), 4 deletions(-) diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c index fb7d59c137a..720ed0513ed 100644 --- a/source/blender/blenkernel/intern/armature.c +++ b/source/blender/blenkernel/intern/armature.c @@ -1690,7 +1690,7 @@ static void initialize_posetree(struct Object *ob, bPoseChannel *pchan_tip) were executed & assigned. Now as last we do an IK pass */ static void execute_posetree(Object *ob, PoseTree *tree) { - float R_parmat[3][3]; + float R_parmat[3][3], identity[3][3]; float iR_parmat[3][3]; float R_bonemat[3][3]; float goalrot[3][3], goalpos[3]; @@ -1699,7 +1699,8 @@ static void execute_posetree(Object *ob, PoseTree *tree) float irest_basis[3][3], full_basis[3][3]; float end_pose[4][4], world_pose[4][4]; float length, basis[3][3], rest_basis[3][3], start[3], *ikstretch=NULL; - int a, flag, hasstretch=0; + float resultinf=0.0f; + int a, flag, hasstretch=0, resultblend=0; bPoseChannel *pchan; IK_Segment *seg, *parent, **iktree, *iktarget; IK_Solver *solver; @@ -1844,6 +1845,12 @@ static void execute_posetree(Object *ob, PoseTree *tree) Mat4MulMat4(goal, rootmat, goalinv); VECCOPY(polepos, goal[3]); poleconstrain= 1; + + /* for pole targets, we blend the result of the ik solver + * instead of the target position, otherwise we can't get + * a smooth transition */ + resultblend= 1; + resultinf= target->con->enforce; if(data->flag & CONSTRAINT_IK_GETANGLE) { poleangledata= data; @@ -1853,7 +1860,7 @@ static void execute_posetree(Object *ob, PoseTree *tree) } /* do we need blending? */ - if (target->con->enforce!=1.0) { + if (!resultblend && target->con->enforce!=1.0) { float q1[4], q2[4], q[4]; float fac= target->con->enforce; float mfac= 1.0-fac; @@ -1903,7 +1910,7 @@ static void execute_posetree(Object *ob, PoseTree *tree) tree->basis_change= MEM_mallocN(sizeof(float[3][3])*tree->totchannel, "ik basis change"); if(hasstretch) ikstretch= MEM_mallocN(sizeof(float)*tree->totchannel, "ik stretch"); - + for(a=0; atotchannel; a++) { IK_GetBasisChange(iktree[a], tree->basis_change[a]); @@ -1931,6 +1938,12 @@ static void execute_posetree(Object *ob, PoseTree *tree) VecMulf(tree->basis_change[a][1], stretch); VecMulf(tree->basis_change[a][2], stretch); } + + if(resultblend && resultinf!=1.0f) { + Mat3One(identity); + Mat3BlendMat3(tree->basis_change[a], identity, + tree->basis_change[a], resultinf); + } IK_FreeSegment(iktree[a]); } diff --git a/source/blender/blenlib/BLI_arithb.h b/source/blender/blenlib/BLI_arithb.h index 4448231b2b4..6e54fae58d0 100644 --- a/source/blender/blenlib/BLI_arithb.h +++ b/source/blender/blenlib/BLI_arithb.h @@ -164,6 +164,7 @@ void Mat3Inv(float m1[][3], float m2[][3]); void Mat3CpyMat4(float m1[][3],float m2[][4]); void Mat4CpyMat3(float m1[][4], float m2[][3]); +void Mat3BlendMat3(float out[][3], float dst[][3], float src[][3], float srcweight); void Mat4BlendMat4(float out[][4], float dst[][4], float src[][4], float srcweight); float Det2x2(float a,float b,float c, float d); diff --git a/source/blender/blenlib/intern/arithb.c b/source/blender/blenlib/intern/arithb.c index 50f8ba0fcde..f89f90f7045 100644 --- a/source/blender/blenlib/intern/arithb.c +++ b/source/blender/blenlib/intern/arithb.c @@ -759,6 +759,28 @@ void Mat4MulSerie(float answ[][4], float m1[][4], } } +void Mat3BlendMat3(float out[][3], float dst[][3], float src[][3], float srcweight) +{ + float squat[4], dquat[4], fquat[4]; + float ssize[3], dsize[3], fsize[4]; + float rmat[3][3], smat[3][3]; + + Mat3ToQuat(dst, dquat); + Mat3ToSize(dst, dsize); + + Mat3ToQuat(src, squat); + Mat3ToSize(src, ssize); + + /* do blending */ + QuatInterpol(fquat, dquat, squat, srcweight); + VecLerpf(fsize, dsize, ssize, srcweight); + + /* compose new matrix */ + QuatToMat3(fquat, rmat); + SizeToMat3(fsize, smat); + Mat3MulMat3(out, rmat, smat); +} + void Mat4BlendMat4(float out[][4], float dst[][4], float src[][4], float srcweight) { float squat[4], dquat[4], fquat[4]; From d9404adcd177d3a67bd5d32fbe883d709f91cbae Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Tue, 9 Sep 2008 16:38:08 +0000 Subject: [PATCH 54/66] Bugfix #17562: array fit to curve isnt working --- source/blender/blenkernel/intern/modifier.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index 4c74fe1cca2..936081ab94f 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -793,12 +793,18 @@ static DerivedMesh *arrayModifier_doArray(ArrayModifierData *amd, if(amd->fit_type == MOD_ARR_FITCURVE && amd->curve_ob) { Curve *cu = amd->curve_ob->data; if(cu) { + float tmp_mat[3][3]; + float scale; + + object_to_mat3(amd->curve_ob, tmp_mat); + scale = Mat3ToScalef(tmp_mat); + if(!cu->path) { cu->flag |= CU_PATH; // needed for path & bevlist makeDispListCurveTypes(amd->curve_ob, 0); } if(cu->path) - length = cu->path->totdist; + length = scale*cu->path->totdist; } } From be19db6854bea16284f46b1e0fe92a9c70f72f80 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 9 Sep 2008 17:27:01 +0000 Subject: [PATCH 55/66] Fix for bug #12132: vector blur with fast moving objects does not give a smooth fallof. there's no correct fix possible due to a lack of information, but this manually adds a smoother falloff, overestimating the contribution of foregroud pixels instead of becoming transparent. --- source/blender/render/intern/source/zbuf.c | 90 ++++++++++++++++------ 1 file changed, 66 insertions(+), 24 deletions(-) diff --git a/source/blender/render/intern/source/zbuf.c b/source/blender/render/intern/source/zbuf.c index be555443605..76a47a11338 100644 --- a/source/blender/render/intern/source/zbuf.c +++ b/source/blender/render/intern/source/zbuf.c @@ -2981,10 +2981,11 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * { ZSpan zspan; DrawBufPixel *rectdraw, *dr; - static float jit[16][2]; + static float jit[256][2]; float v1[3], v2[3], v3[3], v4[3], fx, fy; - float *rectvz, *dvz, *dimg, *dvec1, *dvec2, *dz, *dz1, *dz2, *rectz, *minvecbufrect= NULL; - float maxspeedsq= (float)nbd->maxspeed*nbd->maxspeed; + float *rectvz, *dvz, *dimg, *dvec1, *dvec2, *dz, *dz1, *dz2, *rectz; + float *minvecbufrect= NULL, *rectweight, *rw, *rectmax, *rm, *ro; + float maxspeedsq= (float)nbd->maxspeed*nbd->maxspeed, totfac; int y, x, step, maxspeed=nbd->maxspeed, samples= nbd->samples; int tsktsk= 0; static int firsttime= 1; @@ -3003,6 +3004,9 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * rectmove= MEM_mapallocN(xsize*ysize, "rectmove"); rectdraw= MEM_mapallocN(sizeof(DrawBufPixel)*xsize*ysize, "rect draw"); zspan.rectp= (int *)rectdraw; + + rectweight= MEM_mapallocN(sizeof(float)*xsize*ysize, "rect weight"); + rectmax= MEM_mapallocN(sizeof(float)*xsize*ysize, "rect max"); /* debug... check if PASS_VECTOR_MAX still is in buffers */ dvec1= vecbufrect; @@ -3142,7 +3146,7 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * dm= rectmove; dvec1= vecbufrect; for(x=xsize*ysize; x>0; x--, dm++, dvec1+=4) { - if(dvec1[0]!=0.0f || dvec1[1]!=0.0f || dvec1[2]!=0.0f || dvec1[3]!=0.0f) + if((dvec1[0]!=0.0f || dvec1[1]!=0.0f || dvec1[2]!=0.0f || dvec1[3]!=0.0f)) *dm= 255; } @@ -3151,9 +3155,12 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * /* has to become static, the init-jit calls a random-seed, screwing up texture noise node */ if(firsttime) { firsttime= 0; - BLI_initjit(jit[0], 16); + BLI_initjit(jit[0], 256); } + memset(newrect, 0, sizeof(float)*xsize*ysize*4); + totfac= 0.0f; + /* accumulate */ samples/= 2; for(step= 1; step<=samples; step++) { @@ -3161,7 +3168,7 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * int side; for(side=0; side<2; side++) { - float blendfac= 1.0f/((ABS(step)*2+side)+1), ipodata[4]; + float blendfac, ipodata[4]; /* clear zbuf, if we draw future we fill in not moving pixels */ if(0) @@ -3193,30 +3200,32 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * set_quad_bezier_ipo(0.5f + 0.5f*speedfac, ipodata); - for(fy= -0.5f+jit[step & 15][0], y=0; y1) { + float jfx = fx + 0.5f; + float jfy = fy + 0.5f; DrawBufPixel col; /* make vertices */ if(nbd->curved) { /* curved */ quad_bezier_2d(v1, dz1, dz1+2, ipodata); - v1[0]+= fx; v1[1]+= fy; v1[2]= *dz; + v1[0]+= jfx; v1[1]+= jfy; v1[2]= *dz; quad_bezier_2d(v2, dz1+4, dz1+4+2, ipodata); - v2[0]+= fx+1.0f; v2[1]+= fy; v2[2]= *dz; + v2[0]+= jfx+1.0f; v2[1]+= jfy; v2[2]= *dz; quad_bezier_2d(v3, dz2+4, dz2+4+2, ipodata); - v3[0]+= fx+1.0f; v3[1]+= fy+1.0f; v3[2]= *dz; + v3[0]+= jfx+1.0f; v3[1]+= jfy+1.0f; v3[2]= *dz; quad_bezier_2d(v4, dz2, dz2+2, ipodata); - v4[0]+= fx; v4[1]+= fy+1.0f; v4[2]= *dz; + v4[0]+= jfx; v4[1]+= jfy+1.0f; v4[2]= *dz; } else { - v1[0]= speedfac*dz1[0]+fx; v1[1]= speedfac*dz1[1]+fy; v1[2]= *dz; - v2[0]= speedfac*dz1[4]+fx+1.0f; v2[1]= speedfac*dz1[5]+fy; v2[2]= *dz; - v3[0]= speedfac*dz2[4]+fx+1.0f; v3[1]= speedfac*dz2[5]+fy+1.0f; v3[2]= *dz; - v4[0]= speedfac*dz2[0]+fx; v4[1]= speedfac*dz2[1]+fy+1.0f; v4[2]= *dz; + v1[0]= speedfac*dz1[0]+jfx; v1[1]= speedfac*dz1[1]+jfy; v1[2]= *dz; + v2[0]= speedfac*dz1[4]+jfx+1.0f; v2[1]= speedfac*dz1[5]+jfy; v2[2]= *dz; + v3[0]= speedfac*dz2[4]+jfx+1.0f; v3[1]= speedfac*dz2[5]+jfy+1.0f; v3[2]= *dz; + v4[0]= speedfac*dz2[0]+jfx; v4[1]= speedfac*dz2[1]+jfy+1.0f; v4[2]= *dz; } if(*dm==255) col.alpha= 1.0f; else if(*dm<2) col.alpha= 0.0f; @@ -3229,26 +3238,59 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * dz1+=4; dz2+=4; } - + + /* blend with a falloff. this fixes the ugly effect you get with + * a fast moving object. then it looks like a solid object overlayed + * over a very transparent moving version of itself. in reality, the + * whole object should become transparent if it is moving fast, be + * we don't know what is behind it so we don't do that. this hack + * overestimates the contribution of foreground pixels but looks a + * bit better without a sudden cutoff. */ + blendfac= ((samples - step)/(float)samples); + /* smoothstep to make it look a bit nicer as well */ + blendfac= 3.0f*pow(blendfac, 2.0f) - 2.0f*pow(blendfac, 3.0f); + /* accum */ - for(dr= rectdraw, dz2=newrect, x= xsize*ysize-1; x>=0; x--, dr++, dz2+=4) { + rw= rectweight; + rm= rectmax; + for(dr= rectdraw, dz2=newrect, x= xsize*ysize-1; x>=0; x--, dr++, dz2+=4, rw++, rm++) { if(dr->colpoin) { - float bfac= dr->alpha*blendfac*dr->colpoin[3]; - float mf= 1.0f - bfac; + float bfac= dr->alpha*blendfac; - dz2[0]= mf*dz2[0] + bfac*dr->colpoin[0]; - dz2[1]= mf*dz2[1] + bfac*dr->colpoin[1]; - dz2[2]= mf*dz2[2] + bfac*dr->colpoin[2]; - dz2[3]= mf*dz2[3] + bfac*dr->colpoin[3]; + dz2[0] += bfac*dr->colpoin[0]; + dz2[1] += bfac*dr->colpoin[1]; + dz2[2] += bfac*dr->colpoin[2]; + dz2[3] += bfac*dr->colpoin[3]; + + *rw += bfac; + *rm= MAX2(*rm, bfac); } } } } + /* blend between original images and accumulated image */ + rw= rectweight; + rm= rectmax; + ro= imgrect; + dm= rectmove; + for(dz2=newrect, x= xsize*ysize-1; x>=0; x--, dz2+=4, ro+=4, rw++, rm++, dm++) { + float mfac = *rm; + float fac = (*rw == 0.0f)? 0.0f: mfac/(*rw); + float nfac = 1.0f - mfac; + + dz2[0]= fac*dz2[0] + nfac*ro[0]; + dz2[1]= fac*dz2[1] + nfac*ro[1]; + dz2[2]= fac*dz2[2] + nfac*ro[2]; + dz2[3]= fac*dz2[3] + nfac*ro[3]; + } + MEM_freeN(rectz); MEM_freeN(rectmove); MEM_freeN(rectdraw); MEM_freeN(rectvz); + MEM_freeN(rectweight); + MEM_freeN(rectmax); if(minvecbufrect) MEM_freeN(vecbufrect); /* rects were swapped! */ zbuf_free_span(&zspan); } From 568ba1572655a42728145eda67790652008c8b2b Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Tue, 9 Sep 2008 18:44:10 +0000 Subject: [PATCH 56/66] Bugfix for [#17329] Bevel Weights are lost after Subsurf --- source/blender/blenkernel/intern/subsurf_ccg.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index f334fc39daa..d7e9fd556b6 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -700,6 +700,7 @@ DerivedMesh *ss_to_cdderivedmesh(CCGSubSurf *ss, int ssFromEditmesh, for(index = 0; index < totedge; index++) { CCGEdge *e = edgeMap2[index]; unsigned int flags = 0; + char bweight = 0; int edgeIdx = GET_INT_FROM_POINTER(ccgSubSurf_getEdgeEdgeHandle(ss, e)); if(!ccgSubSurf_getEdgeNumFaces(ss, e)) flags |= ME_LOOSEEDGE; @@ -710,12 +711,14 @@ DerivedMesh *ss_to_cdderivedmesh(CCGSubSurf *ss, int ssFromEditmesh, dm->getEdge(dm, edgeIdx, &origMed); flags |= origMed.flag; + bweight = origMed.bweight; } for(x = 0; x < edgeSize - 1; x++) { med->v1 = getEdgeIndex(ss, e, x, edgeSize); med->v2 = getEdgeIndex(ss, e, x + 1, edgeSize); med->flag = flags; + med->bweight = bweight; *origIndex = ccgDM_getEdgeMapIndex(NULL, ss, e); ++med; ++origIndex; From 84d7e2ea9cb514b5cdcdb6dea185ab292d3810f3 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 9 Sep 2008 20:00:57 +0000 Subject: [PATCH 57/66] Fix for bug #17443: make bone heat weighting solve a bit less sensitive to poorly shaped geometry, should succeed solving in more cases now. --- source/blender/include/BIF_meshlaplacian.h | 2 +- source/blender/src/meshlaplacian.c | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/source/blender/include/BIF_meshlaplacian.h b/source/blender/include/BIF_meshlaplacian.h index 9fb8aad0eb6..71db8d0bba2 100644 --- a/source/blender/include/BIF_meshlaplacian.h +++ b/source/blender/include/BIF_meshlaplacian.h @@ -47,7 +47,7 @@ struct EditMesh; struct LaplacianSystem; typedef struct LaplacianSystem LaplacianSystem; -LaplacianSystem *laplacian_construct_begin(int totvert, int totface); +LaplacianSystem *laplacian_construct_begin(int totvert, int totface, int lsq); void laplacian_add_vertex(LaplacianSystem *sys, float *co, int pinned); void laplacian_add_triangle(LaplacianSystem *sys, int v1, int v2, int v3); diff --git a/source/blender/src/meshlaplacian.c b/source/blender/src/meshlaplacian.c index 2de6367c9ad..c2ad60ea842 100644 --- a/source/blender/src/meshlaplacian.c +++ b/source/blender/src/meshlaplacian.c @@ -178,6 +178,7 @@ static void laplacian_triangle_area(LaplacianSystem *sys, int i1, int i2, int i3 varea[i1] += (obtuse == 1)? area: area*0.5; varea[i2] += (obtuse == 2)? area: area*0.5; varea[i3] += (obtuse == 3)? area: area*0.5; + //printf("area %f\n", area); } else { len1= VecLenf(v2, v3); @@ -191,7 +192,10 @@ static void laplacian_triangle_area(LaplacianSystem *sys, int i1, int i2, int i3 varea[i1] += (t2 + t3)*0.25f; varea[i2] += (t1 + t3)*0.25f; varea[i3] += (t1 + t2)*0.25f; + //printf("varea %f %f %f\n", t1, t2, t3); } + + //printf("triangle area %f %f %f\n", t1, t2, t3); } static void laplacian_triangle_weights(LaplacianSystem *sys, int f, int i1, int i2, int i3) @@ -204,7 +208,7 @@ static void laplacian_triangle_weights(LaplacianSystem *sys, int f, int i1, int v3= sys->verts[i3]; /* instead of *0.5 we divided by the number of faces of the edge, it still - needs to be varified that this is indeed the correct thing to do! */ + needs to be verified that this is indeed the correct thing to do! */ t1= cotan_weight(v1, v2, v3)/laplacian_edge_count(sys->edgehash, i2, i3); t2= cotan_weight(v2, v3, v1)/laplacian_edge_count(sys->edgehash, i3, i1); t3= cotan_weight(v3, v1, v2)/laplacian_edge_count(sys->edgehash, i1, i2); @@ -229,7 +233,7 @@ static void laplacian_triangle_weights(LaplacianSystem *sys, int f, int i1, int } } -LaplacianSystem *laplacian_system_construct_begin(int totvert, int totface) +LaplacianSystem *laplacian_system_construct_begin(int totvert, int totface, int lsq) { LaplacianSystem *sys; @@ -248,6 +252,8 @@ LaplacianSystem *laplacian_system_construct_begin(int totvert, int totface) /* create opennl context */ nlNewContext(); nlSolverParameteri(NL_NB_VARIABLES, totvert); + if(lsq) + nlSolverParameteri(NL_LEAST_SQUARES, NL_TRUE); sys->context= nlGetCurrent(); @@ -292,7 +298,7 @@ void laplacian_system_construct_end(LaplacianSystem *sys) for(a=0; aareaweights) { if(sys->varea[a] != 0.0f) - sys->varea[a]= 0.5f/sys->varea[a]; + sys->varea[a]= 0.5f/sys->varea[a]; //MAX2(sys->varea[a], 0.001f); } else sys->varea[a]= 1.0f; @@ -631,7 +637,7 @@ void heat_bone_weighting(Object *ob, Mesh *me, float (*verts)[3], int numbones, } /* create laplacian */ - sys = laplacian_system_construct_begin(me->totvert, totface); + sys = laplacian_system_construct_begin(me->totvert, totface, 1); sys->heat.mesh= me; sys->heat.verts= verts; @@ -933,7 +939,7 @@ void rigid_deform_begin(EditMesh *em) } /* create laplacian */ - sys = laplacian_system_construct_begin(totvert, totface); + sys = laplacian_system_construct_begin(totvert, totface, 0); sys->rigid.mesh= em; sys->rigid.R = MEM_callocN(sizeof(float)*3*3*totvert, "RigidDeformR"); From df1d59805ff74ee5ab36d5cc6d400f8a4eb12eff Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 9 Sep 2008 20:09:54 +0000 Subject: [PATCH 58/66] Fix for bug #17588: crash with ctrl+a and no active object. --- source/blender/src/editobject.c | 1 + source/blender/src/meshlaplacian.c | 6 +----- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/source/blender/src/editobject.c b/source/blender/src/editobject.c index e8084bd45a9..e05d1c519d5 100644 --- a/source/blender/src/editobject.c +++ b/source/blender/src/editobject.c @@ -4138,6 +4138,7 @@ void apply_object( void ) } else { ob= OBACT; + if(ob==0) return; if ((ob->pose) && (ob->flag & OB_POSEMODE)) evt = pupmenu("Apply Object%t|Current Pose as RestPose%x3"); diff --git a/source/blender/src/meshlaplacian.c b/source/blender/src/meshlaplacian.c index c2ad60ea842..96349e8fb98 100644 --- a/source/blender/src/meshlaplacian.c +++ b/source/blender/src/meshlaplacian.c @@ -178,7 +178,6 @@ static void laplacian_triangle_area(LaplacianSystem *sys, int i1, int i2, int i3 varea[i1] += (obtuse == 1)? area: area*0.5; varea[i2] += (obtuse == 2)? area: area*0.5; varea[i3] += (obtuse == 3)? area: area*0.5; - //printf("area %f\n", area); } else { len1= VecLenf(v2, v3); @@ -192,10 +191,7 @@ static void laplacian_triangle_area(LaplacianSystem *sys, int i1, int i2, int i3 varea[i1] += (t2 + t3)*0.25f; varea[i2] += (t1 + t3)*0.25f; varea[i3] += (t1 + t2)*0.25f; - //printf("varea %f %f %f\n", t1, t2, t3); } - - //printf("triangle area %f %f %f\n", t1, t2, t3); } static void laplacian_triangle_weights(LaplacianSystem *sys, int f, int i1, int i2, int i3) @@ -298,7 +294,7 @@ void laplacian_system_construct_end(LaplacianSystem *sys) for(a=0; aareaweights) { if(sys->varea[a] != 0.0f) - sys->varea[a]= 0.5f/sys->varea[a]; //MAX2(sys->varea[a], 0.001f); + sys->varea[a]= 0.5f/sys->varea[a]; } else sys->varea[a]= 1.0f; From f198acd5dd6867401e5517f8a919aaf53af85e84 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 9 Sep 2008 20:19:00 +0000 Subject: [PATCH 59/66] Fix for bug #14775: memorblock end corrupt print, needed to allocate one byte more for the align menu string 0 terminator. --- source/blender/src/transform_orientations.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/src/transform_orientations.c b/source/blender/src/transform_orientations.c index 9c7a2f67b89..fc9dfbb902e 100644 --- a/source/blender/src/transform_orientations.c +++ b/source/blender/src/transform_orientations.c @@ -352,7 +352,7 @@ char * BIF_menustringTransformOrientation(char *title) { char *str_menu, *p; - str_menu = MEM_callocN(strlen(menu) + strlen(title) + 40 * BIF_countTransformOrientation(), "UserTransSpace from matrix"); + str_menu = MEM_callocN(strlen(menu) + strlen(title) + 1 + 40 * BIF_countTransformOrientation(), "UserTransSpace from matrix"); p = str_menu; p += sprintf(str_menu, "%s", title); From fede495c073a7369a61e668dae95cf8c7b99a068 Mon Sep 17 00:00:00 2001 From: Ken Hughes Date: Tue, 9 Sep 2008 20:52:18 +0000 Subject: [PATCH 60/66] Python API ---------- Bugfix #14425. Particle.Get() could return a list of invalid items. The API still needs more work, but for now throw an NotImplemented exception. --- source/blender/python/api2_2x/Particle.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/source/blender/python/api2_2x/Particle.c b/source/blender/python/api2_2x/Particle.c index bc65426e16c..893ee077d67 100644 --- a/source/blender/python/api2_2x/Particle.c +++ b/source/blender/python/api2_2x/Particle.c @@ -526,15 +526,18 @@ throws NameError if name not found PyObject *M_ParticleSys_Get( PyObject * self, PyObject * args ) { +#if 1 + return EXPP_ReturnPyObjError( PyExc_NotImplementedError, + "Particle.Get() not implemented" ); +#else ParticleSettings *psys_iter; char *name = NULL; -#if 0 ParticleSystem *blparticlesys = 0; Object *ob; PyObject *partsyslist,*current; -#endif + if( !PyArg_ParseTuple( args, "|s", &name ) ) return EXPP_ReturnPyObjError( PyExc_TypeError, "expected string argument" ); @@ -577,7 +580,6 @@ PyObject *M_ParticleSys_Get( PyObject * self, PyObject * args ) } while( psys_iter ){ -#if 0 pyobj = ParticleSystem_CreatePyObject( psys_iter); if( !pyobj){ Py_DECREF( pylist ); @@ -586,7 +588,6 @@ PyObject *M_ParticleSys_Get( PyObject * self, PyObject * args ) "could not create ParticleSystem PyObject"); } PyList_SET_ITEM( pylist, index, pyobj); -#endif printf("name is %s\n", psys_iter->id.name+2); psys_iter = psys_iter->id.next; index++; @@ -596,10 +597,6 @@ PyObject *M_ParticleSys_Get( PyObject * self, PyObject * args ) } - - -#if 0 - for( ob = G.main->particlesystem.first; ob; ob = ob->id.next ) if( !strcmp( name, ob->id.name + 2 ) ) break; @@ -626,7 +623,6 @@ PyObject *M_ParticleSys_Get( PyObject * self, PyObject * args ) } return partsyslist; - #endif } From f305bb22b7e5f809063539cdb76a24727f41a11a Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Tue, 9 Sep 2008 21:15:30 +0000 Subject: [PATCH 61/66] Patch 17508: Blender Web Plugin - XEmbed. Enable XEmbed integration of blenderplayer, using -i as input parameter to pass embedder window id. create a minimal web plugin to embed blenderplayer on web pages (using gecko/mozilla as browser). Only for *nix. --- CMakeLists.txt | 8 +++ intern/ghost/GHOST_ISystem.h | 4 +- intern/ghost/GHOST_Types.h | 10 +++ intern/ghost/intern/GHOST_SystemCarbon.cpp | 3 +- intern/ghost/intern/GHOST_SystemCarbon.h | 4 +- intern/ghost/intern/GHOST_SystemWin32.cpp | 2 +- intern/ghost/intern/GHOST_SystemWin32.h | 3 +- intern/ghost/intern/GHOST_SystemX11.cpp | 13 +++- intern/ghost/intern/GHOST_SystemX11.h | 6 +- intern/ghost/intern/GHOST_WindowX11.cpp | 67 ++++++++++++++----- intern/ghost/intern/GHOST_WindowX11.h | 2 + source/gameengine/GamePlayer/CMakeLists.txt | 4 ++ .../GamePlayer/ghost/GPG_Application.cpp | 25 ++++++- .../GamePlayer/ghost/GPG_Application.h | 3 + .../gameengine/GamePlayer/ghost/GPG_ghost.cpp | 21 +++++- 15 files changed, 147 insertions(+), 28 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 97113c22f98..4c1b863178f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -64,6 +64,7 @@ OPTION(WITH_OPENEXR "Enable OpenEXR Support (http://www.openexr.com)" ON) OPTION(WITH_FFMPEG "Enable FFMPeg Support (http://ffmpeg.mplayerhq.hu/)" OFF) OPTION(WITH_OPENAL "Enable OpenAL Support (http://www.openal.org)" ON) OPTION(WITH_OPENMP "Enable OpenMP (has to be supported by the compiler)" OFF) +OPTION(WITH_WEBPLUGIN "Enable Web Plugin (Mozilla-Unix only)" OFF) IF(NOT WITH_GAMEENGINE AND WITH_PLAYER) MESSAGE("WARNING: WITH_PLAYER needs WITH_GAMEENGINE") @@ -456,6 +457,13 @@ SUBDIRS( # Blender Application SUBDIRS(source/creator) +#----------------------------------------------------------------------------- +# Blender WebPlugin +IF(WITH_WEBPLUGIN) + SET(MOZILLA_DIR "${CMAKE_SOURCE_DIR}/../gecko-sdk/" CACHE PATH "Gecko SDK path") + SET(WITH_PLAYER ON) +ENDIF(WITH_WEBPLUGIN) + #----------------------------------------------------------------------------- # Blender Player IF(WITH_PLAYER) diff --git a/intern/ghost/GHOST_ISystem.h b/intern/ghost/GHOST_ISystem.h index 2ad2e9ddce7..baf0cb813f8 100644 --- a/intern/ghost/GHOST_ISystem.h +++ b/intern/ghost/GHOST_ISystem.h @@ -224,13 +224,15 @@ public: * @param state The state of the window when opened. * @param type The type of drawing context installed in this window. * @param stereoVisual Create a stereo visual for quad buffered stereo. + * @param parentWindow Parent (embedder) window * @return The new window (or 0 if creation failed). */ virtual GHOST_IWindow* createWindow( const STR_String& title, GHOST_TInt32 left, GHOST_TInt32 top, GHOST_TUns32 width, GHOST_TUns32 height, GHOST_TWindowState state, GHOST_TDrawingContextType type, - const bool stereoVisual) = 0; + const bool stereoVisual, + const GHOST_TEmbedderWindowID parentWindow = 0) = 0; /** * Dispose a window. diff --git a/intern/ghost/GHOST_Types.h b/intern/ghost/GHOST_Types.h index f81192f1887..6b1295f649b 100644 --- a/intern/ghost/GHOST_Types.h +++ b/intern/ghost/GHOST_Types.h @@ -100,6 +100,7 @@ typedef enum { GHOST_kWindowStateMaximized, GHOST_kWindowStateMinimized, GHOST_kWindowStateFullScreen, + GHOST_kWindowStateEmbedded, GHOST_kWindowState8Normal = 8, GHOST_kWindowState8Maximized, GHOST_kWindowState8Minimized, @@ -392,6 +393,15 @@ typedef struct { } GHOST_DisplaySetting; +#ifdef _WIN32 +typedef long GHOST_TEmbedderWindowID; +#endif // _WIN32 + +#ifndef _WIN32 +// I can't use "Window" from "" because it conflits with Window defined in winlay.h +typedef int GHOST_TEmbedderWindowID; +#endif // _WIN32 + /** * A timer task callback routine. * @param task The timer task object. diff --git a/intern/ghost/intern/GHOST_SystemCarbon.cpp b/intern/ghost/intern/GHOST_SystemCarbon.cpp index 78c25997806..067c8deee32 100644 --- a/intern/ghost/intern/GHOST_SystemCarbon.cpp +++ b/intern/ghost/intern/GHOST_SystemCarbon.cpp @@ -402,7 +402,8 @@ GHOST_IWindow* GHOST_SystemCarbon::createWindow( GHOST_TUns32 height, GHOST_TWindowState state, GHOST_TDrawingContextType type, - bool stereoVisual + bool stereoVisual, + const GHOST_TEmbedderWindowID parentWindow ) { GHOST_IWindow* window = 0; diff --git a/intern/ghost/intern/GHOST_SystemCarbon.h b/intern/ghost/intern/GHOST_SystemCarbon.h index 2afc8e0885a..2a1d6325784 100644 --- a/intern/ghost/intern/GHOST_SystemCarbon.h +++ b/intern/ghost/intern/GHOST_SystemCarbon.h @@ -103,6 +103,7 @@ public: * @param height The height the window. * @param state The state of the window when opened. * @param type The type of drawing context installed in this window. + * @param parentWindow Parent (embedder) window * @return The new window (or 0 if creation failed). */ virtual GHOST_IWindow* createWindow( @@ -113,7 +114,8 @@ public: GHOST_TUns32 height, GHOST_TWindowState state, GHOST_TDrawingContextType type, - const bool stereoVisual + const bool stereoVisual, + const GHOST_TEmbedderWindowID parentWindow = 0 ); /*************************************************************************************** diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp index 7bc20d38739..feb0fe39040 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.cpp +++ b/intern/ghost/intern/GHOST_SystemWin32.cpp @@ -169,7 +169,7 @@ GHOST_IWindow* GHOST_SystemWin32::createWindow( const STR_String& title, GHOST_TInt32 left, GHOST_TInt32 top, GHOST_TUns32 width, GHOST_TUns32 height, GHOST_TWindowState state, GHOST_TDrawingContextType type, - bool stereoVisual) + bool stereoVisual, const GHOST_TEmbedderWindowID parentWindow ) { GHOST_Window* window = 0; window = new GHOST_WindowWin32 (title, left, top, width, height, state, type, stereoVisual); diff --git a/intern/ghost/intern/GHOST_SystemWin32.h b/intern/ghost/intern/GHOST_SystemWin32.h index c26ef25e366..00f7af00162 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.h +++ b/intern/ghost/intern/GHOST_SystemWin32.h @@ -109,13 +109,14 @@ public: * @param height The height the window. * @param state The state of the window when opened. * @param type The type of drawing context installed in this window. + * @param parentWindow Parent (embedder) window * @return The new window (or 0 if creation failed). */ virtual GHOST_IWindow* createWindow( const STR_String& title, GHOST_TInt32 left, GHOST_TInt32 top, GHOST_TUns32 width, GHOST_TUns32 height, GHOST_TWindowState state, GHOST_TDrawingContextType type, - const bool stereoVisual); + const bool stereoVisual, const GHOST_TEmbedderWindowID parentWindow = 0 ); /*************************************************************************************** ** Event management functionality diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index 3003e0b8b14..1b90831986d 100644 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -191,6 +191,7 @@ getMainDisplayDimensions( * @param height The height the window. * @param state The state of the window when opened. * @param type The type of drawing context installed in this window. + * @param parentWindow Parent (embedder) window * @return The new window (or 0 if creation failed). */ GHOST_IWindow* @@ -203,14 +204,18 @@ createWindow( GHOST_TUns32 height, GHOST_TWindowState state, GHOST_TDrawingContextType type, - bool stereoVisual + bool stereoVisual, + const GHOST_TEmbedderWindowID parentWindow ){ GHOST_WindowX11 * window = 0; if (!m_display) return 0; + + + window = new GHOST_WindowX11 ( - this,m_display,title, left, top, width, height, state, type, stereoVisual + this,m_display,title, left, top, width, height, state, parentWindow, type, stereoVisual ); if (window) { @@ -511,7 +516,9 @@ GHOST_SystemX11::processEvent(XEvent *xe) } break; } - + + case DestroyNotify: + ::exit(-1); // We're not interested in the following things.(yet...) case NoExpose : case GraphicsExpose : diff --git a/intern/ghost/intern/GHOST_SystemX11.h b/intern/ghost/intern/GHOST_SystemX11.h index 726cdfb2fff..c67f7d81e60 100644 --- a/intern/ghost/intern/GHOST_SystemX11.h +++ b/intern/ghost/intern/GHOST_SystemX11.h @@ -108,6 +108,7 @@ public: * @param state The state of the window when opened. * @param type The type of drawing context installed in this window. * @param stereoVisual Create a stereo visual for quad buffered stereo. + * @param parentWindow Parent (embedder) window * @return The new window (or 0 if creation failed). */ GHOST_IWindow* @@ -119,9 +120,10 @@ public: GHOST_TUns32 height, GHOST_TWindowState state, GHOST_TDrawingContextType type, - const bool stereoVisual + const bool stereoVisual, + const GHOST_TEmbedderWindowID parentWindow = 0 ); - + /** * @section Interface Inherited from GHOST_ISystem */ diff --git a/intern/ghost/intern/GHOST_WindowX11.cpp b/intern/ghost/intern/GHOST_WindowX11.cpp index a98a59377c7..7b0606c40b7 100644 --- a/intern/ghost/intern/GHOST_WindowX11.cpp +++ b/intern/ghost/intern/GHOST_WindowX11.cpp @@ -138,6 +138,7 @@ GHOST_WindowX11( GHOST_TUns32 width, GHOST_TUns32 height, GHOST_TWindowState state, + const GHOST_TEmbedderWindowID parentWindow, GHOST_TDrawingContextType type, const bool stereoVisual ) : @@ -205,21 +206,57 @@ GHOST_WindowX11( // create the window! - m_window = - XCreateWindow( - m_display, - RootWindow(m_display, m_visual->screen), - left, - top, - width, - height, - 0, // no border. - m_visual->depth, - InputOutput, - m_visual->visual, - CWBorderPixel|CWColormap|CWEventMask, - &xattributes - ); + ; + if (parentWindow == 0) { + m_window = + XCreateWindow( + m_display, + RootWindow(m_display, m_visual->screen), + left, + top, + width, + height, + 0, // no border. + m_visual->depth, + InputOutput, + m_visual->visual, + CWBorderPixel|CWColormap|CWEventMask, + &xattributes + ); + } else { + + Window root_return; + int x_return,y_return; + unsigned int w_return,h_return,border_w_return,depth_return; + GHOST_TInt32 screen_x, screen_y; + + XGetGeometry(m_display, parentWindow, &root_return, &x_return, &y_return, + &w_return, &h_return, &border_w_return, &depth_return ); + + left = 0; + top = 0; + width = w_return; + height = h_return; + + + m_window = XCreateWindow( + m_display, + parentWindow, // reparent against embedder + left, + top, + width, + height, + 0, // no border. + m_visual->depth, + InputOutput, + m_visual->visual, + CWBorderPixel|CWColormap|CWEventMask, + &xattributes + ); + + XSelectInput(m_display , parentWindow, SubstructureNotifyMask); + + } // Are we in fullscreen mode - then include diff --git a/intern/ghost/intern/GHOST_WindowX11.h b/intern/ghost/intern/GHOST_WindowX11.h index 1203dbde80d..abb5c131cb7 100644 --- a/intern/ghost/intern/GHOST_WindowX11.h +++ b/intern/ghost/intern/GHOST_WindowX11.h @@ -64,6 +64,7 @@ public: * @param width The width the window. * @param height The height the window. * @param state The state the window is initially opened with. + * @param parentWindow Parent (embedder) window * @param type The type of drawing context installed in this window. * @param stereoVisual Stereo visual for quad buffered stereo. */ @@ -76,6 +77,7 @@ public: GHOST_TUns32 width, GHOST_TUns32 height, GHOST_TWindowState state, + const GHOST_TEmbedderWindowID parentWindow, GHOST_TDrawingContextType type = GHOST_kDrawingContextTypeNone, const bool stereoVisual = false ); diff --git a/source/gameengine/GamePlayer/CMakeLists.txt b/source/gameengine/GamePlayer/CMakeLists.txt index ff1040bfb40..fc5912155cf 100644 --- a/source/gameengine/GamePlayer/CMakeLists.txt +++ b/source/gameengine/GamePlayer/CMakeLists.txt @@ -25,3 +25,7 @@ # ***** END GPL LICENSE BLOCK ***** SUBDIRS(common ghost) + +IF(WITH_WEBPLUGIN) + SUBDIRS(xembed) +ENDIF(WITH_WEBPLUGIN) diff --git a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp index 806216e05bb..3d9ae66c9ea 100644 --- a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp +++ b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp @@ -129,7 +129,8 @@ GPG_Application::GPG_Application(GHOST_ISystem* system) m_blendermat(0), m_blenderglslmat(0), m_pyGlobalDictString(0), - m_pyGlobalDictString_Length(0) + m_pyGlobalDictString_Length(0), + m_isEmbedded(false) { fSystem = system; } @@ -325,6 +326,26 @@ bool GPG_Application::startWindow(STR_String& title, return success; } +bool GPG_Application::startEmbeddedWindow(STR_String& title, + const GHOST_TEmbedderWindowID parentWindow, + const bool stereoVisual, + const int stereoMode) { + + m_mainWindow = fSystem->createWindow(title, 0, 0, 0, 0, GHOST_kWindowStateNormal, + GHOST_kDrawingContextTypeOpenGL, stereoVisual, parentWindow); + + if (!m_mainWindow) { + printf("error: could not create main window\n"); + exit(-1); + } + m_isEmbedded = true; + + bool success = initEngine(m_mainWindow, stereoMode); + if (success) { + success = startEngine(); + } + return success; +} bool GPG_Application::startFullScreen( @@ -887,7 +908,7 @@ bool GPG_Application::handleKey(GHOST_IEvent* event, bool isDown) GHOST_TEventKeyData* keyData = static_cast(eventData); //no need for this test //if (fSystem->getFullScreen()) { - if (keyData->key == GHOST_kKeyEsc && !m_keyboard->m_hookesc) { + if (keyData->key == GHOST_kKeyEsc && !m_keyboard->m_hookesc && !m_isEmbedded) { m_exitRequested = KX_EXIT_REQUEST_OUTSIDE; } //} diff --git a/source/gameengine/GamePlayer/ghost/GPG_Application.h b/source/gameengine/GamePlayer/ghost/GPG_Application.h index 5242a419808..7fc369fc0fd 100644 --- a/source/gameengine/GamePlayer/ghost/GPG_Application.h +++ b/source/gameengine/GamePlayer/ghost/GPG_Application.h @@ -62,6 +62,7 @@ public: bool startWindow(STR_String& title, int windowLeft, int windowTop, int windowWidth, int windowHeight, const bool stereoVisual, const int stereoMode); bool startFullScreen(int width, int height, int bpp, int frequency, const bool stereoVisual, const int stereoMode); + bool startEmbeddedWindow(STR_String& title, const GHOST_TEmbedderWindowID parent_window, const bool stereoVisual, const int stereoMode); #ifdef WIN32 bool startScreenSaverFullScreen(int width, int height, int bpp, int frequency, const bool stereoVisual, const int stereoMode); bool startScreenSaverPreview(HWND parentWindow, const bool stereoVisual, const int stereoMode); @@ -143,6 +144,8 @@ protected: bool m_engineInitialized; /** Engine state. */ bool m_engineRunning; + /** Running on embedded window */ + bool m_isEmbedded; /** the gameengine itself */ KX_KetsjiEngine* m_ketsjiengine; diff --git a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp index cc781a38bbb..d44e983af89 100644 --- a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp +++ b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp @@ -178,6 +178,9 @@ void usage(char* program) printf(" anaglyph (Red-Blue glasses)\n"); printf(" vinterlace (Vertical interlace for autostereo display)\n"); printf(" depending on the type of stereo you want\n"); +#ifndef _WIN32 + printf(" -i: parent windows ID \n"); +#endif #ifdef _WIN32 printf(" -c: keep console window open\n"); #endif @@ -297,6 +300,9 @@ int main(int argc, char** argv) int fullScreenFrequency = 60; char* pyGlobalDictString = NULL; /* store python dict data between blend file loading */ int pyGlobalDictString_Length = 0; + GHOST_TEmbedderWindowID parentWindow = 0; + + #ifdef __linux__ #ifdef __alpha__ @@ -457,6 +463,16 @@ int main(int argc, char** argv) usage(argv[0]); return 0; break; +#ifndef _WIN32 + case 'i': + i++; + if ( (i + 1) < argc ) + parentWindow = atoi(argv[i++]); +#ifndef NDEBUG + printf("XWindows ID = %d\n", parentWindow); +#endif //NDEBUG + +#endif // _WIN32 case 'c': i++; closeConsole = false; @@ -729,7 +745,10 @@ int main(int argc, char** argv) else #endif { - app.startWindow(title, windowLeft, windowTop, windowWidth, windowHeight, + if (parentWindow != 0) + app.startEmbeddedWindow(title, parentWindow, stereoWindow, stereomode); + else + app.startWindow(title, windowLeft, windowTop, windowWidth, windowHeight, stereoWindow, stereomode); } } From aa10e1b11eca50503b0b52f0723f698f0527822f Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Tue, 9 Sep 2008 21:46:19 +0000 Subject: [PATCH 62/66] Bugfix for [#17363] Edge selection mode + knife twice = latter cut doesn't do anything --- source/blender/src/editmesh_loop.c | 6 +++--- source/blender/src/editmesh_tools.c | 17 +++++++++++------ 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/source/blender/src/editmesh_loop.c b/source/blender/src/editmesh_loop.c index 4ac5072b212..2c5386b86b6 100644 --- a/source/blender/src/editmesh_loop.c +++ b/source/blender/src/editmesh_loop.c @@ -745,9 +745,9 @@ void KnifeSubdivide(char mode) eed= eed->next; } - if (mode==KNIFE_EXACT) esubdivideflag(1, 0, B_KNIFE|B_PERCENTSUBD,1,SUBDIV_SELECT_ORIG); - else if (mode==KNIFE_MIDPOINT) esubdivideflag(1, 0, B_KNIFE,1,SUBDIV_SELECT_ORIG); - else if (mode==KNIFE_MULTICUT) esubdivideflag(1, 0, B_KNIFE,numcuts,SUBDIV_SELECT_ORIG); + if(mode==KNIFE_EXACT) esubdivideflag(SELECT, 0, B_KNIFE|B_PERCENTSUBD,1,SUBDIV_SELECT_ORIG); + else if (mode==KNIFE_MIDPOINT) esubdivideflag(SELECT, 0, B_KNIFE,1,SUBDIV_SELECT_ORIG); + else if (mode==KNIFE_MULTICUT) esubdivideflag(SELECT, 0, B_KNIFE,numcuts,SUBDIV_SELECT_ORIG); eed=em->edges.first; while(eed){ diff --git a/source/blender/src/editmesh_tools.c b/source/blender/src/editmesh_tools.c index c2fccb0e50f..fe4c98aa4de 100644 --- a/source/blender/src/editmesh_tools.c +++ b/source/blender/src/editmesh_tools.c @@ -2698,16 +2698,21 @@ void esubdivideflag(int flag, float rad, int beauty, int numcuts, int seltype) free_tagged_edges_faces(em->edges.first, em->faces.first); if(seltype == SUBDIV_SELECT_ORIG && G.qual != LR_CTRLKEY) { + /* bugfix: vertex could get flagged as "not-selected" + // solution: clear flags before, not at the same time as setting SELECT flag -dg + */ for(eed = em->edges.first;eed;eed = eed->next) { - if(eed->f2 & EDGENEW || eed->f2 & EDGEOLD) { - eed->f |= flag; - EM_select_edge(eed,1); - - }else{ + if(!(eed->f2 & EDGENEW || eed->f2 & EDGEOLD)) { eed->f &= !flag; EM_select_edge(eed,0); } - } + } + for(eed = em->edges.first;eed;eed = eed->next) { + if(eed->f2 & EDGENEW || eed->f2 & EDGEOLD) { + eed->f |= flag; + EM_select_edge(eed,1); + } + } } else if ((seltype == SUBDIV_SELECT_INNER || seltype == SUBDIV_SELECT_INNER_SEL)|| G.qual == LR_CTRLKEY) { for(eed = em->edges.first;eed;eed = eed->next) { if(eed->f2 & EDGEINNER) { From 74ab278d46bd3784da769d3e3460750ad279cf02 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Tue, 9 Sep 2008 22:40:10 +0000 Subject: [PATCH 63/66] BGE bug #17549: fix crash on removeParent() with static mesh. Fix scaling bug on setParent(). Add python setWorldPosition() to allow setting object position in world coordinate regardless if it is a root or a child object. --- source/gameengine/Ketsji/KX_GameObject.cpp | 23 +++++++++++++++---- source/gameengine/Ketsji/KX_GameObject.h | 1 + .../Physics/Bullet/CcdPhysicsEnvironment.cpp | 5 ++-- source/gameengine/PyDoc/KX_GameObject.py | 11 ++++++++- 4 files changed, 33 insertions(+), 7 deletions(-) diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 27a955b3105..0e5956d4fdb 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -235,11 +235,12 @@ void KX_GameObject::SetParent(KX_Scene *scene, KX_GameObject* obj) m_pPhysicsController1->SuspendDynamics(true); } // Set us to our new scale, position, and orientation - scale1[0] = scale1[0]/scale2[0]; - scale1[1] = scale1[1]/scale2[1]; - scale1[2] = scale1[2]/scale2[2]; + scale2[0] = 1.0/scale2[0]; + scale2[1] = 1.0/scale2[1]; + scale2[2] = 1.0/scale2[2]; + scale1 = scale1 * scale2; MT_Matrix3x3 invori = obj->NodeGetWorldOrientation().inverse(); - MT_Vector3 newpos = invori*(NodeGetWorldPosition()-obj->NodeGetWorldPosition())*scale1; + MT_Vector3 newpos = invori*(NodeGetWorldPosition()-obj->NodeGetWorldPosition())*scale2; NodeSetLocalScale(scale1); NodeSetLocalPosition(MT_Point3(newpos[0],newpos[1],newpos[2])); @@ -914,6 +915,7 @@ void KX_GameObject::Suspend() PyMethodDef KX_GameObject::Methods[] = { {"getPosition", (PyCFunction) KX_GameObject::sPyGetPosition, METH_NOARGS}, {"setPosition", (PyCFunction) KX_GameObject::sPySetPosition, METH_O}, + {"setWorldPosition", (PyCFunction) KX_GameObject::sPySetWorldPosition, METH_O}, {"getLinearVelocity", (PyCFunction) KX_GameObject::sPyGetLinearVelocity, METH_VARARGS}, {"setLinearVelocity", (PyCFunction) KX_GameObject::sPySetLinearVelocity, METH_VARARGS}, {"getAngularVelocity", (PyCFunction) KX_GameObject::sPyGetAngularVelocity, METH_VARARGS}, @@ -1576,6 +1578,19 @@ PyObject* KX_GameObject::PySetPosition(PyObject* self, PyObject* value) return NULL; } +PyObject* KX_GameObject::PySetWorldPosition(PyObject* self, PyObject* value) +{ + MT_Point3 pos; + if (PyVecTo(value, pos)) + { + NodeSetWorldPosition(pos); + NodeUpdateGS(0.f,true); + Py_RETURN_NONE; + } + + return NULL; +} + PyObject* KX_GameObject::PyGetPhysicsId(PyObject* self) { KX_IPhysicsController* ctrl = GetPhysicsController(); diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index 98b3f3b4c3f..2da0be4df25 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -754,6 +754,7 @@ public: KX_PYMETHOD_NOARGS(KX_GameObject,GetPosition); KX_PYMETHOD_O(KX_GameObject,SetPosition); + KX_PYMETHOD_O(KX_GameObject,SetWorldPosition); KX_PYMETHOD_VARARGS(KX_GameObject,GetLinearVelocity); KX_PYMETHOD_VARARGS(KX_GameObject,SetLinearVelocity); KX_PYMETHOD_VARARGS(KX_GameObject,GetAngularVelocity); diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp index d14ddf8f65c..d3b83a74439 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp +++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp @@ -452,11 +452,12 @@ void CcdPhysicsEnvironment::updateCcdPhysicsController(CcdPhysicsController* ctr // this function is used when the collisionning group of a controller is changed // remove and add the collistioning object btRigidBody* body = ctrl->GetRigidBody(); - btVector3 inertia; + btVector3 inertia(0.0,0.0,0.0); m_dynamicsWorld->removeCollisionObject(body); body->setCollisionFlags(newCollisionFlags); - body->getCollisionShape()->calculateLocalInertia(newMass, inertia); + if (newMass) + body->getCollisionShape()->calculateLocalInertia(newMass, inertia); body->setMassProps(newMass, inertia); m_dynamicsWorld->addCollisionObject(body, newCollisionGroup, newCollisionMask); // to avoid nasty interaction, we must update the property of the controller as well diff --git a/source/gameengine/PyDoc/KX_GameObject.py b/source/gameengine/PyDoc/KX_GameObject.py index 9729b14a43f..ff9b4ffc95b 100644 --- a/source/gameengine/PyDoc/KX_GameObject.py +++ b/source/gameengine/PyDoc/KX_GameObject.py @@ -58,7 +58,16 @@ class KX_GameObject: """ def setPosition(pos): """ - Sets the game object's position. + Sets the game object's position. + Global coordinates for root object, local for child objects. + + + @type pos: [x, y, z] + @param pos: the new position, in local coordinates. + """ + def setWorldPosition(pos): + """ + Sets the game object's position in world coordinates regardless if the object is root or child. @type pos: [x, y, z] @param pos: the new position, in world coordinates. From eaf84d2c25c0b70b0a71fe042c8b559a3a504418 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 10 Sep 2008 01:17:03 +0000 Subject: [PATCH 64/66] BPY merge from apricot branch. work around non unix line endings using pythons execfile() function rather then loading the binary data and manually stripping the line endings. --- source/blender/python/BPY_interface.c | 57 ++++----------------------- 1 file changed, 8 insertions(+), 49 deletions(-) diff --git a/source/blender/python/BPY_interface.c b/source/blender/python/BPY_interface.c index 05254bca8c0..c91aabc4a02 100644 --- a/source/blender/python/BPY_interface.c +++ b/source/blender/python/BPY_interface.c @@ -778,9 +778,6 @@ int BPY_run_script(Script *script) PyObject *py_dict, *py_res, *pyarg; Text *text = NULL; BPy_constant *info; - int len; - - FILE *fp = NULL; PyGILState_STATE gilstate = PyGILState_Ensure(); @@ -825,12 +822,8 @@ int BPY_run_script(Script *script) Py_INCREF( Py_None ); pyarg = Py_None; } else { - if (BLI_exists(script->scriptname)) { - fp = fopen( script->scriptname, "rb" ); - } - - if( !fp ) { - printf( "Error loading script: couldn't open file %s\n", script->scriptname ); + if (!BLI_exists(script->scriptname)) { + printf( "Script does not exit %s\n", script->scriptname ); free_libblock( &G.main->script, script ); PyGILState_Release(gilstate); return 0; @@ -875,51 +868,17 @@ int BPY_run_script(Script *script) if (text) { py_res = RunPython( text, py_dict ); } else { + char pystring[sizeof(script->scriptname) + 15]; + sprintf(pystring, "execfile(r'%s')", script->scriptname); + py_res = PyRun_String( pystring, Py_file_input, py_dict, py_dict ); + } + + if( !py_res ) { /* Failed execution of the script */ /* Previously we used PyRun_File to run directly the code on a FILE * object, but as written in the Python/C API Ref Manual, chapter 2, * 'FILE structs for different C libraries can be different and * incompatible'. * So now we load the script file data to a buffer */ - char *buffer=NULL, *buffer_ofs=NULL, *b_to, *b_from; - - fseek( fp, 0L, SEEK_END ); - len = ftell( fp ); - fseek( fp, 0L, SEEK_SET ); - - buffer = buffer_ofs = MEM_mallocN( len + 2, "pyfilebuf" ); /* len+2 to add '\n\0' */ - len = fread( buffer, 1, len, fp ); - - buffer[len] = '\n'; /* fix syntax error in files w/o eol */ - buffer[len + 1] = '\0'; - - - /* fast clean-up of dos cr/lf line endings, remove convert '\r\n's to '\n' */ - if (*buffer_ofs == '\r' && *(buffer_ofs+1) == '\n') { - buffer_ofs++; - } - b_from = b_to = buffer_ofs; - - while(*b_from != '\0') { - if (*b_from == '\r' && *( b_from+1 ) == '\n') { - b_from++; - } - if (b_from != b_to) { - *b_to = *b_from; - } - b_to++; - b_from++; - } - *b_to = '\0'; - /* done cleaning the string */ - - fclose( fp ); - - py_res = PyRun_String( buffer_ofs, Py_file_input, py_dict, py_dict ); - MEM_freeN( buffer ); - } - - if( !py_res ) { /* Failed execution of the script */ - BPY_Err_Handle( script->id.name + 2 ); ReleaseGlobalDictionary( py_dict ); script->py_globaldict = NULL; From ecc5bdb8d72aca5199de6a69b4b6c493f0191d51 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 10 Sep 2008 03:34:08 +0000 Subject: [PATCH 65/66] 2 gamelogic templates, one with example functions and comments, another minimal template for those who know the api. --- release/scripts/scripttemplate_gamelogic.py | 93 +++++++++++++++++++ .../scripts/scripttemplate_gamelogic_basic.py | 33 +++++++ 2 files changed, 126 insertions(+) create mode 100644 release/scripts/scripttemplate_gamelogic.py create mode 100644 release/scripts/scripttemplate_gamelogic_basic.py diff --git a/release/scripts/scripttemplate_gamelogic.py b/release/scripts/scripttemplate_gamelogic.py new file mode 100644 index 00000000000..17095251155 --- /dev/null +++ b/release/scripts/scripttemplate_gamelogic.py @@ -0,0 +1,93 @@ +#!BPY +""" +Name: 'GameLogic Example' +Blender: 245 +Group: 'ScriptTemplate' +Tooltip: 'Script template with examples of how to use game logic' +""" + +from Blender import Window +import bpy + +script_data = \ +''' +# GameLogic has been added to the global namespace no need to import + +# for keyboard event comparison +# import GameKeys + +# support for Vector(), Matrix() types and advanced functions like AngleBetweenVecs(v1,v2) and RotationMatrix(...) +# import Mathutils + +# for functions like getWindowWidth(), getWindowHeight() +# import Rasterizer + +def main(): + cont = GameLogic.getCurrentController() + + # The KX_GameObject that owns this controller. + own = cont.getOwner() + + # for scripts that deal with spacial logic + own_pos = own.getPosition() + + + # Some example functions, remove to write your own script. + # check for a positive sensor, will run on any object without errors. + print 'Logic info for KX_GameObject', own.getName() + input = False + + for sens in cont.getSensors(): + # The sensor can be on another object, we may want to use it + own_sens = sens.getOwner() + print ' sensor:', sens.getName(), + if sens.isPositive(): + print '(true)' + input = True + else: + print '(false)' + + for actu in cont.getActuators(): + # The actuator can be on another object, we may want to use it + own_actu = actu.getOwner() + print ' actuator:', sens.getName() + + # This runs the actuator or turns it off + # note that actuators will continue to run unless explicitly turned off. + if input: + GameLogic.addActiveActuator(actu, True) + else: + GameLogic.addActiveActuator(actu, False) + + # Its also good practice to get sensors and actuators by names + # so any changes to their order wont break the script. + + # sens_key = cont.getSensor('key_sensor') + # actu_motion = cont.getActuator('motion') + + + # Loop through all other objects in the scene + sce = GameLogic.getCurrentScene() + print 'Scene Objects:', sce.getName() + for ob in sce.getObjectList(): + print ' ', ob.getName(), ob.getPosition() + + + # Example where collision objects are checked for their properties + # adding to our objects "life" property + """ + actu_collide = cont.getSensor('collision_sens') + for ob in actu_collide.getHitObjectList(): + # Check to see the object has this property + if hasattr(ob, 'life'): + own.life += ob.life + ob.life = 0 + print own.life + """ +main() +''' + +new_text = bpy.data.texts.new('gamelogic_example.py') +new_text.write(script_data) +bpy.data.texts.active = new_text +Window.RedrawAll() diff --git a/release/scripts/scripttemplate_gamelogic_basic.py b/release/scripts/scripttemplate_gamelogic_basic.py new file mode 100644 index 00000000000..dfd52a9f749 --- /dev/null +++ b/release/scripts/scripttemplate_gamelogic_basic.py @@ -0,0 +1,33 @@ +#!BPY +""" +Name: 'GameLogic Template' +Blender: 245 +Group: 'ScriptTemplate' +Tooltip: 'Basic template for new game logic scripts' +""" + +from Blender import Window +import bpy + +script_data = \ +''' +def main(): + + cont = GameLogic.getCurrentController() + own = cont.getOwner() + + sens = cont.getSensor('mySensor') + actu = cont.getActuator('myActuator') + + if sens.isPositive(): + GameLogic.addActiveActuator(actu, True) + else: + GameLogic.addActiveActuator(actu, False) + +main() +''' + +new_text = bpy.data.texts.new('gamelogic_example.py') +new_text.write(script_data) +bpy.data.texts.active = new_text +Window.RedrawAll() From 75078d62df5ee8186369b5f1273b61b0736346ec Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 10 Sep 2008 09:51:06 +0000 Subject: [PATCH 66/66] Fix for bug #17589: removing a lamp in the game engine with glsl materials did not work correct. --- source/gameengine/Ketsji/KX_Light.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp index 979015532e3..e0f171e78e0 100644 --- a/source/gameengine/Ketsji/KX_Light.cpp +++ b/source/gameengine/Ketsji/KX_Light.cpp @@ -65,6 +65,13 @@ KX_LightObject::KX_LightObject(void* sgReplicationInfo,SG_Callbacks callbacks, KX_LightObject::~KX_LightObject() { + GPULamp *lamp; + + if((lamp = GetGPULamp())) { + float obmat[4][4] = {{0}}; + GPU_lamp_update(lamp, 0, obmat); + } + m_rendertools->RemoveLight(&m_lightobj); }